aboutsummaryrefslogtreecommitdiffstats
path: root/chunkwm/.skhdrc
diff options
context:
space:
mode:
Diffstat (limited to 'chunkwm/.skhdrc')
-rw-r--r--chunkwm/.skhdrc259
1 files changed, 259 insertions, 0 deletions
diff --git a/chunkwm/.skhdrc b/chunkwm/.skhdrc
new file mode 100644
index 0000000..5336e71
--- /dev/null
+++ b/chunkwm/.skhdrc
@@ -0,0 +1,259 @@
1# NOTE(koekeishiya): A list of all built-in modifier and literal keywords can
2# be found at https://github.com/koekeishiya/skhd/issues/1
3#
4# A hotkey is written according to the following rules:
5#
6# hotkey = <mode> '<' <action> | <action>
7#
8# mode = 'name of mode' | <mode> ',' <mode>
9#
10# action = <keysym> '[' <proc_map_lst> ']' | <keysym> '->' '[' <proc_map_lst> ']'
11# <keysym> ':' <command> | <keysym> '->' ':' <command>
12# <keysym> ';' <mode> | <keysym> '->' ';' <mode>
13#
14# keysym = <mod> '-' <key> | <key>
15#
16# mod = 'modifier keyword' | <mod> '+' <mod>
17#
18# key = <literal> | <keycode>
19#
20# literal = 'single letter or built-in keyword'
21#
22# keycode = 'apple keyboard kVK_<Key> values (0x3C)'
23#
24# proc_map_lst = * <proc_map>
25#
26# proc_map = <string> ':' <command>
27#
28# string = '"' 'sequence of characters' '"'
29#
30# command = command is executed through '$SHELL -c' and
31# follows valid shell syntax. if the $SHELL environment
32# variable is not set, it will default to '/bin/bash'.
33# when bash is used, the ';' delimeter can be specified
34# to chain commands.
35#
36# to allow a command to extend into multiple lines,
37# prepend '\' at the end of the previous line.
38#
39# an EOL character signifies the end of the bind.
40#
41# -> = keypress is not consumed by skhd
42#
43# NOTE(koekeishiya): A mode is declared according to the following rules:
44#
45# mode_decl = '::' <name> '@' ':' <command> | '::' <name> ':' <command> |
46# '::' <name> '@' | '::' <name>
47#
48# name = desired name for this mode,
49#
50# @ = capture keypresses regardless of being bound to an action
51#
52# command = command is executed through '$SHELL -c' and
53# follows valid shell syntax. if the $SHELL environment
54# variable is not set, it will default to '/bin/bash'.
55# when bash is used, the ';' delimeter can be specified
56# to chain commands.
57#
58# to allow a command to extend into multiple lines,
59# prepend '\' at the end of the previous line.
60#
61# an EOL character signifies the end of the bind.
62
63# add an on_enter command to the default mode
64# :: default : chunkc border::color 0xff775759
65#
66# defines a new mode 'test' with an on_enter command, that captures keypresses
67# :: test @ : chunkc border::color 0xff24ccaa
68#
69# from 'default' mode, activate mode 'test'
70# cmd - x ; test
71#
72# from 'test' mode, activate mode 'default'
73# test < cmd - x ; default
74#
75# launch a new terminal instance when in either 'default' or 'test' mode
76# default, test < cmd - return : open -na /Applications/Terminal.app
77
78# application specific bindings
79#
80# cmd - n [
81# "kitty" : echo "hello kitty"
82# "qutebrowser" : echo "hello qutebrowser"
83# "finder" : false
84# ]
85
86# open terminal, blazingly fast compared to iTerm/Hyper
87cmd - return : /Applications/Kitty.app/Contents/MacOS/kitty --single-instance -d ~
88
89# open qutebrowser
90cmd + shift - return : ~/Scripts/qtb.sh
91
92# open mpv
93cmd - m : open -na /Applications/mpv.app $(pbpaste)
94
95# close focused window
96alt - w : chunkc tiling::window --close
97
98# focus window
99alt - h : chunkc tiling::window --focus west
100alt - j : chunkc tiling::window --focus south
101alt - k : chunkc tiling::window --focus north
102alt - l : chunkc tiling::window --focus east
103
104cmd - j : chunkc tiling::window --focus prev
105cmd - k : chunkc tiling::window --focus next
106
107# equalize size of windows
108shift + alt - 0 : chunkc tiling::desktop --equalize
109
110# swap window
111shift + alt - h : chunkc tiling::window --swap west
112shift + alt - j : chunkc tiling::window --swap south
113shift + alt - k : chunkc tiling::window --swap north
114shift + alt - l : chunkc tiling::window --swap east
115
116# move window
117shift + cmd - h : chunkc tiling::window --warp west
118shift + cmd - j : chunkc tiling::window --warp south
119shift + cmd - k : chunkc tiling::window --warp north
120shift + cmd - l : chunkc tiling::window --warp east
121
122# make floating window fill screen
123shift + alt - up : chunkc tiling::window --grid-layout 1:1:0:0:1:1
124
125# make floating window fill left-half of screen
126shift + alt - left : chunkc tiling::window --grid-layout 1:2:0:0:1:1
127
128# make floating window fill right-half of screen
129shift + alt - right : chunkc tiling::window --grid-layout 1:2:1:0:1:1
130
131# create desktop, move window and follow focus
132shift + cmd - n : chunkc tiling::desktop --create;\
133 id=$(chunkc tiling::query --desktops-for-monitor $(chunkc tiling::query --monitor-for-desktop $(chunkc tiling::query --desktop id)));\
134 chunkc tiling::window --send-to-desktop $(echo ${id##* });\
135 chunkc tiling::desktop --focus $(echo ${id##* })
136
137# create desktop and follow focus
138cmd + alt - n : chunkc tiling::desktop --create;\
139 id=$(chunkc tiling::query --desktops-for-monitor $(chunkc tiling::query --monitor-for-desktop $(chunkc tiling::query --desktop id)));\
140 chunkc tiling::desktop --focus $(echo ${id##* })
141# destroy desktop
142cmd + alt - w : chunkc tiling::desktop --annihilate
143
144# fast focus desktop
145cmd + alt - x : chunkc tiling::desktop --focus $(chunkc get _last_active_desktop)
146cmd + alt - z : chunkc tiling::desktop --focus prev
147cmd + alt - c : chunkc tiling::desktop --focus next
148cmd + alt - 1 : chunkc tiling::desktop --focus 1
149cmd + alt - 2 : chunkc tiling::desktop --focus 2
150cmd + alt - 3 : chunkc tiling::desktop --focus 3
151cmd + alt - 4 : chunkc tiling::desktop --focus 4
152cmd + alt - 5 : chunkc tiling::desktop --focus 5
153cmd + alt - 6 : chunkc tiling::desktop --focus 6
154# cmd + alt - 7 : chunkc tiling::desktop --focus 7
155
156# send window to desktop
157shift + alt - x : chunkc tiling::window --send-to-desktop $(chunkc get _last_active_desktop)
158shift + alt - z : chunkc tiling::window --send-to-desktop prev
159shift + alt - c : chunkc tiling::window --send-to-desktop next
160shift + alt - 1 : chunkc tiling::window --send-to-desktop 1
161shift + alt - 2 : chunkc tiling::window --send-to-desktop 2
162shift + alt - 3 : chunkc tiling::window --send-to-desktop 3
163shift + alt - 4 : chunkc tiling::window --send-to-desktop 4
164shift + alt - 5 : chunkc tiling::window --send-to-desktop 5
165shift + alt - 6 : chunkc tiling::window --send-to-desktop 6
166# shift + alt - 7 : chunkc tiling::window --send-to-desktop 7
167
168# send window to desktop and follow focus
169shift + cmd - x : chunkc tiling::window --send-to-desktop $(chunkc get _last_active_desktop); chunkc tiling::desktop --focus $(chunkc get _last_active_desktop)
170shift + cmd - z : chunkc tiling::window --send-to-desktop prev; chunkc tiling::desktop --focus prev
171shift + cmd - c : chunkc tiling::window --send-to-desktop next; chunkc tiling::desktop --focus next
172shift + cmd - 1 : chunkc tiling::window --send-to-desktop 1; chunkc tiling::desktop --focus 1
173shift + cmd - 2 : chunkc tiling::window --send-to-desktop 2; chunkc tiling::desktop --focus 2
174shift + cmd - 3 : chunkc tiling::window --send-to-desktop 3; chunkc tiling::desktop --focus 3
175shift + cmd - 4 : chunkc tiling::window --send-to-desktop 4; chunkc tiling::desktop --focus 4
176shift + cmd - 5 : chunkc tiling::window --send-to-desktop 5; chunkc tiling::desktop --focus 5
177shift + cmd - 6 : chunkc tiling::window --send-to-desktop 6; chunkc tiling::desktop --focus 6
178# shift + cmd - 7 : chunkc tiling::window --send-to-desktop 7; chunkc tiling::desktop --focus 7
179
180# focus monitor
181ctrl + alt - z : chunkc tiling::monitor -f prev
182ctrl + alt - c : chunkc tiling::monitor -f next
183ctrl + alt - 1 : chunkc tiling::monitor -f 1
184ctrl + alt - 2 : chunkc tiling::monitor -f 2
185ctrl + alt - 3 : chunkc tiling::monitor -f 3
186
187# send window to monitor and follow focus
188ctrl + cmd - z : chunkc tiling::window --send-to-monitor prev; chunkc tiling::monitor -f prev
189ctrl + cmd - c : chunkc tiling::window --send-to-monitor next; chunkc tiling::monitor -f next
190ctrl + cmd - 1 : chunkc tiling::window --send-to-monitor 1; chunkc tiling::monitor -f 1
191ctrl + cmd - 2 : chunkc tiling::window --send-to-monitor 2; chunkc tiling::monitor -f 2
192ctrl + cmd - 3 : chunkc tiling::window --send-to-monitor 3; chunkc tiling::monitor -f 3
193
194# increase region size
195shift + alt - a : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge west
196shift + alt - s : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge south
197shift + alt - w : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge north
198shift + alt - d : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge east
199
200# decrease region size
201shift + cmd - a : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge west
202shift + cmd - s : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge south
203shift + cmd - w : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge north
204shift + cmd - d : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge east
205
206# set insertion point for focused container
207ctrl + alt - f : chunkc tiling::window --use-insertion-point cancel
208ctrl + alt - h : chunkc tiling::window --use-insertion-point west
209ctrl + alt - j : chunkc tiling::window --use-insertion-point south
210ctrl + alt - k : chunkc tiling::window --use-insertion-point north
211ctrl + alt - l : chunkc tiling::window --use-insertion-point east
212
213# rotate tree
214alt - r : chunkc tiling::desktop --rotate 90
215
216# mirror tree y-axis
217alt - y : chunkc tiling::desktop --mirror vertical
218
219# mirror tree x-axis
220alt - x : chunkc tiling::desktop --mirror horizontal
221
222# toggle desktop offset
223alt - a : chunkc tiling::desktop --toggle offset
224
225# toggle window fullscreen
226alt - f : chunkc tiling::window --toggle fullscreen
227
228# toggle window native fullscreen
229shift + alt - f : chunkc tiling::window --toggle native-fullscreen
230
231# toggle window parent zoom
232alt - d : chunkc tiling::window --toggle parent
233
234# toggle window split type
235alt - e : chunkc tiling::window --toggle split
236
237# toggle window fade
238alt - q : chunkc tiling::window --toggle fade
239
240# float / unfloat window and center on screen
241alt - t : chunkc tiling::window --toggle float;\