# ================================================== # KoolDots (2026) # Project URL: https://github.com/LinuxBeginnings # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== # Default Keybinds # visit https://wiki.hyprland.org/Configuring/Binds/ for more info $mainMod = SUPER $scriptsDir = $HOME/.config/hypr/scripts $UserConfigs = $HOME/.config/hypr/UserConfigs $UserScripts = $HOME/.config/hypr/UserScripts # settings for User defaults apps - set your default terminal and file manager on this file source= $UserConfigs/01-UserDefaults.conf #### STANDARD #### # Common shortcuts #bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu bindd = $mainMod, D, App launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window bindd = $mainMod, B, Open default browser, exec, xdg-open "https://" bindd = $mainMod, A, Desktop overview, exec, $scriptsDir/OverviewToggle.sh # toggles quickshell or ags overview (tries QS first, falls back to AGS) #bindd = $mainMod, A, Ags overview, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) #bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed) bindd = $mainMod, Return, Open terminal, exec, $term bindd = $mainMod, T, File manager, exec, $files bindd = $mainMod, C, SSH session manager, exec, $scriptsDir/rofi-ssh-menu.sh # FEATURES / EXTRAS bindd = $mainMod, E, Global theme switcher using Wallust, exec, $scriptsDir/ThemeChanger.sh #Global theme switcher bindd = $mainMod, H, Help / cheat sheet, exec, $scriptsDir/KeyHints.sh bindd = $mainMod ALT, R, Refresh bar and menus, exec, $scriptsDir/Refresh.sh bindd = $mainMod ALT, E, Emoji menu, exec, $scriptsDir/RofiEmoji.sh bindd = $mainMod, S, Web search, exec, $scriptsDir/RofiSearch.sh bindd = $mainMod CTRL, S, Window switcher, exec, rofi -show window bindd = $mainMod ALT, O, Toggle blur, exec, $scriptsDir/ChangeBlur.sh bindd = $mainMod SHIFT, G, Toggle game mode, exec, $scriptsDir/GameMode.sh bindd = $mainMod ALT, L, Toggle layouts, exec, $scriptsDir/ChangeLayout.sh toggle bindd = $mainMod ALT, V, Clipboard manager, exec, $scriptsDir/ClipManager.sh bindd = $mainMod CTRL, R, Rofi theme selector, exec, $scriptsDir/RofiThemeSelector.sh bindd = $mainMod CTRL SHIFT, R, Rofi theme selector (modified), exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh bindd = $mainMod CTRL, K, Kitty theme selector, exec, $scriptsDir/Kitty_themes.sh bindd = $mainMod CTRL, G, Ghostty theme selector, exec, $scriptsDir/Ghostty_themes.sh bindd = $mainMod SHIFT, B, Set static Rainbow Border, exec, $UserScripts/RainbowBorders-low-cpu.sh --run-once bindd = $mainMod SHIFT, H, Toggle Mute/Unmute for Active-Window, exec, $scriptsDir/Toggle-Active-Window-Audio.sh bindd = ALT SHIFT, S, Hyprshot Screen Capture, exec, $scriptsDir/hyprshot.sh -m region -o $HOME/Pictures/Screenshots bindd = $mainMod ,F , Fullscreen, fullscreen bindd = $mainMod SHIFT, F, Maximize window, fullscreen, 1 bindd = $mainMod, SPACE, Float current window, togglefloating, bindd = $mainMod ALT, SPACE, Float all windows, exec, $scriptsDir/Float-all-Windows.sh # NOTE: Dropterminal is currently certified only with kitty. Not all terminals behave correctly as a dropdown. bindd = $mainMod SHIFT, Return, DropDown terminal, exec, $scriptsDir/Dropterminal.sh kitty # Desktop zooming or magnifier bindd = $mainMod ALT, mouse_down, Zoom in, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" bindd = $mainMod ALT, mouse_up, Zoom out, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" # Waybar / Bar related bindd = $mainMod CTRL ALT, B, Toggle waybar on/off, exec, pkill -SIGUSR1 waybar bindd = $mainMod CTRL, B, Waybar styles menu, exec, $scriptsDir/WaybarStyles.sh bindd = $mainMod ALT, B, Waybar layout menu, exec, $scriptsDir/WaybarLayout.sh # Night light toggle (Hyprsunset) bindd = $mainMod, N, Toggle Hyprsunset - night light, exec, $scriptsDir/Hyprsunset.sh toggle # FEATURES / EXTRAS (UserScripts) bindd = $mainMod SHIFT, M, Online music, exec, $UserScripts/RofiBeats.sh bindd = $mainMod, W, Select Wallpaper, exec, $UserScripts/WallpaperSelect.sh bindd = $mainMod SHIFT, W, Wallpaper effects, exec, $UserScripts/WallpaperEffects.sh bindd = CTRL ALT, W, Random wallpaper, exec, $UserScripts/WallpaperRandom.sh bindd = $mainMod CTRL, O, Toggle active window opacity, setprop, active opaque toggle bindd = $mainMod SHIFT, K, Search keybinds, exec, $scriptsDir/KeyBinds.sh bindd = $mainMod SHIFT, A, Animations menu, exec, $scriptsDir/Animations.sh bindd = $mainMod SHIFT, O, Change ZSH (oh-my-zsh) theme, exec, $UserScripts/ZshChangeTheme.sh bindlnd = ALT_L, SHIFT_L, Switch keyboard layout globally, exec, $scriptsDir/KeyboardLayout.sh switch bindlnd = SHIFT_L, ALT_L, Switch keyboard layout per-window, exec, $scriptsDir/Tak0-Per-Window-Switch.sh bindd = $mainMod ALT, C, Calculator, exec, $UserScripts/RofiCalc.sh # Move current workspaces to monitors (left right up or down) bindd = $mainMod CTRL, F9, Move workspace to left monitor, movecurrentworkspacetomonitor, l bindd = $mainMod CTRL, F10, Move workspace to right monitor, movecurrentworkspacetomonitor, r bindd = $mainMod CTRL, F11, Move workspace to up monitor, movecurrentworkspacetomonitor, u bindd = $mainMod CTRL, F12, Move workspace to down monitor, movecurrentworkspacetomonitor, d #### SYSTEM #### bindd = CTRL ALT,Delete, Exit Hyprland, exec, $scriptsDir/Logout.sh bindd = $mainMod, Q, Close active window, killactive, bindd = $mainMod SHIFT, Q, Terminate active process, exec, $scriptsDir/KillActiveProcess.sh bindd = CTRL ALT, L, Lock screen, exec, $scriptsDir/LockScreen.sh bindd = CTRL ALT, P, Powermenu, exec, $scriptsDir/Wlogout.sh bindd = $mainMod SHIFT, N, Notification panel, exec, swaync-client -t -sw bindd = $mainMod SHIFT, E, Quick settings menu, exec, $scriptsDir/Kool_Quick_Settings.sh # Master Layout bindd = $mainMod CTRL, D, Remove master, layoutmsg, removemaster bindd = $mainMod, I, Add master, layoutmsg, addmaster # j/k cycle windows globally bindd = $mainMod, j, Cycle next, cyclenext bindd = $mainMod, k, Cycle previous, cyclenext, prev bindd = $mainMod CTRL, Return, Swap with master, layoutmsg, swapwithmaster # Dwindle Layout bindd = $mainMod SHIFT, I, Toggle split (dwindle), layoutmsg, togglesplit bindd = $mainMod, P, Toggle pseudo (dwindle), pseudo, # Works on either layout (Master or Dwindle) bindd = $mainMod, M, Set split ratio 0.3, exec, hyprctl dispatch splitratio 0.3 # layout aware keybinds exec-once = $scriptsDir/ChangeLayout.sh init # Direct layout binds bindd = $mainMod ALT, 1, Layout dwindle, exec, $scriptsDir/ChangeLayout.sh dwindle bindd = $mainMod ALT, 2, Layout master, exec, $scriptsDir/ChangeLayout.sh master bindd = $mainMod ALT, 3, Layout scrolling, exec, $scriptsDir/ChangeLayout.sh scrolling bindd = $mainMod ALT, 4, Layout monocle, exec, $scriptsDir/ChangeLayout.sh monocle # Scrolling Layout bindd = $mainMod SHIFT, period, Move to right column, layoutmsg, move +col bindd = $mainMod SHIFT, comma, Move to left column, layoutmsg, move -col bindd = $mainMod ALT, comma, Swap columns left, layoutmsg, swapcol l bindd = $mainMod ALT, period, Swap columns right, layoutmsg, swapcol r # Set layout to Horizontal (Standard "Tape" style) bindd = $mainMod ALT, H, Horizonal scroll right,exec, hyprctl keyword scrolling:direction right # Set layout to Vertical (Stacked "Column" style) bindd = $mainMod ALT, V, Vertical Scroll down,exec, hyprctl keyword scrolling:direction down # Create a toggle bind (e.g., Mod + Shift + S) bindd = $mainMod ALT, S, Toggle scrolling V/H, exec, bash -c '[[ $(hyprctl getoption scrolling:direction -j | jq -r ".str") == "right" ]] && hyprctl keyword scrolling:direction down || hyprctl keyword scrolling:direction right' # Cycle windows; if floating bring to top bindd = ALT, Tab, Cycle next window, cyclenext bindd = ALT, Tab, Bring active to top, bringactivetotop # Special Keys / Hot Keys bindeld = , xf86audioraisevolume, Volume up, exec, $scriptsDir/Volume.sh --inc bindeld = , xf86audiolowervolume, Volume down, exec, $scriptsDir/Volume.sh --dec bindeld = ALT, xf86audioraisevolume, Volume up precise, exec, $scriptsDir/Volume.sh --inc-precise bindeld = ALT, xf86audiolowervolume, Volume down precise, exec, $scriptsDir/Volume.sh --dec-precise bindld = , xf86AudioMicMute, Toggle mic mute, exec, $scriptsDir/Volume.sh --toggle-mic bindld = , xf86audiomute, Toggle mute, exec, $scriptsDir/Volume.sh --toggle bindld = , xf86Sleep, Sleep, exec, systemctl suspend bindld = , xf86Rfkill, Airplane mode, exec, $scriptsDir/AirplaneMode.sh # media controls using keyboards bindld = , xf86AudioPlayPause, Play/pause, exec, $scriptsDir/MediaCtrl.sh --pause bindld = , xf86AudioPause, Pause, exec, $scriptsDir/MediaCtrl.sh --pause bindld = , xf86AudioPlay, Play, exec, $scriptsDir/MediaCtrl.sh --pause bindld = , xf86AudioNext, Next track, exec, $scriptsDir/MediaCtrl.sh --nxt bindld = , xf86AudioPrev, Previous track, exec, $scriptsDir/MediaCtrl.sh --prv bindld = , xf86audiostop, Stop, exec, $scriptsDir/MediaCtrl.sh --stop # Screenshot keybindings NOTE: You may need to press Fn key as well bindd = $mainMod, Print, Screenshot now, exec, $scriptsDir/ScreenShot.sh --now bindd = $mainMod SHIFT, Print, Screenshot (area), exec, $scriptsDir/ScreenShot.sh --area bindd = $mainMod CTRL, Print, Screenshot in 5s, exec, $scriptsDir/ScreenShot.sh --in5 bindd = $mainMod CTRL SHIFT, Print, Screenshot in 10s, exec, $scriptsDir/ScreenShot.sh --in10 bindd = ALT, Print, Screenshot active window, exec, $scriptsDir/ScreenShot.sh --active # screenshot with swappy (another screenshot tool) bindd = $mainMod SHIFT, S, Screenshot (swappy), exec, $scriptsDir/ScreenShot.sh --swappy # Resize windows binded = $mainMod SHIFT, left, Resize left (-50), resizeactive, -50 0 binded = $mainMod SHIFT, right, Resize right (+50), resizeactive, 50 0 binded = $mainMod SHIFT, up, Resize up (-50), resizeactive, 0 -50 binded = $mainMod SHIFT, down, Resize down (+50), resizeactive, 0 50 # Move windows bindd = $mainMod CTRL, left, Move window left, movewindow, l bindd = $mainMod CTRL, right, Move window right, movewindow, r bindd = $mainMod CTRL, up, Move window up, movewindow, u bindd = $mainMod CTRL, down, Move window down, movewindow, d # Swap windows bindd = $mainMod ALT, left, Swap window left, swapwindow, l bindd = $mainMod ALT, right, Swap window right, swapwindow, r bindd = $mainMod ALT, up, Swap window up, swapwindow, u bindd = $mainMod ALT, down, Swap window down, swapwindow, d # group bindd = $mainMod, G, Toggle group, togglegroup # Navigate within a group bindd = $mainMod, Tab, Change Group Forward, changegroupactive, f bindd = $mainMod CTRL, tab, Change active in group, changegroupactive bindd = $mainMod SHIFT, Tab, Change Group Back, changegroupactive, b # Move window into/out of group bindd = $mainMod CTRL, K, Move left into group, moveintogroup, l # Move active window left into a group A bindd = $mainMod CTRL, L, Move Right into group, moveintogroup, r # Move active window right into a group bindd = $mainMod CTRL, H, Move active out of group, moveoutofgroup # Move active window out of group # Try to dynamically move in grouped window and when ungrouped # Not working for me DW 11/26/25 PR: https://github.com/LinuxBeginnings/Hyprland-Dots/pull/872 #bindd = $mainMod, right, Focus right, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[-1] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus r; else hyprctl dispatch changegroupactive f; fi' #bindd = $mainMod, left, Focus left, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[0] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus l; else hyprctl dispatch changegroupactive b; fi' # Move focus with mainMod + arrow keys bindd = $mainMod, left, Focus left, movefocus, l bindd = $mainMod, right, Focus right, movefocus, r bindd = $mainMod, up, Focus up, movefocus, u bindd = $mainMod, down, Focus down, movefocus, d # Workspaces related bindd = $mainMod, tab, Next workspace, workspace, m+1 bindd = $mainMod SHIFT, tab, Previous workspace, workspace, m-1 # Special workspace bindd = $mainMod SHIFT, U, Move to special workspace, movetoworkspace, special bindd = $mainMod, U, Toggle special workspace, togglespecialworkspace, # The following mappings use the key codes to better support various keyboard layouts # 1 is code:10, 2 is code 11, etc # Switch workspaces with mainMod + [0-9] bindd = $mainMod, code:10, Workspace 1, workspace, 1 # NOTE: code:10 = key 1 bindd = $mainMod, code:11, Workspace 2, workspace, 2 # NOTE: code:11 = key 2 bindd = $mainMod, code:12, Workspace 3, workspace, 3 # NOTE: code:12 = key 3 bindd = $mainMod, code:13, Workspace 4, workspace, 4 # NOTE: code:13 = key 4 bindd = $mainMod, code:14, Workspace 5, workspace, 5 # NOTE: code:14 = key 5 bindd = $mainMod, code:15, Workspace 6, workspace, 6 # NOTE: code:15 = key 6 bindd = $mainMod, code:16, Workspace 7, workspace, 7 # NOTE: code:16 = key 7 bindd = $mainMod, code:17, Workspace 8, workspace, 8 # NOTE: code:17 = key 8 bindd = $mainMod, code:18, Workspace 9, workspace, 9 # NOTE: code:18 = key 9 bindd = $mainMod, code:19, Workspace 10, workspace, 10 # NOTE: code:19 = key 0 # Move active window and follow to workspace mainMod + SHIFT [0-9] bindd = $mainMod SHIFT, code:10, Move to workspace 1, movetoworkspace, 1 # NOTE: code:10 = key 1 bindd = $mainMod SHIFT, code:11, Move to workspace 2, movetoworkspace, 2 # NOTE: code:11 = key 2 bindd = $mainMod SHIFT, code:12, Move to workspace 3, movetoworkspace, 3 # NOTE: code:12 = key 3 bindd = $mainMod SHIFT, code:13, Move to workspace 4, movetoworkspace, 4 # NOTE: code:13 = key 4 bindd = $mainMod SHIFT, code:14, Move to workspace 5, movetoworkspace, 5 # NOTE: code:14 = key 5 bindd = $mainMod SHIFT, code:15, Move to workspace 6, movetoworkspace, 6 # NOTE: code:15 = key 6 bindd = $mainMod SHIFT, code:16, Move to workspace 7, movetoworkspace, 7 # NOTE: code:16 = key 7 bindd = $mainMod SHIFT, code:17, Move to workspace 8, movetoworkspace, 8 # NOTE: code:17 = key 8 bindd = $mainMod SHIFT, code:18, Move to workspace 9, movetoworkspace, 9 # NOTE: code:18 = key 9 bindd = $mainMod SHIFT, code:19, Move to workspace 10, movetoworkspace, 10 # NOTE: code:19 = key 0 bindd = $mainMod SHIFT, bracketleft, Move to previous workspace, movetoworkspace, -1 # brackets [ bindd = $mainMod SHIFT, bracketright, Move to next workspace, movetoworkspace, +1 # brackets ] # Move active window to a workspace silently mainMod + CTRL [0-9] bindd = $mainMod CTRL, code:10, Move silently to workspace 1, movetoworkspacesilent, 1 # NOTE: code:10 = key 1 bindd = $mainMod CTRL, code:11, Move silently to workspace 2, movetoworkspacesilent, 2 # NOTE: code:11 = key 2 bindd = $mainMod CTRL, code:12, Move silently to workspace 3, movetoworkspacesilent, 3 # NOTE: code:12 = key 3 bindd = $mainMod CTRL, code:13, Move silently to workspace 4, movetoworkspacesilent, 4 # NOTE: code:13 = key 4 bindd = $mainMod CTRL, code:14, Move silently to workspace 5, movetoworkspacesilent, 5 # NOTE: code:14 = key 5 bindd = $mainMod CTRL, code:15, Move silently to workspace 6, movetoworkspacesilent, 6 # NOTE: code:15 = key 6 bindd = $mainMod CTRL, code:16, Move silently to workspace 7, movetoworkspacesilent, 7 # NOTE: code:16 = key 7 bindd = $mainMod CTRL, code:17, Move silently to workspace 8, movetoworkspacesilent, 8 # NOTE: code:17 = key 8 bindd = $mainMod CTRL, code:18, Move silently to workspace 9, movetoworkspacesilent, 9 # NOTE: code:18 = key 9 bindd = $mainMod CTRL, code:19, Move silently to workspace 10, movetoworkspacesilent, 10 # NOTE: code:19 = key 0 bindd = $mainMod CTRL, bracketleft, Move silently to previous workspace, movetoworkspacesilent, -1 # brackets [ bindd = $mainMod CTRL, bracketright, Move silently to next workspace, movetoworkspacesilent, +1 # brackets ] # Scroll through existing workspaces with mainMod + scroll bindd = $mainMod, mouse_down, Next workspace, workspace, e+1 bindd = $mainMod, mouse_up, Previous workspace, workspace, e-1 bindd = $mainMod, period, Next workspace, workspace, e+1 bindd = $mainMod, comma, Previous workspace, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindmd = $mainMod, mouse:272, Move window, movewindow # NOTE: mouse:272 = left click bindmd = $mainMod, mouse:273, Resize window, resizewindow # NOTE: mouse:272 = right click