From b6b6a1e9cadf9a7cad32fb75813fd2ccfbab6612 Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Sun, 23 Jun 2024 18:25:45 +0100 Subject: [PATCH] Plasma: Update panel configuration Split main panel into launcher, status, and pager, in separate sections of the screen Fix location for notifications to bottom left corner Add KDE scripting reference to bookmarks.json --- programs/browser/bookmarks.json | 5 ++ programs/desktop/plasma6/default.nix | 107 +++++++++++++++++++++------ 2 files changed, 88 insertions(+), 24 deletions(-) diff --git a/programs/browser/bookmarks.json b/programs/browser/bookmarks.json index 891f83c..dcacd91 100644 --- a/programs/browser/bookmarks.json +++ b/programs/browser/bookmarks.json @@ -35,6 +35,11 @@ "url": "https://nix-community.github.io/home-manager/options.xhtml", "tags": ["Software", "Documentation", "Nix"] }, + { + "name": "KDE Plasma Desktop Scripting", + "url": "https://develop.kde.org/docs/plasma/scripting/", + "tags": ["Software", "Documentation", "KDE", "Plasma"] + }, { "name": "Awesome Emacs", "url": "https://github.com/emacs-tw/awesome-emacs", diff --git a/programs/desktop/plasma6/default.nix b/programs/desktop/plasma6/default.nix index ba5d635..239144d 100644 --- a/programs/desktop/plasma6/default.nix +++ b/programs/desktop/plasma6/default.nix @@ -62,42 +62,96 @@ }; }; - panels = [ - { - height = 44; - lengthMode = "fill"; + panels = let + launcher = { + height = 48; + lengthMode = "fit"; location = "bottom"; alignment = "center"; - hiding = "none"; + hiding = "dodgewindows"; floating = true; widgets = [ { name = "org.kde.plasma.kickoff"; - config = {General.icon = "nix-snowflake";}; + config.General = { + icon = "nix-snowflake"; + favorites = [ + "applications:emacsclient.desktop" + "applications:proton-bridge-gui.desktop" + "applications:org.kde.elisa.desktop" + "applications:org.kde.okular.desktop" + "applications:org.kde.gwenview.desktop" + "applications:org.inkscape.Inkscape.desktop" + "applications:writer.desktop" + "applications:calc.desktop" + "applications:impress.desktop" + "applications:webcord.desktop" + ]; + primaryActions = "0"; + favoritesDisplay = "0"; + applicationsDisplay = "1"; + showActionButtonCaptions = "true"; + compactMode = "false"; + }; } { name = "org.kde.plasma.icontasks"; - config = { - General.launchers = [ - "applications:systemsettings.desktop" - "applications:org.kde.konsole.desktop" - "applications:org.kde.dolphin.desktop" - "applications:emacs.desktop" - "applications:firefox.desktop" - ]; + config.General.launchers = [ + "applications:systemsettings.desktop" + "applications:org.kde.konsole.desktop" + "applications:org.kde.dolphin.desktop" + "preferred://browser" + ]; + } + ]; + }; + status = { + height = 32; + lengthMode = "fit"; + location = "bottom"; + alignment = "right"; + hiding = "autohide"; + floating = true; + widgets = [ + { + systemTray = { + icons = { + spacing = "small"; + scaleToFit = false; + }; }; } - "org.kde.plasma.systemtray" { digitalClock = { - time.format = "24h"; + date.enable = false; + time = { + format = "24h"; + showSeconds = "onlyInTooltip"; + }; calendar.showWeekNumbers = true; }; } - "org.kde.plasma.showdesktop" ]; - } - ]; + }; + pager = { + height = 128; + lengthMode = "fit"; + location = "top"; + alignment = "center"; + hiding = "autohide"; + floating = true; + widgets = [ + { + name = "org.kde.plasma.pager"; + config.General = { + showWindowIcons = "true"; + showOnlyCurrentScreen = "false"; + wrapPage = "true"; + }; + } + ]; + }; + in [launcher status pager]; shortcuts = { kwin = { @@ -120,18 +174,19 @@ }; configFile = { - baloofilerc = {"Basic Settings"."Indexing-Enabled" = false;}; + baloofilerc."Basic Settings"."Indexing-Enabled" = false; kcminputrc.Keyboard.NumLock = 1; + krunnerrc.General.FreeFloating = false; + kscreenlockerrc = { + Daemon.Timeout = 15; + Greeter.WallpaperPlugin = "org.kde.potd"; + }; kdeglobals = { General = { TerminalApplication = "konsole"; TerminalService = "org.kde.konsole.desktop"; }; }; - kscreenlockerrc = { - Daemon.Timeout = 15; - Greeter.WallpaperPlugin = "org.kde.potd"; - }; kwinrc = { Windows = { FocusPolicy = "FocusFollowsMouse"; @@ -144,6 +199,10 @@ LongitudeFixed = "-1.2"; }; }; + plasmanotifyrc.Notifications = { + NormalAlwaysOnTop = true; + PopupPosition = "BottomRight"; + }; }; }; }