Muh dotfiles

This commit is contained in:
2025-05-10 10:18:28 +03:00
commit 0f4558597e
84 changed files with 4306 additions and 0 deletions

552
.config/hypr/binds.conf Normal file
View File

@ -0,0 +1,552 @@
# vim:foldmethod=marker
# https://wiki.hyprland.org/Configuring/Binds/
# bind{l -> locked, r -> release, e -> repeat, n -> non-consuming, m -> mouse, t -> transparent}
# Mods: SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5
$mod = SUPER
$slurp_cmd = slurp -o -d -w 2 -B 00000000 -b 00000000 -s 00000000 -c
# Used with mod: aBcdEFGhIjkLmNOPQrStUvwxyz Tab1234567890-=Return
# General binds {{{
# bind = ALT, Space, exec, hyprctl keyword input:kb_variant = ""
bind = $mod, Q, killactive
bind = $mod, F, fullscreen
bind = $mod SHIFT, F, fullscreenstate, 0 3 # fool the window
bind = $mod CTRL, F, fullscreen, 1 # keep gaps and bars
bind = $mod SHIFT, Space, togglefloating
bind = $mod SHIFT, Space, centerwindow
bind = $mod, P, pin # show floating on all workspaces
bind = $mod, U, focusurgentorlast
bind = $mod, B, focuscurrentorlast
bind = $mod, S, togglespecialworkspace
bind = $mod, Tab, movecurrentworkspacetomonitor, +1
bind = $mod CTRL SHIFT ALT, x, exit
bind = $mod CTRL SHIFT ALT, x, exec, killall xdg-desktop-portal-hyprland
bind = $mod ALT, R, forcerendererreload
bind = $mod CTRL, R, exec, hyprctl reload
bind = $mod SHIFT, T, alterzorder, top
#bind = $mod, T, togglesplit # dwindle
#bind = $mod, V, layoutmsg, preselect, l
#bind = $mod, H, layoutmsg, preselect, r
bind = $mod, T, layoutmsg, orientationnext # master
#bind = $mod, M, layoutmsg, swapwithmaster auto
bind = $mod, A, layoutmsg, addmaster
bind = $mod SHIFT, A, layoutmsg, removemaster
bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow
bind = $mod, Return, exec, kitty
bind = $mod, KP_Enter, exec, kitty
# works like shit with submaps
#bindit = $mod, SUPER_L, exec, pkill -USR1 waybar
#binditr = $mod, SUPER_L, exec, pkill -USR1 waybar
# }}}
# Media keys {{{
binde = $mod, F1, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
binde = SHIFT, F1, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
binde = CTRL, F1, exec, playerctl volume 0.05-
binde = $mod CTRL, F1, exec, playerctl volume 0.01-
binde = $mod, F2, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
binde = SHIFT, F2, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%+
binde = CTRL, F2, exec, playerctl volume 0.05+
binde = $mod CTRL, F2, exec, playerctl volume 0.01+
bind = $mod, F3, exec, playerctl play-pause
bind = SHIFT, F3, exec, playerctl -a play-pause
# toggles
bindl = $mod, F5, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
bind = SHIFT, F5, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
bindl = $mod, F6, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1 ; killall waybar -s 35
bind = SHIFT, F6, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0 ; killall waybar -s 35
bindl = $mod, F7, exec, nmcli radio wifi off
bind = SHIFT, F7, exec, nmcli radio wifi on
bindl = $mod, F8, exec, bluetoothctl power off
bind = SHIFT, F8, exec, bluetoothctl power on
bind = $mod, F9, exec, playerctl previous
bind = $mod, F10, exec, playerctl next
bindle = $mod, F11, exec, brightnessctl s 5%-
binde = CTRL, F11, exec, brightnessctl s 1%-
binde = SHIFT, F11, exec, brightnessctl s 15%-
bindle = $mod, F12, exec, brightnessctl s 5%+
binde = CTRL, F12, exec, brightnessctl s 1%+
binde = SHIFT, F12, exec, brightnessctl s 15%+
bindle =, XF86MonBrightnessUP, exec, brightnessctl s 5%+
bindle =, XF86MonBrightnessDown, exec, brightnessctl s 5%-
binde = CTRL, XF86MonBrightnessUP, exec, brightnessctl s 1%+
binde = CTRL, XF86MonBrightnessDown, exec, brightnessctl s 1%-
binde = SHIFT, XF86MonBrightnessUP, exec, brightnessctl s 15%+
binde = SHIFT, XF86MonBrightnessDown, exec, brightnessctl s 15%-
binde =, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
binde =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
binde = SHIFT, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%+
binde = SHIFT, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
bind = SHIFT, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
bindl =, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1 ; killall waybar -s 35
bind = SHIFT, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0 ; killall waybar -s 35
bind =, XF86AudioPlay, exec, playerctl play-pause
bind =, XF86AudioPrev, exec, playerctl previous
bind =, XF86AudioNext, exec, playerctl next
# instant region not saved
bind =, Print, exec, wl-copy -c; grim -g "$($slurp_cmd ff0000 && sleep 0.1)" -t png -l 6 - | wl-copy -t image/png
# delayed region not saved
bind = CTRL, Print, exec, grim -g "$($slurp_cmd 00ffff && sleep 3)" -t png -l 6 - | wl-copy -t image/png
# instant fullscreen not saved
bind = SHIFT, Print, exec, grim -o $(hyprctl activeworkspace | grep -Po '(?<=\d\) on monitor ).*?(?=:)') -t png -l 6 - | wl-copy -t image/png
# delayed fullscreen not saved
bind = SHIFT CTRL, Print, exec, sleep 3; grim -o $(hyprctl monitors | grep -Po '(?<=Monitor ).*?(?= \(ID \d*\):)') -t png -l 6 - | wl-copy -t image/png
# instant region saved
bind = $mod, Print, exec, grim -g "$($slurp_cmd 00ff00 && sleep 0.1)" -t png -l 6 - | tee $SCREENSHOT_DIR/$(date +'%-d.%m.%y-%H:%M:%S').png | wl-copy -t image/png
#TODO learn sed to screenshot active window
# bind = ALT, Print, exec, hyprpicker -rz &!; slurp; grim -g "$($slurp_cmd ffffff && sleep 0.1)" -t png -l 6 - | wl-copy -t image/png; kill $!
# }}}
# Submaps {{{
#TODO send print on alt+f4
bind = $mod, L, submap, launch
$media = NI󰝞 EO󰝝 P󰐎 - A󰝟 M󰍭 W󰣽 B󰂲 .󰳞 ,󰳠 K J M+W󰒎 R
bindl = $mod, M, submap, $media #mod+`
bindl = $mod, grave, submap, $media #mod+`
bind = $mod, G, submap, group
bind = $mod, R, submap, resize
bind = $mod SHIFT, W, submap, wallpaper
bind = $mod SHIFT, M, submap, mako
bind = $mod SHIFT, S, submap, system
bind = $mod SHIFT, D, submap, displays
bind = $mod CTRL, M, submap, move
# launch {{{
submap = launch
# apps
bind =, F, exec, librewolf
bind =, F, submap, reset
bind = SHIFT, F, exec, firefox
bind = SHIFT, F, submap, reset
bind = CTRL, F, exec, torbrowser-launcher
bind = CTRL, F, submap, reset
bind =, T, exec, killall telegram-desktop || telegram-desktop
bind =, T, submap, reset
bind =, S, exec, killall signal-desktop || signal-desktop
bind =, S, submap, reset
bind =, M, exec, QT_SCALE_FACTOR=1.25 fjordlauncher
bind =, M, submap, reset
bind =, E, exec, element-desktop
bind =, E, submap, reset
#bind =, N, exec, nemo
bind =, N, submap, reset
bind =, Y, exec, kitty yazi
bind =, Y, submap, reset
bind =, L, exec, logseq
bind =, L, submap, reset
bind =, O, exec, obsidian
bind =, O, submap, reset
bind =, K, exec, klavaro
bind =, K, submap, reset
bind = SHIFT, S, exec, mysql-workbench
bind = SHIFT, S, submap, reset
bind =, D, exec, discord --enable-features=UseOzonePlatform --ozone-platform=wayland
bind =, D, submap, reset
bind = SHIFT, V, exec, virtualboxvm --startvm Ghost11
bind = SHIFT, V, submap, reset
bind =, V, exec, bitwarden-desktop
bind =, V, submap, reset
bind = SHIFT, B, exec, flatpak run com.usebottles.bottles
bind = SHIFT, B, submap, reset
bind =, Q, exec, qbittorrent
bind =, Q, submap, reset
bind = SHIFT, D, exec, drawing
bind = SHIFT, D, submap, reset
bind =, A, exec, anki
bind =, A, submap, reset
# utilities
bind =, P, exec, pavucontrol
bind =, P, submap, reset
bind = SHIFT, P, exec, easyeffects
bind = SHIFT, P, submap, reset
bind =, B, exec, blueman-manager
bind =, B, submap, reset
bind =, C, exec, nm-connection-editor
bind =, C, submap, reset
bind = SHIFT, E, exec, killall nm-applet || nm-applet
bind = SHIFT, E, submap, reset
#bind =, G, exec, nwg-look
#bind =, G, submap, reset
#bind =, Q, exec, qt5ct
#bind =, Q, submap, reset
bind = SHIFT, A, exec, wdisplays # a for arandr
bind = SHIFT, A, submap, reset
# makes life easier
bind =, X, exec, ~/.config/hypr/scripts/xdph.sh
bind =, X, submap, reset
bind =, G, exec, killall gammastep || gammastep -m wayland -PO 4000
bind =, G, submap, reset
bind = SHIFT, L, exec, swaylock -C ~/.config/hypr/other/swaylock.conf
bind = SHIFT, L, submap, reset
bind =, H, exec, killall hyprpaper || hyprpaper
bind =, H, submap, reset
bind =, W, exec, pkill -USR1 waybar
#bind =, W, exec, hyprctl keyword general:gaps_out 0, 0, $(hyprctl getoption general:gaps_out | rg -q '0 0 0 0' && echo 10 || echo 0 ), 0
bind =, W, submap, reset
#bind =, , exec,
#bind =, , submap, reset
bind = $mod, L, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# mako {{{
submap = mako
bind =, D, exec, makoctl mode -a dnd; hyprctl notify 1 2000 "rgb(ff0000)" " DND"
bind =, D, submap, reset
bind =, A, exec, makoctl mode -a away
bind =, A, submap, reset
bind =, G, exec, makoctl dismiss -g
bind =, G, submap, reset
bind =, R, exec, makoctl restore
bind =, R, submap, reset
bind = SHIFT, A, exec, makoctl mode -r away
bind = SHIFT, A, submap, reset
bind = SHIFT, G, exec, makoctl dismiss -a
bind = SHIFT, G, submap, reset
bind = SHIFT, R, exec, makoctl reload; notify-send -t 2000 "reloaded"
bind = SHIFT, R, submap, reset
bind = SHIFT, D, exec, makoctl mode -r dnd; notify-send -t 2000 "dnd is off"
bind = SHIFT, D, submap, reset
bind = $mod, M, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# media {{{
submap = $media
binde =, 1, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
binde = SHIFT, 1, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
binde = $mod, 1, exec, playerctl volume 0.05-
binde = CTRL, 1, exec, playerctl volume 0.01-
binde =, 2, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
binde = SHIFT, 2, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%+
binde = $mod, 2, exec, playerctl volume 0.05+
binde = CTRL, 2, exec, playerctl volume 0.01+
bind =, 3, exec, playerctl play-pause
bind = SHIFT, 3, exec, playerctl -a play-pause
#toggles
bindl =, 5, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
bind = SHIFT, 5, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
bindl =, 6, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1 ; killall waybar -s 35
bind = SHIFT, 6, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0 ; killall waybar -s 35
bindl =, 7, exec, nmcli radio wifi off
bind = SHIFT, 7, exec, nmcli radio wifi on
bindl =, 8, exec, bluetoothctl power off
bind = SHIFT, 8, exec, bluetoothctl power on
bind =, 9, exec, playerctl previous
bind =, 0, exec, playerctl next
bindle =, minus, exec, brightnessctl s 5%-
binde = CTRL, minus, exec, brightnessctl s 1%-
binde = SHIFT, minus, exec, brightnessctl s 15%-
bindle =, equal, exec, brightnessctl s 5%+
binde = CTRL, equal, exec, brightnessctl s 1%+
binde = SHIFT, equal, exec, brightnessctl s 15%+
binde = SHIFT, N, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
binde =, N, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
binde = SHIFT, E, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
binde =, E, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%+
binde = SHIFT, I, exec, playerctl volume 0.05-
binde =, I, exec, playerctl volume 0.01-
binde = SHIFT, O, exec, playerctl volume 0.05+
binde =, O, exec, playerctl volume 0.01+
bind =, P, exec, playerctl play-pause
bind = SHIFT, P, exec, playerctl -a play-pause
bind =, comma, exec, playerctl previous
bind =, period, exec, playerctl next
#toggles
bindl =, A, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
bind = SHIFT, A, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
bindl =, M, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1 ; killall waybar -s 35
bind = SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0 ; killall waybar -s 35
bindl = $mod, W, exec, nmcli networking off
bindl = $mod, W, exec, bluetoothctl power off
bind = $mod SHIFT, W, exec, nmcli networking on
bindl =, W, exec, nmcli radio wifi off
bind = SHIFT, W, exec, nmcli radio wifi on
bindl =, B, exec, bluetoothctl power off
bind = SHIFT, B, exec, bluetoothctl power on
bindle =, K, exec, brightnessctl s 5%-
binde = CTRL, K, exec, brightnessctl s 1%-
binde = SHIFT, K, exec, brightnessctl s 15%-
bindle =, J, exec, brightnessctl s 5%+
binde = CTRL, J, exec, brightnessctl s 1%+
binde = SHIFT, J, exec, brightnessctl s 15%+
bind =, R, exec, wl-screenrec --codec hevc -b '1 MB' --audio --audio-device $(pactl list short sinks | grep $(pactl get-default-sink) | head -c2) -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv
bind =, R, exec, sleep 0.5; killall waybar -s 36
bind =, R, submap, reset
bind = SHIFT, R, exec, wl-screenrec --codec hevc -b '1 MB' --audio -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv
bind = SHIFT, R, exec, sleep 0.5; killall waybar -s 36
bind = SHIFT, R, submap, reset
bind = CTRL, R, exec, wl-screenrec --codec hevc -b '0.5 MB' -g "$($slurp_cmd ff00ff)" -f $SCREENRECORD_DIR/$(date +'%-d.%m.%y-%H:%M:%S').mkv
bind = CTRL, R, exec, sleep 0.5; killall waybar -s 36
bind = CTRL, R, submap, reset
bind = $mod, R, exec, killall -INT wl-screenrec ; sleep 1; killall waybar -s 36
bind = $mod, R, submap, reset
bindl = $mod, M, submap, reset
bindl = $mod, grave, submap, reset
bindl =, Space, submap, reset
bindl =, Return, submap, reset
bindl =, Escape, submap, reset
# }}}
# wallpaper {{{
submap = wallpaper # more wallpapers, lmao
bind =, H, exec, killall hyprpaper || hyprpaper
bind =, 1, exec, sed -i 's/wall.$/wall1/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 2, exec, sed -i 's/wall.$/wall2/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 3, exec, sed -i 's/wall.$/wall3/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 4, exec, sed -i 's/wall.$/wall4/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 5, exec, sed -i 's/wall.$/wall5/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 6, exec, sed -i 's/wall.$/wall6/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 7, exec, sed -i 's/wall.$/wall7/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 8, exec, sed -i 's/wall.$/wall8/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 9, exec, sed -i 's/wall.$/wall9/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 0, exec, sed -i 's/wall.$/wall0/g' ~/.config/hypr/hyprpaper.conf; killall hyprpaper; hyprpaper
bind =, 1, submap, reset
bind =, 2, submap, reset
bind =, 3, submap, reset
bind =, 4, submap, reset
bind =, 5, submap, reset
bind =, 6, submap, reset
bind =, 7, submap, reset
bind =, 8, submap, reset
bind =, 9, submap, reset
bind =, 0, submap, reset
bind = $mod SHIFT, W, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# group {{{
submap = group
bind =, G, togglegroup
bind =, G, submap, reset
bind =, L, lockactivegroup, toggle
bind =, L, submap, reset
bind =, A, lockgroups, lock
bind =, A, submap, reset
bind = SHIFT, A, lockgroups, unlock
bind = SHIFT, A, submap, reset
bind =, D, moveoutofgroup
bind =, D, submap, reset
binde =, E, movegroupwindow, b
binde =, I, movegroupwindow, f
binde =, N, changegroupactive, b
binde =, O, changegroupactive, f
binde =, down, movegroupwindow, b
binde =, up, movegroupwindow, f
binde =, left, changegroupactive, b
binde =, right, changegroupactive, f
binde = SHIFT, E, moveintogroup, d
binde = SHIFT, I, moveintogroup, u
binde = SHIFT, N, moveintogroup, l
binde = SHIFT, O, moveintogroup, r
binde = SHIFT, down, moveintogroup, d
binde = SHIFT, up, moveintogroup, u
binde = SHIFT, left, moveintogroup, l
binde = SHIFT, right, moveintogroup, r
bind = $mod SHIFT, G, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# system {{{
submap = system
bind =, S, exec, shutdown now
bind =, R, exec, systemctl reboot
bind =, Z, exec, systemctl suspend
bind =, Z, submap, reset
bind = $mod SHIFT, S, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# displays {{{
submap = displays
bind =, L, exec, ~/.config/hypr/scripts/displays.sh eDP-1 -
bind =, L, submap, reset
bind =, H, exec, ~/.config/hypr/scripts/displays.sh HDMI-A-1 -
bind =, H, submap, reset
bind =, A, exec, ~/.config/hypr/scripts/displays.sh eDP-1 ''
bind =, A, submap, reset
bind =, O, exec, ~/.config/hypr/scripts/displays.sh '' -eDP-1
bind =, O, submap, reset
bind =, D, exec, hyprctl keyword monitor eDP-1,preferred,auto,1
bind =, D, submap, reset
bind = SHIFT, D, exec, hyprctl keyword monitor eDP-1,disable
bind = SHIFT, D, submap, reset
bind = $mod SHIFT, D, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# resize {{{
submap = resize
bind = SHIFT, H, resizeactive, exact 720 480
bind = SHIFT, V, resizeactive, exact 480 720
binde =, E, resizeactive, 0 10
binde =, I, resizeactive, 0 -10
binde =, N, resizeactive, -10 0
binde =, O, resizeactive, 10 0
binde =, down, resizeactive, 0 10
binde =, up, resizeactive, 0 -10
binde =, left, resizeactive, -10 0
binde =, right, resizeactive, 10 0
binde = SHIFT, E, resizeactive, 0 50
binde = SHIFT, I, resizeactive, 0 -50
binde = SHIFT, N, resizeactive, -50 0
binde = SHIFT, O, resizeactive, 50 0
binde = SHIFT, down, resizeactive, 0 50
binde = SHIFT, up, resizeactive, 0 -50
binde = SHIFT, left, resizeactive, -50 0
binde = SHIFT, right, resizeactive, 50 0
bind = $mod SHIFT, R, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# move {{{
submap = move
bind =, C, centerwindow # for floating
bind =, C, submap, reset
binde =, E, moveactive, 0 10
binde =, I, moveactive, 0 -10
binde =, N, moveactive, -10 0
binde =, O, moveactive, 10 0
binde =, down, moveactive, 0 10
binde =, up, moveactive, 0 -10
binde =, left, moveactive, -10 0
binde =, right, moveactive, 10 0
binde = SHIFT, E, moveactive, 0 50
binde = SHIFT, I, moveactive, 0 -50
binde = SHIFT, N, moveactive, -50 0
binde = SHIFT, O, moveactive, 50 0
binde = SHIFT, down, moveactive, 0 50
binde = SHIFT, up, moveactive, 0 -50
binde = SHIFT, left, moveactive, -50 0
binde = SHIFT, right, moveactive, 50 0
bind = $mod SHIFT, M, submap, reset
bind =, Space, submap, reset
bind =, Return, submap, reset
bind =, Escape, submap, reset
# }}}
# back to default mode
submap = reset
# }}}
# Moving windows {{{
# TRUE scratchpad
bind = $mod, minus, movetoworkspacesilent, special
bind = $mod, equal, togglespecialworkspace
bind = $mod, equal, cyclenext, prev # first in first out
bind = $mod, equal, movetoworkspace, +0
# bind = $mod, equal, togglespecialworkspace
bind = $mod, E, movefocus, d
bind = $mod, I, movefocus, u
bind = $mod, N, movefocus, l
bind = $mod, O, movefocus, r
bind = $mod, down, movefocus, d
bind = $mod, up, movefocus, u
bind = $mod, left, movefocus, l
bind = $mod, right, movefocus, r
bind = $mod SHIFT, E, movewindow, d
bind = $mod SHIFT, I, movewindow, u
bind = $mod SHIFT, N, movewindow, l
bind = $mod SHIFT, O, movewindow, r
bind = $mod SHIFT, down, movewindow, d
bind = $mod SHIFT, up, movewindow, u
bind = $mod SHIFT, left, movewindow, l
bind = $mod SHIFT, right, movewindow, r
bind = $mod CTRL, E, cyclenext
bind = $mod CTRL, I, cyclenext, prev
bind = $mod CTRL, N, movetoworkspace, r-1 # r for current monitor
bind = $mod CTRL, O, movetoworkspace, r+1
bind = $mod CTRL, left, movetoworkspace, -1
bind = $mod CTRL, right, movetoworkspace, +1
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10
bind = $mod SHIFT, 1, movetoworkspace, 1
bind = $mod SHIFT, 2, movetoworkspace, 2
bind = $mod SHIFT, 3, movetoworkspace, 3
bind = $mod SHIFT, 4, movetoworkspace, 4
bind = $mod SHIFT, 5, movetoworkspace, 5
bind = $mod SHIFT, 6, movetoworkspace, 6
bind = $mod SHIFT, 7, movetoworkspace, 7
bind = $mod SHIFT, 8, movetoworkspace, 8
bind = $mod SHIFT, 9, movetoworkspace, 9
bind = $mod SHIFT, 0, movetoworkspace, 10
bind = $mod CTRL, 1, movetoworkspacesilent, 1
bind = $mod CTRL, 2, movetoworkspacesilent, 2
bind = $mod CTRL, 3, movetoworkspacesilent, 3
bind = $mod CTRL, 4, movetoworkspacesilent, 4
bind = $mod CTRL, 5, movetoworkspacesilent, 5
bind = $mod CTRL, 6, movetoworkspacesilent, 6
bind = $mod CTRL, 7, movetoworkspacesilent, 7
bind = $mod CTRL, 8, movetoworkspacesilent, 8
bind = $mod CTRL, 9, movetoworkspacesilent, 9
bind = $mod CTRL, 0, movetoworkspacesilent, 10
# }}}
# TODO (to work on) {{{
# bindl=, switch:on:Lid Switch, exec, hyprctl keyword monitor eDP-1, disable
# bindl=, switch:off:Lid Switch, exec, hyprctl keyword monitor eDP-1, preferred, auto, 1
#bindl=, switch:Lid Switch, exec, swaylock -C ~/.config/hypr/other/swaylock.conf
# }}}

