debug { disable_logs = false; } monitor=,preferred,auto,1 monitor=DP-3,preferred,auto,1.5 env = XCURSOR_SIZE,24 env = XCURSOR_THEME,Haiku_Cursor env = GTK_THEME,adw-gtk3-dark env = QT_QPA_PLATFORMTHEME,gtk2 exec-once = waybar exec-once = dunst exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store exec-once = hypridle exec-once = ~/.local/bin/wallpaper-rotate exec-once = blueman-applet # Auto-launch apps (window rules place them in correct workspaces) exec-once = ghostty -e zellij exec-once = firefox exec-once = discord input { kb_layout = us kb_options = caps:escape follow_mouse = 1 sensitivity = -0.2 natural_scroll = true } input:touchpad { natural_scroll = true tap-to-click = true } general { gaps_in = 6 gaps_out = 8 border_size = 2 col.active_border = rgba(8ebdffee) rgba(8ebdffff) rgba(8ebdffee) rgba(8ebdffff) col.inactive_border = rgba(333333aa) layout = dwindle } decoration { rounding = 8 blur { enabled = true size = 5 passes = 2 } shadow { enabled = true range = 12 render_power = 2 color = rgba(1a1a1aee) } } animations { enabled = true bezier = easeOutQuint,0.23,1,0.32,1 bezier = easeInOutCubic,0.65,0.05,0.36,1 animation = windows,1,7,easeOutQuint,slide animation = windowsOut,1,7,easeInOutCubic,slide animation = fade,1,7,easeOutQuint animation = workspaces,0 } workspace = 1, persistent:true workspace = 2, persistent:true workspace = 3, persistent:true workspace = 4, persistent:true workspace = 5, persistent:true workspace = 6 workspace = 7 workspace = 8 workspace = 9 workspace = 10 $mainMod = SUPER bind = $mainMod, Return, exec, hyprctl dispatch workspace 1; ghostty -e zellij bind = $mainMod SHIFT, Return, exec, ghostty bind = $mainMod, B, exec, firefox bind = $mainMod, D, exec, fuzzel bind = $mainMod, Space, exec, fuzzel bind = $mainMod SHIFT, Space, exec, rofi -show drun bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy bind = $mainMod, N, exec, thunar bind = $mainMod, L, exec, hyprlock bind = $mainMod, X, exec, blueman-manager bind = $mainMod, Q, killactive bind = $mainMod, F, fullscreen bind = $mainMod, G, togglefloating bind = $mainMod, P, pseudo bind = $mainMod, T, pin bind = $mainMod, H, movefocus, l bind = $mainMod, J, movefocus, d bind = $mainMod, K, movefocus, u bind = $mainMod, L, movefocus, r bind = $mainMod SHIFT, H, movewindow, l bind = $mainMod SHIFT, J, movewindow, d bind = $mainMod SHIFT, K, movewindow, u bind = $mainMod SHIFT, L, movewindow, r bind = $mainMod CTRL, H, resizeactive, -40 0 bind = $mainMod CTRL, J, resizeactive, 0 40 bind = $mainMod CTRL, K, resizeactive, 0 -40 bind = $mainMod CTRL, L, resizeactive, 40 0 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 bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, S, exec, grim -g "$(slurp)" - | swappy -f - bind = $mainMod SHIFT, S, exec, grim - | swappy -f - bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindel = , XF86MonBrightnessUp, exec, brightnessctl set 5%+ bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%- bind = $mainMod SHIFT, Q, exec, hyprctl dispatch exit bind = $mainMod SHIFT, R, exec, hyprctl reload # Lid switch: close → external display only, open → restore internal bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/lid-handler.sh close bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/lid-handler.sh open windowrule = match:class ^(pavucontrol)$, float on windowrule = match:class ^(firefox)$, match:title PIP, float on windowrule = match:title ^(Authentication Required)$, float on windowrule = match:class ^(pavucontrol)$, size 75% 75% windowrule = match:class ^(code-oss|Code|jetbrains-.*|nvim)$, workspace 2 windowrule = match:class ^(firefox|chromium-browser|google-chrome)$, workspace 3 windowrule = match:class ^(discord|Slack|TelegramDesktop|zapzap)$, workspace 4 windowrule = match:class ghostty, workspace 1