From 73799275ba72592dcab9d32afe4cc29bbf6ffd45 Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Fri, 27 Sep 2024 11:24:16 +0100 Subject: [PATCH] Revert "Remove plasma config" This reverts commit b87d93c767a5f350f66c1403c1de0ce873baffc0. --- system/home/plasma/default.nix | 372 ++++++++++++++++++++++++ system/home/plasma/klassy.nix | 15 + system/home/plasma/konsole.nix | 42 +++ system/home/plasma/krohnkite.nix | 20 ++ system/home/plasma/onelight.colorscheme | 100 +++++++ 5 files changed, 549 insertions(+) create mode 100644 system/home/plasma/default.nix create mode 100644 system/home/plasma/klassy.nix create mode 100644 system/home/plasma/konsole.nix create mode 100644 system/home/plasma/krohnkite.nix create mode 100644 system/home/plasma/onelight.colorscheme diff --git a/system/home/plasma/default.nix b/system/home/plasma/default.nix new file mode 100644 index 00000000..a9bab311 --- /dev/null +++ b/system/home/plasma/default.nix @@ -0,0 +1,372 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + imports = [ ./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.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-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.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"; +} diff --git a/system/home/plasma/klassy.nix b/system/home/plasma/klassy.nix new file mode 100644 index 00000000..7ff17769 --- /dev/null +++ b/system/home/plasma/klassy.nix @@ -0,0 +1,15 @@ +# sudo pacman -S git frameworkintegration gcc-libs glibc kcmutils kcolorscheme kconfig kcoreaddons kdecoration kguiaddons ki18n kiconthemes kirigami kwidgetsaddons kwindowsystem qt6-base qt6-declarative qt6-svg xdg-utils extra-cmake-modules kcmutils5 frameworkintegration5 kconfigwidgets5 kiconthemes5 kirigami2 kwindowsystem5 +{ mkDerivation, fetchFromGithub }: +let + pname = "klassy"; + version = "6.1.breeze6.0.3"; +in +mkDerivation { + inherit pname version; + src = fetchFromGithub { + owner = "paulmcauley"; + repo = pname; + rev = version; + hash = ""; + }; +} diff --git a/system/home/plasma/konsole.nix b/system/home/plasma/konsole.nix new file mode 100644 index 00000000..c9fb6a7e --- /dev/null +++ b/system/home/plasma/konsole.nix @@ -0,0 +1,42 @@ +{ config, pkgs, ... }: +{ + home.packages = [ pkgs.yakuake ]; + programs.konsole = { + enable = true; + defaultProfile = "One-Light"; + customColorSchemes.onelight = ./onelight.colorscheme; + profiles.onelight = { + name = "One-Light"; + colorScheme = "onelight"; + command = "${config.programs.zsh.package}/bin/zsh"; + font = { + inherit (config.stylix.fonts.monospace) name; + size = config.stylix.fonts.sizes.terminal; + }; + extraConfig = { + "Interaction Options" = { + TextEditorCmd = 6; + TextEditorCmdCustom = "emacsclient -c +LINE:COLUMN PATH"; + UnderlineFilesEnabled = true; + OpenLinksByDirectClickEnabled = true; + }; + "Terminal Features" = { + BlinkingCursorEnabled = true; + VerticalLine = false; + }; + }; + }; + extraConfig = { + MainWindow = { + MenuBar = "Disabled"; + }; + TabBar = { + ExpandTabWidth = true; + NewTabButton = true; + }; + ThumbnailsSettings = { + ThumbnailAlt = true; + }; + }; + }; +} diff --git a/system/home/plasma/krohnkite.nix b/system/home/plasma/krohnkite.nix new file mode 100644 index 00000000..12605f83 --- /dev/null +++ b/system/home/plasma/krohnkite.nix @@ -0,0 +1,20 @@ +{ pkgs, ... }: +{ + home.packages = [ + (pkgs.libsForQt5.krohnkite.overrideAttrs ( + final: prev: + let + version = "0.9.7"; + in + { + inherit version; + src = pkgs.fetchFromGitHub { + owner = "anametologin"; + repo = "krohnkite"; + rev = version; + hash = "sha256-8A3zW5tK8jK9fSxYx28b8uXGsvxEoUYybU0GaMD2LNw="; + }; + } + )) + ]; +} diff --git a/system/home/plasma/onelight.colorscheme b/system/home/plasma/onelight.colorscheme new file mode 100644 index 00000000..75ac9f79 --- /dev/null +++ b/system/home/plasma/onelight.colorscheme @@ -0,0 +1,100 @@ +[Background] +Color=250,250,250 + +[BackgroundFaint] +Color=250,250,250 + +[BackgroundIntense] +Color=250,250,250 + +[Color0] +Color=250,250,250 + +[Color0Faint] +Color=160,161,167 + +[Color0Intense] +Color=160,161,167 + +[Color1] +Color=202,18,67 + +[Color1Faint] +Color=202,18,67 + +[Color1Intense] +Color=202,18,67 + +[Color2] +Color=80,161,79 + +[Color2Faint] +Color=80,161,79 + +[Color2Intense] +Color=80,161,79 + +[Color3] +Color=215,95,0 + +[Color3Faint] +Color=215,95,0 + +[Color3Intense] +Color=215,95,0 + +[Color4] +Color=64,120,242 + +[Color4Faint] +Color=64,120,242 + +[Color4Intense] +Color=64,120,242 + +[Color5] +Color=166,38,164 + +[Color5Faint] +Color=166,38,164 + +[Color5Intense] +Color=166,38,164 + +[Color6] +Color=1,132,188 + +[Color6Faint] +Color=1,132,188 + +[Color6Intense] +Color=1,132,188 + +[Color7] +Color=56,58,66 + +[Color7Faint] +Color=9,10,11 + +[Color7Intense] +Color=9,10,11 + +[Foreground] +Color=56,58,66 + +[ForegroundFaint] +Color=56,58,66 + +[ForegroundIntense] +Color=56,58,66 + +[General] +Anchor=0.5,0.5 +Blur=true +ColorRandomization=false +Description=One Light +FillStyle=Tile +Opacity=1.0 +Wallpaper= +WallpaperFlipType=NoFlip +WallpaperOpacity=1