Miscellaneous
page in development...
Application Config
Ghostty
Partial config snippet to add to your Ghostty config file (located at ~/.config/ghostty/config by default).
# sends ESC d, which Zsh/Bash typically interpret as kill-word (delete next word).
keybind = alt+delete=esc:d
iTerm2
These custom key mappings will allow movements using arrow keys in conjunction with modifier keys. The following JSON can be added to your iTerm2 key bindings under Settings -> Keys -> Key Bindings -> Presets... -> Import...
{"Key Mappings":{"0xf702-0x320000-0x7b":{"Version":0,"Action":47,"Text":"2","Label":""},"0xf703-0x280000-0x0":{"Version":0,"Action":10,"Text":"f","Label":""},"0x7a-0x100000-0x6":{"Version":0,"Action":11,"Text":"0x1f","Label":""},"0xf703-0x2a0000-0x7c":{"Version":0,"Action":46,"Text":"1","Label":""},"0x5a-0x120000-0x6":{"Version":0,"Action":11,"Text":"0x18 0x1f","Label":""},"0xf700-0x300000-0x0":{"Version":0,"Action":7,"Text":"","Label":""},"0xf702-0x2a0000-0x7b":{"Version":0,"Action":47,"Text":"1","Label":""},"0x9-0x40000-0x0":{"Version":0,"Action":25,"Text":"Select Next Tab
Select Next Tab","Label":""},"0x7f-0x100000-0x33":{"Version":0,"Action":11,"Text":"0x15","Label":""},"0xf72d-0x100000-0x0":{"Version":0,"Action":8,"Text":"","Label":""},"0xf702-0x280000-0x0":{"Version":0,"Action":10,"Text":"b","Label":""},"0xf72b-0x100000-0x0":{"Version":0,"Action":4,"Text":"","Label":""},"0x74-0x100000-0x0":{"Version":0,"Action":25,"Text":"New Tab with Current Profile","Label":""},"0x54-0x120000-0x0":{"Version":0,"Action":25,"Text":"Split Vertically with Current Profile
Split Vertically with Current Profile","Label":""},"0xf703-0x300000-0x0":{"Version":0,"Action":11,"Text":"0x05","Label":""},"0x19-0x60000-0x0":{"Version":0,"Action":25,"Text":"Select Previous Tab
Select Previous Tab","Label":""},"0xf703-0x320000-0x0":{"Version":0,"Action":46,"Text":"2","Label":""},"0xf72c-0x20000-0x0":{"Version":0,"Action":9,"Text":"","Label":""},"0xf72d-0x20000-0x0":{"Version":0,"Action":8,"Text":"","Label":""},"0xf703-0x220000-0x7c":{"Version":0,"Action":46,"Text":"0","Label":""},"0x7f-0x80000-0x33":{"Version":0,"Action":11,"Text":"0x17","Label":""},"0xf729-0x100000-0x0":{"Version":0,"Action":5,"Text":"","Label":""},"0xf72c-0x100000-0x0":{"Version":0,"Action":9,"Text":"","Label":""},"0xf702-0x300000-0x7b":{"Version":0,"Action":11,"Text":"0x01","Label":""},"0xf701-0x300000-0x0":{"Version":0,"Action":6,"Text":"","Label":""},"0xf728-0x80000-0x75":{"Version":0,"Action":11,"Text":"0x1b 0x64","Label":""},"0xf702-0x220000-0x7b":{"Version":0,"Action":47,"Text":"0","Label":""}},"Touch Bar Items":{}}
Hammerspoon
Partial config snippet to add to your Hammerspoon initialization file (located at ~/.hammerspoon/init.lua by default). Used in conjunction with Karabiner-Elements to detect lock screen.
-- Function to set Karabiner-Elements variable
function setKarabinerVariable(variableName, variableValue)
local karabiner_cli = "/Library/Application\ Support/org.pqrs/Karabiner-Elements/bin/karabiner_cli"
local command = string.format(
'%s --set-variables '{"%s": %d}'',
karabiner_cli, variableName, variableValue
)
hs.execute(command)
end
-- Watch for screen lock and unlock events
local screenWatcher = hs.caffeinate.watcher.new(function(eventType)
if eventType == hs.caffeinate.watcher.screensDidLock then
setKarabinerVariable("is_lock_screen", 1)
elseif eventType == hs.caffeinate.watcher.screensDidUnlock then
setKarabinerVariable("is_lock_screen", 0)
end
end)
-- Start the screen watcher
screenWatcher:start()
Automator
Use the following AppleScript Quick Action to toggle Dark Mode on macOS; created via Automator. This service can be assigned a keyboard shortcut (ctrl+opt+cmd+D for Serenity QMK Media Layer) in System Settings.
on run {input, parameters}
tell application "System Events"
tell appearance preferences
set dark mode to not dark mode
end tell
end tell
return input
end run
Reference
Vim-less
Thinking of quitting Vim? Here is an indicative reference for performing common Vim-like motions/commands by effortlessly using standard keybindings (primarily made possible with QMK due to Mod and Arrow key availability on the home row). These shortcuts are application-agnostic and eliminate the need for a modal editor for most tasks, or, at a minimum reduce the reliance of using Normal Mode, allowing you to remain in Insert Mode more often than not.
| Do the following | By pressing | Which is similar to this in Vim |
|---|---|---|
| Move | ←, ↓, ↑, → | h, j, k, l |
| Move to beginning of line (soft) | ⌘ ← (or home) | ^ |
| Move to beginning of line (hard) | ⌘ ← ← (or home twice) | 0 |
| Move to end of line | ⌘ → (or end) | $ |
| Jump to beginning of document | ⌘ ↑ | gg |
| Jump to end of document | ⌘ ↓ | G |
| Page up | Page Up key (Num/Nav layer) | ⌃ b |
| Page down | Page Down key (Num/Nav layer) | ⌃ f |
| Delete previous character | ⌫ | X |
| Delete character | ⌦ | x |
| Undo | Undo key (Num/Nav layer) | u |
| Cut | Cut key (Num/Nav layer) | d |
| Copy | Copy key (Num/Nav layer) | y |
| Paste | Paste key (Num/Nav layer) | p |
| Redo | Redo key (Num/Nav layer) | ⌃ r |
| Move to start word | ⌥ ← | b |
| Move to end word | ⌥ → | e |
| Delete start word | ⌥ ⌫ | db |
| Delete end word | ⌥ ⌦ | de |
| Delete start line | ⌘ ⌫ | d0 |
| Delete end line | ⌘ ⌦ | D |
| Selection (Visual mode) | ⇧ (use other movement shortcuts while holding shift, often in conjunction with arrow keys, to expand or shrink selection) | v |
| Select cursor word | Word Select key (Num/Nav layer, tap) | viw |
| Select cursor line | Line Select key (Num/Nav layer, long press) | V |
| Indent | ⇥ | > |
| Un-indent | ⇤ | < |
Some of the other commands and movements not covered by the basic movements can often be implemented in modern text editors via extensions or built-in functionality. Here are a couple of VSCode Extensions I maintain to fill in some functionality gaps so to speak.
Get In Touch
Have questions, comments, or feedback? Feel free to reach out anytime at majority-myth-cube@duck.com