Weezle

Untitled

Jan 17th, 2019
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.63 KB | None | 0 0
  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
  87. cmd - return : /Applications/Kitty.app/Contents/MacOS/kitty --single-instance -d ~
  88.  
  89. # open qutebrowser
  90. cmd + shift - return : ~/Scripts/qtb.sh
  91.  
  92. # open mpv
  93. cmd - m : open -na /Applications/kitty.app
  94.  
  95. # close focused window
  96. alt - w : chunkc tiling::window --close
  97.  
  98. # focus window
  99. alt - h : chunkc tiling::window --focus west
  100. alt - j : chunkc tiling::window --focus south
  101. alt - k : chunkc tiling::window --focus north
  102. alt - l : chunkc tiling::window --focus east
  103.  
  104. cmd - j : chunkc tiling::window --focus prev
  105. cmd - k : chunkc tiling::window --focus next
  106.  
  107. # equalize size of windows
  108. shift + alt - 0 : chunkc tiling::desktop --equalize
  109.  
  110. # swap window
  111. shift + alt - h : chunkc tiling::window --swap west
  112. shift + alt - j : chunkc tiling::window --swap south
  113. shift + alt - k : chunkc tiling::window --swap north
  114. shift + alt - l : chunkc tiling::window --swap east
  115.  
  116. # move window
  117. shift + cmd - h : chunkc tiling::window --warp west
  118. shift + cmd - j : chunkc tiling::window --warp south
  119. shift + cmd - k : chunkc tiling::window --warp north
  120. shift + cmd - l : chunkc tiling::window --warp east
  121.  
  122. # make floating window fill screen
  123. shift + alt - up : chunkc tiling::window --grid-layout 1:1:0:0:1:1
  124.  
  125. # make floating window fill left-half of screen
  126. shift + alt - left : chunkc tiling::window --grid-layout 1:2:0:0:1:1
  127.  
  128. # make floating window fill right-half of screen
  129. shift + alt - right : chunkc tiling::window --grid-layout 1:2:1:0:1:1
  130.  
  131. # create desktop, move window and follow focus
  132. shift + 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
  138. cmd + 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
  142. cmd + alt - w : chunkc tiling::desktop --annihilate
  143.  
  144. # fast focus desktop
  145. cmd + alt - x : chunkc tiling::desktop --focus $(chunkc get _last_active_desktop)
  146. cmd + alt - z : chunkc tiling::desktop --focus prev
  147. cmd + alt - c : chunkc tiling::desktop --focus next
  148. cmd + alt - 1 : chunkc tiling::desktop --focus 1
  149. cmd + alt - 2 : chunkc tiling::desktop --focus 2
  150. cmd + alt - 3 : chunkc tiling::desktop --focus 3
  151. cmd + alt - 4 : chunkc tiling::desktop --focus 4
  152. cmd + alt - 5 : chunkc tiling::desktop --focus 5
  153. cmd + alt - 6 : chunkc tiling::desktop --focus 6
  154. # cmd + alt - 7 : chunkc tiling::desktop --focus 7
  155.  
  156. # send window to desktop
  157. shift + alt - x : chunkc tiling::window --send-to-desktop $(chunkc get _last_active_desktop)
  158. shift + alt - z : chunkc tiling::window --send-to-desktop prev
  159. shift + alt - c : chunkc tiling::window --send-to-desktop next
  160. shift + alt - 1 : chunkc tiling::window --send-to-desktop 1
  161. shift + alt - 2 : chunkc tiling::window --send-to-desktop 2
  162. shift + alt - 3 : chunkc tiling::window --send-to-desktop 3
  163. shift + alt - 4 : chunkc tiling::window --send-to-desktop 4
  164. shift + alt - 5 : chunkc tiling::window --send-to-desktop 5
  165. shift + 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
  169. shift + cmd - x : chunkc tiling::window --send-to-desktop $(chunkc get _last_active_desktop); chunkc tiling::desktop --focus $(chunkc get _last_active_desktop)
  170. shift + cmd - z : chunkc tiling::window --send-to-desktop prev; chunkc tiling::desktop --focus prev
  171. shift + cmd - c : chunkc tiling::window --send-to-desktop next; chunkc tiling::desktop --focus next
  172. shift + cmd - 1 : chunkc tiling::window --send-to-desktop 1; chunkc tiling::desktop --focus 1
  173. shift + cmd - 2 : chunkc tiling::window --send-to-desktop 2; chunkc tiling::desktop --focus 2
  174. shift + cmd - 3 : chunkc tiling::window --send-to-desktop 3; chunkc tiling::desktop --focus 3
  175. shift + cmd - 4 : chunkc tiling::window --send-to-desktop 4; chunkc tiling::desktop --focus 4
  176. shift + cmd - 5 : chunkc tiling::window --send-to-desktop 5; chunkc tiling::desktop --focus 5
  177. shift + 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
  181. ctrl + alt - z : chunkc tiling::monitor -f prev
  182. ctrl + alt - c : chunkc tiling::monitor -f next
  183. ctrl + alt - 1 : chunkc tiling::monitor -f 1
  184. ctrl + alt - 2 : chunkc tiling::monitor -f 2
  185. ctrl + alt - 3 : chunkc tiling::monitor -f 3
  186.  
  187. # send window to monitor and follow focus
  188. ctrl + cmd - z : chunkc tiling::window --send-to-monitor prev; chunkc tiling::monitor -f prev
  189. ctrl + cmd - c : chunkc tiling::window --send-to-monitor next; chunkc tiling::monitor -f next
  190. ctrl + cmd - 1 : chunkc tiling::window --send-to-monitor 1; chunkc tiling::monitor -f 1
  191. ctrl + cmd - 2 : chunkc tiling::window --send-to-monitor 2; chunkc tiling::monitor -f 2
  192. ctrl + cmd - 3 : chunkc tiling::window --send-to-monitor 3; chunkc tiling::monitor -f 3
  193.  
  194. # increase region size
  195. shift + alt - a : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge west
  196. shift + alt - s : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge south
  197. shift + alt - w : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge north
  198. shift + alt - d : chunkc tiling::window --use-temporary-ratio 0.1 --adjust-window-edge east
  199.  
  200. # decrease region size
  201. shift + cmd - a : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge west
  202. shift + cmd - s : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge south
  203. shift + cmd - w : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge north
  204. shift + cmd - d : chunkc tiling::window --use-temporary-ratio -0.1 --adjust-window-edge east
  205.  
  206. # set insertion point for focused container
  207. ctrl + alt - f : chunkc tiling::window --use-insertion-point cancel
  208. ctrl + alt - h : chunkc tiling::window --use-insertion-point west
  209. ctrl + alt - j : chunkc tiling::window --use-insertion-point south
  210. ctrl + alt - k : chunkc tiling::window --use-insertion-point north
  211. ctrl + alt - l : chunkc tiling::window --use-insertion-point east
  212.  
  213. # rotate tree
  214. alt - r : chunkc tiling::desktop --rotate 90
  215.  
  216. # mirror tree y-axis
  217. alt - y : chunkc tiling::desktop --mirror vertical
  218.  
  219. # mirror tree x-axis
  220. alt - x : chunkc tiling::desktop --mirror horizontal
  221.  
  222. # toggle desktop offset
  223. alt - a : chunkc tiling::desktop --toggle offset
  224.  
  225. # toggle window fullscreen
  226. alt - f : chunkc tiling::window --toggle fullscreen
  227.  
  228. # toggle window native fullscreen
  229. shift + alt - f : chunkc tiling::window --toggle native-fullscreen
  230.  
  231. # toggle window parent zoom
  232. alt - d : chunkc tiling::window --toggle parent
  233.  
  234. # toggle window split type
  235. alt - e : chunkc tiling::window --toggle split
  236.  
  237. # toggle window fade
  238. alt - q : chunkc tiling::window --toggle fade
  239.  
  240. # float / unfloat window and center on screen
  241. alt - t : chunkc tiling::window --toggle float;\
  242. chunkc tiling::window --grid-layout 4:4:1:1:2:2
  243.  
  244. # toggle sticky
  245. alt - s : chunkc tiling::window --toggle sticky
  246.  
  247. # toggle sticky, float and resize to picture-in-picture size
  248. alt - p : chunkc tiling::window --toggle sticky;\
  249. chunkc tiling::window --grid-layout 5:5:4:0:1:1
  250.  
  251. # float next window to be tiled
  252. shift + alt - t : chunkc set window_float_next 1
  253.  
  254. # change layout of desktop
  255. ctrl + alt - a : chunkc tiling::desktop --layout bsp
  256. ctrl + alt - s : chunkc tiling::desktop --layout monocle
  257. ctrl + alt - d : chunkc tiling::desktop --layout float
  258.  
  259. ctrl + alt - w : chunkc tiling::desktop --deserialize ~/.chunkwm_layouts/dev_1
Advertisement
Add Comment
Please, Sign In to add comment