View File

@ -0,0 +1,2 @@
monitor = eDP-1, preferred, 0x0, 1
monitor =, disable

View File

@ -0,0 +1,42 @@
#monitor = eDP-1, disable
#monitor =, preferred, auto, 1
source = ~/.config/hypr/displays.conf
source = ~/.config/hypr/binds.conf
source = ~/.config/hypr/variables.conf
source = ~/.config/hypr/rules.conf
exec-once = hyprpaper
exec-once = gammastep -m wayland -PO 4000
exec-once = /usr/lib/polkit-kde-authentication-agent-1 # asking for a password whenever an app wants to elevate it's privileges
exec-once = swayidle -w -C ~/.config/hypr/other/swayidle.conf
exec-once = waybar
# exec-once = ~/.config/hypr/scripts/check_displays.sh
# uncomment if apps take too long to open:
#exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
#exec-once = ~/.config/hypr/scripts/xdph.sh
env = XCURSOR_SIZE,24
env = ANKI_WAYLAND,1
env = GDK_BACKEND,wayland #,x11
env = SDL_VIDEODRIVER,wayland
env = CLUTTER_BACKEND,wayland
#env = XDG_SESSION_TYPE,wayland
#env = XDG_CURRENT_DESKTOP,Hyprland
#env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland #;xcb
env = QT_AUTO_SCREEN_SCALE_FACTOR,1 # enable auto scaling, depening on dpi
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt5ct
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
#env = _JAVA_AWT_WM_NONREPARENTING,1 # if a Java app starts with a blank screen
# NONE=-1 WARNING=0 INFO=1 HINT=2 ERROR=3 CONFUSED=4 OK=5
exec = hyprctl notify -1 1000 "rgb(00ff00)" "Config applied"

