summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hypr/hyprland.conf417
-rw-r--r--hypr/hyprload.toml3
-rw-r--r--hypr/pyprland.toml77
3 files changed, 497 insertions, 0 deletions
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
new file mode 100644
index 0000000..153ff91
--- /dev/null
+++ b/hypr/hyprland.conf
@@ -0,0 +1,417 @@
+# 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 = $HOME/.local/share/hyprload/hyprload.sh
+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
+ 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 {
+ enable_swallow = true
+ swallow_regex = ^(kitty)$
+ vfr = false
+}
+#}}}
+
+#{{{ 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 = true
+ orientation = left
+ inherit_fullscreen = true
+}
+#}}}
+
+#{{{ Gestures options
+gestures {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = off
+}
+#}}}
+
+#{{{ Device options
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
+device:epic mouse V1 {
+ sensitivity = -0.5
+}
+#}}}
+
+#{{{ 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)$
+windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$
+windowrulev2 = float,floating:0,title:^(menu*)
+windowrulev2 = forceinput,title:^(menu*)
+windowrulev2 = windowdance,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
+#}}}
+
+#{{{ 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
+#}}}
+
+#{{{ Workspace binds (implied 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
+#}}}
+
+#{{{ 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 lfrun
+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
+#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
+bindel = , XF86MonBrightnessUp, exec, bl -i
+bindel = , XF86MonBrightnessDown, exec, bl -d
+bindl = $mainMod, XF86MonBrightnessUp, exec, bl -s 100
+bindl = $mainMod, XF86MonBrightnessDown, exec, bl -s 1
+bind = , Print, exec, scrshot
+#}}}
diff --git a/hypr/hyprload.toml b/hypr/hyprload.toml
new file mode 100644
index 0000000..65e668c
--- /dev/null
+++ b/hypr/hyprload.toml
@@ -0,0 +1,3 @@
+plugins = [
+ "Duckonaut/split-monitor-workspaces",
+]
diff --git a/hypr/pyprland.toml b/hypr/pyprland.toml
new file mode 100644
index 0000000..600c30a
--- /dev/null
+++ b/hypr/pyprland.toml
@@ -0,0 +1,77 @@
+[pyprland]
+plugins = [
+ "scratchpads",
+]
+
+[scratchpads.sphtop]
+animation = ""
+command = "kitty --class sphtop htop"
+class = "sphtop"
+lazy = true
+
+[scratchpads.spterm]
+animation = ""
+command = "kitty --class spterm"
+class = "spterm"
+lazy = true
+
+[scratchpads.sppmxr]
+animation = ""
+command = "kitty --class sppmxr pulsemixer"
+class = "sppmxr"
+lazy = true
+
+[scratchpads.spblue]
+animation = ""
+command = "kitty --class spblue bluetoothctl"
+class = "spblue"
+lazy = true
+
+[scratchpads.spncmp]
+animation = ""
+command = "kitty --class spncmp ncmpcpp"
+class = "spncmp"
+lazy = true
+
+[scratchpads.spmutt]
+animation = ""
+command = "kitty --class spmutt neomutt"
+class = "spmutt"
+lazy = true
+
+[scratchpads.spprof]
+animation = ""
+command = "kitty --class spprof profanity"
+class = "spprof"
+lazy = true
+
+[scratchpads.spirss]
+animation = ""
+command = "kitty --class spirss irssi"
+class = "spirss"
+lazy = true
+
+[scratchpads.sptodo]
+animation = ""
+command = "kitty --class sptodo todo"
+class = "sptodo"
+lazy = true
+
+[scratchpads.sptrmc]
+animation = ""
+command = "kitty --class sptrmc tremc"
+class = "sptremc"
+lazy = true
+
+[scratchpads.qpwgraph]
+animation = ""
+command = "qpwgraph"
+class = "org.rncbc.qpwgraph"
+lazy = true
+
+[scratchpads.easyeffects]
+animation = ""
+command = "flatpak run com.github.wwmm.easyeffects"
+class = "com.github.wwmm.easyeffects"
+lazy = true
+unfocus = "hide"