-# begin
+# kak: filetype=conf:tabwidth=4:indentwidth=4:ai
+
+# modifiers
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
$suremod = SUPER ALT CTRL
$mainmod = SUPER
# mainmod shortcuts
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
+# example: bind = $mainmod Shift, Return, exec, [float; size 1280 800;] foot -o pad=0x0
bind = $mainmod, Return, exec, foot
-bind = $mainmod Shift, Q, killactive,
-bind = $mainmod Shift, Return, exec, foot -w 1280x800 -o pad=0x0 -a popup
-bind = $mainmod, P, exec, foot -w 640x400 -a popup -H hyprpicker #color Pipette
-bind = $mainmod, D, exec, killall fuzzel || fuzzel
-bind = $mainmod Shift, D, exec, killall fuzzel || fuzzel --config="$HOME"/.config/fuzzel/fuzzel-centered.ini
+bind = $mainmod Shift, Q, killactive,
+bind = $mainmod Shift, Return, exec, foot -w 1280x800 -o pad=0x0 -a popup
+bind = $mainmod, A, pseudo, # dwindle, A for Artificial
+bind = $mainmod, B, exec, $HOME/.config/hypr/scripts/browser_focus_or_run.sh
+bind = $mainmod, D, exec, killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-startmenu.ini
+bind = $mainmod Shift, D, exec, killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-centered.ini
bind = $mainmod, E, exec, foot -a lf lfrun
-bind = $mainmod SHIFT, E, exec, dolphin
+bind = $mainmod SHIFT, E, exec, dolphin
bind = $mainmod, F, fullscreen,1
-bind = $mainmod Shift, F, fullscreen,0
-bind = $mainmod, V, togglefloating
-bind = $mainmod Shift, V, exec, killall fuzzel || cliphist list | fuzzel -d --config="$HOME"/.config/fuzzel/fuzzel-centered.ini | cliphist decode | wl-copy
-bind = $mainmod, A, pseudo, # dwindle, A for Artificial
-bind = $mainmod, B, layoutmsg, preselect d # dwindle
-bind = $mainmod, S, togglesplit, # dwindle
-bind = $mainmod Shift, S, swapsplit, # dwindle
+bind = $mainmod Shift, F, fullscreen,0
bind = $mainmod, G, togglegroup
-bind = $mainmod SHIFT, G, lockactivegroup, toggle
-bind = $mainmod CTRL, G, denywindowfromgroup, toggle
-bind = $mainmod ALT, G, moveoutofgroup, active
-bind = $mainmod, W, exec, $HOME/.local/bin/wb hide
-bind = $mainmod SHIFT, W, exec, $HOME/.local/bin/wb reload
+bind = $mainmod SHIFT, G, lockactivegroup, toggle
+bind = $mainmod CTRL, G, denywindowfromgroup, toggle
+bind = $mainmod ALT, G, moveoutofgroup, active
+bind = $mainmod, M, togglespecialworkspace, magic
+bind = $mainmod, M, movetoworkspace, +0
+bind = $mainmod, M, togglespecialworkspace, magic
+bind = $mainmod, M, movetoworkspace, special:magic
+bind = $mainmod, M, togglespecialworkspace, magic
+bind = $mainmod, P, exec, foot -w 640x400 -a popup -H hyprpicker #color Pipette
+bind = $mainmod, S, layoutmsg, swapwithmaster # master
+bind = $mainmod, S, togglesplit, # dwindle
+bind = $mainmod Shift, S, swapsplit, # dwindle
+bind = $mainmod, V, togglefloating
+bind = $mainmod Shift, V, exec, killall fuzzel || cliphist list | fuzzel -d --config=$HOME/.config/fuzzel/fuzzel-centered.ini | cliphist decode | wl-copy
+bind = $mainmod, W, exec, killall -SIGUSR1 waybar
+bind = $mainmod SHIFT, W, exec, killall -SIGUSR2 waybar
bind = $mainmod, grave, exec, ~/.config/hypr/scripts/RofiEmoji.sh
bind = $mainmod, Z, overview:toggle
# scratchpad
bind = $mainmod, I, togglespecialworkspace, overlay
-bind = $mainmod SHIFT, I, movetoworkspace, special:overlay
+bind = $mainmod SHIFT, I, movetoworkspace, special:overlay
# suremod keys (prevent fat-fingering 'em by accident)
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
-bind = $suremod, M, exit,
-bind = $suremod, Return, exec, konsole # backup terminal app
+bind = $suremod, E, exit,
+bind = $suremod, Return, exec, konsole # fallback terminal app
bind = $suremod, G, exec, ~/.config/hypr/scripts/gamemode.sh
bind = $suremod, L, exec, ~/.config/hypr/scripts/powermenu.sh
-# misc keys (mostly redundant, but some habits die hard)
+# misc keys
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
-bind = $mainmod, Print, exec, hyprshot -m output -m active -o /home/andy/Bilder/Screenshots
-bind = SHIFT, Print, exec, hyprshot -m window -m active -o /home/andy/Bilder/Screenshots
-bind = CTRL, Print, exec, hyprshot -z -m region -o /home/andy/Bilder/Screenshots
+bind = $mainmod, Print, exec, hyprshot -m output -m active -o $HOME/Bilder/Screenshots
+bind = SHIFT, Print, exec, hyprshot -m window -m active -o $HOME/Bilder/Screenshots
+bind = CTRL, Print, exec, hyprshot -z -m region -o $HOME/Bilder/Screenshots
bind = ALT SHIFT, F12, exec, ~/.config/hypr/scripts/gamemode.sh
bind = ALT CTRL, L, exec, hyprlock
# media keys
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
-bindl = , XF86AudioRaiseVolume, exec, wp+
-bindl = , XF86AudioLowerVolume, exec, wp-
-bindl = , XF86AudioMute, exec, ~/.config/hypr/scripts/muteorunmute.sh
-bindl = , XF86AudioPlay, exec, playerctl play-pause
-bindl = , XF86AudioNext, exec, playerctl next
-bindl = , XF86AudioPrev, exec, playerctl previous
-bindl = , XF86audiostop, exec, playerctl stop
-
-# disabled because hyprshell
+bindl = , XF86AudioRaiseVolume, exec, wp+
+bindl = , XF86AudioLowerVolume, exec, wp-
+bindl = , XF86AudioMute, exec, ~/.config/hypr/scripts/muteorunmute.sh
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPrev, exec, playerctl previous
+bindl = , XF86audiostop, exec, playerctl stop
+
+# client switcher
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
bind = $mainmod, TAB, exec, ~/.config/hypr/scripts/windowswitch-rg.sh
bind = ALT, TAB, focuscurrentorlast
bind = $mainmod, J, movefocus, d
# move windows or entire groups
-bind = $mainmod SHIFT, left, movewindow, l
-bind = $mainmod SHIFT, right, movewindow, r
-bind = $mainmod SHIFT, up, movewindow, u
-bind = $mainmod SHIFT, down, movewindow, d
-bind = $mainmod SHIFT, H, movewindow, l
-bind = $mainmod SHIFT, L, movewindow, r
-bind = $mainmod SHIFT, K, movewindow, u
-bind = $mainmod SHIFT, J, movewindow, d
+bind = $mainmod SHIFT, left, movewindow, l
+bind = $mainmod SHIFT, right, movewindow, r
+bind = $mainmod SHIFT, up, movewindow, u
+bind = $mainmod SHIFT, down, movewindow, d
+bind = $mainmod SHIFT, H, movewindow, l
+bind = $mainmod SHIFT, L, movewindow, r
+bind = $mainmod SHIFT, K, movewindow, u
+bind = $mainmod SHIFT, J, movewindow, d
# Move windows into or out of groups with $suremod
-bind = $mainmod CTRL, left, movewindoworgroup, l
-bind = $mainmod CTRL, right, movewindoworgroup, r
-bind = $mainmod CTRL, up, movewindoworgroup, u
-bind = $mainmod CTRL, down, movewindoworgroup, d
-bind = $mainmod CTRL, H, movewindoworgroup, l
-bind = $mainmod CTRL, L, movewindoworgroup, r
-bind = $mainmod CTRL, K, movewindoworgroup, u
-bind = $mainmod CTRL, J, movewindoworgroup, d
+bind = $mainmod CTRL, left, movewindoworgroup, l
+bind = $mainmod CTRL, right, movewindoworgroup, r
+bind = $mainmod CTRL, up, movewindoworgroup, u
+bind = $mainmod CTRL, down, movewindoworgroup, d
+bind = $mainmod CTRL, H, movewindoworgroup, l
+bind = $mainmod CTRL, L, movewindoworgroup, r
+bind = $mainmod CTRL, K, movewindoworgroup, u
+bind = $mainmod CTRL, J, movewindoworgroup, d
# preselect direction for new windows
bind = ALT CTRL, left, layoutmsg, preselect l
# move through group windows
bind = $mainmod, O, changegroupactive, f
bind = $mainmod, U, changegroupactive, b
-bind = $mainmod SHIFT, O, movegroupwindow, f
-bind = $mainmod SHIFT, U, movegroupwindow, b
+bind = $mainmod SHIFT, O, movegroupwindow, f
+bind = $mainmod SHIFT, U, movegroupwindow, b
# Move floating windows u/d/l/r
-bind = $mainmod ALT, left, moveactive, -40 0
-bind = $mainmod ALT, right, moveactive, 40 0
-bind = $mainmod ALT, up, moveactive, 0 -40
-bind = $mainmod ALT, down, moveactive, 0 40
-bind = $mainmod ALT, H, moveactive, -40 0
-bind = $mainmod ALT, L, moveactive, 40 0
-bind = $mainmod ALT, K, moveactive, 0 -40
-bind = $mainmod ALT, J, moveactive, 0 40
+bind = $mainmod ALT, left, moveactive, -40 0
+bind = $mainmod ALT, right, moveactive, 40 0
+bind = $mainmod ALT, up, moveactive, 0 -40
+bind = $mainmod ALT, down, moveactive, 0 40
+bind = $mainmod ALT, H, moveactive, -40 0
+bind = $mainmod ALT, L, moveactive, 40 0
+bind = $mainmod ALT, K, moveactive, 0 -40
+bind = $mainmod ALT, J, moveactive, 0 40
# workspaces
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
# Roll between workspaces
-bind = $mainmod, PLUS, exec, ~/.config/hypr/scripts/workspace.sh +
-bind = $mainmod, MINUS, exec, ~/.config/hypr/scripts/workspace.sh -
-bind = $mainmod SHIFT, PLUS, exec, ~/.config/hypr/scripts/workspace.sh + mv
-bind = $mainmod SHIFT, MINUS, exec, ~/.config/hypr/scripts/workspace.sh - mv
+bind = $mainmod, PLUS, exec, ~/.config/hypr/scripts/workspace.sh +
+bind = $mainmod, MINUS, exec, ~/.config/hypr/scripts/workspace.sh -
+bind = $mainmod SHIFT, PLUS, exec, ~/.config/hypr/scripts/workspace.sh + mv
+bind = $mainmod SHIFT, MINUS, exec, ~/.config/hypr/scripts/workspace.sh - mv
# Switch workspaces with mainMod + [0-9]
bind = $mainmod, 1, exec, ~/.config/hypr/scripts/workspace.sh 1
bind = $mainmod, 0, exec, ~/.config/hypr/scripts/workspace.sh 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
-bind = $mainmod SHIFT, 1, exec, ~/.config/hypr/scripts/workspace.sh 1 mv
-bind = $mainmod SHIFT, 2, exec, ~/.config/hypr/scripts/workspace.sh 2 mv
-bind = $mainmod SHIFT, 3, exec, ~/.config/hypr/scripts/workspace.sh 3 mv
-bind = $mainmod SHIFT, 4, exec, ~/.config/hypr/scripts/workspace.sh 4 mv
-bind = $mainmod SHIFT, 5, exec, ~/.config/hypr/scripts/workspace.sh 5 mv
-bind = $mainmod SHIFT, 6, exec, ~/.config/hypr/scripts/workspace.sh 6 mv
-bind = $mainmod SHIFT, 7, exec, ~/.config/hypr/scripts/workspace.sh 7 mv
-bind = $mainmod SHIFT, 8, exec, ~/.config/hypr/scripts/workspace.sh 8 mv
-bind = $mainmod SHIFT, 9, exec, ~/.config/hypr/scripts/workspace.sh 9 mv
-bind = $mainmod SHIFT, 0, exec, ~/.config/hypr/scripts/workspace.sh 10 mv
+bind = $mainmod SHIFT, 1, exec, ~/.config/hypr/scripts/workspace.sh 1 mv
+bind = $mainmod SHIFT, 2, exec, ~/.config/hypr/scripts/workspace.sh 2 mv
+bind = $mainmod SHIFT, 3, exec, ~/.config/hypr/scripts/workspace.sh 3 mv
+bind = $mainmod SHIFT, 4, exec, ~/.config/hypr/scripts/workspace.sh 4 mv
+bind = $mainmod SHIFT, 5, exec, ~/.config/hypr/scripts/workspace.sh 5 mv
+bind = $mainmod SHIFT, 6, exec, ~/.config/hypr/scripts/workspace.sh 6 mv
+bind = $mainmod SHIFT, 7, exec, ~/.config/hypr/scripts/workspace.sh 7 mv
+bind = $mainmod SHIFT, 8, exec, ~/.config/hypr/scripts/workspace.sh 8 mv
+bind = $mainmod SHIFT, 9, exec, ~/.config/hypr/scripts/workspace.sh 9 mv
+bind = $mainmod SHIFT, 0, exec, ~/.config/hypr/scripts/workspace.sh 10 mv
# Move active window in the background to a workspace with mainMod + CRTL + [0-9]
-bind = $mainmod CTRL, 1, exec, ~/.config/hypr/scripts/workspace.sh 1 mv s
-bind = $mainmod CTRL, 2, exec, ~/.config/hypr/scripts/workspace.sh 2 mv s
-bind = $mainmod CTRL, 3, exec, ~/.config/hypr/scripts/workspace.sh 3 mv s
-bind = $mainmod CTRL, 4, exec, ~/.config/hypr/scripts/workspace.sh 4 mv s
-bind = $mainmod CTRL, 5, exec, ~/.config/hypr/scripts/workspace.sh 5 mv s
-bind = $mainmod CTRL, 6, exec, ~/.config/hypr/scripts/workspace.sh 6 mv s
-bind = $mainmod CTRL, 7, exec, ~/.config/hypr/scripts/workspace.sh 7 mv s
-bind = $mainmod CTRL, 8, exec, ~/.config/hypr/scripts/workspace.sh 8 mv s
-bind = $mainmod CTRL, 9, exec, ~/.config/hypr/scripts/workspace.sh 9 mv s
-bind = $mainmod CTRL, 0, exec, ~/.config/hypr/scripts/workspace.sh 10 mv s
+bind = $mainmod CTRL, 1, exec, ~/.config/hypr/scripts/workspace.sh 1 mv s
+bind = $mainmod CTRL, 2, exec, ~/.config/hypr/scripts/workspace.sh 2 mv s
+bind = $mainmod CTRL, 3, exec, ~/.config/hypr/scripts/workspace.sh 3 mv s
+bind = $mainmod CTRL, 4, exec, ~/.config/hypr/scripts/workspace.sh 4 mv s
+bind = $mainmod CTRL, 5, exec, ~/.config/hypr/scripts/workspace.sh 5 mv s
+bind = $mainmod CTRL, 6, exec, ~/.config/hypr/scripts/workspace.sh 6 mv s
+bind = $mainmod CTRL, 7, exec, ~/.config/hypr/scripts/workspace.sh 7 mv s
+bind = $mainmod CTRL, 8, exec, ~/.config/hypr/scripts/workspace.sh 8 mv s
+bind = $mainmod CTRL, 9, exec, ~/.config/hypr/scripts/workspace.sh 9 mv s
+bind = $mainmod CTRL, 0, exec, ~/.config/hypr/scripts/workspace.sh 10 mv s
# mouse binds
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
binds {
- drag_threshold = 150
+ drag_threshold = 50
scroll_event_delay = 40
}
input {
# LMB = 272 // RMB = 273
-bind = $mainmod, mouse_down, exec, ~/.config/hypr/scripts/workspace.sh -
-bind = $mainmod, mouse_up, exec, ~/.config/hypr/scripts/workspace.sh +
-bind = $mainmod, mouse_left, exec, ~/.config/hypr/scripts/workspace.sh - mv
-bind = $mainmod, mouse_right, exec, ~/.config/hypr/scripts/workspace.sh + mv
-bind = $mainmod, mouse_left, exec, ~/.config/hypr/scripts/workspace.sh - mv s
-bind = $mainmod, mouse_right, exec, ~/.config/hypr/scripts/workspace.sh + mv s
+bind = $mainmod, mouse_down, exec, ~/.config/hypr/scripts/workspace.sh -
+bind = $mainmod, mouse_up, exec, ~/.config/hypr/scripts/workspace.sh +
+bind = $mainmod, mouse_left, exec, ~/.config/hypr/scripts/workspace.sh - mv
+bind = $mainmod, mouse_right, exec, ~/.config/hypr/scripts/workspace.sh + mv
+bind = $mainmod, mouse_left, exec, ~/.config/hypr/scripts/workspace.sh - mv s
+bind = $mainmod, mouse_right, exec, ~/.config/hypr/scripts/workspace.sh + mv s
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainmod, mouse:272, movewindow
bindm = $mainmod, mouse:273, resizewindow
-bind = $mainmod SHIFT, mouse_down, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.25}')
-bind = $mainmod SHIFT, mouse_up, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 0.75}')
+bind = $mainmod SHIFT, mouse_down, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.25}')
+bind = $mainmod SHIFT, mouse_up, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 0.75}')
# submaps
submap = resize
# sets repeatable binds for resizing the active window
-binde = , right, resizeactive, 10 0
-binde = , left, resizeactive, -10 0
-binde = , up, resizeactive, 0 -10
-binde = , down, resizeactive, 0 10
-binde = , l, resizeactive, 10 0
-binde = , h, resizeactive, -10 0
-binde = , k, resizeactive, 0 -10
-binde = , j, resizeactive, 0 10
+binde = , right, resizeactive, 10 0
+binde = , left, resizeactive, -10 0
+binde = , up, resizeactive, 0 -10
+binde = , down, resizeactive, 0 10
+binde = , l, resizeactive, 10 0
+binde = , h, resizeactive, -10 0
+binde = , k, resizeactive, 0 -10
+binde = , j, resizeactive, 0 10
# use reset to go back to the global submap
bind = , catchall, submap, reset
submap = gaps
# sets repeatable binds for resizing the active window
-binde = , l, exec, ~/.config/hypr/scripts/gaps.sh --inc_gaps_in
-binde = , h, exec, ~/.config/hypr/scripts/gaps.sh --dec_gaps_in
-binde = , j, exec, ~/.config/hypr/scripts/gaps.sh --inc_gaps_out
-binde = , k, exec, ~/.config/hypr/scripts/gaps.sh --dec_gaps_out
-binde = , i, exec, ~/.config/hypr/scripts/gaps.sh --reset_gaps_in
-binde = , o, exec, ~/.config/hypr/scripts/gaps.sh --reset_gaps_out
+binde = , i, exec, ~/.config/hypr/scripts/gaps.sh --inc_gaps_in
+binde = SHIFT, i, exec, ~/.config/hypr/scripts/gaps.sh --dec_gaps_in
+binde = , o, exec, ~/.config/hypr/scripts/gaps.sh --inc_gaps_out
+binde = SHIFT, o, exec, ~/.config/hypr/scripts/gaps.sh --dec_gaps_out
+binde = CTRL, i, exec, ~/.config/hypr/scripts/gaps.sh --reset_gaps_in
+binde = CTRL, o, exec, ~/.config/hypr/scripts/gaps.sh --reset_gaps_out
# use reset to go back to the global submap
-bind = , catchall, submap, reset
+bind = , escape, submap, reset
# will reset the submap, which will return to the global submap
submap = reset
+# kak: filetype=conf:tabwidth=4:indentwidth=4:ai
+
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule
# hide hyprbars on non-floating windows
windowrule = plugin:hyprbars:nobar, ^floating:0
+# don't UW any window catchall
+windowrule = maxsize 1680 1200, class:^(.*)$
+
# handle plasma/kde/qt apps
windowrule = stayfocused, class: ^(org.kde.kwalletd6)$
windowrule = float, class:^(org.kde.*)$
# handle browsers
# windowrule = float, class:^(firefox.*)$
+windowrule = maxsize 1680 1200, class:^(firefox.*)$
+windowrule = center, class:^(firefox.*)$
windowrule = tag +neverdim, class:^(firefox.*)$
windowrule = maxsize 2543 1389 lock, class:^(org.qutebrowser.*)$
windowrule = minsize 1920 1200 lock, class:^(org.qutebrowser.*)$
windowrule = opacity 1.0 override 0.8 override, group, class:^(foot)$
windowrule = float, opacity 1.0 override 0.8 override, class:^(popup)$
windowrule = pseudo, class:^(ncmpcpp)$
+windowrule = workspace 4, class:^(ncmpcpp)$
+windowrule = noinitialfocus, class:^(ncmpcpp)$
windowrule = maxsize 60% 80%, class:^(ncmpcpp)$
windowrule = float, stayfocused, center, opacity 1.0 override, class:^(kakpopup)$
# handle other clients
-windowrule = float, class:^(discord.*)$
-windowrule = workspace 3, class:^(discord.*)$
windowrule = float, class:^(openrgb)$
windowrule = float, class:^(org.corectrl.CoreCtrl)$
windowrule = float, class:^(pavucontrol.*)$
+windowrule = maxsize 600 800, class:^(pavucontrol.*)$
windowrule = float, class:^(lutris)$
-windowrule = float, class:^(Threema.*)$
+windowrule = pseudo, class:^(Threema.*)$
windowrule = noinitialfocus, class:^(Threema.*)$
windowrule = workspace 3, class:^(Threema.*)$
+windowrule = pseudo, class:^(discord.*)$
+windowrule = noinitialfocus, class:^(discord.*)$
+windowrule = workspace 3, class:^(discord.*)$
windowrule = float, class:^(blueman-manager.*)$
windowrule = float, class:^(org.pulseaudio.pavucontrol.*)$
+windowrule = float, class:^(gimp.*)$
+windowrule = fullscreen, class:^(gimp.*)$
# handle ueberzugpp
windowrule = noanim, class:^(ueberzugpp.*)$
# handle steam client
windowrule = float, class:^(steam)$
-windowrule = suppressevent activatefocus, class:^(steam)$
-# windowrule = float, title:^(Steam)$
-# windowrule = float, title:^(Freundesliste)$
-# windowrule = stayfocused, title:^()$, class:^(steam)$
+windowrule = suppressevent activatefocus, class:^(steam)$, title:^(Steam)$
+windowrule = stayfocused, title:^()$, class:^(steam)$, title:^(Steam)$
windowrule = minsize 1 1, title:^()$, class:^(steam)$
windowrule = noanim 1, class:^(steam)$
windowrule = noblur 1, class:^(steam)$
windowrule = nodim 1, class:^(steam)$
windowrule = decorate 0, class:^(steam)$
windowrule = plugin:hyprbars:nobar,class:^(steam)$
-windowrule = plugin:hyprbars:nobar,title:^(Steam)$
-windowrule = plugin:hyprbars:nobar,title:^(Freundesliste)$
# handle wine/proton games
$GAMES = ^(steam_app_.*|steam_proton|streaming_client|gamescope)$
-windowrule = noanim, class:$GAMES
-windowrule = fullscreenstate 2 2, class:$GAMES
-windowrule = fullscreen, class:$GAMES
-windowrule = idleinhibit always, class:$GAMES
-# windowrule = immediate, class:$GAMES #experimental
-windowrule = plugin:hyprbars:nobar,class:$GAMES
-
-# tags for games
-windowrule = tag +game, class:^(.*)exe$
windowrule = tag +game, class:$GAMES
+
# handle TAGS (always handle tags last)
windowrule = nodim 1, tag:neverdim
+
windowrule = nodim 1, tag:game
windowrule = noblur 1, tag:game
windowrule = norounding 1, tag:game
windowrule = noshadow 1, tag:game
-windowrule = opaque, tag:game
-windowrule = stayfocused, tag:game
+windowrule = noanim 1, tag:game
+windowrule = opaque 1, tag:game
+windowrule = minsize 1280 800, tag:game
+windowrule = plugin:hyprbars:nobar, tag:game
+windowrule = idleinhibit always, tag:game
+windowrule = fullscreenstate 2 3, tag:game
+windowrule = fullscreen, tag:game
# windowrule = immediate, tag:game #experimental
-
-# kak: filetype=ini
+# kak: filetype=conf:tabwidth=4:indentwidth=4:ai
# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀
# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█
# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀i
source=./base16-colors.conf
-debug:disable_logs = true # file logging. defaults to 1 for production
+debug:disable_logs = false # file logging. defaults to 1 for production
# See https://wiki.hyprland.org/Configuring/Monitors/
-monitor=DP-1,preferred,0x0,1,vrr,3
-monitor=DP-2,preferred,auto-right,1,vrr,3
+monitorv2 {
+ output = DP-1
+ mode = preferred
+ position = 0x0
+ scale = 1
+ bitdepth = 8
+ cm = auto
+ sdrbrightness = 0.80
+ sdrsaturation = 1.00
+ sdr_min_luminance = 0.005
+ sdr_max_luminance = 245
+}
+
+monitor=,preferred,auto-center-right,1,vrr,2
# unscale XWayland
xwayland {
- force_zero_scaling = true
+ force_zero_scaling = true
}
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
exec-once = ~/.config/hypr/scripts/startup.sh
exec-once = hypridle
exec-once = hyprpm reload
-exec-once = hyprpaper
+exec-once = swww-daemon
exec-once = hyprsunset
exec-once = flatpak run ch.threema.threema-desktop
kb_rules =
follow_mouse = 1
- focus_on_close = 1
+ focus_on_close = 1
touchpad {
natural_scroll = no
}
-
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
cursor {
- enable_hyprcursor = 1
- no_hardware_cursors = 2
+ enable_hyprcursor = 1
+ # no_hardware_cursors = 2
}
-permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
-
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
- # col.active_border = 0xffffffff
- # col.inactive_border = 0xff444444
- # col.nogroup_border_active = 0xffff00ff
- # col.nogroup_border = 0xffffaaff
- border_size = 2
+ border_size = 2
gaps_in = 5
gaps_out = 10
- # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
- col.active_border = 0xfa$base0C 0xff$base0B 45deg
- col.inactive_border = 0xfa$base02
- col.nogroup_border_active = 0xff$base09
+ # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg #vanilla colors
+ col.active_border = 0xff$base0C 0x8a$base0D 45deg
+ col.inactive_border = 0xfa$base03 0x5a$base02 45deg
+ col.nogroup_border_active = 0xff$base0E 0x8a$base0E 45deg
col.nogroup_border = 0xfa$base02
- layout = dwindle
-
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = true
monitor_gap = 0
border_overlap = 0
}
+ layout = dwindle
}
dwindle {
force_split = 2
smart_split = false
split_width_multiplier = 2.0
+ single_window_aspect_ratio = 16.5 9
+ single_window_aspect_ratio_tolerance = 0.1
}
master {
special_scale_factor = .80
mfact = .45
orientation = center
- # slave_count_for_center_master = 0
+ slave_count_for_center_master = 2
+ center_master_fallback = left
inherit_fullscreen = false
- # center_master_slaves_on_right = false
}
decoration {
enabled = true
size = 8
passes = 1
- noise = 0.0117
- brightness = 0.8172
- contrast = 0.8916
+ noise = 0.0117
+ brightness = 0.8172
+ contrast = 0.8916
vibrancy = 0.1696
- ignore_opacity = true
+ ignore_opacity = true
}
shadow {
enabled = true
- range = 4
+ range = 8
render_power = 2
sharp = false
ignore_window = true
- color = 0xcc$base00
- color_inactive = 0x99$base00
+ color = 0xee$base00
+ color_inactive = 0x81$base02
offset = 0, 0
scale = 1.00
}
}
render {
- direct_scanout = false
+ direct_scanout = 2
+ cm_fs_passthrough = 0
+ cm_enabled = 1
+ send_content_type = 1
+ cm_auto_hdr = 1
+ new_render_scheduling = 1
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
- key_press_enables_dpms = true
- vfr = true #enable for battery savings
- render_unfocused_fps = 60
- allow_session_lock_restore = 1
- initial_workspace_tracking = 1
- font_family = ZedMono NFP
+ key_press_enables_dpms = true
+ vfr = true #enable for battery savings
+ render_unfocused_fps = 60
+ allow_session_lock_restore = 1
+ initial_workspace_tracking = 1
+ font_family = ZedMono NFP
}
# Example per-device config
}
group {
- merge_groups_on_drag = 0
- insert_after_current = 1
- col.border_locked_active = 0xfa$base09
- col.border_locked_inactive = 0xfa$base02
- col.border_active = 0xEE$base0C
- col.border_inactive = 0xfa$base02
+ merge_groups_on_drag = 0
+ insert_after_current = 1
+ col.border_active = 0xfa$base0C 0x7a$base0C 60deg
+ col.border_locked_active = 0xfa$base0D 0x7a$base0D 60deg
+ col.border_inactive = 0xfa$base03 0x7a$base03 60deg
+ col.border_locked_inactive = 0xfa$base03 0x7a$base03 60deg
groupbar {
enabled = 1
- font_family = ZedMono NFP
- font_weight_active = bold
- font_weight_inactive = normal
- #text_color_active = 0xff$base01
- #text_color_inactive = 0xff$base01
- height = 20
- indicator_gap = 0
- indicator_height = 0
- priority = 3
- font_size = 16
+ font_family = ZedMono NFP
+ font_size = 13
+ font_weight_active = normal
+ font_weight_inactive = normal
+ text_color = 0xff$base01
+ text_color_locked_active = 0xff$base05
+ text_color_inactive = 0xff$base01
+ text_color_locked_inactive = 0xff$base01
+ height = 20
+ font_size = 16
text_color = 0xFF$base00
- gradients = true
scrolling = false
- col.locked_active = 0xfa$base09 0x8a$base09 45deg
- col.locked_inactive = 0xfa$base04 0x8a$base04 45deg
- col.active = 0xfa$base0C 0x8a$base0C 45deg
- col.inactive = 0xfa$base04 0x8a$base04 45deg
- rounding = 4
- gradient_rounding = 4
+ col.active = 0xfa$base0C 0x7a$base0C 45deg
+ col.inactive = 0xfa$base03 0x6a$base03 45deg
+ col.locked_active = 0xfa$base0D 0x6a$base0D 45deg
+ col.locked_inactive = 0xfa$base03 0x6a$base03 45deg
+ indicator_gap = 1
+ indicator_height = 8
+ render_titles = false
+ priority = 3
+ rounding = 4
+ round_only_edges = true
+ gradients = false
+ gradient_rounding = 4
gradient_round_only_edges = true
- stacked = false
- gaps_in = 2
- gaps_out = 2
- keep_upper_gap = false
+ stacked = false
+ gaps_in = 2
+ gaps_out = 2
+ keep_upper_gap = true
}
}
plugin {
- hyprbars {
- bar_text_font = ZedMono NFP
- bar_text_size = 12
- bar_height = 24
- bar_color = 0xfb$base00
- col.text = 0xff$base05
- bar_part_of_window = 1
- bar_precedence_over_border = 1
- # hyprbars-button = color, size, icon, on-click
+ hyprbars {
+ bar_text_font = ZedMono NFP
+ bar_text_size = 12
+ bar_height = 24
+ bar_color = 0xfb$base00
+ col.text = 0xff$base05
+ bar_part_of_window = 1
+ bar_precedence_over_border = 1
+ # hyprbars-button = color, size, icon, on-click
hyprbars-button = 0xaa$base08, 20, , hyprctl dispatch killactive
- hyprbars-button = 0xaa$base0A, 20, , hyprctl dispatch fullscreen 1
- hyprbars-button = 0xaa$base0B, 20, , hyprctl dispatch pin active
- }
-
- overview {
- panelHeight = 200
- panelColor = 0xcc$base03
- panelBorderWidth = 1
- panelBorderColor = 0xee$base03
- workspaceActiveBorder = 0xee$base0D
+ hyprbars-button = 0xaa$base0A, 20, , hyprctl dispatch fullscreen 1
+ hyprbars-button = 0xaa$base0B, 20, , hyprctl dispatch pin active
+ }
+ overview {
+ panelHeight = 200
+ panelColor = 0xcc$base03
+ panelBorderWidth = 1
+ panelBorderColor = 0xee$base03
+ workspaceActiveBorder = 0xee$base0D
workspaceInactiveBorder = 0xee$base02
- workspaceBorderSize = 2
- }
- hyprwinwrap {
- class = foot-bg
- }
+ workspaceBorderSize = 2
+ }
}
source=./fragments/animations.conf
source=./fragments/env.conf
+source=./fragments/permissions.conf
source=./fragments/windowrules.conf
source=./fragments/workspacerules.conf
source=./fragments/layerrules.conf