summaryrefslogtreecommitdiff
path: root/hypr
diff options
context:
space:
mode:
Diffstat (limited to 'hypr')
-rw-r--r--hypr/hypridle.conf34
-rw-r--r--hypr/hyprland.conf465
-rw-r--r--hypr/hyprlock.conf55
-rw-r--r--hypr/hyprpaper.conf15
-rw-r--r--hypr/hyprscratch.conf126
-rw-r--r--hypr/pyprland.toml98
6 files changed, 478 insertions, 315 deletions
diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf
new file mode 100644
index 0000000..5494a33
--- /dev/null
+++ b/hypr/hypridle.conf
@@ -0,0 +1,34 @@
+general {
+ lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
+ before_sleep_cmd = loginctl lock-session # lock before suspend.
+ after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
+}
+
+listener {
+ timeout = 150 # 2.5min.
+ on-timeout = brightnessctl set 1 # set monitor backlight to minimum, avoid 0 on OLED monitor.
+ on-resume = brightnessctl -r # monitor backlight restore.
+}
+
+# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
+listener {
+ timeout = 150 # 2.5min.
+ on-timeout = brightnessctl -d tpacpi::kbd_backlight set 0 # turn off keyboard backlight.
+ on-resume = brightnessctl -rd tpacpi::kbd_backlight # turn on keyboard backlight.
+}
+
+listener {
+ timeout = 300 # 5min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+listener {
+ timeout = 330 # 5.5min
+ on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
+ on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
+}
+
+listener {
+ timeout = 1800 # 30min
+ on-timeout = systemctl suspend # suspend pc
+}
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
index e053008..1e558ef 100644
--- a/hypr/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -1,25 +1,70 @@
# See https://wiki.hyprland.org/Configuring/Monitors/
#{{{ Monitor config
+#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
+#{{{ 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 = ~/.config/autostart.sh
-exec-once = /usr/lib/polkit-kde-authentication-agent-1
-exec-once = xdph
exec-once = hyprpm reload -n
+#exec-once = dinit
+#exec-once = xdph
+exec-once = dinitctl start hyprpaper.user
+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'
+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 = dunst
+exec-once = hypridle
+exec-once = xwayland-satellite :1
+exec-once = bl-save
+#exec-once = mpd
+#}}}
+
+#{{{ env
+# Environment variables set at launch
+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)
# source = ~/.config/hypr/myColors.conf
+# Debug {{{
+debug {
+ enable_stdout_logs = false
+ disable_logs = true
+ full_cm_proto = true
+}
+# }}}
+
+# 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 {
@@ -33,7 +78,13 @@ input {
follow_mouse = 1
mouse_refocus = false
touchpad {
- natural_scroll = no
+ disable_while_typing = true
+ natural_scroll = false
+ tap_button_map = "lrm"
+ clickfinger_behavior = true
+ tap-to-click = true
+ drag_lock = false
+ tap-and-drag = true
}
float_switch_override_focus = 0
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
@@ -50,8 +101,13 @@ general {
#col.inactive_border = rgba(595959aa)
col.active_border = rgba(198844ee)
col.inactive_border = rgba(1b1d1cee)
- layout = master
- no_cursor_warps = false
+ layout = scrolling
+}
+#}}}
+
+#{{{ cursor
+cursor {
+ no_warps = false
}
#}}}
@@ -61,8 +117,9 @@ misc {
disable_splash_rendering = true
enable_swallow = true
swallow_regex = ^(kitty)$
- vfr = false
- vrr = true
+ swallow_exception_regex = ^(wev|.*ueberzug|n?vi?m? .*|.*dragon.*)$
+ vfr = true
+ vrr = 3
}
#}}}
@@ -70,10 +127,6 @@ misc {
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
@@ -83,13 +136,21 @@ decoration {
xray = true
}
#}}}
+ #{{{ Shadow options
+ shadow {
+ enabled = false
+ range = 4
+ render_power = 3
+ color = 0xee1a1a1a
+ }
+ #}}}
}
#}}}
#{{{ Animations options
animations {
- enabled = no
+ enabled = yes
# 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
@@ -115,11 +176,13 @@ 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
+ new_status = slave
+ new_on_top = false
+ new_on_active = before
+ #no_gaps_when_only = false
orientation = left
inherit_fullscreen = true
+ drop_at_cursor = true
}
#}}}
@@ -131,45 +194,63 @@ gestures {
#}}}
#{{{ plugin options
-#plugin {
-# split-monitor-workspaces {
-# count = 9
-# }
-#}
+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
+ }
+}
#}}}
#{{{ Windowrules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
-# windowrulev2 = float, class:^(kitty)$, title:^(kitty)$
+# windowrule = float, class:^(kitty)$, title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-windowrule = windowdance, title:^(Rhythm Doctor)$
-windowrule = fullscreen, ^(Xephyr)$
+windowrule = fullscreen, class:^(Xephyr)$
windowrule = float, title:^(LibreWolf - Choose User Profile)$
windowrule = float, class:^(xdg-desktop-portal-gtk)
+windowrule = float, title:^(UNDERTALE)$
windowrule = float, class:^(Tk)$
-windowrule = workspace 2, title:^(REAPER .*initializing.*)$
-windowrulev2 = stayfocused, title:^()$,class:^(steam)$
-windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$
+windowrule = float, class:^(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, class:^(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 = 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 = float, floating:0, title:^(menu)$
#windowrulev2 = forceinput, title:^(menu)$
-#windowrulev2 = windowdance, title:^(menu)$
-#windowrulev2 = nofocus, title:^(menu)$, class:^(yabridge\-host\.exe\.so)$
+windowrulev2 = workspace special:easyeffects silent, class: ^(com\.github\.wwmm\.easyeffects)$
+# Fix brave xray menus
+windowrulev2 = xray 0, class: ^(\s*), title: ^(\s*)$
+#}}}
+
+#{{{ Layerrules
+layerrule = blur, waybar
#}}}
#{{{ Mods
@@ -184,39 +265,46 @@ $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
-#}}}
-
-#{{{ 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
+## 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, move -1 #HYPRSCROLLING
+#bind = $mainMod+SHIFT, L, layoutmsg, move +1 #HYPRSCROLLING
+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, exec, hyprswap.sh -l
+bind = $mainMod+CONTROL, L, exec, hyprswap.sh -r
+#bind = $mainMod+SHIFT, H, movewindow, l #HYPRSCROLLING
+#bind = $mainMod+SHIFT, L, movewindow, r #HYPRSCROLLING
+#bind = $mainMod+SHIFT, K, movewindow, u #HYPRSCROLLING
+#bind = $mainMod+SHIFT, J, movewindow, d #HYPRSCROLLING
+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
@@ -230,6 +318,10 @@ bind = $mainMod, O, splitratio, exact 0.69 #MASTER
#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,
@@ -241,76 +333,79 @@ 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
-#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
+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
+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
+#}}}
+
+#{{{ 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
@@ -331,11 +426,12 @@ 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, 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
@@ -347,92 +443,29 @@ 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 $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
-#bindr = , XF86AudioMicMute, exec, volsv -m
-bind = $mainMod CONTROL, M, exec, volsv -m
-bindr = $mainMod CONTROL, M, exec, volsv -m
+bind = $mainMod Control, M, exec, volsv -m
+#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 = ^(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
+bind = $mainMod CONTROL, Z, exec, hyprscratch toggle sphtop
+bind = $mainMod CONTROL, X, exec, hyprscratch toggle spterm
+bind = $mainMod CONTROL, C, exec, hyprscratch toggle sppmxr
+bind = $mainMod CONTROL, V, exec, hyprscratch toggle spblue
+bind = $mainMod CONTROL, B, exec, hyprscratch toggle spncmp
+bind = $mainMod CONTROL, A, exec, hyprscratch toggle spmutt
+bind = $mainMod CONTROL, S, exec, hyprscratch toggle spprof
+bind = $mainMod CONTROL, D, exec, hyprscratch toggle spirss
+bind = $mainMod CONTROL, F, exec, hyprscratch toggle spvimw
+bind = $mainMod CONTROL, G, exec, hyprscratch toggle sptrmc
+bind = $mainMod CONTROL, Q, exec, hyprscratch toggle helvum
+bind = $mainMod CONTROL, E, exec, hyprscratch toggle easyeffects
#}}}
#{{{ OBS bindings
diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf
new file mode 100644
index 0000000..8ee636d
--- /dev/null
+++ b/hypr/hyprlock.conf
@@ -0,0 +1,55 @@
+general {
+ hide_cursor = true
+ immediate_render = true
+}
+
+animations {
+ enabled = false
+}
+
+background {
+ monitor =
+ path =
+ color = rgba(0, 0, 0, 1.0)
+
+ # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
+ #blur_passes = 0 # 0 disables blurring
+ #blur_size = 7
+ #noise = 0.0117
+ #contrast = 0.8916
+ #brightness = 0.8172
+ #vibrancy = 0.1696
+ #vibrancy_darkness = 0.0
+}
+
+input-field {
+ monitor =
+ size = 200, 50
+ outline_thickness = 3
+ dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = false
+ dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
+ outer_color = rgb(151515)
+ inner_color = rgb(200, 200, 200)
+ font_color = rgb(10, 10, 10)
+ fade_on_empty = true
+ fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
+ placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
+ hide_input = false
+ rounding = -1 # -1 means complete rounding (circle/oval)
+ check_color = rgb(204, 136, 34)
+ fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
+ fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
+ #fail_transition = 300 # transition time in ms between normal outer_color and fail_color
+ capslock_color = -1
+ numlock_color = -1
+ bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
+ invert_numlock = false # change color if numlock is off
+ swap_font_color = false # see below
+
+ position = 0, -20
+ halign = center
+ valign = center
+}
+
diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf
index 69e5224..728c00c 100644
--- a/hypr/hyprpaper.conf
+++ b/hypr/hyprpaper.conf
@@ -1,2 +1,15 @@
-splash = false
preload = ~/Pictures/background.png
+#if more than one preload is desired then continue to preload other backgrounds
+#preload = /path/to/next_image.png
+# .. more preloads
+
+#set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used
+wallpaper = eDP-1,~/Pictures/background.png
+wallpaper = HDMI-A-1,~/Pictures/background.png
+wallpaper = HDMI-A-2,~/Pictures/background.png
+wallpaper = DP-1,~/Pictures/background.png
+wallpaper = DP-2,~/Pictures/background.png
+#if more than one monitor in use, can load a 2nd image
+#wallpaper = monitor2,~/background.png
+# .. more monitors
+splash = false
diff --git a/hypr/hyprscratch.conf b/hypr/hyprscratch.conf
new file mode 100644
index 0000000..5964419
--- /dev/null
+++ b/hypr/hyprscratch.conf
@@ -0,0 +1,126 @@
+# Optional globals that apply to all scratchpads
+daemon_options = clean
+daemon_options = eager
+
+global_rules = size 50% 50%
+
+sphtop {
+ # Mandatory fields
+ title = sphtop
+ command = kitty -T sphtop htop
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+spterm {
+ # Mandatory fields
+ title = spterm
+ command = kitty -T spterm
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+sppmxr {
+ # Mandatory fields
+ title = sppmxr
+ command = kitty -T sppmxr pulsemixer
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+spblue {
+ # Mandatory fields
+ title = spblue
+ command = kitty -T spblue bluetoothctl
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+spncmp {
+ # Mandatory fields
+ title = spncmp
+ command = kitty -T spncmp ncmpcpp
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+spmutt {
+ # Mandatory fields
+ title = spmutt
+ command = kitty -T spmutt neomutt
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+spprof {
+ # Mandatory fields
+ title = spprof
+ command = kitty -T spprof profanity
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+spirss {
+ # Mandatory fields
+ title = spirss
+ command = kitty -T spirss irssi
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+spvimw {
+ # Mandatory fields
+ title = spvimw
+ command = kitty -T spvimw nvim +VimwikiIndex
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+sptrmc {
+ # Mandatory fields
+ title = sptrmc
+ command = kitty -T sptrmc tremc
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+helvum {
+ # Mandatory fields
+ title = Helvum - Pipewire Patchbay
+ command = helvum
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
+easyeffects {
+ # Mandatory fields
+ title = Easy Effects
+ command = easyeffects
+
+ # Optional fields
+ options = lazy
+ options = special
+}
+
diff --git a/hypr/pyprland.toml b/hypr/pyprland.toml
index dfa2aab..cacd7f1 100644
--- a/hypr/pyprland.toml
+++ b/hypr/pyprland.toml
@@ -1,103 +1,5 @@
[pyprland]
plugins = [
- "scratchpads",
"toggle_special",
"expose"
]
-
-[scratchpads.sphtop]
-animation = ""
-command = "kitty --class sphtop htop"
-class = "sphtop"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.spterm]
-animation = ""
-command = "kitty --class spterm"
-class = "spterm"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.sppmxr]
-animation = ""
-command = "kitty --class sppmxr pulsemixer"
-class = "sppmxr"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.spblue]
-animation = ""
-command = "kitty --class spblue bluetoothctl"
-class = "spblue"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.spncmp]
-animation = ""
-command = "kitty --class spncmp ncmpcpp"
-class = "spncmp"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.spmutt]
-animation = ""
-command = "kitty --class spmutt neomutt"
-class = "spmutt"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.spprof]
-animation = ""
-command = "kitty --class spprof profanity"
-class = "spprof"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.spirss]
-animation = ""
-command = "kitty --class spirss irssi"
-class = "spirss"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.sptodo]
-animation = ""
-command = "kitty --class sptodo todo"
-class = "sptodo"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.sptrmc]
-animation = ""
-command = "kitty --class sptrmc tremc"
-class = "sptremc"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.qpwgraph]
-animation = ""
-command = "qpwgraph"
-class = "org.rncbc.qpwgraph"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-
-[scratchpads.easyeffects]
-animation = ""
-command = "flatpak run com.github.wwmm.easyeffects"
-class = "com.github.wwmm.easyeffects"
-lazy = true
-size = "50% 50%"
-position = "25% 25%"
-unfocus = "hide"