this repo has no description
at main 106 lines 4.6 kB view raw
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> | <string> '~' | 27# '*' ':' <command> | '*' '~' 28# 29# string = '"' 'sequence of characters' '"' 30# 31# command = command is executed through '$SHELL -c' and 32# follows valid shell syntax. if the $SHELL environment 33# variable is not set, it will default to '/bin/bash'. 34# when bash is used, the ';' delimeter can be specified 35# to chain commands. 36# 37# to allow a command to extend into multiple lines, 38# prepend '\' at the end of the previous line. 39# 40# an EOL character signifies the end of the bind. 41# 42# -> = keypress is not consumed by skhd 43# 44# * = matches every application not specified in <proc_map_lst> 45# 46# ~ = application is unbound and keypress is forwarded per usual, when specified in a <proc_map> 47# 48# NOTE(koekeishiya): A mode is declared according to the following rules: 49# 50# mode_decl = '::' <name> '@' ':' <command> | '::' <name> ':' <command> | 51# '::' <name> '@' | '::' <name> 52# 53# name = desired name for this mode, 54# 55# @ = capture keypresses regardless of being bound to an action 56# 57# command = command is executed through '$SHELL -c' and 58# follows valid shell syntax. if the $SHELL environment 59# variable is not set, it will default to '/bin/bash'. 60# when bash is used, the ';' delimeter can be specified 61# to chain commands. 62# 63# to allow a command to extend into multiple lines, 64# prepend '\' at the end of the previous line. 65# 66# an EOL character signifies the end of the bind. 67 68# add an on_enter command to the default mode 69# :: default : yabai -m config active_window_border_color 0xff775759 70# 71# defines a new mode 'test' with an on_enter command, that captures keypresses 72# :: test @ : yabai -m config active_window_border_color 0xff24ccaa 73# 74# from 'default' mode, activate mode 'test' 75# cmd - x ; test 76# 77# from 'test' mode, activate mode 'default' 78# test < cmd - x ; default 79# 80# launch a new terminal instance when in either 'default' or 'test' mode 81# default, test < cmd - return : open -na /Applications/Terminal.app 82 83# application specific bindings 84# 85# cmd - n [ 86# "kitty" : echo "hello kitty" 87# * : echo "hello everyone" 88# "qutebrowser" : echo "hello qutebrowser" 89# "terminal" ~ 90# "finder" : false 91# ] 92 93# specify a file that should be included as an additional config-file. 94# treated as an absolutepath if the filename begins with '/' otherwise 95# the file is relative to the path of the config-file it was loaded from. 96# 97# .load "/Users/Koe/.config/partial_skhdrc" 98# .load "partial_skhdrc" 99 100# prevent skhd from monitoring events for specific applications. 101# 102# .blacklist [ 103# "kitty" 104# "terminal" 105# "qutebrowser" 106# ]