{ config, # lib, pkgs, ... }: { # imports = [ ./konsole.nix ]; home.packages = with pkgs; [ libreoffice-qt-fresh rc2nix wl-clipboard (papirus-icon-theme.override { color = "breeze"; }) ]; services.gpg-agent.pinentryPackage = pkgs.pinentry-qt; programs.plasma = { enable = true; overrideConfig = true; # workspace = # let # toCapital = import ../lib/to_capital.nix lib; # in # { # clickItemTo = "open"; # theme = "default"; # colorScheme = "Breeze${toCapital config.lib.stylix.scheme.variant}"; # iconTheme = "Papirus-${toCapital config.lib.stylix.scheme.variant}"; # windowDecorations = { # library = "org.kde.breeze"; # theme = "Breeze"; # }; # cursor = { # inherit (config.home.pointerCursor) size; # theme = config.home.pointerCursor.name; # }; # wallpaper = "${../wallpapers/landscapes/tropic_island_day.jpg}"; # }; # fonts = # let # general = { # family = config.stylix.fonts.sansSerif.name; # pointSize = 12; # }; # small = { # inherit (general) family; # pointSize = general.pointSize - 2; # }; # fixedWidth = { # family = config.stylix.fonts.monospace.name; # pointSize = 12; # }; # in # { # inherit general small fixedWidth; # menu = general; # toolbar = general; # windowTitle = small; # }; hotkeys.commands = { "launch-terminal" = let command = config.programs.plasma.configFile.kdeglobals.General.TerminalApplication.value; in { inherit command; name = "Launch ${command} emulator"; key = "Ctrl+Alt+T"; }; "launch-emacs" = { name = "Launch Emacs Client Window"; key = "Meta+Alt+X"; command = "emacsclient -c"; }; }; panels = [ { height = 32; lengthMode = "fill"; location = "bottom"; alignment = "center"; hiding = "normalpanel"; floating = true; widgets = [ { name = "org.kde.plasma.kicker"; config.General = { icon = "nix-snowflake"; appNameFormat = 0; limitDepth = true; alphaSort = true; recentOrdering = 0; showRecentApps = true; showRecentDocs = true; showIconsRootLevel = true; }; } "org.kde.plasma.marginsseparator" { name = "org.kde.plasma.icontasks"; config.General = { maxStripes = "1"; showToolTips = "true"; launchers = [ "preferred://filemanager" "applications:emacs.desktop" ]; }; } "org.kde.plasma.panelspacer" { name = "org.kde.plasma.pager"; config.General = { showWindowIcons = "true"; showOnlyCurrentScreen = "false"; wrapPage = "true"; }; } "org.kde.plasma.panelspacer" "org.kde.plasma.marginsseparator" "org.kde.plasma.keyboardindicator" "org.kde.plasma.cameraindicator" { systemTray = { icons = { spacing = "small"; scaleToFit = false; }; }; } { digitalClock = { date = { enable = true; format = "isoDate"; position = "besideTime"; }; time = { format = "24h"; showSeconds = "onlyInTooltip"; }; calendar.showWeekNumbers = true; }; } { name = "org.kde.plasma.userswitcher"; config.General = { showFace = "true"; showName = "false"; showFullName = "true"; showTechnicalInfo = "true"; }; } ]; } ]; shortcuts = { ksmserver = { "Lock Session" = [ "Screensaver" "Meta+Alt+L" ]; }; kwin = { "Walk Through Windows of Current Application" = "Alt+`"; "Walk Through Windows of Current Application (Reverse)" = "Alt+¬"; "ToggleMouseClick" = "Meta+*"; "Expose" = "Meta+,"; "Switch Window Down" = "Meta+J"; "Switch Window Left" = "Meta+H"; "Switch Window Right" = "Meta+L"; "Switch Window Up" = "Meta+K"; "Invert" = "Meta+Ctrl+I"; "InvertWindow" = "Meta+Ctrl+U"; "Invert Screen Colors" = [ ]; }; "services/org.kde.konsole.desktop"."_launch" = [ ]; "services/org.kde.krunner.desktop"."_launch" = [ "Meta+Space" "Search" "Alt+F2" ]; }; kwin = { virtualDesktops = { rows = 1; number = 4; }; effects = { translucency.enable = true; blur.enable = true; cube.enable = true; dimAdminMode.enable = true; }; }; powerdevil = let powerButtonAction = "turnOffScreen"; whenSleepingEnter = "standbyThenHibernate"; whenLaptopLidClosed = "sleep"; in { AC = { inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed; autoSuspend = { action = "sleep"; idleTimeout = 7200; }; dimDisplay = { enable = true; idleTimeOut = 300; }; turnOffDisplay = { idleTimeout = 1800; idleTimeoutWhenLocked = 120; }; }; battery = { inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed; autoSuspend = { action = "sleep"; idleTimeout = 900; }; dimDisplay = { enable = true; idleTimeOut = 120; }; turnOffDisplay = { idleTimeout = 300; idleTimeoutWhenLocked = 60; }; }; lowBattery = { inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed; autoSuspend = { action = "hibernate"; idleTimeout = 300; }; dimDisplay = { enable = true; idleTimeOut = 60; }; turnOffDisplay = { idleTimeout = 120; idleTimeoutWhenLocked = "immediately"; }; }; }; configFile = { baloofilerc."Basic Settings"."Indexing-Enabled" = false; kcminputrc.Keyboard.NumLock = 1; yakuakerc = { Dialogs.FirstRun = false; Window = { DynamicTabTitles = true; Height = 80; Width = 80; KeepOpen = true; ShowSystrayIcon = false; ShowTitleBar = false; }; }; plasmanotifyrc = { Notifications = { NormalAlwaysOnTop = true; }; }; krunnerrc = { General = { ActivateWhenTypingOnDesktop = false; FreeFloating = true; }; }; kscreenlockerrc = { Daemon.Timeout = 15; Greeter.WallpaperPlugin = "org.kde.potd"; }; klipperrc = { General = { SyncClipboards = true; MaxClipItems = 5; IgnoreImages = false; KeepClipboardContents = false; }; }; # kdeglobals = { # General = # let # AccentColor = # let # r = config.lib.stylix.scheme."base0D-rgb-r"; # g = config.lib.stylix.scheme."base0D-rgb-g"; # b = config.lib.stylix.scheme."base0D-rgb-b"; # in # "${r}, ${g}, ${b}"; # in # { # inherit AccentColor; # LastUsedCustomAccentColor = AccentColor; # TerminalApplication = "konsole"; # TerminalService = "org.kde.konsole.desktop"; # }; # WM = { # # TODO convert to base16 colours at some point # activeBackground = "227,229,231"; # activeBlend = "227,229,231"; # activeForeground = "35,38,41"; # inactiveBackground = "239,240,241"; # inactiveBlend = "239,240,241"; # inactiveForeground = "112,125,138"; # }; # }; # breezerc = { # Common = { # OutlineClassButton = true; # OutlineCloseButtone = true; # ShadowSize = "ShadowVeryLarge"; # ShadowStrength = "128"; # }; # Style = { # MenuOpacity = "100"; # }; # }; dolphinrc = { ContentDisplay = { UsePermissionsFormat = "CombinedFormat"; }; General = { BrowseThroughArchives = true; OpenNewTabAfterLastTab = true; RememberOpenedTabs = false; }; }; kwinrc = { Plugins = { frozenappEnabled = false; mouseclickEnabled = true; shakecursorEnabled = false; invertEnabled = true; }; Windows = { FocusPolicy = "FocusFollowsMouse"; RollOverDesktops = true; }; NightColor = { Active = true; Mode = "Location"; LatitudeFixed = "51.7"; LongitudeFixed = "-1.2"; }; # "Effect-translucency" = { # # Re-enable translucency when I can work out how to apply # # blur to all windows # Inactive = 100; # MoveResize = 100; # Dialogs = 100; # ComboboxPopups = 100; # Menus = 100; # }; # "org.kde.kdecoration2" = { # BorderSize = "None"; # BorderSizeAuto = "false"; # }; # "Script-krohnkite" = { # limitTileWidth = true; # screenGapBottom = 5; # screenGapLeft = 5; # screenGapRight = 5; # screenGapTop = 5; # tileLayoutGap = 5; # }; }; }; }; xdg.configFile."autostart/org.kde.yakuake.desktop".source = "${pkgs.yakuake}/share/applications/org.kde.yakuake.desktop"; }