patch 9.1.2110: filetype: skhd files are not recognized

Problem:  filetype: skhd files are not recognized
Solution: Detect .skhdrc and skhdrc as skhd filetype,
          include a syntax and filetype plugin, add syntax tests
          (Kiyoon Kim)

Add syntax highlighting for skhd (simple hotkey daemon for macOS)
configuration files. Includes filetype detection for skhdrc and
.skhdrc files.

Reference:
- https://github.com/asmvik/skhd

closes: #19235

Signed-off-by: Kiyoon Kim <kiyoon@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Kiyoon Kim
2026-01-25 17:39:05 +00:00
committed by Christian Brabandt
parent 5c855ce43d
commit e5f61842b5
13 changed files with 388 additions and 0 deletions
+1
View File
@@ -658,6 +658,7 @@ runtime/syntax/scss.vim @tpope
runtime/syntax/sed.vim @dkearns
runtime/syntax/shared/debversions.vim @jamessan
runtime/syntax/shaderslang.vim @mTvare6
runtime/syntax/skhd.vim @kiyoon
runtime/syntax/solidity.vim @coti-z
runtime/syntax/spajson.vim @dseomn
runtime/syntax/spec.vim @ignatenkobrain
+3
View File
@@ -3305,6 +3305,9 @@ const ft_from_name = {
# Screen RC
".screenrc": "screen",
"screenrc": "screen",
# skhd (simple hotkey daemon for macOS)
".skhdrc": "skhd",
"skhdrc": "skhd",
# SLRN
".slrnrc": "slrnrc",
# Squid
+20
View File
@@ -0,0 +1,20 @@
" Vim filetype plugin file
" Language: skhd(simple hotkey daemon for macOS) configuration file
" Maintainer: Kiyoon Kim <https://github.com/kiyoon>
" Last Change: 2026 Jan 23
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal comments=:# commentstring=#\ %s
setlocal formatoptions-=t formatoptions+=croql
let b:undo_ftplugin = "setl com< cms< fo<"
let &cpo = s:cpo_save
unlet s:cpo_save
+137
View File
@@ -0,0 +1,137 @@
" Vim syntax file
" Language: skhd configuration file
" Maintainer: Kiyoon Kim <https://github.com/kiyoon>
" Last Change: 2025 Jan 22
if exists("b:current_syntax")
finish
endif
" Comments: whole line from '#'
syn match skhdComment /^\s*#.*/
" Modifiers (shift, ctrl, alt, cmd, fn)
syn keyword skhdModifier
\ alt lalt ralt
\ shift lshift rshift
\ cmd lcmd rcmd
\ ctrl lctrl rctrl
\ fn hyper meh
\ option super
" highlight the '+' and '-' and ':' separators
syn match skhdOperator /->/
syn match skhdOperator /[+:\-;<>,\[\]@~]/
" Hex keycode form: 0x3C etc
syn match skhdKeycode /\v0x[0-9A-Fa-f]+/
" Keys (az, digits, functionkeys, arrows…)
syn keyword skhdKey
\ return tab space backspace escape delete
\ home end pageup pagedown insert
\ left right up down
\ sound_up sound_down mute play previous next rewind fast
\ brightness_up brightness_down illumination_up illumination_down
syn match skhdKey /\vf([1-9]|1[0-9]|20)\>/
syn match skhdKey /\v\<[A-Za-z0-9]\>/
" The yabai command and its subcommands
syn match skhdCommand /\<yabai\>\|\<open\>/
syn match skhdSubCmd /\<window\>\|\<space\>\|\<display\>/
" ───────────────────────────────────────────────────────────────────
" Treat anything after a single “:” (not doublecolon) as bash
" ───────────────────────────────────────────────────────────────────
" load Vims builtin shell rules
syntax include @bash syntax/bash.vim
" After `:` (not `::`) is a bash command, but not when it is preceded by a `\`
syn region skhdBash
\ matchgroup=skhdOperator
\ start=/\v(^|[^:])\zs:\s*/
\ end=/\v\s*$\ze/
\ skip=/\v\\\s*$/
\ keepend
\ contains=@bash
" ────────────────────────────────────────────────────────────────
" Keymap group definitions and switches
" ────────────────────────────────────────────────────────────────
" In skhd, you can define groups and assign hotkeys to them as follows:
" 1. Groupdefinition lines that start with :: <group>
" 2. Switch operator (<)
" 3. Target group names after the ;
" Lines like `:: default` or `:: passthrough`
" match the whole thing as a GroupDef, but capture the group name
syn match skhdGroupDef /^::\s*\w\+/
syn match skhdGroupName /::\s*\zs\w\+/
" The `<` switch token in lines like
" passthrough < cmd + shift + alt - b ; default
syn match skhdSwitch /<\s*/
" The target (or “fallthrough”) group after the semicolon
" ... ; default
syn match skhdTargetGroup /;\s*\zs\w\+/
" ------------------------------------------------------------
" Application-specific bindings block: <keysym> [ ... ]
" ------------------------------------------------------------
" The whole block. This avoids grabbing .blacklist by requiring the line be just '[' at end.
syn region skhdProcMapBlock
\ matchgroup=skhdProcMapDelim
\ start=/\v\[\s*$/
\ end=/^\s*\]\s*$/
\ keepend
\ transparent
\ contains=skhdProcMapApp,skhdProcMapWildcard,skhdProcMapUnbind,skhdOperator,skhdComment,skhdBash,skhdString
" App name on the left side: "Google Chrome" :
syn match skhdProcMapApp /^\s*\zs"[^"]*"\ze\s*:\s*/ contained
" Wildcard entry: * :
syn match skhdProcMapWildcard /^\s*\zs\*\ze\s*:\s*/ contained
" Unbind operator on the right side: "App" ~ or * ~
syn match skhdProcMapUnbind /\v^\s*(\"[^"]*\"|\*)\s*\zs\~\ze\s*$/ contained
syn keyword skhdDirective .load .blacklist
syn match skhdLoadLine /^\s*\.load\>\s\+/ contains=skhdDirective
syn region skhdBlacklistBlock
\ start=/^\s*\.blacklist\>\s*\[\s*$/
\ end=/^\s*\]\s*$/
\ keepend
\ contains=skhdDirective,skhdComment,skhdString
syn region skhdString start=/"/ skip=/\\"/ end=/"/
" ────────────────────────────────────────────────────────────────
" Linking to standard Vim highlight groups
" ────────────────────────────────────────────────────────────────
hi def link skhdComment Comment
hi def link skhdHeadline Title
hi def link skhdModifier Keyword
hi def link skhdOperator Operator
hi def link skhdWildcard Special
hi def link skhdKey Identifier
hi def link skhdKeycode Number
hi def link skhdCommand Function
hi def link skhdSubCmd Statement
hi def link skhdGroupDef Label
hi def link skhdGroupName Identifier
hi def link skhdSwitch Operator
hi def link skhdTargetGroup Type
hi def link skhdString String
hi def link skhdProcMapDelim Operator
hi def link skhdProcMapApp Type
hi def link skhdProcMapWildcard Special
hi def link skhdProcMapUnbind Special
hi def link skhdDirective PreProc
let b:current_syntax = "skhd"
@@ -0,0 +1,20 @@
>#+0#0000e05#ffffff0| |s|k|h|d| |c|o|n|f|i|g|u|r|a|t|i|o|n| |f|i|l|e| +0#0000000&@49
|#+0#0000e05&| |T|h|i|s| |i|s| |a| |c|o|m@1|e|n|t| +0#0000000&@55
@75
|#+0#0000e05&| |B|a|s|i|c| |k|e|y| |b|i|n|d|i|n|g|s| |w|i|t|h| |m|o|d|i|f|i|e|r|s| +0#0000000&@39
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|h| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|w|e|s|t| @36
|s+0#af5f00255&|h|i|f|t| +0#0000000&|++0#af5f00255&| +0#0000000&|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|j| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|s|o|u|t|h| @27
|c+0#af5f00255&|t|r|l| +0#0000000&|++0#af5f00255&| +0#0000000&|a+0#af5f00255&|l|t| +0#0000000&|++0#af5f00255&| +0#0000000&|s+0#af5f00255&|h|i|f|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|k| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|n|o|r|t|h| @20
|f+0#af5f00255&|n| +0#0000000&|-+0#af5f00255&| +0#0000000&|l| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|e|a|s|t| @37
@75
|#+0#0000e05&| |U|s|i|n|g| |h|e|x| |k|e|y|c|o|d|e|s| +0#0000000&@54
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|0+0#e000002&|x|2|A| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|p|e|n| |-+0#e000e06&|a| +0#0000000&|"+0#af5f00255&|F+0#e000002&|i|n|d|e|r|"+0#af5f00255&| +0#0000000&@45
@75
|#+0#0000e05&| |F|u|n|c|t|i|o|n| |k|e|y|s| +0#0000000&@59
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|f|1| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|1| |p|r|e|s@1|e|d|"+0#af5f00255&| +0#0000000&@46
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|f|1|2| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|1|2| |p|r|e|s@1|e|d|"+0#af5f00255&| +0#0000000&@44
@75
|#+0#0000e05&| |S|p|e|c|i|a|l| |k|e|y|s| +0#0000000&@60
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|r+0#00e0e07&|e|t|u|r|n| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|p|e|n| |-+0#e000e06&|a| +0#0000000&|"+0#af5f00255&|T+0#e000002&|e|r|m|i|n|a|l|"+0#af5f00255&| +0#0000000&@41
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|t+0#00e0e07&|a|b| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|r|e|c|e|n|t| @32
@57|1|,|1| @10|T|o|p|
@@ -0,0 +1,20 @@
|c+0#af5f00255#ffffff0|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|f|1| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|1| |p|r|e|s@1|e|d|"+0#af5f00255&| +0#0000000&@46
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|f|1|2| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|1|2| |p|r|e|s@1|e|d|"+0#af5f00255&| +0#0000000&@44
@75
|#+0#0000e05&| |S|p|e|c|i|a|l| |k|e|y|s| +0#0000000&@60
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|r+0#00e0e07&|e|t|u|r|n| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|p|e|n| |-+0#e000e06&|a| +0#0000000&|"+0#af5f00255&|T+0#e000002&|e|r|m|i|n|a|l|"+0#af5f00255&| +0#0000000&@41
>a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|t+0#00e0e07&|a|b| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|r|e|c|e|n|t| @32
|c+0#af5f00255&|t|r|l| +0#0000000&|-+0#af5f00255&| +0#0000000&|e+0#00e0e07&|s|c|a|p|e| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|s|p|a|c|e| |-+0#e000e06&@1|b|a|l|a|n|c|e| +0#0000000&@34
|s+0#af5f00255&|h|i|f|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|d+0#00e0e07&|e|l|e|t|e| +0#0000000&|:+0#af5f00255&| |r|m| +0#0000000&|-+0#e000e06&|r|f| +0#0000000&|~|/|.|T|r|a|s|h|/|*| @40
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|s+0#00e0e07&|p|a|c|e| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|p|e|n| |-+0#e000e06&|a| +0#0000000&|"+0#af5f00255&|S+0#e000002&|p|o|t|l|i|g|h|t|"+0#af5f00255&| +0#0000000&@41
@75
|#+0#0000e05&| |A|r@1|o|w| |k|e|y|s| +0#0000000&@62
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|l+0#00e0e07&|e|f|t| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|w|e|s|t| @33
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|r+0#00e0e07&|i|g|h|t| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|e|a|s|t| @32
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|u+0#00e0e07&|p| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|n|o|r|t|h| @34
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|d+0#00e0e07&|o|w|n| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|s|o|u|t|h| @32
@75
|#+0#0000e05&| |M|e|d|i|a| |k|e|y|s| +0#0000000&@62
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|s+0#00e0e07&|o|u|n|d|_|u|p| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|s|a|s|c|r|i|p|t| |-+0#e000e06&|e| +0#0000000&|"+0#af5f00255&|s+0#e000002&|e|t| |v|o|l|u|m|e| |o|u|t|p|u|t| |v|o|l|u|m|e| |1|0@1|"+0#af5f00255&| +0#0000000&@14
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|m+0#00e0e07&|u|t|e| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|s|a|s|c|r|i|p|t| |-+0#e000e06&|e| +0#0000000&|"+0#af5f00255&|s+0#e000002&|e|t| |v|o|l|u|m|e| |o|u|t|p|u|t| |m|u|t|e|d| |t|r|u|e|"+0#af5f00255&| +0#0000000&@18
@57|1|9|,|1| @9|1|5|%|
@@ -0,0 +1,20 @@
|c+0#af5f00255#ffffff0|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|m+0#00e0e07&|u|t|e| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|s|a|s|c|r|i|p|t| |-+0#e000e06&|e| +0#0000000&|"+0#af5f00255&|s+0#e000002&|e|t| |v|o|l|u|m|e| |o|u|t|p|u|t| |m|u|t|e|d| |t|r|u|e|"+0#af5f00255&| +0#0000000&@18
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|p+0#00e0e07&|l|a|y| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|s|a|s|c|r|i|p|t| |-+0#e000e06&|e| +0#0000000&|"+0#af5f00255&|t+0#e000002&|e|l@1| |a|p@1| |\+0#e000e06&|"|M+0#e000002&|u|s|i|c|\+0#e000e06&|"| +0#e000002&|t|o| |p|l|a|y|p|a|u|s|e|"+0#af5f00255&| +0#0000000&@15
|c+0#af5f00255&|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|b+0#00e0e07&|r|i|g|h|t|n|e|s@1|_|u|p| +0#0000000&|:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|b+0#e000002&|r|i|g|h|t|n|e|s@1| |u|p|"+0#af5f00255&| +0#0000000&@32
@75
|#+0#0000e05&| |y|a|b|a|i| |s|u|b|c|o|m@1|a|n|d|s| +0#0000000&@55
>a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|w| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|c|l|o|s|e| +0#0000000&@41
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|s| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|s|p|a|c|e| |-+0#e000e06&@1|c|r|e|a|t|e| +0#0000000&@41
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|d| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|d|i|s|p|l|a|y| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|n|e|x|t| @35
@75
|#+0#0000e05&| |M|o|d|e| |d|e|f|i|n|i|t|i|o|n|s| +0#0000000&@56
|:+0#af5f00255&@1| |d|e|f|a|u|l|t| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|c|o|n|f|i|g| |a|c|t|i|v|e|_|w|i|n|d|o|w|_|b|o|r|d|e|r|_|c|o|l|o|r| |0|x|f@1|7@1|5|7|5|9| @8
|:+0#af5f00255&@1| |r|e|s|i|z|e| +0#0000000&|@+0#af5f00255&| +0#0000000&|:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|c|o|n|f|i|g| |a|c|t|i|v|e|_|w|i|n|d|o|w|_|b|o|r|d|e|r|_|c|o|l|o|r| |0|x|f@1|d|7|5|f|5|f| @7
@75
|#+0#0000e05&| |M|o|d|e| |s|w|i|t|c|h|i|n|g| +0#0000000&@58
|d|e|f|a|u|l|t| |<+0#af5f00255&| |a|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|r| |;+0#af5f00255&| +0#0000000&|r|e|s|i|z|e| @48
|r|e|s|i|z|e| |<+0#af5f00255&| |e+0#00e0e07&|s|c|a|p|e| +0#0000000&|;+0#af5f00255&| +0#0000000&|d|e|f|a|u|l|t| @49
|r|e|s|i|z|e| |<+0#af5f00255&| |a|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|r| |;+0#af5f00255&| +0#0000000&|d|e|f|a|u|l|t| @48
@75
|#+0#0000e05&| |M|o|d|e| |w|i|t|h| |p|a|s@1|t|h|r|o|u|g|h| +0#0000000&@51
@57|3|7|,|1| @9|3|6|%|
@@ -0,0 +1,20 @@
|#+0#0000e05#ffffff0| |M|o|d|e| |w|i|t|h| |p|a|s@1|t|h|r|o|u|g|h| +0#0000000&@51
|:+0#af5f00255&@1| |p|a|s@1|t|h|r|o|u|g|h| +0#0000000&@60
@75
|p|a|s@1|t|h|r|o|u|g|h| |<+0#af5f00255&| |c|m|d| +0#0000000&|++0#af5f00255&| +0#0000000&|s+0#af5f00255&|h|i|f|t| +0#0000000&|++0#af5f00255&| +0#0000000&|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|p| |;+0#af5f00255&| +0#0000000&|d|e|f|a|u|l|t| @29
@75
>#+0#0000e05&| |A|p@1|l|i|c|a|t|i|o|n|-|s|p|e|c|i|f|i|c| |b|i|n|d|i|n|g|s| +0#0000000&@43
|a+0#af5f00255&|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|t| |[+0#af5f00255&| +0#0000000&@65
@4|"+0#e000002&|i|T|e|r|m|2|"| +0#0000000&|:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|i+0#e000002&|T|e|r|m|2| |s|p|e|c|i|f|i|c|"+0#af5f00255&| +0#0000000&@37
@4|"+0#e000002&|G|o@1|g|l|e| |C|h|r|o|m|e|"| +0#0000000&|:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|C+0#e000002&|h|r|o|m|e| |s|p|e|c|i|f|i|c|"+0#af5f00255&| +0#0000000&@30
@4|*+0#e000e06&| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|p|e|n| |-+0#e000e06&|a| +0#0000000&|"+0#af5f00255&|T+0#e000002&|e|r|m|i|n|a|l|"+0#af5f00255&| +0#0000000&@48
|]+0#af5f00255&| +0#0000000&@73
@75
|c+0#af5f00255&|t|r|l| +0#0000000&|-+0#af5f00255&| +0#0000000&|n| |[+0#af5f00255&| +0#0000000&@64
@4|"+0#e000002&|F|i|n|d|e|r|"| +0#0000000&|:+0#af5f00255&| |o+0#0000000&|p|e|n| |-+0#e000e06&|a| +0#0000000&|"+0#af5f00255&|N+0#e000002&|o|t|e|s|"+0#af5f00255&| +0#0000000&@44
@4|*| |~+0#e000e06&| +0#0000000&@67
|]+0#af5f00255&| +0#0000000&@73
@75
|#+0#0000e05&| |.|b|l|a|c|k|l|i|s|t| |d|i|r|e|c|t|i|v|e| +0#0000000&@52
|.|b|l|a|c|k|l|i|s|t| |[| @62
@57|5@1|,|1| @9|5|7|%|
@@ -0,0 +1,20 @@
|.+0&#ffffff0|b|l|a|c|k|l|i|s|t| |[| @62
@4|"+0#e000002&|A|l|f|r|e|d|"| +0#0000000&@62
@4|"+0#e000002&|1|P|a|s@1|w|o|r|d|"| +0#0000000&@59
|]| @73
@75
>#+0#0000e05&| |.|l|o|a|d| |d|i|r|e|c|t|i|v|e| +0#0000000&@57
|.|l|o|a|d| |"+0#e000002&|/|p|a|t|h|/|t|o|/|o|t|h|e|r|/|s|k|h|d|r|c|"| +0#0000000&@45
@75
|#+0#0000e05&| |M|u|l|t|i|-|l|i|n|e| |c|o|m@1|a|n|d| |w|i|t|h| |b|a|c|k|s|l|a|s|h| |c|o|n|t|i|n|u|a|t|i|o|n| +0#0000000&@26
|a+0#af5f00255&|l|t| +0#0000000&|++0#af5f00255&| +0#0000000&|s+0#af5f00255&|h|i|f|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|m| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|t|o|g@1|l|e| +0#0000000&|z|o@1|m|-|f|u|l@1|s|c|r|e@1|n|;+0#af5f00255&| +0#0000000&|\+0#af5f00255&| +0#0000000&@13
@18|y|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|t|o|g@1|l|e| +0#0000000&|b|o|r|d|e|r| @25
@75
|#+0#0000e05&| |C|o|m|p|l|e|x| |b|i|n|d|i|n|g| |w|i|t|h| |s|u|b|c|o|m@1|a|n|d|s| +0#0000000&@40
|h+0#af5f00255&|y|p|e|r| +0#0000000&|-+0#af5f00255&| +0#0000000&|1| |:+0#af5f00255&| |y+0#0000000&|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|w|i|n|d|o|w| |-+0#e000e06&@1|s|p|a|c|e| +0#0000000&|1+0#e000002&|;+0#af5f00255&| +0#0000000&|\+0#af5f00255&| +0#0000000&@34
@12|y|a|b|a|i| |-+0#e000e06&|m| +0#0000000&|s|p|a|c|e| |-+0#e000e06&@1|f|o|c|u|s| +0#0000000&|1+0#e000002&| +0#0000000&@38
@75
|#+0#0000e05&| |U|s|i|n|g| |l|a|l|t|,| |r|a|l|t|,| |l|c|m|d|,| |r|c|m|d|,| |l|s|h|i|f|t|,| |r|s|h|i|f|t|,| |l|c|t|r|l|,| |r|c|t|r|l| +0#0000000&@14
|l+0#af5f00255&|a|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|a| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|l+0#e000002&|e|f|t| |a|l|t|"+0#af5f00255&| +0#0000000&@48
|r+0#af5f00255&|a|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|a| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|r+0#e000002&|i|g|h|t| |a|l|t|"+0#af5f00255&| +0#0000000&@47
@57|7|3|,|1| @9|7|8|%|
@@ -0,0 +1,20 @@
|r+0#af5f00255#ffffff0|a|l|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|a| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|r+0#e000002&|i|g|h|t| |a|l|t|"+0#af5f00255&| +0#0000000&@47
|l+0#af5f00255&|c|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|b| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|l+0#e000002&|e|f|t| |c|m|d|"+0#af5f00255&| +0#0000000&@48
|r+0#af5f00255&|c|m|d| +0#0000000&|-+0#af5f00255&| +0#0000000&|b| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|r+0#e000002&|i|g|h|t| |c|m|d|"+0#af5f00255&| +0#0000000&@47
|l+0#af5f00255&|s|h|i|f|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|c| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|l+0#e000002&|e|f|t| |s|h|i|f|t|"+0#af5f00255&| +0#0000000&@44
|r+0#af5f00255&|s|h|i|f|t| +0#0000000&|-+0#af5f00255&| +0#0000000&|c| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|r+0#e000002&|i|g|h|t| |s|h|i|f|t|"+0#af5f00255&| +0#0000000&@43
>l+0#af5f00255&|c|t|r|l| +0#0000000&|-+0#af5f00255&| +0#0000000&|d| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|l+0#e000002&|e|f|t| |c|t|r|l|"+0#af5f00255&| +0#0000000&@46
|r+0#af5f00255&|c|t|r|l| +0#0000000&|-+0#af5f00255&| +0#0000000&|d| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|r+0#e000002&|i|g|h|t| |c|t|r|l|"+0#af5f00255&| +0#0000000&@45
@75
|#+0#0000e05&| |M|e|h| |a|n|d| |h|y|p|e|r| |m|o|d|i|f|i|e|r|s| +0#0000000&@49
|m+0#af5f00255&|e|h| +0#0000000&|-+0#af5f00255&| +0#0000000&|x| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|m+0#e000002&|e|h| |(|c|t|r|l|+|a|l|t|+|s|h|i|f|t|)|"+0#af5f00255&| +0#0000000&@37
|h+0#af5f00255&|y|p|e|r| +0#0000000&|-+0#af5f00255&| +0#0000000&|y| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|h+0#e000002&|y|p|e|r| |(|c|t|r|l|+|a|l|t|+|s|h|i|f|t|+|c|m|d|)|"+0#af5f00255&| +0#0000000&@29
@75
|#+0#0000e05&| |A|d@1|i|t|i|o|n|a|l| |m|o|d|i|f|i|e|r|s|:| |o|p|t|i|o|n| |a|n|d| |s|u|p|e|r| |a|r|e| |a|l|i|a|s|e|s| +0#0000000&@22
|o+0#af5f00255&|p|t|i|o|n| +0#0000000&|-+0#af5f00255&| +0#0000000&|z| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|o+0#e000002&|p|t|i|o|n| |i|s| |a|l|t| |a|l|i|a|s|"+0#af5f00255&| +0#0000000&@35
|s+0#af5f00255&|u|p|e|r| +0#0000000&|-+0#af5f00255&| +0#0000000&|z| |:+0#af5f00255&| |e|c|h|o| +0#e000002&|"+0#af5f00255&|s+0#e000002&|u|p|e|r| |i|s| |c|m|d| |a|l|i|a|s|"+0#af5f00255&| +0#0000000&@37
@75
|#+0#0000e05&| |E|n|d| |o|f| |c|o|n|f|i|g|u|r|a|t|i|o|n| +0#0000000&@52
@75
|#+0#0000e05&| |v|i|m|:|f|t|=|s|k|h|d|:| +0#0000000&@60
@57|9|1|,|1| @9|B|o|t|
+104
View File
@@ -0,0 +1,104 @@
# skhd configuration file
# This is a comment
# Basic key bindings with modifiers
alt - h : yabai -m window --focus west
shift + cmd - j : yabai -m window --focus south
ctrl + alt + shift - k : yabai -m window --focus north
fn - l : yabai -m window --focus east
# Using hex keycodes
cmd - 0x2A : open -a "Finder"
# Function keys
cmd - f1 : echo "F1 pressed"
alt - f12 : echo "F12 pressed"
# Special keys
cmd - return : open -a "Terminal"
alt - tab : yabai -m window --focus recent
ctrl - escape : yabai -m space --balance
shift - delete : rm -rf ~/.Trash/*
cmd - space : open -a "Spotlight"
# Arrow keys
alt - left : yabai -m window --focus west
alt - right : yabai -m window --focus east
alt - up : yabai -m window --focus north
alt - down : yabai -m window --focus south
# Media keys
cmd - sound_up : osascript -e "set volume output volume 100"
cmd - mute : osascript -e "set volume output muted true"
cmd - play : osascript -e "tell app \"Music\" to playpause"
cmd - brightness_up : echo "brightness up"
# yabai subcommands
alt - w : yabai -m window --close
alt - s : yabai -m space --create
alt - d : yabai -m display --focus next
# Mode definitions
:: default : yabai -m config active_window_border_color 0xff775759
:: resize @ : yabai -m config active_window_border_color 0xffd75f5f
# Mode switching
default < alt - r ; resize
resize < escape ; default
resize < alt - r ; default
# Mode with passthrough
:: passthrough
passthrough < cmd + shift + alt - p ; default
# Application-specific bindings
alt - t [
"iTerm2" : echo "iTerm2 specific"
"Google Chrome" : echo "Chrome specific"
* : open -a "Terminal"
]
ctrl - n [
"Finder" : open -a "Notes"
* ~
]
# .blacklist directive
.blacklist [
"Alfred"
"1Password"
]
# .load directive
.load "/path/to/other/skhdrc"
# Multi-line command with backslash continuation
alt + shift - m : yabai -m window --toggle zoom-fullscreen; \
yabai -m window --toggle border
# Complex binding with subcommands
hyper - 1 : yabai -m window --space 1; \
yabai -m space --focus 1
# Using lalt, ralt, lcmd, rcmd, lshift, rshift, lctrl, rctrl
lalt - a : echo "left alt"
ralt - a : echo "right alt"
lcmd - b : echo "left cmd"
rcmd - b : echo "right cmd"
lshift - c : echo "left shift"
rshift - c : echo "right shift"
lctrl - d : echo "left ctrl"
rctrl - d : echo "right ctrl"
# Meh and hyper modifiers
meh - x : echo "meh (ctrl+alt+shift)"
hyper - y : echo "hyper (ctrl+alt+shift+cmd)"
# Additional modifiers: option and super are aliases
option - z : echo "option is alt alias"
super - z : echo "super is cmd alias"
# End of configuration
# vim:ft=skhd:
+1
View File
@@ -741,6 +741,7 @@ def s:GetFilenameChecks(): dict<list<string>>
simula: ['file.sim'],
sinda: ['file.sin', 'file.s85'],
sisu: ['file.sst', 'file.ssm', 'file.ssi', 'file.-sst', 'file._sst', 'file.sst.meta', 'file.-sst.meta', 'file._sst.meta'],
skhd: ['.skhdrc', 'skhdrc'],
skill: ['file.il', 'file.ils', 'file.cdf'],
slang: ['file.sl'],
slice: ['file.ice'],
+2
View File
@@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2110,
/**/
2109,
/**/