{ pkgs, ... }: let sddm-background-drv = pkgs.stdenvNoCC.mkDerivation { name = "sddm-background-drv"; src = ../../../assets/wallpapers; dontUnpack = true; installPhase = '' cp $src/kde.png $out ''; }; in { imports = [ ../../system/fonts.nix ]; environment.persistence."/nix/persist".directories = [ "/var/lib/AccountsService/" ]; environment.persistence."/nix/persist".users.hu.directories = [ # https://github.com/nix-community/plasma-manager/issues/172 ".local/share/konsole" ".local/share/kwalletd" ".local/share/baloo" ".local/share/dolphin" ]; environment.persistence."/nix/persist".users.hu.files = [ ".config/konsolerc" ".config/kwinoutputconfig.json" ".local/state/konsolestaterc" ]; networking.networkmanager.enable = true; users.users.hu.extraGroups = [ "networkmanager" ]; environment.sessionVariables = { LIBVA_DRIVER_NAME = "nvidia"; XDG_SESSION_TYPE = "wayland"; GBM_BACKEND = "nvidia-drm"; __GLX_VENDOR_LIBRARY_NAME = "nvidia"; NVD_BACKEND = "direct"; MOZ_DISABLE_RDD_SANDBOX = 1; NIXOS_OZONE_WL = 1; }; services.desktopManager.plasma6.enable = true; services.displayManager.sddm = { enable = true; wayland.enable = true; }; environment.plasma6.excludePackages = with pkgs.kdePackages; [ plasma-browser-integration khelpcenter krdp ]; environment.systemPackages = with pkgs; [ nvidia-vaapi-driver kdePackages.sddm-kcm (pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" '' [General] background=${sddm-background-drv} '') networkmanager-openvpn ]; home-manager.users.hu = { dconf.settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; gtk = { enable = true; theme = { name = "Breeze"; package = pkgs.kdePackages.breeze-gtk; }; }; programs.plasma = { enable = true; workspace = { lookAndFeel = "org.kde.breezedark.desktop"; wallpaper = "/nix/config/assets/wallpapers/kde.png"; }; panels = [ { location = "bottom"; floating = true; widgets = [ { kickoff = { icon = "nix-snowflake-white"; }; } "org.kde.plasma.pager" { iconTasks = { launchers = [ "applications:org.kde.dolphin.desktop" "applications:org.kde.konsole.desktop" "applications:firefox-esr.desktop" ]; }; } "org.kde.plasma.marginsseparator" "org.kde.plasma.systemtray" { digitalClock = { calendar.firstDayOfWeek = "monday"; time.format = "24h"; }; } "org.kde.plasma.showdesktop" ]; } ]; powerdevil = { AC = { autoSuspend.action = "nothing"; dimDisplay.enable = false; powerButtonAction = "hibernate"; }; }; shortcuts = { kwin = { "Switch to Desktop 1" = "Meta+1"; "Switch to Desktop 2" = "Meta+2"; "Switch to Desktop 3" = "Meta+3"; "Switch to Desktop 4" = "Meta+4"; "Switch to Desktop 5" = "Meta+5"; "Switch to Desktop 6" = "Meta+6"; "Switch to Desktop 7" = "Meta+7"; "Switch to Desktop 8" = "Meta+8"; "Switch to Desktop 9" = "Meta+9"; # Don't blame me for this. This is all the doing of kwin. # You're going to have to adjust this to your layout. "Window to Desktop 1" = "Meta+!"; "Window to Desktop 2" = "Meta+\""; "Window to Desktop 3" = "Meta+£"; "Window to Desktop 4" = "Meta+$"; "Window to Desktop 5" = "Meta+%"; "Window to Desktop 6" = "Meta+^"; "Window to Desktop 7" = "Meta+&"; "Window to Desktop 8" = "Meta+*"; "Window to Desktop 9" = "Meta+("; }; }; configFile = { kwinrc = { Desktops = { Number = { value = 9; }; Rows = { value = 3; }; }; }; plasmaashellrc = { PlasmaViews = { panelOpacity = 2; }; }; kxkbrc = { Layout = { LayoutList = "gb"; Use = true; }; }; }; }; }; }