diff --git a/home-manager/flake.nix b/home-manager/flake.nix index ed7768f..7266703 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -8,11 +8,18 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + + plasma-manager = { + url = "github:pjones/plasma-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; }; outputs = { nixpkgs, home-manager, + plasma-manager, ... }: let system = "x86_64-linux"; @@ -22,6 +29,9 @@ inherit pkgs; modules = [ ./home.nix + ./plasma/plasma.nix + + plasma-manager.homeManagerModules.plasma-manager ]; }; }; diff --git a/home-manager/plasma/configFile.nix b/home-manager/plasma/configFile.nix new file mode 100644 index 0000000..1225eb8 --- /dev/null +++ b/home-manager/plasma/configFile.nix @@ -0,0 +1,83 @@ +{ + kwinrulesrc = import ./kwinrulesrc.nix; + + "baloofilerc"."Basic Settings"."Indexing-Enabled".value = false; + "kdeglobals"."KDE"."AnimationDurationFactor".value = 0.125; + "kdeglobals"."Shortcuts"."Quit".value = ""; + + kwinrc = { + Desktops = { + # uuidgen -rC6 + "Id_1".value = "1c3962f3-bd6e-42e4-bcaf-9f1dc0a55cab"; + "Id_2".value = "a76e8497-148d-44d8-96a1-026278642d79"; + "Id_3".value = "e2f3dcc2-8009-46b0-af71-745daf70b846"; + "Id_4".value = "4e471453-b165-4c9f-bc56-a2eb9e7f969e"; + "Id_5".value = "645f9867-ff82-48b3-ac5b-cc389bc9fd31"; + "Id_6".value = "95e0579d-b58f-47c7-a47f-5caf30cdf399"; + "Name_1".value = "Web"; + "Name_2".value = "Main"; + "Name_3".value = "Comm"; + "Name_4".value = "Aux1"; + "Name_5".value = "Aux2"; + "Name_6".value = "Music"; + "Number".value = 6; + "Rows".value = 1; + }; + "Windows"."FocusPolicy".value = "FocusFollowsMouse"; + "Windows"."BorderlessMaximizedWindows".value = true; + }; + + kcminputrc = { + # Framework 13 7040 touchpad + "Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad" = { + "TapToClick".value = true; + "NaturalScroll".value = true; + }; + }; + + kxkbrc.Layout = { + "DisplayNames".value = ","; + "LayoutList".value = "us,gr"; + "VariantList".value = ","; + "Options".value = "grp:caps_toggle,grp_led:caps,compose:ralt"; + "ResetOldOptions".value = true; + "SwitchMode".value = "Window"; + "Use".value = true; + }; + "plasmarc"."OSD"."kbdLayoutChangedEnabled".value = false; + + plasma-localerc.Formats = { + "LANG".value = "en_US.UTF-8"; + "LC_MEASUREMENT".value = "el_GR.UTF-8"; + "LC_MONETARY".value = "el_GR.UTF-8"; + "LC_NUMERIC".value = "el_GR.UTF-8"; + "LC_TIME".value = "en_IE.UTF-8"; + }; + + powermanagementprofilesrc = { + "AC/DPMSControl"."idleTime".value = 300; + "AC/DPMSControl"."lockBeforeTurnOff".value = 0; + "AC/DimDisplay"."idleTime".value = 120000; + + "Battery/DPMSControl"."idleTime".value = 300; + "Battery/DPMSControl"."lockBeforeTurnOff".value = 0; + "Battery/DimDisplay"."idleTime".value = 120000; + "Battery/HandleButtonEvents"."lidAction".value = 0; + "Battery/HandleButtonEvents"."powerButtonAction".value = 16; + "Battery/HandleButtonEvents"."powerDownAction".value = 16; + "Battery/HandleButtonEvents"."triggerLidActionWhenExternalMonitorPresent".value = false; + "Battery/SuspendSession"."idleTime".value = 600000; + "Battery/SuspendSession"."suspendThenHibernate".value = false; + "Battery/SuspendSession"."suspendType".value = 1; + + "LowBattery/BrightnessControl"."value".value = 30; + "LowBattery/DPMSControl"."idleTime".value = 120; + "LowBattery/DPMSControl"."lockBeforeTurnOff".value = 0; + "LowBattery/DimDisplay"."idleTime".value = 60000; + "LowBattery/HandleButtonEvents"."lidAction".value = 1; + "LowBattery/HandleButtonEvents"."powerButtonAction".value = 16; + "LowBattery/HandleButtonEvents"."powerDownAction".value = 16; + "LowBattery/HandleButtonEvents"."triggerLidActionWhenExternalMonitorPresent".value = false; + "Migration"."MigratedProfilesToPlasma6".value = "powerdevilrc"; + }; +} diff --git a/home-manager/plasma/kwinrulesrc.nix b/home-manager/plasma/kwinrulesrc.nix new file mode 100644 index 0000000..fe54b86 --- /dev/null +++ b/home-manager/plasma/kwinrulesrc.nix @@ -0,0 +1,52 @@ +{ + # nix run github:pjones/plasma-manager -- -c -a $XDG_CONFIG_HOME/kwinrulesrc + + "General"."count".value = 4; + "General"."rules".value = "9cb7744a-21bd-424a-a7ac-fd801162a1af,dbc65444-ab37-4ce6-9707-663ba303527a,9a0909c3-97a0-4e38-9c34-b1867c34cb38,f28e63b8-f0bb-4a4d-a89e-ff018c27eb17"; + + "9a0909c3-97a0-4e38-9c34-b1867c34cb38" = { + "Description".value = "Firefox"; + "desktops".value = "1c3962f3-bd6e-42e4-bcaf-9f1dc0a55cab"; + "desktopsrule".value = 3; + "maximizehoriz".value = true; + "maximizehorizrule".value = 3; + "maximizevert".value = true; + "maximizevertrule".value = 3; + "wmclass".value = "firefox-devedition"; + "wmclasscomplete".value = true; + "wmclassmatch".value = 1; + }; + + "9cb7744a-21bd-424a-a7ac-fd801162a1af" = { + "Description".value = "Ferdium"; + "desktops".value = "e2f3dcc2-8009-46b0-af71-745daf70b846"; + "desktopsrule".value = 2; + "noborder".value = true; + "noborderrule".value = 2; + "wmclass".value = "ferdium Ferdium"; + "wmclasscomplete".value = true; + "wmclassmatch".value = 1; + }; + + "dbc65444-ab37-4ce6-9707-663ba303527a" = { + "Description".value = "Thunderbird"; + "desktops".value = "e2f3dcc2-8009-46b0-af71-745daf70b846"; + "desktopsrule".value = 2; + "maximizehoriz".value = true; + "maximizehorizrule".value = 3; + "maximizevert".value = true; + "maximizevertrule".value = 3; + "wmclass".value = "Mail thunderbird"; + "wmclasscomplete".value = true; + "wmclassmatch".value = 1; + }; + + "f28e63b8-f0bb-4a4d-a89e-ff018c27eb17" = { + "Description".value = "Spotify-qt"; + "desktops".value = "95e0579d-b58f-47c7-a47f-5caf30cdf399"; + "desktopsrule".value = 2; + "wmclass".value = "spotify-qt spotify-qt"; + "wmclasscomplete".value = true; + "wmclassmatch".value = 1; + }; +} diff --git a/home-manager/plasma/panels.nix b/home-manager/plasma/panels.nix new file mode 100644 index 0000000..41967ee --- /dev/null +++ b/home-manager/plasma/panels.nix @@ -0,0 +1,42 @@ +[ + { + location = "bottom"; + widgets = [ + { + name = "org.kde.plasma.pager"; + config = { + General.displayedText = "Name"; + }; + } + { + name = "org.kde.plasma.panelspacer"; + config = { + General.length = "400"; + Generla.expanding = "false"; + }; + } + "org.kde.plasma.kickoff" + { + name = "org.kde.plasma.icontasks"; + config = { + # Unpin default apps + General.launchers = []; + General.middleClickAction = "None"; + General.groupingStrategy = "0"; + General.minimizeActiveTaskOnClick = "false"; + General.wheelEnabled = "false"; + }; + } + "org.kde.plasma.panelspacer" + "org.kde.plasma.systemtray" + { + name = "org.kde.plasma.digitalclock"; + config = { + Appearance.showSeconds = "always"; + }; + } + ]; + height = 40; + floating = false; + } +] diff --git a/home-manager/plasma/plasma.nix b/home-manager/plasma/plasma.nix new file mode 100644 index 0000000..b2783a7 --- /dev/null +++ b/home-manager/plasma/plasma.nix @@ -0,0 +1,42 @@ +{pkgs, ...}: { + programs.plasma = { + enable = true; + # overrideConfig = true; + + configFile = import ./configFile.nix; + + # Unfortunately I really need to configure the system tray and keyboard + # shortcuts for its applets, so I have disabled the panel configuration + # for now so it doesn't get reset + # https://github.com/pjones/plasma-manager/issues/126 + # panels = import ./panels.nix; + + workspace = { + clickItemTo = "select"; + lookAndFeel = "org.kde.breezedark.desktop"; + wallpaper = "${pkgs.libsForQt5.plasma-workspace-wallpapers}/share/wallpapers/MilkyWay/contents/images/1080x1920.png"; + }; + + shortcuts = { + ksmserver = { + "Lock Session" = ["Meta+L"]; + }; + + kwin = { + "Switch to Desktop 1" = "Ctrl+F1"; + "Switch to Desktop 2" = "Ctrl+F2"; + "Switch to Desktop 3" = "Ctrl+F3"; + "Switch to Desktop 4" = "Ctrl+F4"; + "Switch to Desktop 5" = "Ctrl+F5"; + "Switch to Desktop 6" = "Ctrl+F6"; + "Window Close" = "Meta+Q"; + }; + + org_kde_powerdevil = { + "Sleep" = ["Sleep" "Meta+Shift+S"]; + }; + "services/firefox-devedition.desktop"."_launch" = "Meta+F"; + "services/Alacritty.desktop"."_launch" = "Meta+Return"; + }; + }; +}