From 9ef595e774b4c2b8fffdc9cd889e0ee4ebb549db Mon Sep 17 00:00:00 2001 From: Tristan Druyen Date: Tue, 30 Jul 2024 13:30:42 +0200 Subject: [PATCH] Update plasma-manager & add panel config --- flake.lock | 10 +- flake.nix | 2 +- home-mods/desktop/default.nix | 2 +- home-mods/plasma/default.nix | 166 +++++++++++++++++++++++++++++++++- 4 files changed, 170 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index 21ae6a8..c02d0f5 100644 --- a/flake.lock +++ b/flake.lock @@ -610,15 +610,15 @@ ] }, "locked": { - "lastModified": 1720992717, - "narHash": "sha256-8j1bZVfKT1vJ0e+U7NYRNBG+DdBj5C/tpwe5krxT4/4=", - "owner": "pjones", + "lastModified": 1722270845, + "narHash": "sha256-AZpGInW/QlVZ4SOn9Mn1YZ0n5Ikiqha3xImWIC7DnNE=", + "owner": "nix-community", "repo": "plasma-manager", - "rev": "460b48dc3dcd05df568e27cbb90581d23baec8dc", + "rev": "dfc0dc44aa9ffb8c4c388c31bd839189e6027350", "type": "github" }, "original": { - "owner": "pjones", + "owner": "nix-community", "repo": "plasma-manager", "type": "github" } diff --git a/flake.nix b/flake.nix index 3a90656..bda79af 100644 --- a/flake.nix +++ b/flake.nix @@ -88,7 +88,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; plasma-manager = { - url = "github:pjones/plasma-manager"; + url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; diff --git a/home-mods/desktop/default.nix b/home-mods/desktop/default.nix index bb13436..3a8298c 100644 --- a/home-mods/desktop/default.nix +++ b/home-mods/desktop/default.nix @@ -37,7 +37,7 @@ in }; home = { - file.".background.png".source = wallpaperPath; + file."Pictures/default_background.png".source = wallpaperPath; packages = with pkgs; [ bitwarden diff --git a/home-mods/plasma/default.nix b/home-mods/plasma/default.nix index 35e8b88..00e28fd 100644 --- a/home-mods/plasma/default.nix +++ b/home-mods/plasma/default.nix @@ -1,11 +1,153 @@ -{ config, ... }: { +{ config +, lib +, ... +}: { programs.plasma = { enable = true; + overrideConfig = true; workspace = { theme = "breeze-dark"; lookAndFeel = "org.kde.breezedark.desktop"; - wallpaper = "${config.home.homeDirectory}/.background.png"; + wallpaper = "${config.home.homeDirectory}/Pictures/default_background.png"; }; + panels = [ + # Windows-like panel at the bottom + { + location = "bottom"; + screen = "all"; + height = 40; + widgets = [ + { + name = "org.kde.plasma.kicker"; + config = { + General = { + icon = "nix-snowflake-white"; + alphaSort = true; + showIconsRootLevel = true; + }; + }; + } + { + name = "org.kde.plasma.pager"; + config = { + General = { + displayedText = "None"; + showWindowIcons = true; + showOnlyCurrentScreen = true; + wrapPage = true; + currentDesktopSelected = "ShowDesktop"; + }; + }; + } + { + name = "org.kde.plasma.taskmanager"; + config = { + General = { + launchers = [ + "applications:systemsettings.desktop" + "preferred://filemanager" + "preferred://browser" + "applications:Alacritty.desktop" + "applications:emacsclient.desktop" + ]; + }; + }; + } + "org.kde.plasma.marginsseparator" + { + systemTray.items = { + shown = [ + "org.kde.plasma.bluetooth" + "org.kde.plasma.volume" + "org.kde.plasma.networkmanagement" + "org.kde.plasma.battery" + ]; + hidden = [ ]; + }; + } + { + digitalClock = { + calendar.firstDayOfWeek = "monday"; + time.format = "24h"; + }; + } + ]; + hiding = "none"; + } + # Application name, Global menu and Song information and playback controls at the top + { + location = "top"; + screen = "all"; + height = 26; + widgets = [ + { + applicationTitleBar = { + behavior = { + activeTaskSource = "activeTask"; + }; + layout = { + elements = [ "windowTitle" ]; + horizontalAlignment = "left"; + showDisabledElements = "deactivated"; + verticalAlignment = "center"; + }; + overrideForMaximized.enable = false; + titleReplacements = [ + { + type = "regexp"; + originalTitle = "^Brave Web Browser$"; + newTitle = "Brave"; + } + { + type = "regexp"; + originalTitle = ''\\bDolphin\\b''; + newTitle = "File manager"; + } + ]; + windowTitle = { + font = { + bold = false; + fit = "fixedSize"; + size = 13; + }; + hideEmptyTitle = true; + undefinedWindowTitle = ""; + margins = { + bottom = 0; + left = 10; + right = 5; + top = 0; + }; + source = "appName"; + }; + }; + } + "org.kde.plasma.appmenu" + "org.kde.plasma.panelspacer" + { + plasmusicToolbar = { + panelIcon = { + albumCover = { + useAsIcon = true; + radius = 0; + }; + # icon = "view-media-track"; + }; + preferredSource = "spotify"; + showPlaybackControls = true; + songText = { + displayInSeparateLines = false; + maximumWidth = 640; + scrolling = { + behavior = "alwaysScroll"; + speed = 3; + }; + }; + }; + } + ]; + } + ]; shortcuts = { "KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K"; "kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S"; @@ -122,6 +264,24 @@ "systemsettings.desktop"."_launch" = "Tools"; }; configFile = { + "powerdevilrc" = { + "AC/Display" = { + TurnOffDisplayIdleTimeoutSec = lib.mkForce (-1); + TurnOffDisplayWhenIdle = lib.mkForce false; + }; + + "AC/SuspendAndShutdown" = { + AutoSuspendAction = lib.mkForce 0; + AutoSuspendIdleTimeoutSec = lib.mkForce 7200; + LidAction = lib.mkForce 0; + }; + "Battery/SuspendAndShutdown".SleepMode = lib.mkForce 2; + "LowBattery/SuspendAndShutdown".SleepMode = lib.mkForce 3; + + "AC/Performance".PowerProfile = lib.mkForce "performance"; + "Battery/Performance".PowerProfile = lib.mkForce "power-saver"; + "LowBattery/Performance".PowerProfile = lib.mkForce "power-saver"; + }; "baloofilerc"."General"."dbVersion".value = 2; "baloofilerc"."General"."exclude filters".value = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.venv,venv,core-dumps,lost+found"; "baloofilerc"."General"."exclude filters version".value = 8; @@ -265,7 +425,7 @@ "kxkbrc"."Layout"."ResetOldOptions".value = true; "plasma-localerc"."Formats"."LANG".value = "en_US.UTF-8"; "plasmarc"."Wallpapers"."usersWallpapers".value = ""; - "plasmarc"."Theme"."name".value = "breeze-dark"; + # "plasmarc"."Theme"."name".value = "breeze-dark"; "krunnerrc"."General"."FreeFloating".value = true; "kscreenlockerrc"."Greeter.Wallpaper.org.kde.image.General"."Image".value = "/home/tristand/.background"; "kscreenlockerrc"."Greeter.Wallpaper.org.kde.image.General"."PreviewImage".value = "/home/tristand/.background";