diff options
Diffstat (limited to 'modules/kde.nix')
-rw-r--r-- | modules/kde.nix | 106 |
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 ]; }; |