# See https://wiki.hyprland.org/Configuring/Monitors/ #{{{ Monitor config monitor = eDP-1, 1920x1080@60, 0x0, 1 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 = xdph exec-once = hyprpm reload -n exec-once = hyprpaper #exec-once = hypridle exec-once = waybar exec-once = pypr exec-once = lxqt-policykit-agent exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' exec-once = import-gsettings icon-theme 'Mint-X-Grey' exec-once = import-gsettings cursor-theme 'Breeze' exec-once = xrdb -load "$XDG_CONFIG_HOME"/X11/xresources exec-once = com.github.wwmm.easyeffects exec-once = systemctl --user start dunst exec-once = systemctl --user start hypridle #exec-once = mpd #}}} #{{{ env # Environment variables set at launch env = HYPRCURSOR_THEME,BreezeHypr env = HYPRCURSOR_SIZE,32 env = XCURSOR_THEME,BreezeX-Black env = XCURSOR_SIZE,32 #}}} # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # Debug {{{ debug { enable_stdout_logs = true disable_logs = false } # }}} # device {{{ $LAPTOP_TP_ENABLED = true device { name = synps/2-synaptics-touchpad enabled = $LAPTOP_TP_ENABLED } # }}} #{{{ 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 } #}}} #{{{ cursor cursor { no_warps = false } #}}} #{{{ Misc options misc { disable_hyprland_logo = true disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ swallow_exception_regex = ^(.*ueberzug)$ vfr = true vrr = 1 } #}}} #{{{ Decoration options decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 drop_shadow = no 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_status = inherit 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 { hyprsplit { num_workspaces = 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 = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ windowrule = float, ^(xdg-desktop-portal-gtk) windowrule = float, title:^(UNDERTALE)$ windowrule = float, ^(Tk)$ windowrule = float, ^(lxqt-policykit-agent)$ 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 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$ windowrulev2 = float, floating:0, title:^(menu*) windowrule = workspace 2, title:^(REAPER .*initializing.*)$ windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ windowrule = tile, ^(WebApp-Qobuz[0-9]*)$ windowrulev2 = float, title:^(menu)$ 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 = 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)$ #}}} #{{{ 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 #}}} #{{{ 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 #}}} #{{{ Device binds bind = $mainMod, Backspace, exec, touchpad.sh #}}} #{{{ 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, G, split:grabroguewindows bind = $mainMod, comma, focusmonitor, -1 bind = $mainMod, period, focusmonitor, +1 bind = $mainMod SHIFT, comma, movewindow, mon:-1 bind = $mainMod SHIFT, period, movewindow, mon:+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, sh -c "$(tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" bind = $mainMod, D, 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, pkill -USR1 waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id bind = $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 #}}}