diff --git a/README.md b/README.md index 69096ac..c753983 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,17 @@ nix flake update home-manager switch --flake . ``` + +## Plasma + +Add GUI settings to plasma.nix + +```bash +nix run github:pjones/plasma-manager | rg -v khotkeysrc | rg -v "\[ \]" > plasma.new.nix +diff plasma.nix plasma.new.nix +# copy over as needed +``` + ## 🙏 Made possible by - NixOS: https://nixos.org/ diff --git a/flake.lock b/flake.lock index f54e9e3..814e754 100644 --- a/flake.lock +++ b/flake.lock @@ -271,6 +271,29 @@ "type": "github" } }, + "plasma-manager": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1690827734, + "narHash": "sha256-zcNLTSKGZ5zcx0RQkDKH4dN2MBx+KTfrYN7HfmD0N7c=", + "owner": "pjones", + "repo": "plasma-manager", + "rev": "b6241a2f7c625d0b0bee8e203d78232d0a6535e9", + "type": "github" + }, + "original": { + "owner": "pjones", + "repo": "plasma-manager", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -308,6 +331,7 @@ "nix-wallpaper": "nix-wallpaper", "nixpkgs": "nixpkgs", "nur": "nur", + "plasma-manager": "plasma-manager", "tuxedo-nixos": "tuxedo-nixos" } }, diff --git a/flake.nix b/flake.nix index f9450aa..abbb6f1 100644 --- a/flake.nix +++ b/flake.nix @@ -41,6 +41,11 @@ url = "github:Mic92/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; + plasma-manager = { + url = "github:pjones/plasma-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; }; outputs = inputs: let @@ -63,14 +68,12 @@ homeConfigurations = { "tristand" = inputs.home-manager.lib.homeManagerConfiguration { inherit pkgs; + inherit inputs; modules = [ ./home.nix - inputs.nix-index-database.hmModules.nix-index - inputs.nur.hmModules.nur { _module.args.customPkgs = customPkgs; - _module.args.nix-wallpaper = inputs.nix-wallpaper; } ]; }; diff --git a/home.nix b/home.nix index cd74cf1..5352fe9 100644 --- a/home.nix +++ b/home.nix @@ -2,15 +2,22 @@ pkgs, customPkgs, config, - nix-wallpaper, + inputs, ... }: let - wallpaper = nix-wallpaper.packages.${pkgs.system}.default.override { + wallpaper = inputs.nix-wallpaper.packages.${pkgs.system}.default.override { logoSize = 24; preset = "gruvbox-dark-rainbow"; }; wallpaperPath = "${wallpaper}/share/wallpapers/nixos-wallpaper.png"; in { + imports = [ + inputs.plasma-manager.homeManagerModules.plasma-manager + inputs.nix-index-database.hmModules.nix-index + inputs.nur.hmModules.nur + ./plasma.nix + ]; + dconf.settings = { "org/virt-manager/virt-manager/connections" = { autoconnect = ["qemu:///system"]; diff --git a/plasma.nix b/plasma.nix new file mode 100644 index 0000000..608f7d8 --- /dev/null +++ b/plasma.nix @@ -0,0 +1,236 @@ +{ + programs.plasma = { + enable = true; + shortcuts = { + "KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K"; + "kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S"; + "kcm_touchpad"."Disable Touchpad" = "Touchpad Off"; + "kcm_touchpad"."Enable Touchpad" = "Touchpad On"; + "kcm_touchpad"."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"]; + "kded5"."Show System Activity" = "Ctrl+Esc"; + "kded5"."display" = ["Display" "Meta+P"]; + "kmix"."decrease_microphone_volume" = "Microphone Volume Down"; + "kmix"."decrease_volume" = "Volume Down"; + "kmix"."increase_microphone_volume" = "Microphone Volume Up"; + "kmix"."increase_volume" = "Volume Up"; + "kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute"]; + "kmix"."mute" = "Volume Mute"; + "ksmserver"."Lock Session" = ["Meta+L" "Screensaver"]; + "ksmserver"."Log Out" = "Ctrl+Alt+Del"; + "kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A"; + "kwin"."ClearLastMouseMark" = "Meta+Shift+F12"; + "kwin"."ClearMouseMarks" = "Meta+Shift+F11"; + "kwin"."Edit Tiles" = "Meta+T"; + "kwin"."Expose" = "Ctrl+F9"; + "kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C)"]; + "kwin"."ExposeClass" = "Ctrl+F7"; + "kwin"."Invert" = "Meta+Ctrl+I"; + "kwin"."InvertWindow" = "Meta+Ctrl+U"; + "kwin"."Kill Window" = "Meta+Ctrl+Esc"; + "kwin"."MoveMouseToCenter" = "Meta+F6"; + "kwin"."MoveMouseToFocus" = "Meta+F5"; + "kwin"."Overview" = "Meta+W"; + "kwin"."Show Desktop" = "Meta+D"; + "kwin"."ShowDesktopGrid" = "Meta+F8"; + "kwin"."Suspend Compositing" = "Alt+Shift+F12"; + "kwin"."Switch Window Down" = "Meta+Alt+Down"; + "kwin"."Switch Window Left" = "Meta+Alt+Left"; + "kwin"."Switch Window Right" = "Meta+Alt+Right"; + "kwin"."Switch Window Up" = "Meta+Alt+Up"; + "kwin"."Switch to Desktop 1" = "Ctrl+F1"; + "kwin"."Switch to Desktop 2" = "Ctrl+F2"; + "kwin"."Switch to Desktop 3" = "Ctrl+F3"; + "kwin"."Switch to Desktop 4" = "Ctrl+F4"; + "kwin"."ToggleCurrentThumbnail" = "Meta+Ctrl+T"; + "kwin"."ToggleMouseClick" = "Meta+*"; + "kwin"."Walk Through Windows" = "Alt+Tab"; + "kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Backtab"; + "kwin"."Walk Through Windows of Current Application" = "Alt+`"; + "kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~"; + "kwin"."Window Close" = "Alt+F4"; + "kwin"."Window Maximize" = "Meta+PgUp"; + "kwin"."Window Minimize" = "Meta+PgDown"; + "kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down"; + "kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up"; + "kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left"; + "kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right"; + "kwin"."Window Operations Menu" = "Alt+F3"; + "kwin"."Window Quick Tile Bottom" = "Meta+Down"; + "kwin"."Window Quick Tile Left" = "Meta+Left"; + "kwin"."Window Quick Tile Right" = "Meta+Right"; + "kwin"."Window Quick Tile Top" = "Meta+Up"; + "kwin"."Window to Next Screen" = "Meta+Shift+Right"; + "kwin"."Window to Previous Screen" = "Meta+Shift+Left"; + "kwin"."view_actual_size" = "Meta+0"; + "kwin"."view_zoom_in" = ["Meta++" "Meta+="]; + "kwin"."view_zoom_out" = "Meta+-"; + "mediacontrol"."nextmedia" = "Media Next"; + "mediacontrol"."pausemedia" = "Media Pause"; + "mediacontrol"."playpausemedia" = "Media Play"; + "mediacontrol"."previousmedia" = "Media Previous"; + "mediacontrol"."stopmedia" = "Media Stop"; + "org.kde.dolphin.desktop"."_launch" = "Meta+E"; + "org.kde.konsole.desktop"."_launch" = "Ctrl+Alt+T"; + "org.kde.krunner.desktop"."RunClipboard" = "Alt+Shift+F2"; + "org.kde.krunner.desktop"."_launch" = ["Alt+Space" "Alt+F2" "Search"]; + "org.kde.plasma.emojier.desktop"."_launch" = ["Meta+." "Meta+Ctrl+Alt+Shift+Space"]; + "org.kde.spectacle.desktop"."ActiveWindowScreenShot" = "Meta+Print"; + "org.kde.spectacle.desktop"."FullScreenScreenShot" = "Shift+Print"; + "org.kde.spectacle.desktop"."RectangularRegionScreenShot" = "Meta+Shift+Print"; + "org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = "Meta+Ctrl+Print"; + "org.kde.spectacle.desktop"."_launch" = "Print"; + "org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down"; + "org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down"; + "org_kde_powerdevil"."Hibernate" = "Hibernate"; + "org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up"; + "org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up"; + "org_kde_powerdevil"."PowerDown" = "Power Down"; + "org_kde_powerdevil"."PowerOff" = "Power Off"; + "org_kde_powerdevil"."Sleep" = "Sleep"; + "org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off"; + "plasmashell"."activate task manager entry 1" = "Meta+1"; + "plasmashell"."activate task manager entry 2" = "Meta+2"; + "plasmashell"."activate task manager entry 3" = "Meta+3"; + "plasmashell"."activate task manager entry 4" = "Meta+4"; + "plasmashell"."activate task manager entry 5" = "Meta+5"; + "plasmashell"."activate task manager entry 6" = "Meta+6"; + "plasmashell"."activate task manager entry 7" = "Meta+7"; + "plasmashell"."activate task manager entry 8" = "Meta+8"; + "plasmashell"."activate task manager entry 9" = "Meta+9"; + "plasmashell"."clipboard_action" = "Meta+Ctrl+X"; + "plasmashell"."cycle-panels" = "Meta+Alt+P"; + "plasmashell"."manage activities" = "Meta+Q"; + "plasmashell"."next activity" = "Meta+Tab"; + "plasmashell"."previous activity" = "Meta+Shift+Tab"; + "plasmashell"."repeat_action" = "Meta+Ctrl+R"; + "plasmashell"."show dashboard" = "Ctrl+F12"; + "plasmashell"."show-on-mouse-pos" = "Meta+V"; + "plasmashell"."stop current activity" = "Meta+S"; + "systemsettings.desktop"."_launch" = "Tools"; + }; + configFile = { + "baloofilerc"."General"."dbVersion" = 2; + "baloofilerc"."General"."exclude filters" = "*~,*.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" = 8; + "dolphinrc"."KFileDialog Settings"."Places Icons Auto-resize" = false; + "dolphinrc"."KFileDialog Settings"."Places Icons Static Size" = 22; + "kactivitymanagerdrc"."activities"."03741afe-0c0e-413a-9f8a-09600a7684e2" = "Default"; + "kactivitymanagerdrc"."main"."currentActivity" = "03741afe-0c0e-413a-9f8a-09600a7684e2"; + "kcminputrc"."Libinput.2362.597.UNIW0001:00 093A:0255 Touchpad"."ClickMethod" = 2; + "kcminputrc"."Libinput.2362.597.UNIW0001:00 093A:0255 Touchpad"."Enabled" = true; + "kcminputrc"."Libinput.2362.597.UNIW0001:00 093A:0255 Touchpad"."TapToClick" = true; + "kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat" = false; + "kcminputrc"."Tmp"."update_info" = "delete_cursor_old_default_size.upd:DeleteCursorOldDefaultSize"; + "kded5rc"."Module-appmenu"."autoload" = true; + "kded5rc"."Module-baloosearchmodule"."autoload" = true; + "kded5rc"."Module-bluedevil"."autoload" = true; + "kded5rc"."Module-browserintegrationreminder"."autoload" = false; + "kded5rc"."Module-colorcorrectlocationupdater"."autoload" = true; + "kded5rc"."Module-device_automounter"."autoload" = false; + "kded5rc"."Module-freespacenotifier"."autoload" = true; + "kded5rc"."Module-gtkconfig"."autoload" = true; + "kded5rc"."Module-inotify"."autoload" = true; + "kded5rc"."Module-kded_touchpad"."autoload" = true; + "kded5rc"."Module-keyboard"."autoload" = true; + "kded5rc"."Module-khotkeys"."autoload" = true; + "kded5rc"."Module-kscreen"."autoload" = true; + "kded5rc"."Module-ksysguard"."autoload" = true; + "kded5rc"."Module-ktimezoned"."autoload" = true; + "kded5rc"."Module-networkmanagement"."autoload" = true; + "kded5rc"."Module-networkstatus"."autoload" = true; + "kded5rc"."Module-plasma_accentcolor_service"."autoload" = true; + "kded5rc"."Module-printmanager"."autoload" = true; + "kded5rc"."Module-proxyscout"."autoload" = true; + "kded5rc"."Module-remotenotifier"."autoload" = true; + "kded5rc"."Module-smbwatcher"."autoload" = true; + "kded5rc"."Module-statusnotifierwatcher"."autoload" = true; + "kded5rc"."PlasmaBrowserIntegration"."shownCount" = 4; + "kdeglobals"."General"."AccentColor" = "233,100,58"; + "kdeglobals"."General"."BrowserApplication" = "firefox.desktop"; + "kdeglobals"."General"."LastUsedCustomAccentColor" = "233,100,58"; + "kdeglobals"."General"."XftHintStyle" = "hintmedium"; + "kdeglobals"."General"."XftSubPixel" = "rgb"; + "kdeglobals"."General"."fixed" = "FiraCode Nerd Font,10,-1,5,50,0,0,0,0,0"; + "kdeglobals"."KDE"."AnimationDurationFactor" = 0.25; + "kdeglobals"."KDE"."widgetStyle" = "Breeze"; + "kdeglobals"."KFileDialog Settings"."Allow Expansion" = false; + "kdeglobals"."KFileDialog Settings"."Automatically select filename extension" = true; + "kdeglobals"."KFileDialog Settings"."Breadcrumb Navigation" = false; + "kdeglobals"."KFileDialog Settings"."Decoration position" = 2; + "kdeglobals"."KFileDialog Settings"."LocationCombo Completionmode" = 5; + "kdeglobals"."KFileDialog Settings"."PathCombo Completionmode" = 5; + "kdeglobals"."KFileDialog Settings"."Show Bookmarks" = false; + "kdeglobals"."KFileDialog Settings"."Show Full Path" = false; + "kdeglobals"."KFileDialog Settings"."Show Inline Previews" = true; + "kdeglobals"."KFileDialog Settings"."Show Preview" = false; + "kdeglobals"."KFileDialog Settings"."Show Speedbar" = true; + "kdeglobals"."KFileDialog Settings"."Show hidden files" = true; + "kdeglobals"."KFileDialog Settings"."Sort by" = "Name"; + "kdeglobals"."KFileDialog Settings"."Sort directories first" = true; + "kdeglobals"."KFileDialog Settings"."Sort hidden files last" = false; + "kdeglobals"."KFileDialog Settings"."Sort reversed" = false; + "kdeglobals"."KFileDialog Settings"."Speedbar Width" = 138; + "kdeglobals"."KFileDialog Settings"."View Style" = "DetailTree"; + "kdeglobals"."KShortcutsDialog Settings"."Dialog Size" = "600,480"; + "kdeglobals"."WM"."activeBackground" = "39,39,39"; + "kdeglobals"."WM"."activeBlend" = "235,219,178"; + "kdeglobals"."WM"."activeForeground" = "235,219,178"; + "kdeglobals"."WM"."inactiveBackground" = "40,40,40"; + "kdeglobals"."WM"."inactiveBlend" = "60,56,54"; + "kdeglobals"."WM"."inactiveForeground" = "204,190,155"; + "kglobalshortcutsrc"."ActivityManager"."_k_friendly_name" = "Activity Manager"; + "kglobalshortcutsrc"."KDE Keyboard Layout Switcher"."_k_friendly_name" = "Keyboard Layout Switcher"; + "kglobalshortcutsrc"."kaccess"."_k_friendly_name" = "Accessibility"; + "kglobalshortcutsrc"."kcm_touchpad"."_k_friendly_name" = "Touchpad"; + "kglobalshortcutsrc"."kded5"."_k_friendly_name" = "KDE Daemon"; + "kglobalshortcutsrc"."khotkeys"."_k_friendly_name" = "Custom Shortcuts Service"; + "kglobalshortcutsrc"."kmix"."_k_friendly_name" = "Audio Volume"; + "kglobalshortcutsrc"."ksmserver"."_k_friendly_name" = "Session Management"; + "kglobalshortcutsrc"."kwin"."_k_friendly_name" = "KWin"; + "kglobalshortcutsrc"."mediacontrol"."_k_friendly_name" = "Media Controller"; + "kglobalshortcutsrc"."org.kde.dolphin.desktop"."_k_friendly_name" = "Dolphin"; + "kglobalshortcutsrc"."org.kde.konsole.desktop"."_k_friendly_name" = "Konsole"; + "kglobalshortcutsrc"."org.kde.krunner.desktop"."_k_friendly_name" = "KRunner"; + "kglobalshortcutsrc"."org.kde.plasma.emojier.desktop"."_k_friendly_name" = "Emoji Selector"; + "kglobalshortcutsrc"."org.kde.spectacle.desktop"."_k_friendly_name" = "Spectacle"; + "kglobalshortcutsrc"."org_kde_powerdevil"."_k_friendly_name" = "Power Management"; + "kglobalshortcutsrc"."plasmashell"."_k_friendly_name" = "Activity switching"; + "kglobalshortcutsrc"."systemsettings.desktop"."_k_friendly_name" = "System Settings"; + "kiorc"."Confirmations"."ConfirmDelete" = false; + "kiorc"."Confirmations"."ConfirmEmptyTrash" = false; + "ksplashrc"."KSplash"."Engine" = "none"; + "kwalletrc"."Auto Allow"."kdewallet" = "kded5,kiod5,kwalletmanager5,Brave,Nextcloud"; + "kwalletrc"."Wallet"."Close When Idle" = false; + "kwalletrc"."Wallet"."Close on Screensaver" = false; + "kwalletrc"."Wallet"."Default Wallet" = "kdewallet"; + "kwalletrc"."Wallet"."Enabled" = true; + "kwalletrc"."Wallet"."First Use" = false; + "kwalletrc"."Wallet"."Idle Timeout" = 10; + "kwalletrc"."Wallet"."Launch Manager" = true; + "kwalletrc"."Wallet"."Leave Manager Open" = false; + "kwalletrc"."Wallet"."Leave Open" = true; + "kwalletrc"."Wallet"."Prompt on Open" = true; + "kwalletrc"."Wallet"."Use One Wallet" = true; + "kwalletrc"."org.freedesktop.secrets"."apiEnabled" = true; + "kwinrc"."Compositing"."LatencyPolicy" = "High"; + "kwinrc"."Desktops"."Id_1" = "6b86c814-0a63-4a66-83aa-8f923109b8dc"; + "kwinrc"."Desktops"."Number" = 1; + "kwinrc"."Desktops"."Rows" = 1; + "kwinrc"."Plugins"."kwin4_effect_fadeEnabled" = true; + "kwinrc"."Plugins"."kwin4_effect_scaleEnabled" = false; + "kwinrc"."Plugins"."kwin4_effect_squashEnabled" = false; + "kwinrc"."Plugins"."magiclampEnabled" = true; + "kwinrc"."Plugins"."mouseclickEnabled" = true; + "kwinrc"."Plugins"."sheetEnabled" = true; + "kwinrc"."Plugins"."wobblywindowsEnabled" = true; + "kwinrc"."Tiling"."padding" = 4; + "kwinrc"."Tiling.dd29d4b5-4a19-5d84-85bd-6613fc295b35"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}"; + "kwinrc"."Tiling.fe00a83e-01b8-5971-9f13-c03d1702129e"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}"; + "kwinrc"."Xwayland"."Scale" = 1; + "kxkbrc"."Layout"."Options" = "caps:ctrl_modifier"; + "kxkbrc"."Layout"."ResetOldOptions" = true; + "plasma-localerc"."Formats"."LANG" = "en_US.UTF-8"; + "plasmarc"."Wallpapers"."usersWallpapers" = ""; + }; + }; +} diff --git a/users.nix b/users.nix index a445ba1..41ec124 100644 --- a/users.nix +++ b/users.nix @@ -18,6 +18,6 @@ inherit pkgs; inherit config; inherit customPkgs; - nix-wallpaper = inputs.nix-wallpaper; + inherit inputs; }; }