View File

@ -0,0 +1,4 @@
ipc = off # battery!
splash = false
preload = ~/.walls/wall3
wallpaper =, ~/.walls/wall3

View File

@ -0,0 +1,6 @@
timeout 1200 'hyprctl notify -1 5000 "rgb(ff0000)" ". ."' resume 'hyprctl notify 5 2000 "rgb(00ff00)" ""'
timeout 1206 'swaylock -C ~/.config/hypr/other/swaylock.conf'
timeout 1216 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on'
timeout 2400 'systemctl suspend'
before-sleep 'swaylock -C ~/.config/hypr/other/swaylock.conf'

View File

@ -0,0 +1,9 @@
# flags
daemonize
ignore-empty-password
#no-unlock-indicator
# params
#image=~/Pictures/wallpaper.jpg
#scaling=fill
color=446666

52
.config/hypr/rules.conf Normal file
View File

@ -0,0 +1,52 @@
#https://wiki.hyprland.org/Configuring/Window-Rules/
#https://wiki.hyprland.org/Configuring/Workspace-Rules/
#workspace = 1, monitor:HDMI-A-1
#workspace = 2, monitor:HDMI-A-1
#workspace = 3, monitor:HDMI-A-1
#workspace = 4, monitor:HDMI-A-1
#workspace = 5, monitor:eDP-1
windowrulev2 = monitor 1, class:Liftoff.*
windowrulev2 = workspace 10, class:Liftoff.*
windowrulev2 = immediate, class:Liftoff.*
windowrulev2 = fullscreen, class:Liftoff.*
windowrulev2 = monitor 1, initialTitle:Minecraft.*
windowrulev2 = workspace 10, initialTitle:Minecraft.*
windowrulev2 = immediate, initialTitle:Minecraft.*
windowrulev2 = fullscreen, initialTitle:Minecraft.*
workspace = 10, border:false, rounding:false
workspace = w[tv1], gapsout:0, gapsin:0
workspace = f[1], gapsout:0, gapsin:0
windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
# windowrulev2 = float, class:^(LibreWolf)$
windowrulev2 = float, class:^(Bitwarden)$
windowrulev2 = float, class:^(cmst)$
windowrulev2 = float, class:^(nemo)$
windowrulev2 = float, class:^(qt5ct)$
#windowrulev2 = float, class:^(Logseq)$
#windowrulev2 = float, class:^(obsidian)$
windowrulev2 = float, class:^(waypaper)$
windowrulev2 = float, class:^(nwg-look)$
windowrulev2 = float, class:^(wdisplays)$
windowrulev2 = float, class:^(VirtualBox)$
windowrulev2 = float, class:^(pavucontrol)$
windowrulev2 = float, class:^(connman-gtk)$
windowrulev2 = float, class:^(boulder_dash)$
windowrulev2 = float, class:^(blueman-manager)$
windowrulev2 = float, class:^(org.gnome.Software)$
windowrulev2 = float, class:^(nm-connection-editor)$
#windowrulev2 = float, class:^(org.qbittorrent.qBittorrent)$
windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2 = float, class:^(org.telegram.desktop|telegramdesktop)$, title:^(Media viewer)$
windowrulev2 = workspace 4 silent, class:^(discord)$
windowrulev2 = workspace 4 silent, class:^(org.telegram.desktop)$

