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 followingBy pressingWhich 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 upPage Up key (Num/Nav layer) b
Page downPage Down key (Num/Nav layer) f
Delete previous characterX
Delete characterx
UndoUndo key (Num/Nav layer)u
CutCut key (Num/Nav layer)d
CopyCopy key (Num/Nav layer)y
PastePaste key (Num/Nav layer)p
RedoRedo 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 wordWord Select key (Num/Nav layer, tap)viw
Select cursor lineLine 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