about summary refs log tree commit diff
path: root/modules/kde.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/kde.nix')
-rw-r--r--modules/kde.nix106
1 files changed, 87 insertions, 19 deletions
diff --git a/modules/kde.nix b/modules/kde.nix
index c227620..a23eaa4 100644
--- a/modules/kde.nix
+++ b/modules/kde.nix
@@ -1,17 +1,17 @@
 {
   config,
+  inputs,
   lib,
   pkgs,
   ...
 }:
-with lib;
 let
   cfg = config.nixfiles.modules.kde;
 in
 {
-  options.nixfiles.modules.kde.enable = mkEnableOption "KDE Plasma";
+  options.nixfiles.modules.kde.enable = lib.mkEnableOption "KDE Plasma";
 
-  config = mkIf cfg.enable {
+  config = lib.mkIf cfg.enable {
     nixfiles.modules = {
       common.xdg.defaultApplications."org.kde.dolphin" = [ "inode/directory" ];
 
@@ -19,29 +19,96 @@ in
       sound.enable = true;
     };
 
+    stylix.targets.qt.enable = false;
+
     hm = {
-      stylix.targets.kde.enable = true;
+      imports = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
 
-      programs.firefox.profiles.default.settings = {
-        "widget.use-xdg-desktop-portal.file-picker" = 1;
-        "widget.use-xdg-desktop-portal.mime-handler" = 1;
-      };
+      stylix.targets.qt.enable = false;
+
+      home.sessionVariables.GTK_THEME = config.hm.gtk.theme.name;
 
-      gtk.theme = {
-        package = mkForce pkgs.breeze-gtk;
-        name = mkForce "Breeze";
+      gtk.theme = lib.mkForce {
+        package = pkgs.kdePackages.breeze-gtk;
+        name = "Breeze";
       };
 
-      xdg.configFile = {
-        "fontconfig/conf.d/10-hm-fonts.conf".force = mkForce true;
-        "mimeapps.list".force = mkForce true;
-        "kcminputrc".text = generators.toINI { } {
-          Keyboard = with config.services.xserver; {
-            RepeatDelay = autoRepeatDelay;
-            RepeatRate = autoRepeatInterval;
+      programs = {
+        plasma = {
+          enable = true;
+
+          immutableByDefault = false;
+
+          fonts = {
+            windowTitle = with config.stylix.fonts; {
+              family = sansSerif.name;
+              pointSize = sizes.desktop;
+            };
+          };
+
+          desktop = {
+            icons = {
+              alignment = "left";
+              arrangement = "topToBottom";
+              sorting = {
+                mode = "name";
+                descending = true;
+                foldersFirst = true;
+              };
+            };
+          };
+
+          session = {
+            general.askForConfirmationOnLogout = true;
+            sessionRestore = {
+              excludeApplications = [ ];
+              restoreOpenApplicationsOnLogin = "whenSessionWasManuallySaved";
+            };
+          };
+
+          spectacle = {
+            shortcuts = {
+              launch = "Meta+S";
+              launchWithoutCapturing = "Meta+Alt+S";
+
+              captureActiveWindow = "Meta+Print";
+              captureCurrentMonitor = "Print";
+              captureEntireDesktop = "Shift+Print";
+              captureRectangularRegion = "Meta+Shift+S";
+              captureWindowUnderCursor = "Meta+Ctrl+Print";
+
+              recordRegion = "Meta+Shift+R";
+              recordScreen = "Meta+Alt+R";
+              recordWindow = "Meta+Ctrl+R";
+            };
+          };
+
+          input.keyboard = with config.services.xserver; {
+            repeatDelay = autoRepeatDelay;
+            repeatRate = autoRepeatInterval;
+            numlockOnStartup = "off";
+          };
+
+          configFile = {
+            baloofilerc."Basic Settings"."Indexing-Enabled" = false;
+            kwalletrc."Wallet"."Enabled" = false;
+            kwinrc."Xwayland"."XwaylandEavesdrop" = "None";
+            spectaclerc = {
+              "ImageSave"."imageSaveLocation" = "file://${config.userDirs.pictures}";
+              "VideoSave"."videoSaveLocation" = "file://${config.userDirs.videos}";
+            };
           };
         };
-        "baloofilerc".text = generators.toINI { } { "Basic Settings"."Indexing-Enabled" = false; };
+
+        firefox.profiles.default.settings = {
+          "widget.use-xdg-desktop-portal.file-picker" = 1;
+          "widget.use-xdg-desktop-portal.mime-handler" = 1;
+        };
+      };
+
+      xdg.configFile = {
+        "fontconfig/conf.d/10-hm-fonts.conf".force = lib.mkForce true;
+        "mimeapps.list".force = lib.mkForce true;
       };
     };
 
@@ -67,6 +134,7 @@ in
         print-manager
       ];
       systemPackages = with pkgs.kdePackages; [
+        krdc
         plasma-disks
       ];
     };

Consider giving Nix/NixOS a try! <3