View File

@ -0,0 +1,8 @@
#!/usr/bin/bash
while [ 1 ]; do
if [[ $(hyprctl monitors) = *HEADLESS* ]]; then
~/.config/hypr/scripts/displays.sh eDP-1 ''
fi
sleep 1
done

View File

@ -0,0 +1,27 @@
#!/usr/bin/bash
for MON in "$@";
do
if [[ ${MON::1} == '-' ]]; then
STR+="monitor =${MON:1}, disable\n"
else
hyprctl keyword "monitor $MON,prefferred,auto,1"
STR+="monitor = $MON, preferred, auto, 1\n"
fi
done
if [[ $1 ]]; then STR=${STR/auto/0x0}; fi
sleep 2
printf "$STR" > ~/.config/hypr/displays.conf
if [[ $(hyprctl getoption misc:disable_autoreload) =~ int:\ 1 ]];
then hyprctl reload; fi
# Restart programs that have issues
sleep 2
hyprctl dispatch -- exec "killall gammastep && gammastep -m wayland -PO 4000"
hyprctl dispatch -- exec "killall hyprpaper && hyprpaper"
hyprctl dispatch -- exec "killall waybar && waybar"
hyprctl notify 5 1500 "rgb(aa44ff)" " displays"

View File

@ -0,0 +1,11 @@
#!/usr/bin/bash
# I have no idea what is this script
grim -s1 -t png -l0 -o "$(hyprctl activeworkspace | grep -Po '(?<=\d\) on monitor ).*?(?=:)')" /tmp/screenshot.png
hyprctl dispatch workspace 11
swayimg -n /tmp/screenshot.png &
IMG_PID=$!
sleep 0.2; hyprctl dispatch fullscreen
convert -crop $(slurp -odw 2 -B 00000000 -b 00000000 -s 00000000 -c 88CCFF -f "%wx%h+%X+%Y") /tmp/screenshot.png - | wl-copy -t image/png
hyprctl dispatch workspace previous
kill $IMG_PID

