# 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

# mnv:ft=skhd:
