# ╻┏ ┏━╸╻ ╻┏┓ ╻┏┓╻╺┳┓╻┏┓╻┏━╸┏━┓ # ┣┻┓┣╸ ┗┳┛┣┻┓┃┃┗┫ ┃┃┃┃┗┫┃╺┓┗━┓ # ╹ ╹┗━╸ ╹ ┗━┛╹╹ ╹╺┻┛╹╹ ╹┗━┛┗━┛ $supMod = SUPER # super key $altMod = ALT # alt key $conMod = CONTROL # control key # Apps $term = kitty $chat = flatpak run org.signal.Signal $office = flatpak run org.onlyoffice.desktopeditors $notes = joplin-desktop $browser = flatpak run com.brave.Browser $file = kitty --class file_manager yazi $editor = zed $music = kitty --class musikcube musikcube $rss = kitty --class newsboat newsboat $password = flatpak run com.bitwarden.desktop $ani-cli = kitty --class ani-cli ani-cli $ytfzf = kitty --class ytfzf ytfzf -flstT chafa $ytfzf-music = kitty --class ytfzf-music ytfzf -mlstT chafa $flix-cli = kitty --class flix-cli flix-cli $audiomixer = kitty --class pulsemixer pulsemixer $monitor = foot -T monitor -a btop btop $hmonitor = kitty --class htop htop # run launchers $run = pkill rofi || rofi -show run $drun = pkill rofi || $RUNNER_EX $rs_wifi = pkill rofi || $HOME/.config/rofi/scripts/rs_wifi $rs_wall = pkill rofi || $HOME/.config/rofi/scripts/rs_wall $rs_emoji = pkill rofi || $HOME/.config/rofi/scripts/rs_emoji $rs_clip = pkill rofi || $HOME/.config/rofi/scripts/rs_clip $rs_scrot = pkill rofi || $HOME/.config/rofi/scripts/rs_scrot $rs_power = pkill rofi || $HOME/.config/rofi/scripts/rs_power $rs_blue = pkill rofi || $HOME/.config/rofi/scripts/rs_blue # main binds bind = $supMod, RETURN, exec, kitty # launch a terminal bind = $supMod, q, killactive # kill active window bind = $supMod_$conMod_SHIFT, q, exit # exit the compositor bind = $supMod, b, exec, pkill waybar || waybar # hide/show bar bind = $supMod, f, togglefloating # toggle floating mode bind = $supMod_SHIFT, f, fullscreen # toggle fullscreen mode # focus binds bind = $supMod, k, layoutmsg, cyclenext # focus next window bind = $supMod, j, layoutmsg, cycleprev # focus previous window bind = $supMod_SHIFT, RETURN, layoutmsg, focusmaster # focus master window bind = $supMod, h, focusmonitor, -1 # focus monitor to right bind = $supMod, l, focusmonitor, +1 # focus monitor to left # layout binds bind = $supMod_SHIFT, j, layoutmsg, swapnext # swap window with next bind = $supMod_SHIFT, k, layoutmsg, swapprev # swap window with previous bind = $supMod_SHIFT, l, layoutmsg, orientationnext # shift to next stack orientation bind = $supMod_SHIFT, h, layoutmsg, orientationprev # shift to previous stack orientation bind = $supMod, i, layoutmsg, addmaster # add window to master area bind = $supMod, d, layoutmsg, removemaster # remove window to master area bind = $supMod_$conMod, RETURN, layoutmsg, swapwithmaster # swap window with master bindm = $supMod, mouse:272, movewindow # window movement with mouse bindm = $supMod, mouse:273, resizewindow # window resizing with mouse # group binds bind = $supMod, g, togglegroup bind = $supMod_$altMod, g, moveoutofgroup, active bind = $supMod_$conMod, g, lockactivegroup bind = $supMod_$conMod, h, movegroupwindow, b bind = $supMod_$conMod, l, movegroupwindow bind = $supMod_$conMod, k, changegroupactive, b bind = $supMod_$conMod, j, changegroupactive, f bind = $supMod_$altMod, l, moveintogroup, r bind = $supMod_$altMod, h, moveintogroup, l bind = $supMod_$altMod, k, moveintogroup, u bind = $supMod_$altMod, j, moveintogroup, d # resize submap bind = $supMod, r, submap, resize submap = resize # will start a submap called "resize" ## sets repeatable binds for resizing the active window binde = , right, resizeactive, 30 0 binde = , left, resizeactive, -30 0 binde = , up, resizeactive, 0 -30 binde = , down, resizeactive, 0 30 binde = , l, resizeactive, 30 0 binde = , h, resizeactive, -30 0 binde = , k, resizeactive, 0 -30 binde = , j, resizeactive, 0 30 ## use reset to go back to the global submap bind = , escape, submap, reset ## will reset the submap, which will return to the global submap submap = reset # workspaces binds bind = $supMod, 1, focusworkspaceoncurrentmonitor, 1 # switch to workspace 1 bind = $supMod, 2, focusworkspaceoncurrentmonitor, 2 # switch to workspace 2 bind = $supMod, 3, focusworkspaceoncurrentmonitor, 3 # switch to workspace 3 bind = $supMod, 4, focusworkspaceoncurrentmonitor, 4 # switch to workspace 4 bind = $supMod, 5, focusworkspaceoncurrentmonitor, 5 # switch to workspace 5 bind = $supMod, 6, focusworkspaceoncurrentmonitor, 6 # switch to workspace 6 bind = $supMod, 7, focusworkspaceoncurrentmonitor, 7 # switch to workspace 7 bind = $supMod, 8, focusworkspaceoncurrentmonitor, 8 # switch to workspace 8 bind = $supMod, 9, focusworkspaceoncurrentmonitor, 9 # switch to workspace 9 bind = $supMod, 0, focusworkspaceoncurrentmonitor, 10 # switch to workspace 10 bind = $supMod_SHIFT, 1, movetoworkspace, 1 # move active window to workspace 1 bind = $supMod_SHIFT, 2, movetoworkspace, 2 # move active window to workspace 2 bind = $supMod_SHIFT, 3, movetoworkspace, 3 # move active window to workspace 3 bind = $supMod_SHIFT, 4, movetoworkspace, 4 # move active window to workspace 4 bind = $supMod_SHIFT, 5, movetoworkspace, 5 # move active window to workspace 5 bind = $supMod_SHIFT, 6, movetoworkspace, 6 # move active window to workspace 6 bind = $supMod_SHIFT, 7, movetoworkspace, 7 # move active window to workspace 7 bind = $supMod_SHIFT, 8, movetoworkspace, 8 # move active window to workspace 8 bind = $supMod_SHIFT, 9, movetoworkspace, 9 # move active window to workspace 9 bind = $supMod_SHIFT, 0, movetoworkspace, 10 # move active window to workspace 10 bind = $supMod, mouse_down, workspace, e+1 # move to next workspace with mouse wheel bind = $supMod, mouse_up, workspace, e-1 # move to previous workspace with mouse wheel bind = $supMod, Right, workspace, e+1 # move to next workspace with right cursor key bind = $supMod, Left, workspace, e-1 # move to previous workspace with left cursor key bind = $supMod_SHIFT, Right, movetoworkspace, e+1 # move active window to next workspace with right cursor key bind = $supMod_SHIFT, Left, movetoworkspace, e-1 # move active window to previous workspace with left cursor key # scratchpads binds, this looks fkng horrible but it works # stupidly I need to memorize where I left my windows... bind = $supMod_$conMod, 1, togglespecialworkspace, magic1 bind = $supMod_$conMod, 1, movetoworkspace, +0 bind = $supMod_$conMod, 1, togglespecialworkspace, magic1 bind = $supMod_$conMod, 1, movetoworkspace, special:magic1 bind = $supMod_$conMod, 1, togglespecialworkspace, magic1 bind = $supMod_$conMod, 2, togglespecialworkspace, magic2 bind = $supMod_$conMod, 2, movetoworkspace, +0 bind = $supMod_$conMod, 2, togglespecialworkspace, magic2 bind = $supMod_$conMod, 2, movetoworkspace, special:magic2 bind = $supMod_$conMod, 2, togglespecialworkspace, magic2 bind = $supMod_$conMod, 3, togglespecialworkspace, magic3 bind = $supMod_$conMod, 3, movetoworkspace, +0 bind = $supMod_$conMod, 3, togglespecialworkspace, magic3 bind = $supMod_$conMod, 3, movetoworkspace, special:magic3 bind = $supMod_$conMod, 3, togglespecialworkspace, magic3 bind = $supMod_$conMod, 4, togglespecialworkspace, magic4 bind = $supMod_$conMod, 4, movetoworkspace, +0 bind = $supMod_$conMod, 4, togglespecialworkspace, magic4 bind = $supMod_$conMod, 4, movetoworkspace, special:magic4 bind = $supMod_$conMod, 4, togglespecialworkspace, magic4 bind = $supMod_$conMod, 5, togglespecialworkspace, magic5 bind = $supMod_$conMod, 5, movetoworkspace, +0 bind = $supMod_$conMod, 5, togglespecialworkspace, magic5 bind = $supMod_$conMod, 5, movetoworkspace, special:magic5 bind = $supMod_$conMod, 5, togglespecialworkspace, magic5 bind = $supMod_$conMod, 6, togglespecialworkspace, magic6 bind = $supMod_$conMod, 6, movetoworkspace, +0 bind = $supMod_$conMod, 6, togglespecialworkspace, magic6 bind = $supMod_$conMod, 6, movetoworkspace, special:magic6 bind = $supMod_$conMod, 6, togglespecialworkspace, magic6 bind = $supMod_$conMod, 7, togglespecialworkspace, magic7 bind = $supMod_$conMod, 7, movetoworkspace, +0 bind = $supMod_$conMod, 7, togglespecialworkspace, magic7 bind = $supMod_$conMod, 7, movetoworkspace, special:magic7 bind = $supMod_$conMod, 7, togglespecialworkspace, magic7 bind = $supMod_$conMod, 8, togglespecialworkspace, magic8 bind = $supMod_$conMod, 8, movetoworkspace, +0 bind = $supMod_$conMod, 8, togglespecialworkspace, magic8 bind = $supMod_$conMod, 8, movetoworkspace, special:magic8 bind = $supMod_$conMod, 8, togglespecialworkspace, magic8 bind = $supMod_$conMod, 9, togglespecialworkspace, magic9 bind = $supMod_$conMod, 9, movetoworkspace, +0 bind = $supMod_$conMod, 9, togglespecialworkspace, magic9 bind = $supMod_$conMod, 9, movetoworkspace, special:magic9 bind = $supMod_$conMod, 9, togglespecialworkspace, magic9 bind = $supMod_$conMod, 0, togglespecialworkspace, magic10 bind = $supMod_$conMod, 0, movetoworkspace, +0 bind = $supMod_$conMod, 0, togglespecialworkspace, magic10 bind = $supMod_$conMod, 0, movetoworkspace, special:magic10 bind = $supMod_$conMod, 0, togglespecialworkspace, magic10 # common binds bindl=, XF86AudioRaiseVolume, exec, pamixer -i 5 # increase volume by 5% bindl=, XF86AudioLowerVolume, exec, pamixer -d 5 # decrease volumy by 5% bindl=, XF86AudioMute, exec, pamixer -t # toggle mute bindl=, XF86AudioMicMute, exec, pamixer --default-source -t # toggle mic mute bindl=, XF86AudioPause, exec, playerctl play-pause # play-pause toggle bindl=, XF86AudioPlay, exec, playerctl play-pause # play-pause toggle bindl=, XF86AudioNext, exec, playerctl next # switch to next media bindl=, XF86AudioPrev, exec, playerctl previous # switch to previous media bindl=, XF86AudioStop, exec, playerctl stop # stop media playback bindl=, XF86News, exec, kitty --class newsboat newsboat # launch news feed reader bindl=, XF86MonBrightnessUp, exec, brightnessctl s 5%+ # increase brightness by 5% bindl=, XF86MonBrightnessDown, exec, brightnessctl s 5%- # decrease brightness by 5% bindl=, XF86Display, exec, wdisplays # launch display configuration utility binde = $supMod_$conMod_SHIFT, p, exec, hyprpicker -n -a # launch color picker # run launcher submap bind = $supMod, p, submap, launcher submap = launcher # will start a submap called "launcher" ## run launcher binds binde = , r, exec, $run # launch desktop run launcher binde = , r, submap, reset binde = , d, exec, $drun # launch desktop run launcher binde = , d, submap, reset binde = , i, exec, $rs_wifi # launch wifi configuration utility binde = , i, submap, reset binde = , w, exec, $rs_wall # launch wallpaper configur binde = , w, submap, reset binde = , e, exec, $rs_emoji # launch emoji picker binde = , e, submap, reset binde = , c, exec, $rs_clip # launch clipboard manager binde = , c, submap, reset binde = , s, exec, $rs_scrot # launch screenshot utility binde = , s, submap, reset binde = , q, exec, $rs_power # launch logout/power menu binde = , q, submap, reset binde = , b, exec, $rs_blue # launch bluetooth configuration utility binde = , b, submap, reset ## use reset to go back to the global submap bind = , escape, submap, reset ## will reset the submap, which will return to the global submap submap = reset # app submap bind = $supMod, a, submap, apps submap = apps # will start a submap called "apps" ## app binds binde = SHIFT, y, exec, $ytfzf # launch youtube player binde = SHIFT, y, submap, reset binde = SHIFT, m, exec, $ytfzf-music # launch youtube music player binde = SHIFT, m, submap, reset binde = SHIFT, f, exec, $flix-cli # launch torrent movie player binde = SHIFT, f, submap, reset binde = SHIFT, a, exec, $ani-cli # launch anime player binde = SHIFT, a, submap, reset binde = SHIFT, b, exec, $monitor # launch resource monitor binde = SHIFT, b, submap, reset binde = SHIFT, h, exec, $hmonitor # launch resource monitor binde = SHIFT, h, submap, reset binde = SHIFT, p, exec, $audiomixer # launch audio mixer binde = SHIFT, p, submap, reset binde = , f, exec, $file # launch file manager binde = , f, submap, reset binde = , e, exec, $editor # launch text editor binde = , e, submap, reset binde = , m, exec, $music # launch music player binde = , m, submap, reset binde = , r, exec, $rss # launch rss feed reader binde = , r, submap, reset binde = , w, exec, $browser # launch web browser binde = , w, submap, reset binde = , c, exec, $chat # launch chat app binde = , c, submap, reset binde = , p, exec, $password # launch password manager binde = , p, submap, reset binde = , n, exec, $notes # launch note taking app binde = , n, submap, reset binde = , o, exec, $office # launch office suite binde = , o, submap, reset ## use reset to go back to the global submap bind = , escape, submap, reset ## will reset the submap, which will return to the global submap submap = reset