{ config, lib, pkgs, inputs, fonts, rc2nix, accentColourName, ... }: { imports = [ inputs.plasma-manager.homeManagerModules.plasma-manager ../default.nix ./konsole.nix ]; home.packages = with pkgs; [ rc2nix wl-clipboard (papirus-icon-theme.override {color = "violet";}) ]; 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.scheme.variant}"; iconTheme = "Papirus-${toCapital config.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 = fonts.sansSerif.name; pointSize = 12; }; small = { inherit (general) family; pointSize = general.pointSize - 2; }; fixedWidth = { family = fonts.monospace.name; pointSize = 12; }; in { inherit general small fixedWidth; menu = general; toolbar = general; windowTitle = small; }; hotkeys.commands = { "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.kickoff"; config.General = { icon = "nix-snowflake"; primaryActions = "0"; favoritesDisplay = "0"; applicationsDisplay = "1"; pin = "false"; showActionButtonCaptions = "true"; compactMode = "false"; }; } { name = "org.kde.plasma.icontasks"; config.General = { maxStripes = "1"; showToolTips = "true"; launchers = [ "applications:org.kde.konsole.desktop" "preferred://filemanager" "applications:emacs.desktop" "preferred://browser" ]; }; } { name = "org.kde.plasma.pager"; config.General = { showWindowIcons = "true"; showOnlyCurrentScreen = "false"; wrapPage = "true"; }; } "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.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; }; }; configFile = { baloofilerc."Basic Settings"."Indexing-Enabled" = false; bluedevilglobalrc.Global.launchState.value = "disable"; kcminputrc.Keyboard.NumLock = 1; # powerdevilrc = { # AC = { # Display = { # TurnOffDisplayIdleTimeoutSec = "1800"; # TurnOffDisplayIdleTimeoutWhenLockedSec = "120"; # }; # SuspendAndShutdown = { # AutoSuspendIdleTimeoutSec = "3600"; # }; # }; # }; 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.scheme."${accentColourName}-rgb-r"; g = config.scheme."${accentColourName}-rgb-g"; b = config.scheme."${accentColourName}-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"; }; }; }; }; }