{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreigz3rwj4m4brdc2g7luv4zpieerxmx2uoxz5t34bilwoykbzjf2xi",
"uri": "at://did:plc:t4aigbwuwix7x3q42qzjc6mn/app.bsky.feed.post/3mhuec7s5jan2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidp67hot4i4qdxhbykeccezxgvyfa6r3yhjkml6v575roqbkceg5y"
},
"mimeType": "image/jpeg",
"size": 18583
},
"path": "/link/535/17305120/better-keyboard-shortcut-formatting-for-writers",
"publishedAt": "2026-03-24T12:04:00.000Z",
"site": "https://brett.trpstra.net",
"tags": [
"Jekyll plugin",
"WordPress plugin",
"a CLI and Automator Actions",
"Latest release download",
"ttscoff/kbd on GitHub",
"on Mastodon",
"Bluesky",
"Twitter",
"Click here if you'd like to help out.",
"Mastodon",
"GitHub",
"everywhere else",
"@k"
],
"textContent": "If you write documentation, tutorials, or notes that include keyboard shortcuts, you know how annoying consistency can be. Sometimes you want plain text like `Shift-Command-K`, sometimes you want nice symbolic output like `⇧⌘K`, and sometimes you want HTML keycaps.\n\nThis project started as a Jekyll plugin, then became a WordPress plugin, and now I’m offering it as a CLI and Automator Actions you can use anywhere.\n\n### What the scripts do\n\nThe project ships two Ruby scripts that parse keyboard shortcut text and normalize it into consistent output, following Apple’s guidelines by default:\n\n * `kbd.rb` outputs HTML keycap markup.\n * `kbd-text.rb` outputs plain text shortcuts.\n\n\n\nBoth scripts accept flexible input formats, including:\n\n * Keybinding Symbol style: `\"$@k\"`\n * Text style: `\"shift cmd k\"`\n * Hyphenated style: `\"Shift-Command-k\"`\n * Multiple combos separated by `\" / \"`\n\n\n\nFor keybinding style:\n\nModifier | Symbol | Shortcut\n---|---|---\nShift | `⇧` | `$`\nOption | `⌥` | `~`\nCommand | `⌘` | `@`\nControl | `⌃` | `^`\n\nIn practice, this means you can type shortcuts however you naturally type them, and the tool will clean and format them for you.\n\n### Download and install as Quick Actions\n\nGrab the latest release from:\n\n * Latest release download\n\n\n\nThen install:\n\n 1. Download `KBD Automator Actions.zip`.\n 2. Unzip it.\n 3. Double-click each `.workflow` file.\n 4. Confirm installation when macOS prompts.\n\n\n\nAfter that, the actions show up as Services/Quick Actions for text handling.\n\n### Add keyboard shortcuts for the Services\n\nOnce installed, assign your own hotkeys:\n\n 1. Open **System Settings**.\n 2. Go to **Keyboard**.\n 3. Click **Keyboard Shortcuts**.\n 4. Select **Services** on the left.\n 5. Find **Text - > KBD ***.\n 6. Click the shortcut field on the right.\n 7. Press the shortcut you want.\n\n\n\nThat is it. You now have a fast shortcut-to-formatted-shortcut pipeline available from anywhere.\n\n### Configuration\n\nThe scripts read config from:\n\n * `~/.config/kbd/config.yaml`\n\n\n\nYou do not need to create this manually. The first time either script runs, it writes this file with default values.\n\nAvailable keys under `kbd:`:\n\n * `use_modifier_symbols` (default: `true`)\n * `true`: prefer symbols like `⌘`, `⌥`, `⇧`\n * `false`: use words like `Command`, `Option`, `Shift`\n * `use_key_symbols` (default: `true`)\n * `true`: use symbolic key names where possible\n * `false`: use text key names\n * `use_plus_sign` (default: `false`)\n * `false`: combine modifier symbols with no separator (`⇧⌘K`)\n * `true`: join with `+` (`⇧+⌘+K`)\n\n\n\n### Build and release it yourself\n\nIf you want to generate or ship your own builds, the repo includes Rake tasks for:\n\n * building self-contained scripts\n * generating signed Automator workflows\n * packaging release zip files\n * bumping versions and publishing GitHub releases\n\n\n\nProject link:\n\n * ttscoff/kbd on GitHub\n\n\n\nLike or share this post on Mastodon, Bluesky, or Twitter.\n\n* * *\n\nBrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.\n\nFind Brett on Mastodon, Bluesky, GitHub, and everywhere else.",
"title": "Better Keyboard Shortcut Formatting for Writers",
"updatedAt": "2026-03-24T12:04:00.000Z"
}