diff --git a/dotfiles/config/hypr/hyprland.conf b/dotfiles/config/hypr/hyprland.conf index fd6f9d3d..cc1e2610 100644 --- a/dotfiles/config/hypr/hyprland.conf +++ b/dotfiles/config/hypr/hyprland.conf @@ -7,7 +7,7 @@ # ============================================================================= # Load the plugin before parsing keybinds/layouts that depend on it plugin = /run/current-system/sw/lib/libhy3.so -plugin = /run/current-system/sw/lib/libHyprspace.so +plugin = /run/current-system/sw/lib/libhyprexpo.so # ============================================================================= # MONITORS @@ -239,10 +239,9 @@ bind = $mainMod SHIFT, P, exec, $runMenu bind = $mainMod SHIFT, Return, exec, $terminal # ----------------------------------------------------------------------------- -# Overview (Hyprspace) +# Overview (Hyprexpo) # ----------------------------------------------------------------------------- -bind = $mainMod, TAB, overview:toggle -bind = $mainMod SHIFT, TAB, overview:toggle, all +bind = $mainMod, TAB, hyprexpo:expo, toggle bind = $mainMod, Q, killactive, bind = $mainMod SHIFT, C, killactive, bind = $mainMod SHIFT, Q, exit, @@ -363,6 +362,9 @@ bind = $mainMod, T, togglefloating, binde = $mainMod, comma, resizeactive, -50 0 binde = $mainMod, period, resizeactive, 50 0 +# Equalize window sizes on workspace (hy3) +bind = $mainMod SHIFT, equal, hy3:equalize, workspace + # Kill group - removes the focused window from its group bind = $mainMod, N, hy3:killactive @@ -454,7 +456,7 @@ bind = $mainMod SHIFT, B, exec, ~/.config/hypr/scripts/replace-window.sh bind = $hyper, G, exec, ~/.config/hypr/scripts/gather-class.sh # Focus next window of different class (like XMonad's focusNextClass) -bind = $mainMod, Tab, exec, ~/.config/hypr/scripts/focus-next-class.sh +bind = $mainMod, apostrophe, exec, ~/.config/hypr/scripts/focus-next-class.sh # ----------------------------------------------------------------------------- # MEDIA KEYS diff --git a/nixos/flake.lock b/nixos/flake.lock index cbf56863..5a1a2843 100644 --- a/nixos/flake.lock +++ b/nixos/flake.lock @@ -29,7 +29,7 @@ "railbird-secrets", "nixpkgs" ], - "systems": "systems_12" + "systems": "systems_11" }, "locked": { "lastModified": 1707830867, @@ -405,7 +405,7 @@ }, "flake-utils_10": { "inputs": { - "systems": "systems_13" + "systems": "systems_12" }, "locked": { "lastModified": 1709126324, @@ -423,7 +423,7 @@ }, "flake-utils_11": { "inputs": { - "systems": "systems_15" + "systems": "systems_14" }, "locked": { "lastModified": 1710146030, @@ -441,7 +441,7 @@ }, "flake-utils_12": { "inputs": { - "systems": "systems_16" + "systems": "systems_15" }, "locked": { "lastModified": 1685518550, @@ -459,7 +459,7 @@ }, "flake-utils_13": { "inputs": { - "systems": "systems_17" + "systems": "systems_16" }, "locked": { "lastModified": 1681202837, @@ -515,7 +515,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_5" }, "locked": { "lastModified": 1731533236, @@ -533,7 +533,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_7" + "systems": "systems_6" }, "locked": { "lastModified": 1731533236, @@ -551,7 +551,7 @@ }, "flake-utils_6": { "inputs": { - "systems": "systems_8" + "systems": "systems_7" }, "locked": { "lastModified": 1731533236, @@ -569,7 +569,7 @@ }, "flake-utils_7": { "inputs": { - "systems": "systems_9" + "systems": "systems_8" }, "locked": { "lastModified": 1685518550, @@ -587,7 +587,7 @@ }, "flake-utils_8": { "inputs": { - "systems": "systems_10" + "systems": "systems_9" }, "locked": { "lastModified": 1731533236, @@ -605,7 +605,7 @@ }, "flake-utils_9": { "inputs": { - "systems": "systems_11" + "systems": "systems_10" }, "locked": { "lastModified": 1731533236, @@ -1526,6 +1526,37 @@ "type": "github" } }, + "hyprland-plugins": { + "inputs": { + "hyprland": [ + "hyprland" + ], + "nixpkgs": [ + "hyprland-plugins", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland-plugins", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1767020608, + "narHash": "sha256-BSRT1Uu1ot4WfMfZc6KW0nwpmt2xl9wpUqmH/JoMTfk=", + "owner": "hyprwm", + "repo": "hyprland-plugins", + "rev": "d7b67e8f4ba8ebeee4ce899348fcee6291512169", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "ref": "v0.53.0", + "repo": "hyprland-plugins", + "type": "github" + } + }, "hyprland-protocols": { "inputs": { "nixpkgs": [ @@ -1580,27 +1611,6 @@ "type": "github" } }, - "hyprspace": { - "inputs": { - "hyprland": [ - "hyprland" - ], - "systems": "systems_5" - }, - "locked": { - "lastModified": 1767871242, - "narHash": "sha256-Gge7LY1lrPc2knDnyw8GBQ2sxRPzM7W2T6jNG1HY5bA=", - "owner": "KZDKM", - "repo": "Hyprspace", - "rev": "bcd969224ffeb6266c6618c192949461135eef38", - "type": "github" - }, - "original": { - "owner": "KZDKM", - "repo": "Hyprspace", - "type": "github" - } - }, "hyprtoolkit": { "inputs": { "aquamarine": [ @@ -2505,7 +2515,7 @@ "home-manager": "home-manager_2", "hy3": "hy3", "hyprland": "hyprland", - "hyprspace": "hyprspace", + "hyprland-plugins": "hyprland-plugins", "imalison-taffybar": "imalison-taffybar", "nix": "nix", "nixified-ai": "nixified-ai", @@ -2517,7 +2527,7 @@ "org-agenda-api": "org-agenda-api", "railbird-secrets": "railbird-secrets", "status-notifier-item": "status-notifier-item_2", - "systems": "systems_14", + "systems": "systems_13", "taffybar": "taffybar_2", "vscode-server": "vscode-server", "xmonad": "xmonad_3", @@ -2757,21 +2767,6 @@ "type": "github" } }, - "systems_17": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "systems_2": { "locked": { "lastModified": 1681028828, @@ -2819,16 +2814,16 @@ }, "systems_5": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, diff --git a/nixos/flake.nix b/nixos/flake.nix index 67545f95..ece540f0 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -42,8 +42,8 @@ inputs.hyprland.follows = "hyprland"; }; - hyprspace = { - url = "github:KZDKM/Hyprspace"; + hyprland-plugins = { + url = "github:hyprwm/hyprland-plugins?ref=v0.53.0"; inputs.hyprland.follows = "hyprland"; }; @@ -158,7 +158,7 @@ imalison-taffybar, hyprland, hy3, - hyprspace, + hyprland-plugins, org-agenda-api, flake-utils, ... diff --git a/nixos/hyprland.nix b/nixos/hyprland.nix index 47f9c221..ef05072c 100644 --- a/nixos/hyprland.nix +++ b/nixos/hyprland.nix @@ -29,8 +29,9 @@ makeEnable config "myModules.hyprland" true { After = [ "hyprland-session.target" ]; }; Service = { + ExecStartPre = "${pkgs.bash}/bin/bash -lc 'uid=$(id -u); for i in $(seq 1 50); do runtime_dir=\"$XDG_RUNTIME_DIR\"; if [ -z \"$runtime_dir\" ]; then runtime_dir=\"/run/user/$uid\"; fi; if [ -n \"$WAYLAND_DISPLAY\" ] && [ -S \"$runtime_dir/$WAYLAND_DISPLAY\" ]; then exit 0; fi; sleep 0.1; done; exit 1'"; ExecStart = "${pkgs.waybar}/bin/waybar"; - Restart = "on-failure"; + Restart = "always"; RestartSec = 1; }; Install = { @@ -59,8 +60,8 @@ makeEnable config "myModules.hyprland" true { # hy3 plugin from flake (properly built against matching Hyprland) inputs.hy3.packages.${pkgs.stdenv.hostPlatform.system}.hy3 - # Hyprspace plugin from flake (workspace overview) - inputs.hyprspace.packages.${pkgs.stdenv.hostPlatform.system}.Hyprspace + # Hyprexpo plugin from hyprland-plugins (workspace overview) + inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo # For scripts jq