diff --git a/configs/dms-desktop/settings.json b/configs/dms-desktop/settings.json index 71aadcf..d7a375a 100644 --- a/configs/dms-desktop/settings.json +++ b/configs/dms-desktop/settings.json @@ -39,6 +39,11 @@ "controlCenterShowNetworkIcon": true, "controlCenterShowBluetoothIcon": true, "controlCenterShowAudioIcon": true, + "controlCenterShowVpnIcon": false, + "controlCenterShowBrightnessIcon": false, + "controlCenterShowMicIcon": false, + "controlCenterShowBatteryIcon": false, + "controlCenterShowPrinterIcon": false, "showPrivacyButton": true, "privacyShowMicIcon": false, "privacyShowCameraIcon": false, @@ -81,6 +86,7 @@ "showWorkspaceApps": true, "maxWorkspaceIcons": 3, "workspacesPerMonitor": false, + "showOccupiedWorkspacesOnly": false, "dwlShowAllTags": false, "workspaceNameIcons": {}, "waveProgressEnabled": true, @@ -138,6 +144,8 @@ "lockBeforeSuspend": true, "preventIdleForMedia": true, "loginctlLockIntegration": true, + "fadeToLockEnabled": false, + "fadeToLockGracePeriod": 5, "launchPrefix": "", "brightnessDevicePins": {}, "wifiNetworkPins": {}, @@ -147,7 +155,7 @@ "gtkThemingEnabled": false, "qtThemingEnabled": false, "syncModeWithPortal": true, - "terminalsAlwaysDark": false, + "terminalsAlwaysDark": true, "showDock": false, "dockAutoHide": false, "dockGroupByApp": false, @@ -158,6 +166,10 @@ "dockMargin": 0, "dockIconSize": 40, "dockIndicatorStyle": "circle", + "dockBorderEnabled": false, + "dockBorderColor": "surfaceText", + "dockBorderOpacity": 1, + "dockBorderThickness": 1, "notificationOverlayEnabled": false, "modalDarkenBackground": true, "lockScreenShowPowerActions": true, @@ -178,6 +190,7 @@ "osdCapsLockEnabled": true, "osdPowerProfileEnabled": false, "powerActionConfirm": true, + "powerActionHoldDuration": 1, "powerMenuActions": [ "reboot", "logout", diff --git a/configs/hypr/hyprland.conf b/configs/hypr/hyprland.conf index 50f2e02..2825cc5 100644 --- a/configs/hypr/hyprland.conf +++ b/configs/hypr/hyprland.conf @@ -1,4 +1,9 @@ # Startup + +# Plugin loading +exec-once = hyprctl plugin load "$HYPR_PLUGIN_DIR/lib/libhyprexpo.so" +exec-once = hyprctl plugin load "$HYPR_PLUGIN_DIR/lib/libhyprscrolling.so" + exec-once= bash -c "wl-paste --watch cliphist store &" exec-once= fcitx5 -d exec-once= emacs --daemon @@ -121,6 +126,21 @@ misc { } +plugin { + hyprexpo { + columns = 3 + gap_size = 5 + bg_col = $background + workspace_method = center current + gesture_distance = 300 + } + + hyprscrolling { + column_width = 0.7 + fullscreen_on_one_column = true + } +} + # Window Rules # Rule :: Window @@ -146,7 +166,7 @@ $ws = workspace windowrule = match:class ^(Emacs|emacs)$, opacity 0.96 0.90 windowrule = match:class ^(.*desktop-portal.*)$, float on - windowrule = match:class ^(org.quickshell)$, match:title Settings, float on + windowrule = match:class ^(org.quickshell)$, float on windowrule = match:class ^(polkit.*agent.*)$, float on windowrule = match:class ^(praat)$, float on windowrule = match:class ^(network)$, float on @@ -232,15 +252,16 @@ $mainCtrlShift = $mainCtrl SHIFT bind = $mainShift, N, exec, dms ipc call night toggle bind = $mainCtrl, B, exec, dms ipc call bar toggle + bind = $mainMod, G, hyprexpo:expo, toggle bind = $mainShift, P, pseudo, bind = $mainMod, C, killactive, bind = $mainMod, F, togglefloating, bind = $mainShift, F, fullscreen bind = $mainCtrl, S, togglesplit, - bind = $mainMod, right, resizeactive, 10 0 - bind = $mainMod, left, resizeactive, -10 0 - bind = $mainMod, up, resizeactive, 0 -10 - bind = $mainMod, down, resizeactive, 0 10 + binde = $mainMod, right, resizeactive, 10 0 + binde = $mainMod, left, resizeactive, -10 0 + binde = $mainMod, up, resizeactive, 0 -10 + binde = $mainMod, down, resizeactive, 0 10 bind = $mainCtrl, L, exec, $lock bind = $mainCtrl, Q, exec, $lock bind = $mainMod, F4, exit, diff --git a/flake.lock b/flake.lock index 8fa2292..cf406d6 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1762356719, - "narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=", + "lastModified": 1763922789, + "narHash": "sha256-XnkWjCpeXfip9tqYdL0b0zzBDjq+dgdISvEdSVGdVyA=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7", + "rev": "a20a0e67a33b6848378a91b871b89588d3a12573", "type": "github" }, "original": { @@ -71,11 +71,11 @@ ] }, "locked": { - "lastModified": 1764173958, - "narHash": "sha256-TX083ovrIAb0D82Q638CWgDPvDLf85whKZHFLWg8Id8=", + "lastModified": 1764650935, + "narHash": "sha256-WGNMbRgdVKaqhe2T/rP3b0GMre0IZuiRfNALiaKPznA=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "039c98b9e350cfc0d0fc791e7356a59088549c38", + "rev": "f96a2e2325a364bb347054cd2ac2de145bc417dd", "type": "github" }, "original": { @@ -108,11 +108,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -208,11 +208,11 @@ ] }, "locked": { - "lastModified": 1762462052, - "narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=", + "lastModified": 1763733840, + "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162", + "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", "type": "github" }, "original": { @@ -266,11 +266,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1763912895, - "narHash": "sha256-tTdCVeROhYTwV510tygS5AMutJGz5imM++P4+cXAy2w=", + "lastModified": 1764607679, + "narHash": "sha256-1Bsem6lhJWMQmkLIml5oKOL+z1dYMewZ6ql0K35Y3TA=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "2b0fd417d32278159d0ca1d23fb997588c37995b", + "rev": "f82a8630d7a51dab4cc70924f500bf70e723db12", "type": "github" }, "original": { @@ -312,11 +312,11 @@ ] }, "locked": { - "lastModified": 1762755186, - "narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=", + "lastModified": 1763727565, + "narHash": "sha256-vRff/2R1U1jzPBy4OODqh2kfUzmizW/nfV2ROzTDIKo=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "66356e20a8ed348aa49c1b9ceace786e224225b3", + "rev": "7724d3a12a0453e7aae05f2ef39474219f05a4b4", "type": "github" }, "original": { @@ -342,11 +342,11 @@ ] }, "locked": { - "lastModified": 1760659005, - "narHash": "sha256-wyS6tXYJuzbwckOeaCoRtT4qIG2UZ0YvSZx7EBNjTV0=", + "lastModified": 1764636589, + "narHash": "sha256-8j0QzbFF3QindJZ0DVEwLA1Ty1/4t4hcU5zHGQ2meI8=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "a5a6f93d72d5fb37e78b98c756cfd8b340e71a19", + "rev": "8f796f7cec39e7a9aa2bb65d28006025e1bc14ae", "type": "github" }, "original": { @@ -422,11 +422,11 @@ ] }, "locked": { - "lastModified": 1763254292, - "narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=", + "lastModified": 1763819661, + "narHash": "sha256-0jLarTR/BLWdGlboM86bPVP2zKJNI2jvo3JietnDkOM=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b", + "rev": "a318deec0c12409ec39c68d2be8096b636dc2a5c", "type": "github" }, "original": { @@ -578,11 +578,11 @@ ] }, "locked": { - "lastModified": 1762463729, - "narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=", + "lastModified": 1763503177, + "narHash": "sha256-VPoiswJBBmTLVuNncvT/8FpFR+sYcAi/LgP/zTZ+5rA=", "owner": "hyprwm", "repo": "hyprtoolkit", - "rev": "88483bdee5329ec985f0c8f834c519cd18cfe532", + "rev": "f4e1e12755567ecf39090203b8f43eace8279630", "type": "github" }, "original": { @@ -642,11 +642,11 @@ ] }, "locked": { - "lastModified": 1763323331, - "narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=", + "lastModified": 1763996058, + "narHash": "sha256-DsqzFZvrEV+aDmavjaD4/bk5qxeZwhGxPWBQdpFyM9Y=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "0c6411851cc779d551edc89b83966696201611aa", + "rev": "0168583075baffa083032ed13a8bea8ea12f281a", "type": "github" }, "original": { @@ -746,11 +746,11 @@ ] }, "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", + "lastModified": 1763640274, + "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", + "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", "type": "github" }, "original": { @@ -815,11 +815,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1763283776, - "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", + "lastModified": 1763966396, + "narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", "type": "github" }, "original": { @@ -887,11 +887,11 @@ ] }, "locked": { - "lastModified": 1763319842, - "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", + "lastModified": 1763988335, + "narHash": "sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh+M4Qc=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", + "rev": "50b9238891e388c9fdc6a5c49e49c42533a1b5ce", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b129de4..a9d5b3d 100644 --- a/flake.nix +++ b/flake.nix @@ -45,9 +45,19 @@ hyprpwcenter = inputs.hyprpwcenter.packages.${system}.hyprpwcenter; xdg-desktop-portal-hyprland = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland; quickshell = inputs.quickshell.packages.${system}.quickshell; + hyprPluginPkgs = inputs.hyprland-plugins.packages.${system}; }) ]; }; + + hypr-plugin-dir = pkgs.symlinkJoin { + name = "hyprland-plugins"; + paths = with pkgs.hyprPluginPkgs; [ + hyprexpo + hyprscrolling + ]; + }; + defaultCfg = rec { username = "liamm"; homeDirectory = "/home/${username}"; @@ -58,7 +68,7 @@ { nixosConfigurations = { darp8 = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; cfg = defaultCfg; }; + specialArgs = { inherit inputs; cfg = defaultCfg; hypr-plugin-dir = hypr-plugin-dir; }; modules = [ hyprland.nixosModules.default ./hosts/darp8/configuration.nix @@ -66,7 +76,7 @@ ]; }; desktop = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; cfg = defaultCfg; }; + specialArgs = { inherit inputs; cfg = defaultCfg; hypr-plugin-dir = hypr-plugin-dir; }; modules = [ hyprland.nixosModules.default ./hosts/desktop/configuration.nix diff --git a/hosts/graphical/configuration.nix b/hosts/graphical/configuration.nix index 30850ea..ea938b7 100644 --- a/hosts/graphical/configuration.nix +++ b/hosts/graphical/configuration.nix @@ -1,4 +1,4 @@ -{ cfg, config, lib, pkgs, inputs, ... }: +{ cfg, config, lib, pkgs, inputs, hypr-plugin-dir, ... }: { boot = { loader.systemd-boot.enable = true; @@ -195,6 +195,10 @@ xdg-user-dirs zip ]; + + environment.sessionVariables = { + HYPR_PLUGIN_DIR = hypr-plugin-dir; + }; zramSwap = { enable = true;