]> Freerunner's - dotfiles.git/commitdiff
hypr: move keybinds and rules into separate files
authorAndre Ramnitz <tux.rising@gmail.com>
Thu, 19 Sep 2024 15:55:36 +0000 (17:55 +0200)
committerAndre Ramnitz <tux.rising@gmail.com>
Thu, 19 Sep 2024 15:55:36 +0000 (17:55 +0200)
config/dot-config/hypr/fragments/hypr-keybinds.conf [new file with mode: 0644]
config/dot-config/hypr/fragments/hypr-windowrules.conf [new file with mode: 0644]
config/dot-config/hypr/fragments/hypr-workspacerules.conf [new file with mode: 0644]
config/dot-config/hypr/hyprland.conf

diff --git a/config/dot-config/hypr/fragments/hypr-keybinds.conf b/config/dot-config/hypr/fragments/hypr-keybinds.conf
new file mode 100644 (file)
index 0000000..a3a5a18
--- /dev/null
@@ -0,0 +1,127 @@
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+$suremod = SUPER ALT CTRL
+$mainmod = SUPER
+
+# binds that don't want to get fat-fingered
+bind = $suremod, M, exit,
+bind = $suremod, F, fullscreen,0
+bind = $suremod, Return, exec, konsole # backup terminal app
+bind = $suremod, D, denywindowfromgroup, toggle
+bind = ALT SHIFT, F12, exec, ~/.config/hypr/scripts/gamemode.sh
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainmod, Return, exec, footclient
+bind = $mainmod Shift, Q, killactive,
+bind = $mainmod Shift, Return, exec, footclient -w 1280x800 -a popup
+bind = $mainmod, P, exec, footclient -w 640x400 -a popup -H hyprpicker #color Pipette
+bind = $mainmod, E, exec, dolphin
+bind = $mainmod, F, fullscreen,1
+bind = $mainmod, V, exec, killall fuzzel || cliphist list | fuzzel -d --config="$HOME"/.config/fuzzel/fuzzel-centered.ini | cliphist decode | wl-copy
+bind = $mainmod Shift, V, togglefloating
+bind = $mainmod, R, exec, killall fuzzel || fuzzel
+bind = $mainmod Shift, R, exec, killall fuzzel || fuzzel --config="$HOME"/.config/fuzzel/fuzzel-centered.ini
+# bind = $mainmod Shift, R, exec, killall rofi || rofi -show run # rofi installed for keepassxc-browser script
+bind = $mainmod, A, pseudo, # dwindle, A for Artificial
+bind = $mainmod, S, swapsplit, # dwindle
+bind = $mainmod SHIFT, S, layoutmsg, preselect d # dwindle
+bind = $mainmod, G, togglegroup
+bind = $mainmod SHIFT, G, lockactivegroup, toggle
+bind = ALT,      TAB, focuscurrentorlast
+bind = $mainmod, TAB, exec, ~/.config/hypr/scripts/windowswitch-rg.sh
+bind = $mainmod, grave, exec, ~/.config/hypr/scripts/RofiEmoji.sh
+bind = $mainmod, plus, layoutmsg, hy3:makegroup v
+bind = $mainmod, minus, layoutmsg, hy3:makegroup h
+
+# Move focus with mainMod + arrow keys
+bind = $mainmod, left, movefocus, l
+bind = $mainmod, right, movefocus, r
+bind = $mainmod, up, movefocus, u
+bind = $mainmod, down, movefocus, d
+bind = $mainmod, H, movefocus, l
+bind = $mainmod, L, movefocus, r
+bind = $mainmod, K, movefocus, u
+bind = $mainmod, J, movefocus, d
+
+# Move windows or groups with mainMod + Shift + arrow keys
+bind = $mainmod SHIFT, left, movewindoworgroup, l
+bind = $mainmod SHIFT, right, movewindoworgroup, r
+bind = $mainmod SHIFT, up, movewindoworgroup, u
+bind = $mainmod SHIFT, down, movewindoworgroup, d
+bind = $mainmod SHIFT, H, movewindoworgroup, l
+bind = $mainmod SHIFT, L, movewindoworgroup, r
+bind = $mainmod SHIFT, K, movewindoworgroup, u
+bind = $mainmod SHIFT, J, movewindoworgroup, d
+
+# Move windows into groups
+bind = $mainmod ALT, left, moveintogroup, l
+bind = $mainmod ALT, right, moveintogroup, r
+bind = $mainmod ALT, up, moveintogroup, u
+bind = $mainmod ALT, down, moveintogroup, d
+bind = $mainmod ALT, H, moveintogroup, l
+bind = $mainmod ALT, L, moveintogroup, r
+bind = $mainmod ALT, K, moveintogroup, u
+bind = $mainmod ALT, J, moveintogroup, d
+
+# Move windows out of groups
+bind = $mainmod SHIFT ALT, left, moveoutofgroup, l
+bind = $mainmod SHIFT ALT, right, moveoutofgroup, r
+bind = $mainmod SHIFT ALT, up, moveoutofgroup, u
+bind = $mainmod SHIFT ALT, down, moveoutofgroup, d
+bind = $mainmod SHIFT ALT, H, moveoutofgroup, l
+bind = $mainmod SHIFT ALT, L, moveoutofgroup, r
+bind = $mainmod SHIFT ALT, K, moveoutofgroup, u
+bind = $mainmod SHIFT ALT, J, moveoutofgroup, d
+
+# Switch through group windows
+bind = $mainmod, O, changegroupactive, f
+bind = $mainmod, U, changegroupactive, b
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mainmod, 1, workspace, 1
+bind = $mainmod, 2, workspace, 2
+bind = $mainmod, 3, workspace, 3
+bind = $mainmod, 4, workspace, 4
+bind = $mainmod, 5, workspace, 5
+bind = $mainmod, 6, workspace, 6
+bind = $mainmod, 7, workspace, 7
+bind = $mainmod, 8, workspace, 8
+bind = $mainmod, 9, workspace, 9
+bind = $mainmod, 0, workspace, 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainmod SHIFT, 1, movetoworkspacesilent, 1
+bind = $mainmod SHIFT, 2, movetoworkspacesilent, 2
+bind = $mainmod SHIFT, 3, movetoworkspacesilent, 3
+bind = $mainmod SHIFT, 4, movetoworkspacesilent, 4
+bind = $mainmod SHIFT, 5, movetoworkspacesilent, 5
+bind = $mainmod SHIFT, 6, movetoworkspacesilent, 6
+bind = $mainmod SHIFT, 7, movetoworkspacesilent, 7
+bind = $mainmod SHIFT, 8, movetoworkspacesilent, 8
+bind = $mainmod SHIFT, 9, movetoworkspacesilent, 9
+bind = $mainmod SHIFT, 0, movetoworkspacesilent, 10
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainmod, mouse_down, workspace, e+1
+bind = $mainmod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainmod, mouse:272, movewindow
+bindm = $mainmod, mouse:273, resizewindow
+
+# media keys
+bindl = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
+bindl = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindl = , XF86AudioMute, exec, ~/.config/hypr/scripts/muteorunmute.sh
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPrev, exec, playerctl previous
+bindl = , XF86audiostop, exec, playerctl stop
+
+# printscr
+bind = $mainmod, Print, exec, grim -g "$(slurp)" - | swappy -f -
+bind = $suremod, Print, exec, grim "$HOME/Bilder/scrot-"$(date +"%Y%m%d--%H%M%S")""
+
+# 'scratchpad
+bind = $mainmod, I, togglespecialworkspace, overlay
+bind = $mainmod SHIFT, I, movetoworkspacesilent, special:overlay
+
diff --git a/config/dot-config/hypr/fragments/hypr-windowrules.conf b/config/dot-config/hypr/fragments/hypr-windowrules.conf
new file mode 100644 (file)
index 0000000..3de6262
--- /dev/null
@@ -0,0 +1,77 @@
+# Example windowrule v1
+# windowrule = float, ^(kitty)$
+# Example windowrule v2
+# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+# more windowrules
+
+# handle steam client
+windowrulev2 = float,class:^(steam)$
+windowrulev2 = float,title:^(Steam)$
+windowrulev2 = float,title:^(Freundesliste)$
+windowrulev2 = stayfocused, title:^()$, class:^(steam)$
+windowrulev2 = minsize 1 1, title:^()$, class:^(steam)$
+windowrulev2 = plugin:hyprbars:nobar,class:^(steam)$
+windowrulev2 = plugin:hyprbars:nobar,title:^(Steam)$
+windowrulev2 = plugin:hyprbars:nobar,title:^(Freundesliste)$
+
+# handle wine/proton games
+windowrulev2 = noanim, class:^(.*exe)$
+windowrulev2 = fullscreen, initialClass:^(gamescope)$
+
+# handle hyprbars for floating windows
+windowrulev2 = plugin:hyprbars:nobar, ^floating:0
+
+# handle plasma/kde/qt apps
+windowrule = float, ^(org.kde.*)$
+windowrule = float, ^(kdesystemsettings.*)$
+windowrulev2 = minsize 1 1, stayfocused, float, class: ^(com.nextcloud.desktopclient.nextcloud)$
+windowrulev2 = float, size 1560 1000, pin, workspace special:overlay, class:^(org.keepassxc.KeePassXC)$
+windowrule = float, ^(lxqt-.*)$
+windowrule = float, ^(vlc.*)$
+windowrule = float, ^(pcmanfm.*)$
+windowrule = float, class:^(qalculate.*)$
+
+# handle dialogs
+windowrulev2 = float, title:^((Über|About).*)$
+windowrulev2 = stayfocused, title:^((Über|About).*)$
+
+# handle browsers
+windowrulev2 = float, class:^(firefox.*)$
+windowrulev2 = tag +neverdim, class:^(firefox.*)$
+windowrulev2 = pseudo, class:^(org.qutebrowser.*)$
+windowrulev2 = tag +neverdim, class:^(org.qutebrowser.*)$
+
+# handle terminal(s/-apps)
+windowrulev2 = opacity 1.0 override 0.8 override, group, class:^(foot)$
+windowrulev2 = float, opacity 1.0 override 0.8 override, class:^(popup)$
+windowrulev2 = pseudo, class:^(ncmpcpp)$
+windowrulev2 = maxsize 60% 80%, class:^(ncmpcpp)$
+windowrulev2 = float, stayfocused, center, opacity 1.0 override, class:^(kakpopup)$
+windowrule = workspace 2, ncmpcpp
+windowrule = workspace 2, cava
+windowrule = noinitialfocus, cava
+
+# handle other clients
+windowrule = float, ^(openrgb)$
+windowrule = float, ^(org.corectrl.CoreCtrl)$
+windowrule = float, ^(pavucontrol.*)$
+windowrulev2 = float, class:^(lutris)$
+windowrulev2 = float, class:^(Threema.*)$
+windowrulev2 = float, class:^(blueman-manager.*)$
+windowrulev2 = tag +game, class:^(.*)exe$
+windowrulev2 = tag +game, initialClass:^(gamescope)$
+
+# handle portals
+windowrule = float, ^(org.freedesktop.impl.portal.desktop.kde)$
+windowrule = stayfocused, ^(org.freedesktop.impl.portal.desktop.kde)$
+
+# handle TAGS (always handle tags last)
+windowrulev2 = nodim, tag:neverdim
+windowrulev2 = noblur, tag:game
+windowrulev2 = norounding, tag:game
+windowrulev2 = noshadow, tag:game
+windowrulev2 = immediate, tag:game
+windowrulev2 = opaque, tag:game
+
+
diff --git a/config/dot-config/hypr/fragments/hypr-workspacerules.conf b/config/dot-config/hypr/fragments/hypr-workspacerules.conf
new file mode 100644 (file)
index 0000000..163d665
--- /dev/null
@@ -0,0 +1,7 @@
+# workspace rules
+workspace = 1, on-created-empty:[pseudo] qutebrowser
+workspace = 2, on-created-empty:[pseudo] footclient -a ncmpcpp ncmpcpp
+workspace = 2, gapsout:80
+workspace = 4, on-created-empty:[float] steam
+
+
index 04bd9f18fee6f7ac4350097ad6410117d8a5cdd2..0e97d89e3447856009b237a7b2c6975ead1590fe 100644 (file)
@@ -200,7 +200,7 @@ plugin {
                bar_text_font = Iosevka Nerd Font Propo
                bar_text_size = 12
                bar_height = 24
-               bar_color = $base0C
+               bar_color = $base0A
                col.text = $base00
                bar_part_of_window = true
                bar_precedence_over_border = true
@@ -210,195 +210,7 @@ plugin {
         }
 }
 
