Created
March 4, 2026 18:35
-
-
Save megum1n/89ee3bb58b4105fbcba49a0a869b66e6 to your computer and use it in GitHub Desktop.
Hyprland config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| general { | |
| layout = hy3 | |
| } | |
| plugin { | |
| hy3 { | |
| tabs { | |
| height = 6 | |
| padding = 4 | |
| render_text = false | |
| } | |
| autotile { | |
| enable = true | |
| } | |
| } | |
| } | |
| bind = $mainMod, h, hy3:movefocus, l | |
| bind = $mainMod, l, hy3:movefocus, r | |
| bind = $mainMod, k, hy3:movefocus, u | |
| bind = $mainMod, j, hy3:movefocus, d | |
| bind = $mainMod SHIFT, h, hy3:movewindow, l | |
| bind = $mainMod SHIFT, l, hy3:movewindow, r | |
| bind = $mainMod SHIFT, k, hy3:movewindow, u | |
| bind = $mainMod SHIFT, j, hy3:movewindow, d | |
| bindn = , mouse:272, hy3:focustab, mouse | |
| bindn = , mouse_down, hy3:focustab, l, require_hovered | |
| bindn = , mouse_up, hy3:focustab, r, require_hovered | |
| bind = $mainMod, tab, hy3:focustab, r, wrap | |
| bind = $mainMod, W, hy3:changegroup, toggletab | |
| bind = $mainMod, S, togglefloating |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| dwindle { | |
| pseudotile = true | |
| preserve_split = true | |
| force_split = 2 | |
| } | |
| group { | |
| col.border_active = rgba(33ccffee) rgba(00ff99ee) 45deg | |
| col.border_inactive = rgba(595959aa) | |
| col.border_locked_active = -1 | |
| col.border_locked_inactive = -1 | |
| groupbar { | |
| font_size = 13 | |
| font_family = Source Code Pro | |
| font_weight_active = bold | |
| font_weight_inactive = normal | |
| indicator_height = 0 | |
| indicator_gap = 5 | |
| height = 20 | |
| gaps_in = 5 | |
| gaps_out = 0 | |
| scrolling = false | |
| text_color = rgb(000000) | |
| text_color_inactive = rgba(ffffff90) | |
| col.active = rgba(33ccffcc) | |
| col.inactive = rgba(303030cc) | |
| gradients = true | |
| gradient_rounding = 6 | |
| gradient_round_only_edges = false | |
| blur = true | |
| } | |
| } | |
| bind = $mainMod, h, exec, ~/.config/hypr/scripts/movefocus.sh l | |
| bind = $mainMod, l, exec, ~/.config/hypr/scripts/movefocus.sh r | |
| bind = $mainMod, k, movefocus, u | |
| bind = $mainMod, j, movefocus, d | |
| bind = $mainMod SHIFT, h, movewindow, l | |
| bind = $mainMod SHIFT, l, movewindow, r | |
| bind = $mainMod SHIFT, k, movewindow, u | |
| bind = $mainMod SHIFT, j, movewindow, d | |
| bind = $mainMod, tab, changegroupactive | |
| bind = $mainMod, W, togglegroup | |
| bind = $mainMod, S, moveoutofgroup | |
| bind = $mainMod, S, togglefloating | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| direction=$1 | |
| in_group=$(hyprctl activewindow -j | jq -e '.grouped[1]') | |
| if [[ $in_group != "null" ]]; then | |
| next="f" | |
| if [[ $direction == "l" ]]; then | |
| next="b" | |
| fi | |
| hyprctl dispatch changegroupactive $next | |
| else | |
| next="" | |
| if [[ $direction == "l" ]]; then | |
| next="prev" | |
| fi | |
| hyprctl dispatch cyclenext $next | |
| fi |
Author
been using it for a few hs, and its good! main pain points (didn't do a full research yet):
-
super + drag a grouped window into another group for example: drags the whole group and merge it with the other group.
-
super + drag the tab header only moves that tab, which is great, but a bit annoying to click on that area specifically!
merge_groups_on_groupbar/merge_groups_on_dragcontrols this but I'd like to be able to pop a single tab onto another group by dragging. (movewindoworgroupmaybe?) -
group new windows by default?
-
moving tabs inside a group (reorder) can be done with
movegroupwindow:
bind = $mainMod SHIFT, left, movegroupwindow, b
bind = $mainMod SHIFT, right, movegroupwindow, f
- does not play nice with virtual-desktop plugin because it moves the whole "window" (the group) instead of the single tab. need to ungroup that tab first
I think, as you said, the main issue is the distinction between tabs and windows.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@ajboni it seems that hyprland dev team improved tabs because I could not use them 2 years ago and now I don't really have any complains. It works just fine for me.
Binding is the only annoying thing since you have to do separate operations for tab and windows. But it is manageable IMO.
I also don't remember exact reason why 2 years ago tabs were unusable. IIRC you couldn't set bg color for tabs, so they were transparent and you couldn't set one key binding for tabs and windows.