From d2eb1117491d91ac0bf7e2bbe90d60d000314375 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 2 Jan 2024 15:50:25 -0600 Subject: hypr: Adding in pyprland and hyprload extensions We're going to be using two extensions, so naturally we need to have two extension managers (-_-). This should configure both the pyprland and hyprload widgets in full, assuming both are already installed. --- hypr/hyprland.conf | 417 +++++++++++++++++++++++++++++++++++++++++++++++++++++ hypr/hyprload.toml | 3 + hypr/pyprland.toml | 77 ++++++++++ 3 files changed, 497 insertions(+) create mode 100644 hypr/hyprland.conf create mode 100644 hypr/hyprload.toml create mode 100644 hypr/pyprland.toml 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" -- cgit v1.2.3