diff --git a/modules/wms/wayland/hyprland/binds.nix b/modules/wms/wayland/hyprland/binds.nix index 0bcc916..5c99d3a 100644 --- a/modules/wms/wayland/hyprland/binds.nix +++ b/modules/wms/wayland/hyprland/binds.nix @@ -17,7 +17,7 @@ in { mod = a: b: a - (b * (a / b)); key = toString (mod i 10); workspace = toString i; - in "$mainMod, ${key}, split-workspace, ${workspace}" + in "$mainMod, ${key}, split:workspace, ${workspace}" ) (genList (i: i + 1) 10) # split-movetoworkspacesilent ++ map ( @@ -25,7 +25,7 @@ in { mod = a: b: a - (b * (a / b)); key = toString (mod i 10); workspace = toString i; - in "$mainMod SHIFT, ${key}, split-movetoworkspacesilent, ${workspace}" + in "$mainMod SHIFT, ${key}, split:movetoworkspacesilent, ${workspace}" ) (genList (i: i + 1) 10) ++ [ "$mainMod, RETURN, exec, ${pkgs.foot}/bin/foot" @@ -35,10 +35,24 @@ in { "$mainMod, SPACE, togglefloating, active" # Move Windows - "$mainMod SHIFT, H, movewindow, l" - "$mainMod SHIFT, J, movewindow, d" - "$mainMod SHIFT, K, movewindow, u" - "$mainMod SHIFT, L, movewindow, r" + "$mainMod SHIFT, H, hy3:movewindow, l" + "$mainMod SHIFT, J, hy3:movewindow, d" + "$mainMod SHIFT, K, hy3:movewindow, u" + "$mainMod SHIFT, L, hy3:movewindow, r" + + "$mainMod CTRL, H, movewindow, mon:l" + "$mainMod CTRL, J, movefocus, r" + "$mainMod CTRL, K, movefocus, l" + "$mainMod CTRL, L, movewindow, mon:r" + + # Hy3 fun + "$mainMod, C, hy3:makegroup, h" + "$mainMod, Y, hy3:makegroup, v" + "$mainMod, B, hy3:makegroup, tab" + + + "$mainMod, A, hy3:movefocus, raise" + "$mainMod SHIFT, A, hy3:movefocus, lower" # Screenshotting "$mainMod, S, exec, ${pkgs.grimblast}/bin/grimblast copy area" # only copy @@ -61,10 +75,10 @@ in { binde = [ # window focus - "$mainMod, H, movefocus, l" - "$mainMod, J, movefocus, d" - "$mainMod, K, movefocus, u" - "$mainMod, L, movefocus, r" + "$mainMod, H, hy3:movefocus, l" + "$mainMod, J, hy3:movefocus, d" + "$mainMod, K, hy3:movefocus, u" + "$mainMod, L, hy3:movefocus, r" ]; # Media controls @@ -101,6 +115,10 @@ in { "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; + bindn = [ + ", mouse_down, hy3:focustab, l, require_hovered" + ", mouse_up, hy3:focustab, r, require_hovered" + ]; # Some more movement-related settings binds = { diff --git a/modules/wms/wayland/hyprland/exec.nix b/modules/wms/wayland/hyprland/exec.nix index 7b7ed3e..1181777 100644 --- a/modules/wms/wayland/hyprland/exec.nix +++ b/modules/wms/wayland/hyprland/exec.nix @@ -27,6 +27,7 @@ in { "${pkgs.wlsunset}/bin/wlsunset -S 06:00 -s 20:00" "${pkgs.lxqt.lxqt-policykit}/bin/lxqt-policykit-agent" + "hyprctl dispatch split:workspace 1" ]; }; }; diff --git a/modules/wms/wayland/hyprland/module.nix b/modules/wms/wayland/hyprland/module.nix index afdd338..52787c2 100644 --- a/modules/wms/wayland/hyprland/module.nix +++ b/modules/wms/wayland/hyprland/module.nix @@ -11,6 +11,7 @@ (inputs'.split-monitor-workspaces.packages) split-monitor-workspaces ; + inherit (inputs'.hyprsplit.packages) hyprsplit; inherit (inputs'.hy3.packages) hy3; inherit (lib) mkIf mkDefault; in { @@ -51,7 +52,8 @@ in { # Split-monitor-workspaces provides awesome-like workspace behaviour plugins = [ - split-monitor-workspaces + hy3 + hyprsplit ]; # Xwayland for X applications diff --git a/modules/wms/wayland/hyprland/settings.nix b/modules/wms/wayland/hyprland/settings.nix index a3d7130..1a9f258 100644 --- a/modules/wms/wayland/hyprland/settings.nix +++ b/modules/wms/wayland/hyprland/settings.nix @@ -47,7 +47,7 @@ in { }; general = { - layout = "dwindle"; + layout = "hy3"; gaps_in = 0; gaps_out = 0; border_size = 2; @@ -57,9 +57,23 @@ in { }; plugin = { + hy3 = { + no_gaps_when_only = 1; + tabs = { + height = 4; + padding = 5; + from_top = true; + render_text = false; + }; + autotile.enable = true; + }; + hyprsplit = { + num_workspaces = 10; + persistent_workspaces = true; + }; split-monitor-workspaces = { - keep-focued = true; count = 10; + keep_focused = 0; }; }; };