summaryrefslogtreecommitdiff
path: root/dotfiles/hyprland
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/hyprland')
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf83
1 files changed, 48 insertions, 35 deletions
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index ce45088..166b44b 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -111,12 +111,12 @@ xwayland {
# Window Rules
# ============================================================================
# Floating windows (from DWM rules)
-windowrulev2 = float, class:^(Gimp)$
-windowrulev2 = float, class:^(caffeine)$
-windowrulev2 = float, class:^(blueman-services)$
-windowrulev2 = float, class:^(Blueman-manager)$
-windowrulev2 = float, class:^(qalculate-gtk)$
-windowrulev2 = float, title:^(Event Tester)$
+windowrule = float on, match:class ^(Gimp)$
+windowrule = float on, match:class ^(caffeine)$
+windowrule = float on, match:class ^(blueman-services)$
+windowrule = float on, match:class ^(Blueman-manager)$
+windowrule = float on, match:class ^(qalculate-gtk)$
+windowrule = float on, match:title ^(Event Tester)$
# ============================================================================
# Key Bindings
@@ -144,18 +144,31 @@ bind = $mod, J, layoutmsg, cyclenext
bind = $mod, K, layoutmsg, cycleprev
bind = $mod SHIFT, J, layoutmsg, swapnext
bind = $mod SHIFT, K, layoutmsg, swapprev
-bind = $mod, H, resizeactive, -50 0
-bind = $mod, L, resizeactive, 50 0
+bind = $mod, H, splitratio, -0.05
+bind = $mod, L, splitratio, +0.05
bind = $mod, RETURN, layoutmsg, swapwithmaster
bind = $mod, G, centerwindow
bind = $mod, TAB, workspace, previous
bind = $mod SHIFT, C, killactive
# Layouts (from DWM)
-bind = $mod SHIFT, M, exec, hyprctl keyword general:layout master
-bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master
+# monocle [M] - maximize window
+bind = $mod SHIFT, M, fullscreen, 1
+# tile []= - master on left (default master orientation)
+bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation left
+# floating ><> - toggle floating for current window
bind = $mod SHIFT, F, togglefloating
bind = $mod SHIFT, SPACE, togglefloating
+# bstack TTT - master on top
+bind = $mod SHIFT, U, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation top
+# bstackhoriz === - same as bstack in Hyprland
+bind = $mod, U, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation top
+# deck [D] - use dwindle layout as approximation
+bind = $mod SHIFT, D, exec, hyprctl keyword general:layout dwindle
+# centeredmaster |M| - master in center
+bind = $mod SHIFT, I, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation center
+# centeredfloatingmaster >M> - no direct equivalent, use centered master
+bind = $mod SHIFT, O, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation center
# Master layout adjustments
bind = $mod, I, layoutmsg, addmaster
@@ -205,39 +218,39 @@ bind = $mod SHIFT, PERIOD, movewindow, mon:+1
# Scratchpads (from DWM togglescratch)
# Audio mixer (was MODKEY+a -> spaudio/pulsemixer)
bind = $mod, A, togglespecialworkspace, audio
-bind = $mod, A, exec, [workspace special:audio] pgrep -x pulsemixer || st -n spaudio -e pulsemixer
-windowrulev2 = float, class:^(st)$, title:^(spaudio)$
-windowrulev2 = size 60% 60%, class:^(st)$, title:^(spaudio)$
-windowrulev2 = center, class:^(st)$, title:^(spaudio)$
-windowrulev2 = workspace special:audio, class:^(st)$, title:^(spaudio)$
+bind = $mod, A, exec, [workspace special:audio] pgrep -x pulsemixer || st -t spaudio -e pulsemixer
+windowrule = float on, match:class ^(st-256color)$, match:title ^(spaudio)$
+windowrule = size 60% 60%, match:class ^(st-256color)$, match:title ^(spaudio)$
+windowrule = center on, match:class ^(st-256color)$, match:title ^(spaudio)$
+windowrule = workspace special:audio, match:class ^(st-256color)$, match:title ^(spaudio)$
# System monitor (was MODKEY+m -> spmon/gotop)
bind = $mod, M, togglespecialworkspace, monitor
-bind = $mod, M, exec, [workspace special:monitor] pgrep -x gotop || st -n spmon -e gotop
-windowrulev2 = float, class:^(st)$, title:^(spmon)$
-windowrulev2 = size 60% 60%, class:^(st)$, title:^(spmon)$
-windowrulev2 = workspace special:monitor, class:^(st)$, title:^(spmon)$
+bind = $mod, M, exec, [workspace special:monitor] pgrep -x gotop || st -t spmon -e gotop
+windowrule = float on, match:class ^(st-256color)$, match:title ^(spmon)$
+windowrule = size 60% 60%, match:class ^(st-256color)$, match:title ^(spmon)$
+windowrule = workspace special:monitor, match:class ^(st-256color)$, match:title ^(spmon)$
# Music player (was MODKEY+slash -> spmp/ncmpcpp)
bind = $mod, SLASH, togglespecialworkspace, music
-bind = $mod, SLASH, exec, [workspace special:music] pgrep -x ncmpcpp || st -n spmp -e ncmpcpp
-windowrulev2 = float, class:^(st)$, title:^(spmp)$
-windowrulev2 = size 60% 60%, class:^(st)$, title:^(spmp)$
-windowrulev2 = workspace special:music, class:^(st)$, title:^(spmp)$
+bind = $mod, SLASH, exec, [workspace special:music] pgrep -x ncmpcpp || st -t spmp -e ncmpcpp
+windowrule = float on, match:class ^(st-256color)$, match:title ^(spmp)$
+windowrule = size 60% 60%, match:class ^(st-256color)$, match:title ^(spmp)$
+windowrule = workspace special:music, match:class ^(st-256color)$, match:title ^(spmp)$
# Terminal scratchpad (was MODKEY+Shift+Return -> spterm/tmux)
bind = $mod SHIFT, RETURN, togglespecialworkspace, term
-bind = $mod SHIFT, RETURN, exec, [workspace special:term] pgrep -f "st.*spterm" || st -n spterm -e tmux
-windowrulev2 = float, class:^(st)$, title:^(spterm)$
-windowrulev2 = size 60% 60%, class:^(st)$, title:^(spterm)$
-windowrulev2 = workspace special:term, class:^(st)$, title:^(spterm)$
+bind = $mod SHIFT, RETURN, exec, [workspace special:term] pgrep -f "st.*spterm" || st -t spterm -e tmux
+windowrule = float on, match:class ^(st-256color)$, match:title ^(spterm)$
+windowrule = size 60% 60%, match:class ^(st-256color)$, match:title ^(spterm)$
+windowrule = workspace special:term, match:class ^(st-256color)$, match:title ^(spterm)$
# File manager (was MODKEY+f -> spfm/ranger)
bind = $mod, F, togglespecialworkspace, files
-bind = $mod, F, exec, [workspace special:files] pgrep -x ranger || st -n spfm -e ranger
-windowrulev2 = float, class:^(st)$, title:^(spfm)$
-windowrulev2 = size 60% 60%, class:^(st)$, title:^(spfm)$
-windowrulev2 = workspace special:files, class:^(st)$, title:^(spfm)$
+bind = $mod, F, exec, [workspace special:files] pgrep -x ranger || st -t spfm -e ranger
+windowrule = float on, match:class ^(st-256color)$, match:title ^(spfm)$
+windowrule = size 60% 60%, match:class ^(st-256color)$, match:title ^(spfm)$
+windowrule = workspace special:files, match:class ^(st-256color)$, match:title ^(spfm)$
# Calculator (was MODKEY+x or MODKEY+c -> qalculate)
bind = $mod, X, exec, qalculate-gtk
@@ -245,10 +258,10 @@ bind = $mod, C, exec, qalculate-gtk
# Htop (was MODKEY+Shift+h -> sptop/htop)
bind = $mod SHIFT, H, togglespecialworkspace, htop
-bind = $mod SHIFT, H, exec, [workspace special:htop] pgrep -x htop || st -n sptop -e htop
-windowrulev2 = float, class:^(st)$, title:^(sptop)$
-windowrulev2 = size 60% 60%, class:^(st)$, title:^(sptop)$
-windowrulev2 = workspace special:htop, class:^(st)$, title:^(sptop)$
+bind = $mod SHIFT, H, exec, [workspace special:htop] pgrep -x htop || st -t sptop -e htop
+windowrule = float on, match:class ^(st-256color)$, match:title ^(sptop)$
+windowrule = size 60% 60%, match:class ^(st-256color)$, match:title ^(sptop)$
+windowrule = workspace special:htop, match:class ^(st-256color)$, match:title ^(sptop)$
# Media/hardware keys
bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%