1$mainMod = SUPER
2
3bind = $mainMod SHIFT, W, killactive
4bind = $mainMod, M, exit,
5bind = $mainMod, f, togglefloating
6bind = $mainMod CTRL, f , fullscreen
7bind = ALT, TAB, cyclenext,visible
8bind = ALT, TAB, bringactivetotop
9bind = $mainMod CTRL, w,swapwindow, u
10bind = $mainMod CTRL, a,swapwindow, l
11bind = $mainMod CTRL, s,swapwindow, d
12bind = $mainMod CTRL, d, swapwindow, r
13
14#CUSTOM SCRIPTS and Commands
15bind = $mainMod, SPACE, exec, $menu
16bind = $mainMod, T, exec, $terminal
17bind = CTRLALT, T, exec, $terminal
18bind = $mainMod, E, exec, $fileManager
19bind = $mainMod, B, exec, $browser
20bind = $mainMod, L, exec, $swaylock
21bind = $mainMod, R, exec, $swaybartoggle
22bind = $mainMod, V, exec, $cliphistMenu
23bind = $mainMod, period, exec, $emojiMenu
24bind = $mainMod SHIFT,S,exec, $screenshotMenu
25bind = $mainMod, S, exec, $cycleSpecial
26bind = $mainMod, U, exec, $handyToggle
27
28# Switch workspaces with mainMod + [0-9]
29bind = $mainMod, 1, workspace, 1
30bind = $mainMod, 2, workspace, 2
31bind = $mainMod, 3, workspace, 3
32bind = $mainMod, 4, workspace, 4
33bind = $mainMod, 5, workspace, 5
34bind = $mainMod, 6, workspace, 6
35bind = $mainMod, 7, workspace, 7
36bind = $mainMod, 8, workspace, 8
37bind = $mainMod, 9, workspace, 9
38bind = $mainMod, 0, workspace, 10
39
40# Move active window to a workspace with mainMod + SHIFT + [0-9]
41bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
42bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
43bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
44bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
45bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
46bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
47bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
48bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
49bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
50bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
51
52# Move/resize windows with mainMod + LMB/RMB and dragging
53bindm = $mainMod, mouse:272, movewindow
54bindm = $mainMod, mouse:273, resizewindow
55
56# To move around workspaces
57bind = $mainMod, mouse_up, exec, ws=$(hyprctl activeworkspace -j | jq '.id'); [ $ws -lt 10 ] && hyprctl dispatch workspace $((ws+1))
58bind = $mainMod, mouse_down, exec, ws=$(hyprctl activeworkspace -j | jq '.id'); [ $ws -gt 1 ] && hyprctl dispatch workspace $((ws-1))
59
60# Move to Previous (Stops at 1)
61bind = , mouse:275, exec, \
62ws=$(hyprctl activeworkspace -j | jq '.id'); \
63[ "$ws" -gt 1 ] && hyprctl dispatch workspace $((ws - 1))
64
65# cycle through active workspaces
66bind = $mainMod, TAB, exec, \
67ws=$(hyprctl activeworkspace -j | jq '.id'); \
68max=$(hyprctl workspaces -j | jq '[.[] | select(.id > 0) | .id] | max'); \
69if [ "$ws" -lt "$max" ]; then \
70 hyprctl dispatch workspace $((ws + 1)); \
71else \
72 hyprctl dispatch workspace 1; \
73fi
74
75bind = $mainMod SHIFT, TAB, exec, ws=$(hyprctl activeworkspace -j | jq '.id'); [ $ws -gt 1 ] && hyprctl dispatch workspace $((ws-1))
76
77# Move to Next (1, 2, 3 are persistent; 4+ only if they exist)
78bind = , mouse:276, exec, \
79ws=$(hyprctl activeworkspace -j | jq '.id'); \
80max=$(hyprctl workspaces -j | jq '[.[] | select(.id > 0) | .id] | max'); \
81if [ "$ws" -lt 5 ]; then \
82 hyprctl dispatch workspace $((ws + 1)); \
83elif [ "$ws" -lt "$max" ]; then \
84 hyprctl dispatch workspace $((ws + 1)); \
85fi
86
87input {
88 kb_layout = us
89 kb_variant =
90 kb_model =
91 kb_options =
92 kb_rules =
93
94 follow_mouse = 2
95 float_switch_override_focus = 0
96
97 sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
98
99 touchpad {
100 natural_scroll = false
101 }
102}