summaryrefslogtreecommitdiff
path: root/hypr/hyprland.conf
diff options
context:
space:
mode:
Diffstat (limited to 'hypr/hyprland.conf')
-rw-r--r--hypr/hyprland.conf255
1 files changed, 148 insertions, 107 deletions
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
index 86f1f77..e2c8f64 100644
--- a/hypr/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -1,30 +1,39 @@
-# See https://wiki.hyprland.org/Configuring/Monitors/
+# See https://wiki.hypr.land/Configuring/Monitors/
#{{{ Monitor config
-monitor = eDP-1, 1920x1080@60, 0x0, 1
+#monitor = DP-2, 1920x1080@75, 0x0, 1
+#monitor = HDMI-A-1, 1920x1080@75, 1920x0, 1
+#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
+# See https://wiki.hypr.land/Configuring/Keywords/ for more
+
+#{{{ Plugins
+#plugin = /var/cache/hyprpm/zachir/hyprland-plugins/hyprscrolling.so
+#plugin = /var/cache/hyprpm/zachir/hyprsplit/hyprsplit.so
+#}}}
#{{{ Autostart
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
-exec-once = xdph
exec-once = hyprpm reload -n
+exec-once = xdph
exec-once = hyprpaper
#exec-once = hypridle
exec-once = waybar
exec-once = pypr
+#exec-once = hyprscratch init
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 gtk-theme 'Flat-Remix-GTK-Green-Darkest'
+exec-once = import-gsettings icon-theme 'Papirus-Dark'
exec-once = import-gsettings cursor-theme 'BreezeX-Black'
+exec-once = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
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 = xwayland-satellite :1
+exec-once = bl-save
#exec-once = mpd
#}}}
@@ -34,6 +43,7 @@ env = HYPRCURSOR_THEME,theme_BreezeX-Black
env = HYPRCURSOR_SIZE,32
env = XCURSOR_THEME,BreezeX-Black
env = XCURSOR_SIZE,32
+env = DISPLAY=:1
#}}}
# Source a file (multi-file configs)
@@ -43,6 +53,7 @@ env = XCURSOR_SIZE,32
debug {
enable_stdout_logs = false
disable_logs = true
+ full_cm_proto = true
}
# }}}
@@ -55,7 +66,7 @@ device {
# }}}
#{{{ Input options
-# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+# For all categories, see https://wiki.hypr.land/Configuring/Variables/
input {
kb_layout = us
kb_variant =
@@ -82,15 +93,15 @@ input {
#{{{ General options
general {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ # See https://wiki.hypr.land/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(ec0101ee)
+ col.active_border = rgba(198844ee)
col.inactive_border = rgba(1b1d1cee)
- layout = master
+ layout = scrolling
}
#}}}
@@ -106,15 +117,15 @@ misc {
disable_splash_rendering = true
enable_swallow = true
swallow_regex = ^(kitty)$
- swallow_exception_regex = ^(wev|.*ueberzug|n?vi?m? .*)$
+ swallow_exception_regex = ^(wev|.*ueberzug|n?vi?m? .*|.*dragon.*)$
vfr = true
- vrr = 1
+ vrr = 3
}
#}}}
#{{{ Decoration options
decoration {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ # See https://wiki.hypr.land/Configuring/Variables/ for more
rounding = 10
#{{{ Blur options
blur {
@@ -139,8 +150,8 @@ decoration {
#{{{ Animations options
animations {
- enabled = no
- # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+ enabled = yes
+ # Some default animations, see https://wiki.hypr.land/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%
@@ -153,7 +164,7 @@ animations {
#{{{ Dwindle layout options
dwindle {
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ # See https://wiki.hypr.land/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
@@ -164,21 +175,21 @@ dwindle {
master {
special_scale_factor = 0.55
mfact = 0.55
- # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ # See https://wiki.hypr.land/Configuring/Master-Layout/ for more
new_status = slave
new_on_top = false
new_on_active = before
#no_gaps_when_only = false
orientation = left
- inherit_fullscreen = true
+ #inherit_fullscreen = true
drop_at_cursor = true
}
#}}}
#{{{ Gestures options
gestures {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- workspace_swipe = off
+ # See https://wiki.hypr.land/Configuring/Variables/ for more
+ #workspace_swipe = off
}
#}}}
@@ -186,6 +197,15 @@ gestures {
plugin {
hyprsplit {
num_workspaces = 9
+ persistent_workspaces = true
+ }
+
+ hyprscrolling {
+ fullscreen_on_one_column = true
+ column_width = 0.5
+ explicit_column_widths = 0.25, 0.333, 0.5, 0.667, 0.75, 1.0
+ focus_fit_method = 1
+ follow_focus = true
}
}
#}}}
@@ -195,11 +215,35 @@ plugin {
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrule = float, class:^(kitty)$, title:^(kitty)$
-# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
+windowrulev2 = workspace special:easyeffects silent, match: class ^(com\.github\.wwmm\.easyeffects)$
+# Fix brave xray menus
+windowrulev2 = xray 0, match:class ^(\s*), match:title ^(\s*)$
+# Center floating XWayland windows
+windowrule = center on, match:xwayland on, match:class negative:^(steam|REAPER)$
+# Make Steam Big Picture Mode fullscreen
+windowrule = fullscreen on, match:class ^(steam)$, match:title ^(Steam Big Picture Mode)$
+# Fix scratchpad window spawn behavior
+windowrule = workspace +0, match:workspace name:sphtop, match:title negative:sphtop
+windowrule = workspace +0, match:workspace name:spterm, match:title negative:spterm
+windowrule = workspace +0, match:workspace name:sppmxr, match:title negative:sppmxr
+windowrule = workspace +0, match:workspace name:spblue, match:title negative:spblue
+windowrule = workspace +0, match:workspace name:spncmp, match:title negative:spncmp
+windowrule = workspace +0, match:workspace name:spmutt, match:title negative:spmutt
+windowrule = workspace +0, match:workspace name:spprof, match:title negative:spprof
+windowrule = workspace +0, match:workspace name:spirss, match:title negative:spirss
+windowrule = workspace +0, match:workspace name:spvimw, match:title negative:spvimw
+windowrule = workspace +0, match:workspace name:sptrmc, match:title negative:sptrmc
+windowrule = workspace +0, match:workspace name:helvum, match:title negative:helvum
+windowrule = workspace +0, match:workspace name:easyfx, match:title negative:easyfx
+#}}}
+
+#{{{ Layerrules
+layerrule = blur on, match:namespace waybar
#}}}
#{{{ Mods
-# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+# See https://wiki.hypr.land/Configuring/Keywords/ for more
$mainMod = SUPER
$secdMod = ALT
#}}}
@@ -210,18 +254,40 @@ $secdMod = ALT
#}}}
#{{{ 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
+## 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
+#}}}
+
+#{{{ hyprscrolling layout binds
+# hyprscrolling layout binds
+bind = $mainMod+SHIFT, H, layoutmsg, movewindowto l #HYPRSCROLLING
+bind = $mainMod+SHIFT, J, layoutmsg, movewindowto d #HYPRSCROLLING
+bind = $mainMod+SHIFT, K, layoutmsg, movewindowto u #HYPRSCROLLING
+bind = $mainMod+SHIFT, L, layoutmsg, movewindowto r #HYPRSCROLLING
+bind = $mainMod+CONTROL, H, layoutmsg, swapcol l
+bind = $mainMod+CONTROL, L, layoutmsg, swapcol r
+bind = $mainMod, H, layoutmsg, focus l #HYPRSCROLLING
+bind = $mainMod, J, layoutmsg, focus d #HYPRSCROLLING
+bind = $mainMod, K, layoutmsg, focus u #HYPRSCROLLING
+bind = $mainMod, L, layoutmsg, focus r #HYPRSCROLLING
+bind = $mainMod+SHIFT, R, layoutmsg, colresize +conf #HYPRSCROLLING
+bind = $mainMod+SHIFT, Return, layoutmsg, promote #HYPRSCROLLING
+#}}}
+
+#{{{ tab binds
+bind = $mainMod+ALT, O, togglegroup
+bind = $mainMod+ALT, J, changegroupactive, f
+bind = $mainMod+ALT, K, changegroupactive, b
#}}}
#{{{ Group binds
@@ -250,7 +316,7 @@ bind = $mainMod, N, exec, pypr toggle_special
bind = $mainMod SHIFT, N, togglespecialworkspace, minimized
#}}}
-#{{{ Workspace binds (using split-monitor-workspaces plugin!)
+#{{{ Workspace binds (using hyprsplit plugin!)
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, split:workspace, 1
bind = $mainMod, 2, split:workspace, 2
@@ -289,6 +355,42 @@ bind = $mainMod SHIFT, comma, movewindow, mon:-1
bind = $mainMod SHIFT, period, movewindow, mon:+1
#}}}
+#{{{ Workspace binds (not using hyprsplit 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, 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
@@ -307,11 +409,12 @@ 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, E, exec, sh -c "tofi-drun --drun-launch=true -c $HOME/.config/tofi/themes/dmenu_vertical"
+bind = $mainMod, D, exec, sh -c "$(tofi-run -c $HOME/.config/tofi/themes/dmenu_vertical)"
+bind = $mainMod, R, exec, rs
bind = $mainMod $secdMod, Q, exec, qbc
bind = $mainMod $secdMod, W, exec, lwc
-bind = $mainMod $secdMod, E, exec, mbc
+bind = $mainMod $secdMod, E, exec, brc
bind = $mainMod $secdMod, R, exec, ffc
bind = $mainMod $secdMod, 1, exec, bm
bind = $mainMod $secdMod, comma, exec, dmount -p
@@ -323,91 +426,29 @@ bind = $mainMod $secdMod, P, exec, passmenu
#{{{ Misc bindings
bind = $mainMod, Return, exec, kitty
-bind = $mainMod $secdMod, F, exec, kitty -e lf
+bind = $mainMod $secdMod, F, exec, kitty 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, Comma, exec, acpi-notify.sh
+#bind = $mainMod, Comma, exec, acpi-notify.sh
#bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1
#}}}
#{{{ Scratchpads
bind = $mainMod CONTROL, Z, exec, pypr toggle sphtop
-$sphtop = class:^(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 = class:^(spterm)$
-windowrule = float,$spterm
-windowrule = workspace special:spterm silent,$spterm
-windowrule = size 50% 50%,$spterm
-windowrule = move 25% 25%,$spterm
bind = $mainMod CONTROL, C, exec, pypr toggle sppmxr
-$sppmxr = class:^(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 = class:^(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 = class:^(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 = class:^(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 = class:^(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 = class:^(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 = class:^(sptodo)$
-windowrule = float,$sptodo
-windowrule = workspace special:sptodo silent,$sptodo
-windowrule = size 50% 50%,$sptodo
-windowrule = move 25% 25%,$sptodo
+bind = $mainMod CONTROL, F, exec, pypr toggle spvimw
bind = $mainMod CONTROL, G, exec, pypr toggle sptrmc
-$sptrmc = class:^(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 = class:^(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 = class:^(com\.github\.wwmm\.easyeffects)$
-windowrule = float,$speasy
-windowrule = workspace special:speasy silent,$speasy
-windowrule = size 50% 50%,$speasy
-windowrule = move 25% 25%,$speasy
+bind = $mainMod CONTROL, Q, exec, pypr toggle helvum
+bind = $mainMod CONTROL, E, exec, pypr toggle easyfx
#}}}
#{{{ OBS bindings