-# Example windowrule v1
-# windowrule = float, ^(kitty)$
-# Example windowrule v2
-# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
-# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-# more windowrules
-
-# handle steam client
-windowrulev2 = float,class:^(steam)$
-windowrulev2 = float,title:^(Steam)$
-windowrulev2 = float,title:^(Freundesliste)$
-windowrulev2 = stayfocused, title:^()$, class:^(steam)$
-windowrulev2 = minsize 1 1, title:^()$, class:^(steam)$
-windowrulev2 = plugin:hyprbars:nobar,class:^(steam)$
-windowrulev2 = plugin:hyprbars:nobar,title:^(Steam)$
-windowrulev2 = plugin:hyprbars:nobar,title:^(Freundesliste)$
-
-# handle wine/proton games
-windowrulev2 = noanim, class:^(.*exe)$
-windowrulev2 = fullscreen, class:^(gamescope)$
-
-# handle hyprbars for floating windows
-windowrulev2 = plugin:hyprbars:nobar, ^floating:0
-
-# handle plasma/kde/qt apps
-windowrule = float, ^(org.kde.*)$
-windowrule = float, ^(kdesystemsettings.*)$
-windowrulev2 = minsize 1 1, stayfocused, float, class: ^(com.nextcloud.desktopclient.nextcloud)$
-windowrulev2 = float, size 1560 1000, pin, workspace special:overlay, class:^(org.keepassxc.KeePassXC)$
-windowrule = float, ^(lxqt-.*)$
-windowrule = float, ^(vlc.*)$
-windowrule = float, ^(pcmanfm.*)$
-windowrule = float, class:^(qalculate.*)$
-
-# handle dialogs
-windowrulev2 = float, title:^((Über|About).*)$
-
-# handle browsers
-windowrulev2 = float, class:^(firefox.*)$
-windowrulev2 = tag +browser, class:^(firefox.*)$
-windowrulev2 = tag +browser, class:^(org.qutebrowser.*)$
-
-# handle terminal(s/-apps)
-windowrulev2 = opacity 1.0 override 0.8 override, group, class:^(foot)$
-windowrulev2 = float, opacity 1.0 override 0.8 override, class:^(popup)$
-windowrulev2 = size 60% 100%, float, title:^(NCMPCPP.*)$
-windowrulev2 = float, stayfocused, center, opacity 1.0 override, class:^(kakpopup)$
-windowrule = workspace 2, ncmpcpp
-windowrule = workspace 2, cava
-windowrule = noinitialfocus, cava
-
-# handle other clients
-windowrule = float, ^(openrgb)$
-windowrule = float, ^(org.corectrl.CoreCtrl)$
-windowrule = float, ^(pavucontrol.*)$
-windowrulev2 = float, class:^(lutris)$
-windowrulev2 = float, class:^(Threema.*)$
-windowrulev2 = float, class:^(blueman-manager.*)$
-
-# handle portals
-windowrule = float, ^(org.freedesktop.impl.portal.desktop.kde)$
-windowrule = stayfocused, ^(org.freedesktop.impl.portal.desktop.kde)$
-
-# handle TAGS (always handle tags last)
-windowrulev2 = nodim, tag:browser
+source=./fragments/hypr-keybinds.conf
+source=./fragments/hypr-windowrules.conf
+source=./fragments/hypr-workspacerules.conf
 