11
.config/hypr/scripts/xdph.sh Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/bash
sleep 1
killall -e xdg-desktop-portal-hyprland
killall -e xdg-desktop-portal-wlr
killall xdg-desktop-portal
/usr/lib/xdg-desktop-portal-hyprland &
hyprctl notify -1 2000 "rgb(00ffff)" "XDPH"
sleep 2
/usr/lib/xdg-desktop-portal &
hyprctl notify -1 1000 "rgb(00ffff)" "XDP"

244
.config/hypr/variables.conf Normal file
View File

@ -0,0 +1,244 @@
# vim:foldmethod=marker
# https://wiki.hyprland.org/Configuring/Variables/
ecosystem {
no_update_news = true
}
general { # {{{
border_size = 1
no_border_on_floating = false
gaps_in = 0 #4
gaps_out = 0, 0, 0, 0
#col.inactive_border = rgb(4499bb)
#col.active_border = rgb(44ffaa) rgba(00000000) rgb(44ffaa) 145deg
#col.inactive_border = rgb(bb0055)
col.inactive_border = rgb(44aaaa)
col.active_border = rgb(ff00ff)
#col.group_border = rgb(6666bb)
#col.group_border_active = rgb(00ddcc)
#col.group_border_locked = rgb(994444)
#col.group_border_locked_active = rgb(dd88dd)
# cursor_inactive_timeout = 0 # hide cursor after
# no_cursor_warps = false # false = move cursor on focusing
no_focus_fallback = false
# apply_sens_to_raw = false
resize_on_border = true
extend_border_grab_area = 5
hover_icon_on_border = false
allow_tearing = true
layout = master
} # }}}
dwindle { # {{{
pseudotile = false
force_split = 2 # 0->follows mouse, 1->left or top, 2->right or bottom
preserve_split = true
smart_split = false
smart_resizing = false
permanent_direction_override = true
special_scale_factor = 1
split_width_multiplier = 1
# no_gaps_when_only = 1
use_active_for_splits = true
default_split_ratio = 1 # 0.1 - 1.9 1=50/50
} # }}}
master { # {{{
allow_small_split = true
special_scale_factor = 1
mfact = 0.5 #0-1
# new_is_master = false
new_on_top = false
# no_gaps_when_only = 1 # 0, 1-no border, 2-border
orientation = left
inherit_fullscreen = true
# always_center_master = false
smart_resizing = true
} # }}}
decoration { # {{{
#rounding = 8
active_opacity = 1.0
inactive_opacity = 1.0
fullscreen_opacity = 1.0
blur {
enabled = true
size = 3
passes = 1
ignore_opacity = false # make the blur layer ignore the opacity of the window
new_optimizations = true
xray = false
noise = 0 #0-1
contrast = 1.45 #0-2
brightness = 0.8 #0-2
special = false
}
# drop_shadow = false
# shadow_range = 4
# shadow_render_power = 3
# shadow_ignore_window = true
# shadow_offset = [0, 0]
# shadow_scale = 1.0
# col.shadow = rgba(1a1a1aee)
# col.shadow_inactive = rgba(1a1a1aee)
dim_inactive = false
dim_strength = 0.2
dim_special = 0
dim_around = 0.4
#screen_shader = [[Empty]]
} # }}}
animations { # {{{
enabled = false # animations actually look better that way
#bezier = linear, 0, 0, 0, 0
#bezier = bop, 1, 1, 0, 1 # custom
#bezier = eob, 0.34, 1.56, 0.64, 1 # easeOutBack
#animation = workspaces, 1, 2, bop, slidevert
#animation = windowsIn, 1, 1, bop, popin 95%
#animation = windowsOut, 1, 8, linear, slide
#animation = border, 1, 2, linear
#animation = borderangle, 1, 50, linear, loop
#animation = global, 0 #, 1, linear
#animation = windows, 0 #, 1, linear
#animation = fade, 0 #, 1, linear
#animation = windowsMove, 0 #, 1, linear
#animation = specialWorkspace, 0 #, 1, linear
#animation = fadeIn
#animation = fadeOut
#animation = fadeSwitch
#animation = fadeShadow
#animation = fadeDim
} # }}}
input { # {{{
#kb_model
kb_layout = us,ua
kb_variant = colemak,
kb_options = altwin:swap_lalt_lwin, grp:win_space_toggle, grp_led:caps, shift:both_capslock_cancel
#kb_rules
#kb_file
numlock_by_default = false
repeat_rate = 30
repeat_delay = 300
sensitivity = 0.5 # -1.0 to 1.0
accel_profile = flat
force_no_accel = false
left_handed = false
scroll_method = 2fg
scroll_button = 0
scroll_button_lock = 1 # something i don't use
natural_scroll = false
follow_mouse = 1 # 0 - Cursor movement will not change focus. 1 - Cursor movement will always change focus to the window under the cursor. 2 - Cursor focus will be detached from keyboard focus. Clicking on a window will move keyboard focus to that window. 3 - Cursor focus will be completely separate from keyboard focus. Clicking on a window will not change keyboard focus.
mouse_refocus = true # don't let mouse moves on window to steal focus back from new opened window unless the mouse crosses the border or the old window is clicked
float_switch_override_focus = 1 #???
touchpad {
disable_while_typing = false
natural_scroll = true
scroll_factor = 1.1
middle_button_emulation = false
clickfinger_behavior = false
tap-to-click = true
tap_button_map = lrm
drag_lock = false
tap-and-drag = true
}
#touchdevice {
# transform = 0
# #output
#}
}
device {
name = logitech-g102-prodigy-gaming-mouse,
sensitivity = 0.5
}
device {
name = at-translated-set-2-keyboard # Ctrl, AltGr, Win, Space, AltR, Ctrl; Shift+Shift for CAPS
kb_options = altwin:swap_lalt_lwin, grp:win_space_toggle, grp_led:caps, shift:both_capslock_cancel
} # }}}
gestures { # {{{
workspace_swipe = false
#workspace_swipe_fingers = 3
#workspace_swipe_distance = 150
#workspace_swipe_invert = true
#workspace_swipe_min_speed_to_force = 30
#workspace_swipe_cancel_ratio = 0.5
#workspace_swipe_create_new = true
#workspace_swipe_forever = false
#workspace_swipe_numbered = false
#workspace_swipe_use_r = false
} # }}}
misc { # {{{
disable_hyprland_logo = true
disable_splash_rendering = true
force_default_wallpaper = 1
#force_hypr_chan = true
vfr = true # good for battery, variable frame rate
vrr = 0 # adaptive sync, change refresh rate of display, 0 - off, 1 - on, 2 - fullscreen only
mouse_move_enables_dpms = true
key_press_enables_dpms = true
always_follow_on_dnd = true
layers_hog_keyboard_focus = true
animate_manual_resizes = false
animate_mouse_windowdragging = false
disable_autoreload = false #! set to true for battery
enable_swallow = false
#swallow_regex
#swallow_exception_regex
focus_on_activate = false
# no_direct_scanout = true
# hide_cursor_on_touch = true
mouse_move_focuses_monitor = true
render_ahead_of_time = false
render_ahead_safezone = 1
# cursor_zoom_factor = 1.0
# cursor_zoom_rigid = false
allow_session_lock_restore = true
#group_insert_after_current = true # insert new windows after current
#group_focus_removed_window = true
#groupbar_scrolling = true
#render_titles_in_groupbar = true
#groupbar_titles_font_size = 24
#groupbar_gradients = false
#groupbar_text_color = rgb(FFFFFF)
background_color = rgb(000000)
close_special_on_empty=true
new_window_takes_over_fullscreen = 2
} # }}}
binds { # {{{
pass_mouse_when_bound = false
scroll_event_delay = 300
workspace_back_and_forth = true
allow_workspace_cycles = true # false: 1331 = 1st workspace, true: 3rd
focus_preferred_method = 0
workspace_center_on = 0
ignore_group_lock = false
} # }}}
xwayland { # {{{
use_nearest_neighbor = true
force_zero_scaling = false
} # }}}
#debug { # {{{
#name description type default
#overlay print the debug performance overlay. Disable VFR for accurate results. bool false
#damage_blink (epilepsy warning!) flash areas updated with damage tracking bool false
#disable_logs disable logging bool false
#disable_time disables time logging bool true
#damage_tracking redraw only the needed bits of the display. Do not change. (default: full - 2) monitor - 1, none - 0 int 2
#enable_stdout_logs enables logging to stdout bool false
#manual_crash set to 1 and then back to 0 to crash Hyprland. int 0
#suppress_errors if true, do not display config file parsing errors. bool false
#watchdog_timeout sets the timeout in seconds for watchdog to abort processing of a signal of the main thread. Set to 0 to disable. int 5
# } # }}}