# See https://wiki.hyprland.org/Configuring/Monitors/ #{{{ Monitor config monitor = , preferred, auto, 1 monitor = HDMI-A-1, 1920x1080@60, 0x0, 1 monitor = DP-1, 1920x1080@60, 1920x0, 1 #}}} # See https://wiki.hyprland.org/Configuring/Keywords/ for more #{{{ Autostart # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & firefox exec-once = ~/.config/autostart.sh exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = xdph exec-once = hyprpm reload -n exec-once = pypr #}}} # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf #{{{ Input options # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = caps:escape kb_rules = numlock_by_default = true scroll_method = "2fg" follow_mouse = 1 mouse_refocus = false touchpad { natural_scroll = no } float_switch_override_focus = 0 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } #}}} #{{{ General options general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 20 border_size = 2 #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg #col.inactive_border = rgba(595959aa) col.active_border = rgba(198844ee) col.inactive_border = rgba(1b1d1cee) layout = master no_cursor_warps = false } #}}} #{{{ Misc options misc { disable_hyprland_logo = true disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ vfr = false vrr = true } #}}} #{{{ Decoration options decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) #{{{ Blur options blur { enabled = true size = 3 passes = 1 new_optimizations = true xray = true } #}}} } #}}} #{{{ Animations options animations { enabled = no # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } #}}} #{{{ Dwindle layout options dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this special_scale_factor = 0.55 } #}}} #{{{ Master layout options master { special_scale_factor = 0.55 mfact = 0.55 # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_is_master = false new_on_top = true no_gaps_when_only = false orientation = left inherit_fullscreen = true } #}}} #{{{ Gestures options gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = off } #}}} #{{{ plugin options #plugin { # split-monitor-workspaces { # count = 9 # } #} #}}} #{{{ Windowrules # 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 windowrule = windowdance, title:^(Rhythm Doctor)$ windowrule = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ windowrule = float, class:^(xdg-desktop-portal-gtk) windowrule = float, class:^(Tk)$ windowrule = workspace 2, title:^(REAPER .*initializing.*)$ windowrulev2 = stayfocused, title:^()$,class:^(steam)$ windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ windowrulev2 = stayfocused, title:^(menu)$,class:^(yabridge-host.exe.so)$ windowrulev2 = minsize 1 1, title:^(menu)$,class:^(yabridge-host.exe.so)$ windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ #windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ #windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ #windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ #windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Metronome and pre-roll settings)$ windowrulev2 = tile, class:^(WebApp-Qobuz[0-9]*)$ #windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ #windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ #windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(\s*)$ #windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ #windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ #windowrulev2 = float,floating:0, title:^(menu)$ #windowrulev2 = forceinput, title:^(menu)$ #windowrulev2 = windowdance, title:^(menu)$ #windowrulev2 = nofocus, title:^(menu)$, class:^(yabridge\-host\.exe\.so)$ #}}} #{{{ Mods # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER $secdMod = ALT #}}} #{{{ Layout toggle bind # Layout toggle #bind = $mainMod $secdMod, A, exec, hypr-layout -t #}}} #{{{ Master layout binds # Master layout binds bind = $mainMod+SHIFT, Return, layoutmsg, swapwithmaster master #MASTER bind = $mainMod+SHIFT, J, layoutmsg, swapnext #MASTER bind = $mainMod+SHIFT, K, layoutmsg, swapprev #MASTER bind = $mainMod+SHIFT, H, layoutmsg, addmaster #MASTER bind = $mainMod+SHIFT, L, layoutmsg, removemaster #MASTER binde = $mainMod, J, layoutmsg, cyclenext #MASTER binde = $mainMod, K, layoutmsg, cycleprev #MASTER binde = $mainMod, H, splitratio, -0.01 #MASTER binde = $mainMod, L, splitratio, +0.01 #MASTER bind = $mainMod+SHIFT, O, splitratio, exact 0.55 #MASTER bind = $mainMod, O, splitratio, exact 0.69 #MASTER #}}} #{{{ Dwindle layout binds # Dwindle layout binds #bind = $mainMod, P, pseudo, #DWINDLE #bind = $mainMod $secdMod, S, togglesplit, #DWINDLE # Move focus with mainMod + HJKL #bind = $mainMod, H, movefocus, l #DWINDLE #bind = $mainMod, L, movefocus, r #DWINDLE #bind = $mainMod, K, movefocus, u #DWINDLE #bind = $mainMod, J, movefocus, d #DWINDLE # Move window with mainMod + HJKL #bind = $mainMod SHIFT, L, movewindow, r #DWINDLE #bind = $mainMod SHIFT, H, movewindow, l #DWINDLE #bind = $mainMod SHIFT, J, movewindow, d #DWINDLE #bind = $mainMod SHIFT, K, movewindow, u #DWINDLE # Resize clients with mainMod + secdMod + HJKL #binde = $mainMod $secdMod, L, resizeactive, 10 0 #DWINDLE #binde = $mainMod $secdMod, H, resizeactive, -10 0 #DWINDLE #binde = $mainMod $secdMod, K, resizeactive, 0 -10 #DWINDLE #binde = $mainMod $secdMod, J, resizeactive, 0 10 #DWINDLE #}}} #{{{ Group binds # Group binds #bind = $mainMod CONTROL, G, togglegroup, #bind = $mainMod CONTROL, I, lockgroups, lock #bind = $mainMod CONTROL, U, lockgroups, unlock #bind = $mainMod CONTROL, H, moveintogroup, r #bind = $mainMod CONTROL, L, moveintogroup, l #bind = $mainMod CONTROL, J, moveintogroup, d #bind = $mainMod CONTROL, K, moveintogroup, u #}}} #{{{ WC binds bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, E, exit, bind = $mainMod SHIFT, SPACE, togglefloating, bind = $mainMod $secdMod, F2, exec, ~/.config/hypr/gamemode.sh bind = $mainMod, F, fullscreen, 0 bind = $mainMod, M, fullscreen, 1 bind = $mainMod, N, exec, pypr toggle_special bind = $mainMod SHIFT, N, togglespecialworkspace, minimized #}}} #{{{ Workspace binds (using split-monitor-workspaces plugin!) # Switch workspaces with mainMod + [0-9] #bind = $mainMod, 1, split-workspace, 1 #bind = $mainMod, 2, split-workspace, 2 #bind = $mainMod, 3, split-workspace, 3 #bind = $mainMod, 4, split-workspace, 4 #bind = $mainMod, 5, split-workspace, 5 #bind = $mainMod, 6, split-workspace, 6 #bind = $mainMod, 7, split-workspace, 7 #bind = $mainMod, 8, split-workspace, 8 #bind = $mainMod, 9, split-workspace, 9 # Move active window to a workspace with mainMod + SHIFT + [0-9] #bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 #bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 #bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 #bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 #bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 #bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6 #bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7 #bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8 #bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9 #bind = $mainMod CONTROL SHIFT, 1, split-movetoworkspace, 1 #bind = $mainMod CONTROL SHIFT, 2, split-movetoworkspace, 2 #bind = $mainMod CONTROL SHIFT, 3, split-movetoworkspace, 3 #bind = $mainMod CONTROL SHIFT, 4, split-movetoworkspace, 4 #bind = $mainMod CONTROL SHIFT, 5, split-movetoworkspace, 5 #bind = $mainMod CONTROL SHIFT, 6, split-movetoworkspace, 6 #bind = $mainMod CONTROL SHIFT, 7, split-movetoworkspace, 7 #bind = $mainMod CONTROL SHIFT, 8, split-movetoworkspace, 8 #bind = $mainMod CONTROL SHIFT, 9, split-movetoworkspace, 9 #bind = $mainMod, mouse_down, split-workspace, e+1 #bind = $mainMod, mouse_up, split-workspace, e-1 #bind = $mainMod, comma, split-changemonitor, +1 #bind = $mainMod, period, split-changemonitor, -1 #}}} #{{{ Workspace binds (not using split-monitor-workspaces plugin!) # 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 # 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 CONTROL SHIFT, 1, movetoworkspace, 1 bind = $mainMod CONTROL SHIFT, 2, movetoworkspace, 2 bind = $mainMod CONTROL SHIFT, 3, movetoworkspace, 3 bind = $mainMod CONTROL SHIFT, 4, movetoworkspace, 4 bind = $mainMod CONTROL SHIFT, 5, movetoworkspace, 5 bind = $mainMod CONTROL SHIFT, 6, movetoworkspace, 6 bind = $mainMod CONTROL SHIFT, 7, movetoworkspace, 7 bind = $mainMod CONTROL SHIFT, 8, movetoworkspace, 8 bind = $mainMod CONTROL SHIFT, 9, movetoworkspace, 9 bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 #bind = $mainMod, comma, split-changemonitor, +1 #bind = $mainMod, period, split-changemonitor, -1 #}}} #{{{ Mouse binds # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow #}}} #{{{ Resize submap binds bind = $mainMod $secdMod, R, submap, resize submap = resize binde = CONTROL, L, resizeactive, 10 0 binde = CONTROL, H, resizeactive, -10 0 binde = CONTROL, K, resizeactive, 0 -10 binde = CONTROL, J, resizeactive, 0 10 binde = , escape, submap, reset submap = reset #}}} #{{{ Menu bindings bind = $mainMod, R, exec, exec sh -c "$(tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" bind = $mainMod, D, exec, exec sh -c "$(tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" bind = $mainMod $secdMod, Q, exec, qbc bind = $mainMod $secdMod, W, exec, lwc bind = $mainMod $secdMod, E, exec, mbc bind = $mainMod $secdMod, R, exec, ffc bind = $mainMod $secdMod, 1, exec, bm bind = $mainMod $secdMod, comma, exec, dmount -p bind = $mainMod $secdMod, period, exec, dmenuumount bind = $mainMod $secdMod CONTROL, U, exec, dmenuunicode bind = $mainMod $secdMod, U, exec, mprisctl bind = $mainMod $secdMod, P, exec, passmenu #}}} #{{{ Misc bindings bind = $mainMod, Return, exec, kitty bind = $mainMod $secdMod, F, exec, kitty -e lf bind = $mainMod, W, exec, t waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id #bindr = , XF86AudioMicMute, exec, volsv -m bind = $mainMod CONTROL, M, exec, volsv -m bindr = $mainMod CONTROL, M, exec, volsv -m #bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 #}}} #{{{ Scratchpads bind = $mainMod CONTROL, Z, exec, pypr toggle sphtop $sphtop = ^(sphtop)$ windowrule = float,$sphtop windowrule = workspace special:sphtop silent,$sphtop windowrule = size 50% 50%,$sphtop windowrule = move 25% 25%,$sphtop bind = $mainMod CONTROL, X, exec, pypr toggle spterm $spterm = ^(spterm)$ windowrule = float,$spterm windowrule = workspace special:spterm silent,$dropterm windowrule = size 50% 50%,$spterm windowrule = move 25% 25%,$spterm bind = $mainMod CONTROL, C, exec, pypr toggle sppmxr $sppmxr = ^(sppmxr)$ windowrule = float,$sppmxr windowrule = workspace special:sppmxr silent,$sppmxr windowrule = size 50% 50%,$sppmxr windowrule = move 25% 25%,$sppmxr bind = $mainMod CONTROL, V, exec, pypr toggle spblue $spblue = ^(spblue)$ windowrule = float,$spblue windowrule = workspace special:spblue silent,$spblue windowrule = size 50% 50%,$spblue windowrule = move 25% 25%,$spblue bind = $mainMod CONTROL, B, exec, pypr toggle spncmp $spncmp = ^(spncmp)$ windowrule = float,$spncmp windowrule = workspace special:spncmp silent,$spncmp windowrule = size 50% 50%,$spncmp windowrule = move 25% 25%,$spncmp bind = $mainMod CONTROL, A, exec, pypr toggle spmutt $spmutt = ^(spmutt)$ windowrule = float,$spmutt windowrule = workspace special:spmutt silent,$spmutt windowrule = size 50% 50%,$spmutt windowrule = move 25% 25%,$spmutt bind = $mainMod CONTROL, S, exec, pypr toggle spprof $spprof = ^(spprof)$ windowrule = float,$spprof windowrule = workspace special:spprof silent,$spprof windowrule = size 50% 50%,$spprof windowrule = move 25% 25%,$spprof bind = $mainMod CONTROL, D, exec, pypr toggle spirss $spirss = ^(spirss)$ windowrule = float,$spirss windowrule = workspace special:spirss silent,$spirss windowrule = size 50% 50%,$spirss windowrule = move 25% 25%,$spirss bind = $mainMod CONTROL, F, exec, pypr toggle sptodo $sptodo = ^(sptodo)$ windowrule = float,$sptodo windowrule = workspace special:sptodo silent,$sptodo windowrule = size 50% 50%,$sptodo windowrule = move 25% 25%,$sptodo bind = $mainMod CONTROL, G, exec, pypr toggle sptrmc $sptrmc = ^(sptrmc)$ windowrule = float,$sptrmc windowrule = workspace special:sptrmc silent,$sptrmc windowrule = size 50% 50%,$sptrmc windowrule = move 25% 25%,$sptrmc bind = $mainMod CONTROL, Q, exec, pypr toggle qpwgraph $spqpwg = ^(org\.rncbc\.qpwgraph)$ windowrule = float,$spqpwg windowrule = workspace special:spqpwg silent,$spqpwg windowrule = size 50% 50%,$spqpwg windowrule = move 25% 25%,$spqpwg bind = $mainMod CONTROL, E, togglespecialworkspace, speasy $speasy = ^(com\.github\.wwmm\.easyeffects)$ windowrule = float,$speasy windowrule = workspace special:speasy silent,$speasy windowrule = size 50% 50%,$speasy windowrule = move 25% 25%,$speasy #}}} #{{{ OBS bindings bind = $mainMod CONTROL, 1, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 2, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 3, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 4, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 5, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 6, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 7, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 8, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 9, pass, ^(com\.obsproject\.Studio)$ bind = $mainMod CONTROL, 0, pass, ^(com\.obsproject\.Studio)$ #}}} #{{{ Inert submap binds bind = $mainMod, B, submap, inert submap = inert bind = $mainMod, B, submap, reset submap = reset #}}} #{{{ Media bindings bindl = $secdMod, P, exec, playerctl play-pause bindel = , XF86AudioRaiseVolume, exec, volsv -i 5 bindel = , XF86AudioLowerVolume, exec, volsv -d 5 bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioStop, exec, playerctl stop bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioMute, exec, volsv -t #bindl = , XF86AudioMicMute, exec, volsv -m bind = , XF86AudioMicMute, exec, volsv -m bindel = , XF86MonBrightnessUp, exec, bl -i bindel = , XF86MonBrightnessDown, exec, bl -d bindl = $mainMod, XF86MonBrightnessUp, exec, bl -I 1 bindl = $mainMod, XF86MonBrightnessDown, exec, bl -D 1 bind = , Print, exec, scrshot #}}}