summaryrefslogtreecommitdiff
path: root/dotfiles/hyprland/.config
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-25 21:54:04 -0600
committerCraig Jennings <c@cjennings.net>2026-01-25 21:54:04 -0600
commitff88fc3cd752c34f364526683222deb0a7e5bbbf (patch)
tree82c69bca2d01331f02c9be5f31f616e8616c0b18 /dotfiles/hyprland/.config
parente601c536ec79e9c46105cdbc67825e0cd97e7818 (diff)
feat(hyprland): add plugins and simplify layouts
Plugins installed via hyprpm: - hy3: i3-style manual tiling with tab groups (monocle) - hyprscrolling: PaperWM-style horizontal scrolling - xtra-dispatchers: throwunfocused, bringallfrom, closeunfocused Layout system simplified to 4 modes: - Master (tile) - default DWM-style - Tab group (monocle) - via hy3 plugin - Scrolling - horizontal columns - Floating New scripts: - layout-navigate: layout-aware j/k navigation - Updated cycle-layout: cycles through 4 layouts - Updated waybar-layout: icons for new layouts Other changes: - Add hyprpm reload to startup - Add cpio and fc-cache to archsetup - Remove SSH fuzzel picker (conflicted with scrolling keybind) - Add slidevert animation for scratchpads - Update todo.org with plugin evaluation notes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'dotfiles/hyprland/.config')
-rw-r--r--dotfiles/hyprland/.config/hypr/hyprland.conf32
1 files changed, 12 insertions, 20 deletions
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf
index e2afa07..bb099d8 100644
--- a/dotfiles/hyprland/.config/hypr/hyprland.conf
+++ b/dotfiles/hyprland/.config/hypr/hyprland.conf
@@ -10,6 +10,7 @@ monitor=,preferred,auto,auto
# ============================================================================
# Startup Applications
# ============================================================================
+exec-once = hyprpm reload
exec-once = waybar
exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/dark-lion.jpg
exec-once = dunst
@@ -64,6 +65,7 @@ animations {
animation = windowsOut, 1, 3, default, popin 80%
animation = fade, 1, 3, default
animation = workspaces, 1, 3, default
+ animation = specialWorkspace, 1, 3, default, slidevert
}
# ============================================================================
@@ -130,7 +132,6 @@ bind = $mod, P, exec, fuzzel
# From sxhkdrc
bind = $mod, SPACE, exec, fuzzel
-bind = $mod SHIFT, S, exec, fuzzel --dmenu < ~/.ssh/config | grep -oP '^Host\s+\K\S+' | fuzzel --dmenu --prompt "SSH: " | xargs -I{} foot ssh {}
bind = $mod SHIFT, W, exec, $ALTBROWSER
bind = CTRL ALT, W, exec, tor-browser
bind = CTRL ALT, F, exec, thunar
@@ -140,10 +141,11 @@ bind = $mod SHIFT, R, exec, shortwave
bind = $mod SHIFT, P, exec, waypaper
# Window management (from DWM)
-bind = $mod, J, layoutmsg, cyclenext
-bind = $mod, K, layoutmsg, cycleprev
-bind = $mod SHIFT, J, layoutmsg, swapnext
-bind = $mod SHIFT, K, layoutmsg, swapprev
+# Layout-aware navigation (works across master, scrolling, hy3)
+bind = $mod, J, exec, layout-navigate prev
+bind = $mod, K, exec, layout-navigate next
+bind = $mod SHIFT, J, exec, layout-navigate prev move
+bind = $mod SHIFT, K, exec, layout-navigate next move
bind = $mod, H, splitratio, -0.05
bind = $mod, L, splitratio, +0.05
bind = $mod, RETURN, layoutmsg, swapwithmaster master
@@ -151,29 +153,19 @@ bind = $mod, G, centerwindow
bind = $mod, TAB, workspace, previous
bind = $mod SHIFT, C, killactive
-# Layouts (from DWM)
-# monocle [M] - maximize window
-bind = $mod SHIFT, M, fullscreen, 1
-# tile []= - master on left (default master orientation)
+# Layouts: master -> tab group (monocle) -> scrolling -> floating
+# Click waybar layout icon to cycle, or use direct keybindings:
bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation left
-# floating ><> - toggle floating for current window
+bind = $mod SHIFT, M, exec, hyprctl keyword general:layout hy3 && hyprctl dispatch hy3:changegroup tab
+bind = $mod SHIFT, S, exec, hyprctl keyword general:layout scrolling
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
bind = $mod, D, layoutmsg, removemaster
+
# Gaps (from DWM)
bind = $mod, MINUS, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq -r '.custom' | cut -d' ' -f1) - 5 )) && hyprctl keyword general:gaps_in $(( $(hyprctl getoption general:gaps_in -j | jq -r '.custom' | cut -d' ' -f1) - 5 ))
bind = $mod, EQUAL, exec, hyprctl keyword general:gaps_out $(( $(hyprctl getoption general:gaps_out -j | jq -r '.custom' | cut -d' ' -f1) + 5 )) && hyprctl keyword general:gaps_in $(( $(hyprctl getoption general:gaps_in -j | jq -r '.custom' | cut -d' ' -f1) + 5 ))