SKHD provides global hotkeys for seamless application launching and window management integration with Yabai.
SKHD (Simple Hotkey Daemon) is a lightweight hotkey daemon for macOS that enables global keyboard shortcuts. It’s tightly integrated with Yabai for window management and provides quick access to frequently used applications.
Global Hotkeys : System-wide keyboard shortcuts
Application Launching : Quick access to development tools
Window Management : Integration with Yabai tiling
Modifier Keys : Uses meh (ctrl+alt+shift) and hyper (ctrl+alt+cmd+shift)
All application shortcuts use the meh key (ctrl+alt+shift) for consistency and to avoid conflicts.
17 spaces. Display 1 holds 1-8, display 2 holds 9-17.
Space Display App 1 1 Ghostty 2 1 LibreOffice 3 1 Dia (stack) 4 1 Chrome, Devin 5 1 Cursor 6 1 Preview, Foxit 7 1 Alter 8 1 Obsidian 9 2 Slack 10 2 Telegram 11 2 Zalo 12 2 Discord, WhatsApp (stack) 13 2 Arc 14 2 Cliq 15 2 kitty 16 2 ChatGPT, Claude, Codex, Grok (stack) 17 2 ego lite
Shortcut Application Description meh + aGhostty Focus the primary terminal and move the pointer to it meh + fKitty Secondary terminal emulator on display 2, space 15 meh + xChatGPT AI assistant on display 2, space 16 meh + gCursor AI-powered code editor on space 5 meh + yAlter Chat hub on space 7
Shortcut Application Description meh + sDia Primary web browser on space 3 meh + eEgo Lightweight browser on display 2, space 17 meh + dArc Browser on space 13 meh + zZen Browser Alternative browser meh + kSlack Team communication on space 9 meh + rTelegram Messaging app on space 10 meh + uZalo Messaging app on space 11 meh + tDiscord Community chat on space 12 meh + hWhatsApp Messaging app on space 12 meh + jCliq Team communication on space 14
Shortcut Application Description meh + vGrok Bot Grok desktop app on space 16 meh + cClaude AI assistant on display 2, space 16 meh + lPerplexity AI search engine meh + iStructured Task and time management meh + wLibreOffice Office suite on space 2 meh + pFoxit PDF Reader PDF reader on space 6 meh + oPreview macOS preview app on space 6 meh + nObsidian Notes on space 8 meh + msuperwhisper Voice input meh + qApple Music Music player meh + bBorumi Productivity app
SKHD integrates with Yabai for powerful window management capabilities.
Shortcut Action Description ctrl + shift + hFocus West Move focus to left window ctrl + shift + jFocus South Move focus to bottom window ctrl + shift + kFocus North Move focus to top window ctrl + shift + lFocus East Move focus to right window ctrl + shift + tabFocus Stack Toggle the visible window in a stacked space
Shortcut Action Description cmd + shift + hWarp West Move window to the left cmd + shift + lWarp East Move window to the right
Shortcut Action Description hyper + leftResize Left Decrease width from left hyper + downResize Down Increase height downward hyper + upResize Up Decrease height upward hyper + rightResize Right Increase width to right
Shortcut Action Description hyper + 1-9Send to Space Move window to specific space hyper + tabSend to Recent Move window to recent space cmd + ctrl + 1-4Move & Follow Move window and follow to space cmd + ctrl + ←/→Move to Display Move window to previous/next display and follow
Shortcut Action Description hyper + eBalance Windows Equalize window sizes hyper + fToggle Fullscreen Zoom fullscreen shift + alt + fNative Fullscreen macOS native fullscreen shift + alt + spaceToggle Float Float/unfloat window alt + rRotate Clockwise Rotate layout 270° shift + alt + rRotate Counter Rotate layout 90°
Shortcut Action Description hyper + iToggle Gaps Enable/disable gaps and padding hyper + oToggle Padding Toggle padding only
Location : dotfiles/skhd/.config/skhd/skhdrc
Reload : skhd --restart-service
# Modifier key definitions
meh = ctrl + alt + shift # Primary modifier for apps
hyper = ctrl + alt + cmd + shift # Secondary modifier for window management
# Template for new application
meh - [key] : open "/Applications/AppName.app"
meh - q : open "/Applications/Notion.app"
# Template for window actions
[ modifier ] - [ key ] : yabai -m window -- [ action ] [ parameters ]
# Example: New resize shortcut
hyper - 0 : yabai -m space --balance
brew services restart skhd
brew services list | grep skhd
# Check if SKHD is running
# Check for configuration errors
# SKHD needs accessibility permissions
# Go to: System Preferences → Security & Privacy → Privacy → Accessibility
# Verify application path
ls "/Applications/AppName.app"
# Check if application exists
mdfind "kMDItemDisplayName == 'AppName'"
open "/Applications/AppName.app"
# Check for conflicting shortcuts
# Some apps may override global shortcuts
# Use different modifier combinations
# Consider using hyper instead of meh for some shortcuts
# Check configuration syntax
skhd --config-file ~/.config/skhd/skhdrc --verbose
# Find key codes for special keys
# Press the key you want to map
# Note the key code displayed
# Minimize delay in shortcuts
# Avoid complex shell commands in shortcuts
# Use direct application paths instead of scripts when possible
# Monitor SKHD memory usage
# SKHD should use minimal memory
# If high usage, check for configuration loops
# Different shortcuts based on active application
# Example: Different behavior in terminal vs browser
# Create different modes for different workflows
# Example: Development mode vs presentation mode
# Call custom scripts from shortcuts
meh - p : ~/.local/bin/project-setup.sh
# Pass parameters to scripts
meh - shift - p : ~/.local/bin/project-setup.sh --template react
# Open different apps based on context
# Example: Open appropriate terminal based on current project
Window management shortcuts directly control Yabai
Seamless tiling and space management
Consistent modifier keys across both tools
Application shortcuts work from within tmux sessions
Terminal applications respect tmux session context
Shortcuts work while Neovim is focused
No conflicts with Neovim’s key mappings