-# See https://wiki.hyprland.org/Configuring/Keywords/ for more
-$suremod = SUPER ALT CTRL
-$mainmod = SUPER
-
-# binds that don't want to get fat-fingered
-bind = $suremod, M, exit,
-bind = $suremod, F, fullscreen,0
-bind = $suremod, Return, exec, konsole # backup terminal app
-bind = $suremod, D, denywindowfromgroup, toggle
-bind = ALT SHIFT, F12, exec, ~/.config/hypr/scripts/gamemode.sh
-
-# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
-bind = $mainmod, Return, exec, footclient
-bind = $mainmod Shift, Q, killactive,
-bind = $mainmod Shift, Return, exec, footclient -w 1280x800 -a popup
-bind = $mainmod, P, exec, footclient -w 640x400 -a popup -H hyprpicker #color Pipette
-bind = $mainmod, E, exec, dolphin
-bind = $mainmod, F, fullscreen,1
-bind = $mainmod, V, exec, killall fuzzel || cliphist list | fuzzel -d --config="$HOME"/.config/fuzzel/fuzzel-centered.ini | cliphist decode | wl-copy
-bind = $mainmod Shift, V, togglefloating
-bind = $mainmod, R, exec, killall fuzzel || fuzzel
-bind = $mainmod Shift, R, exec, killall fuzzel || fuzzel --config="$HOME"/.config/fuzzel/fuzzel-centered.ini
-# bind = $mainmod Shift, R, exec, killall rofi || rofi -show run # rofi installed for keepassxc-browser script
-bind = $mainmod, A, pseudo, # dwindle, A for Artificial
-bind = $mainmod, S, swapsplit, # dwindle
-bind = $mainmod SHIFT, S, layoutmsg, preselect d # dwindle
-bind = $mainmod, G, togglegroup
-bind = $mainmod SHIFT, G, lockactivegroup, toggle
-bind = ALT,      TAB, focuscurrentorlast
-bind = $mainmod, TAB, exec, ~/.config/hypr/scripts/windowswitch-rg.sh
-bind = $mainmod, grave, exec, ~/.config/hypr/scripts/RofiEmoji.sh
-bind = $mainmod, plus, layoutmsg, hy3:makegroup v
-bind = $mainmod, minus, layoutmsg, hy3:makegroup h
-
-# Move focus with mainMod + arrow keys
-bind = $mainmod, left, movefocus, l
-bind = $mainmod, right, movefocus, r
-bind = $mainmod, up, movefocus, u
-bind = $mainmod, down, movefocus, d
-bind = $mainmod, H, movefocus, l
-bind = $mainmod, L, movefocus, r
-bind = $mainmod, K, movefocus, u
-bind = $mainmod, J, movefocus, d
-
-# Move windows or groups with mainMod + Shift + arrow keys
-bind = $mainmod SHIFT, left, movewindoworgroup, l
-bind = $mainmod SHIFT, right, movewindoworgroup, r
-bind = $mainmod SHIFT, up, movewindoworgroup, u
-bind = $mainmod SHIFT, down, movewindoworgroup, d
-bind = $mainmod SHIFT, H, movewindoworgroup, l
-bind = $mainmod SHIFT, L, movewindoworgroup, r
-bind = $mainmod SHIFT, K, movewindoworgroup, u
-bind = $mainmod SHIFT, J, movewindoworgroup, d
-
-# Move windows into groups
-bind = $mainmod ALT, left, moveintogroup, l
-bind = $mainmod ALT, right, moveintogroup, r
-bind = $mainmod ALT, up, moveintogroup, u
-bind = $mainmod ALT, down, moveintogroup, d
-bind = $mainmod ALT, H, moveintogroup, l
-bind = $mainmod ALT, L, moveintogroup, r
-bind = $mainmod ALT, K, moveintogroup, u
-bind = $mainmod ALT, J, moveintogroup, d
-
-# Move windows out of groups
-bind = $mainmod SHIFT ALT, left, moveoutofgroup, l
-bind = $mainmod SHIFT ALT, right, moveoutofgroup, r
-bind = $mainmod SHIFT ALT, up, moveoutofgroup, u
-bind = $mainmod SHIFT ALT, down, moveoutofgroup, d
-bind = $mainmod SHIFT ALT, H, moveoutofgroup, l
-bind = $mainmod SHIFT ALT, L, moveoutofgroup, r
-bind = $mainmod SHIFT ALT, K, moveoutofgroup, u
-bind = $mainmod SHIFT ALT, J, moveoutofgroup, d
-
-# Switch through group windows
-bind = $mainmod, O, changegroupactive, f
-bind = $mainmod, U, changegroupactive, b
-
-# Switch workspaces with mainMod + [0-9]
-bind = $mainmod, 1, workspace, 1
-bind = $mainmod, 2, workspace, 2
-bind = $mainmod, 3, workspace, 3
-bind = $mainmod, 4, workspace, 4
-bind = $mainmod, 5, workspace, 5
-bind = $mainmod, 6, workspace, 6
-bind = $mainmod, 7, workspace, 7
-bind = $mainmod, 8, workspace, 8
-bind = $mainmod, 9, workspace, 9
-bind = $mainmod, 0, workspace, 10
-
-# Move active window to a workspace with mainMod + SHIFT + [0-9]
-bind = $mainmod SHIFT, 1, movetoworkspacesilent, 1
-bind = $mainmod SHIFT, 2, movetoworkspacesilent, 2
-bind = $mainmod SHIFT, 3, movetoworkspacesilent, 3
-bind = $mainmod SHIFT, 4, movetoworkspacesilent, 4
-bind = $mainmod SHIFT, 5, movetoworkspacesilent, 5
-bind = $mainmod SHIFT, 6, movetoworkspacesilent, 6
-bind = $mainmod SHIFT, 7, movetoworkspacesilent, 7
-bind = $mainmod SHIFT, 8, movetoworkspacesilent, 8
-bind = $mainmod SHIFT, 9, movetoworkspacesilent, 9
-bind = $mainmod SHIFT, 0, movetoworkspacesilent, 10
-
-# Scroll through existing workspaces with mainMod + scroll
-bind = $mainmod, mouse_down, workspace, e+1
-bind = $mainmod, mouse_up, workspace, e-1
-
-# Move/resize windows with mainMod + LMB/RMB and dragging
-bindm = $mainmod, mouse:272, movewindow
-bindm = $mainmod, mouse:273, resizewindow
-
-# media keys
-bindl = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
-bindl = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
-bindl = , XF86AudioMute, exec, ~/.config/hypr/scripts/muteorunmute.sh
-bindl = , XF86AudioPlay, exec, playerctl play-pause
-bindl = , XF86AudioNext, exec, playerctl next
-bindl = , XF86AudioPrev, exec, playerctl previous
-bindl = , XF86audiostop, exec, playerctl stop
-
-# printscr
-bind = $mainmod, Print, exec, grim -g "$(slurp)" - | swappy -f -
-bind = $suremod, Print, exec, grim "$HOME/Bilder/scrot-"$(date +"%Y%m%d--%H%M%S")""
-
-# 'scratchpad
-bind = $mainmod, I, togglespecialworkspace, overlay
-bind = $mainmod SHIFT, I, movetoworkspacesilent, special:overlay