davideisinger.com

My personal website
Log | Files | Refs | README

aresluna-org-hcpaiq.txt (73656B)


      1 Marcin Wichary
      2 
      3 12 May 2026 / 9,400 words, but don’t even worry about it
      4 
      5 [my-setup-t]
      6 
      7 Key, in sight
      8 
      9 A guide, of sorts, to keyboard customization
     10 
     11 I like keyboards because they’re the most effective human-computer interface
     12 connection, but I also like keyboards because they are fun.
     13 
     14 It’s fun to slam big keys without thinking, and it’s fun to experience the
     15 mastery of precise combinations of meticulous keyboard shortcuts. It’s great to
     16 see things on the screen that react to what you’ve done, especially if those
     17 are things that really understand how you work. And it’s magical to watch your
     18 fingers do things seemingly on their own while you’re preoccupied with deeper
     19 things, just because you set up something that allowed motor memory to blossom.
     20 
     21 This is not only about efficiency. Sometimes it’s more about a connection with
     22 the tool, a feeling of customization or control, or simple appreciation of a
     23 well-made interaction – all these beautiful low-level moments that give their
     24 energy to the whole process.
     25 
     26 [icons]
     27 These four apps do very different things
     28 
     29 How do you get there, though? Sure, you can get a nice keyboard, and adopt
     30 shortcuts provided by the operating system and the apps you use. After that,
     31 however, the road gets pretty steep. Getting a “fancier” keyboard means endless
     32 options coated with infinite jargon. On the software front, so many apps come
     33 with similar names, confusing interfaces, and frightening dialog boxes asking
     34 you for all the permissions in the universe.
     35 
     36 So, I wanted to write a little guide, all the way from hardware to software,
     37 about how I approached and warmed up to some of the keyboard mastery myself.
     38 Maybe it will work for you, too?
     39 
     40 My goals for this essay are:
     41 
     42   • Actually do some useful things with modern keyboards and keypads.
     43   • Find some fun and enjoyment in it all.
     44   • Be a calm guide through a typically stormy port.
     45 
     46 If you were always curious but intimidated, or if you have a keypad or a bunch
     47 of extra keys on your keyboard, but don’t know what to do with them… read on.
     48 Two caveats before we start:
     49 
     50   • This will generally not cover command palettes, text expansion, and using
     51     keys to launch apps – those are all valuable, but I think generally not
     52     hard to accomplish. I want something different.
     53   • The software parts here are Mac only. Please [2]let me know if you’d like
     54     me to cover Windows as well.
     55 
     56 A key to toggle dark mode
     57 A little highlight reel of what’s to come in this essay
     58 
     59 How to have fun
     60 
     61 How to have fun with hardware
     62 
     63 My recommendation: Start with making room for yourself so it’s easy to
     64 experiment. In other words, start by adding keys. It’s no fun driving through
     65 the busy streets of an old European city, fighting for space with tons of
     66 shortcuts already out there, needing to shuffle existing conventions around. I
     67 was responsible for keyboard shortcut decisions at work for years, and it’s a
     68 real challenge.
     69 
     70 Instead – as awful as this analogy is – you need a brand-new parkway autobahn
     71 where you’re the only car, free to drive carelessly and without speed limits.
     72 
     73 There are two ways to get there: by carving out a not-yet-colonized space on
     74 your existing keyboard, or by literally buying new keys.
     75 
     76 Adding room by buying new keys
     77 
     78 If you have budget for an external macro pad, get one and put it on the side of
     79 the main keyboard, opposite the trackpad or mouse.
     80 
     81 I have tried a few different options, and I could recommend:
     82 
     83 Wooting also might be the only keyboard software of all of them that could be
     84 described as “actually nice to use.”
     85 I would not recommend Glorious GMMK Numpad in that it is costly, and you cannot
     86 reconfigure the sliders or the lights easily.
     87 
     88   • [3]Wooting UwU gives you three big keys and three small ones; the build
     89     quality is nice and the price is relatively low.
     90   • [4]Megadolon Triple Knob Macro Pad is knob-heavy, but it also gives you 16
     91     keys.
     92   • [5]Work Louder Creator series keypads are pricier and have their quirks,
     93     but overall it’s a nice layout and the mechanical feel is good, too.
     94   • You can also get any nice numeric keypad, and then reassign its keys to do
     95     non-calculatory things. [6]8BitDo’s is nice and relatively affordable, and 
     96     [7]Keychron offers a few different keypads – those are a bit more pricey,
     97     though. I also used [8]Eweadn NK20.
     98 
     99 1 more image
    100 
    101 1 more 
    102    103 Ulanzi D200 and Elgato Stream Deck Neo
    104 
    105 I would not recommend Stream Deck or its copycats from Ulanzi and Logitech,
    106 even if they are conceptually similar to the products above. Those look like
    107 keys, but they really are buttons: mushy, meant to be pressed occasionally
    108 rather than all the time, not great allies to motor memory. The rule would be:
    109 if you’re buying something new, it needs to be using mechanical keyboard
    110 switches. We will put those keys to actual pragmatic use, but they also need to
    111 be really nice to press for the magic to kick in; we want something good for
    112 the brain, but also good for the heart.
    113 
    114 If you buy a new macro pad or keypad, it will give you a new set of completely
    115 conflict-free keys. My recommendation is to map them to F1–F20 and resolve what
    116 that means later in software inside the computer, rather than inside the
    117 keyboard itself.
    118 
    119 Making room without buying new keys
    120 
    121 If you don’t have room, can’t afford a keypad, or have ergonomics or RSI
    122 concerns, here are some ideas on how to make room for yourself on your existing
    123 keyboard:
    124 
    125   • If you have a keyboard with a keypad you don’t use, you can take over those
    126     keys to behave like function keys. Particularly both numpad 0 and numpad 
    127     Return are bigger, and will be enjoyable to press in haste! (Each numpad
    128     key can also be modified by modifier keys: Numpad 0, ⇧Numpad 0, and ⌘Numpad
    129     0 can all do different things.)
    130   • If you already have F1–F12 function keys at the top, consider enrolling
    131     them in new tasks. If you are already using some of them for system control
    132     (for example volume or brightness or music pausing), you can split the
    133     function row into two halves and free up only some of it for use. But the
    134     goal would be never having to fiddle with the Fn key so the keys are as
    135     easy to use as possible.
    136 
    137 One idea on how to divide a function key row
    138 
    139   • You can create a completely new modifier key and assign it to Caps Lock. A
    140     user-made modifier is conventionally referred to as “Hyper.” This frees up 
    141     HyperA–Z, Hyper1–0, even HyperSpace (huh) or HyperEnter to do whatever you
    142     want. The key is also in a nice position and really fun to press, once you
    143     get past the trauma of years of trying to avoid pressing it.
    144   • Claim a few other keys on the keyboard you never press. Do some eminent
    145     domain on the little private Scroll Lock + Print Screen island? Reclaim 
    146     Insert and Delete or PgUp and PgDn? Or maybe your keyboard has a few weird
    147     extra keys that you never touched that could use a new job?
    148   • If you already have a gaming joystick or one of those gaming pads, and you
    149     feel good about their feel, they might be a good candidate, too. The tools
    150     we’ll talk about will allow to react to joystick and game button equally
    151     well as to key presses.
    152 
    153 Nlofin Leverless Arcade Controller and Razer Tartarus Pro. I’d avoid products
    154 by Razer, however, as their Mac software is absolutely horrendous.
    155 
    156 How to have fun with software
    157 
    158 Just one example of a scary keyboard software experience
    159 
    160 You can’t skip this part, and this is unfortunately a harder place to enjoy.
    161 With the physical keyboards you can at least be mesmerized by the lights,
    162 admire the build quality, enjoy the tacticility. But very little software for
    163 keyboard customization is… pleasant. It all comes with rough interfaces, scary
    164 permission windows, and impenetrable nomenclature. This can be inspiring in the
    165 “I will figure it out and show you who’s the boss” sense – but it will be
    166 intimidating first.
    167 
    168 You’ll often have to use more than one app to get going, too. Also, both of
    169 these things will be true: there is no one app that does everything, and a lot
    170 of apps have overlapping functionality.
    171 
    172 I will explain software in more details later, but first I just want to show
    173 you what I chose to do.
    174 
    175 My setup
    176 
    177 Here is what specifically worked for me.
    178 
    179 Hardware
    180 
    181 I know my keyboard looks weird, but stripped of its strange moments, it’s a
    182 pretty standard QWERTY.
    183 
    184 I have a little numpad on the left side. I customized it via its software so
    185 that the keys are mapped to F1–F20. I split the keys into two halves –
    186 shortcuts for the system, and shortcuts for the current app – and installed
    187 different keycaps that helped me remember that division.
    188 
    189 Many keyboard lights are very rainbowy and fast-moving out of the box. I’m too
    190 old for that. I’d argue most people are.
    191 
    192 I told the lights to chill and just use a stationary orange color so that it
    193 matches my whole theme and makes me happy.
    194 
    195 I also have one big arcade button in a big box. It’s a long story, but I [9]
    196 commissioned it hoping it’d be fun to press, and guess what: It’s really fun to
    197 press. It’s technically a joystick button, not a key, but it connects via USB
    198 as a keyboard would, and to the software I use there is no difference. And,
    199 speaking of software…
    200 
    201 Speaking of software
    202 
    203 My main go-to is [10]Keyboard Maestro. It is old-fashioned in both good and
    204 sometimes bad ways. It has a quirky, occasionally intimidating, but otherwise
    205 thoughtful user interface. It’s capable, and I feel it grows on you and grows
    206 with you – I started with simple things that I will show you below, and then
    207 worked on figuring out more and more. (Also, the app is still being updated,
    208 and it has a small, but invested community.)
    209 
    210 This is the command center that’ll decide what F1–F20 really mean depending on
    211 all the context. The key press will mean F1 when the keyboard spits it out, but
    212 Keyboard Maestro will change it to something more relevant before it reaches a
    213 given application.
    214 
    215 I occasionally use other tools – often, you do not really have a choice! – but
    216 I try to centralize all my logic in here and treat it as a main “dispatcher.”
    217 If it’s possible to do something both in Keyboard Maestro and elsewhere, I put
    218 it in Keyboard Maestro. But of other tools:
    219 
    220   • I installed [11]Karabiner Elements, which is free, and useful for some
    221     lower-level stuff. It also has a useful key event tester.
    222   • I occasionally use Shortcuts and other built-in macOS functionality, for
    223     light text expansion and for disabling some built-in shortcuts (like ⌘⌥D
    224     for dock hiding).
    225 
    226 Outside of attractiveness, the Keyboard Maestro app switcher has a few
    227 interaction issues, as well.
    228 
    229 Keyboard Maestro should be safe to install, with one exception: it changes your
    230 ⌘Tab app switcher. Unfortunately, it’s not a positive change. While Keyboard
    231 Maestro is great at wiring keystroke logic together behind the scenes, most of
    232 its visible UI is not very attractive, and this is no exception. So, after
    233 installation, click on Switcher Group and then uncheck Enable Macro Group.
    234 
    235 The native macOS app switcher and its Keyboard Maestro equivalent
    236 
    237 Keyboard Maestro is free to try for 30 days. After that, at the time of
    238 writing, it’s a one-time $36 purchase, which feels very reasonable. I do not
    239 know of other apps that offer similar functionality cheaper (or for free) that
    240 do not make me want to rip my hair out using them.
    241 
    242 Continue reading by choosing your own adventure
    243 
    244 I learn best from examples ↓ I would love to see examples first, then (maybe)
    245 catch up with theory
    246 I learn best from theory ↓ I would love to understand the theory first, then
    247 see your examples
    248 
    249 The best keyboard incantations I made
    250 
    251 This is what I found the most useful and enjoyable with my setup. Some of this
    252 stuff might not be relevant to your work, but perhaps will offer inspiration or
    253 a good jumping off point.
    254 
    255 Once you get started with some concepts, it gets easier! Each of the 25
    256 examples below tries to show a new idea that you can put to use.
    257 
    258 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    259 
    260 I fixed shortcuts that disagreed with one another.
    261 
    262 Motor memory is beautiful. It can offload menial actions to other parts of your
    263 brain so you can focus on what matters. It can make you fly through things. It
    264 can help achieve flow.
    265 
    266 But motor memory requires consistency. I do a lot of writing in various apps,
    267 and specific things behaving slightly differently bother my fingers. Bold and
    268 italic always work the same way, but when it comes to stuff like strikethrough,
    269 quotations, headlines, separators, and to-do items, the shortcuts are all over
    270 the place.
    271 
    272 For example, I am used to pressing ⌘⇧X for strikethrough, but Bear (a
    273 notetaking app) has it under ⌘⇧U, and Apple Notes doesn’t provide a shortcut.
    274 In both cases, the command is in the menu, so the simple way to fix this is to
    275 go to the Settings and reassign based on the menu name. Or, you can also use
    276 the [14]CustomShortcuts app, which offers a tighter UI and autocomplete.
    277 
    278 [notes-buil] [notes-cust]
    279 The native macOS function and CustomShortcuts
    280 
    281 But I like unifying everything in Keyboard Maestro (and avoiding Settings [15]
    282 like a plague), and so I did it there instead:
    283 
    284 Keyboard Maestro macro setup
    285 
    286 The benefit of doing it in Keyboard Maestro is that I can also fix Medium’s
    287 shortcuts. Medium lives inside Chrome, which complicates things – I don’t want
    288 to change the shortcut for every single web app in Chrome! – but Keyboard
    289 Maestro allows to target specific tabs, so I can unify the quoting shortcut
    290 from ⌥⌘5 to ⌘':
    291 
    292 Keyboard Maestro macro group and macro setup
    293 
    294 How does one choose the correct shortcut, though? My advice is: Listen to your
    295 fingers. If you’re already used to some combination of keys, just make it work
    296 in other apps.
    297 
    298 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    299 
    300 I deleted some shortcuts I truly hated.
    301 
    302 I use a lot of Slack, and in Slack I constantly press ⌘T to search for a person
    303 or a conversation. But the challenge with ⌘T is that it is right next to ⌘R,
    304 and occasionally my fingers would also press that shortcut on the way, and
    305 initiate a reload – not the end of the world, but frustrating to happen a few
    306 times a day.
    307 
    308 Settings does not obviously allow you to remove a shortcut, but you can always
    309 assign a new shortcut that you will just never press, for example something
    310 heinous like ⇧⌃⌥⌘F10.
    311 
    312 [slack-relo]
    313 I did a similar thing for Show Spelling And Grammar. The shortcut was ⌘⇧; and
    314 sometimes I would press it alongside ⌘⇧L that I use a lot. So, I disabled that
    315 wholesale.
    316 
    317 But the shortcut showing up in a menu like this feels inelegant to me. So, in
    318 Keyboard Maestro, I just made a category for Slack, added an action that’s
    319 triggered by ⌘R, and… that’s it. I didn’t wire anything to it, so the action
    320 doesn’t actually do anything, but its very presence ensures the key press never
    321 makes it to Slack.
    322 
    323 Keyboard Maestro macro setup
    324 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    325 Show me the Keyboard Maestro setup
    326 
    327 Show me the Keyboard Maestro setup 
    328 Show me the Keyboard Maestro setup 
    329 Keyboard Maestro macro setup
    330 
    331 I added some shortcuts to help my motor memory.
    332 
    333 At some point, I made Gmail a web app in its own window, rather than using it
    334 in the browser as yet another tab. But I still occasionally press ⌘N or ⌘T in
    335 Gmail, out of habit.
    336 
    337 It was really easy to change it so those keys switch to Chrome and open new
    338 stuff there, like they did before.
    339 
    340 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    341 
    342 Okay, so we made some shortcuts consistent, and removed stuff. But this is kind
    343 of boring.
    344 
    345 Generally, unless you know exactly what you want and have existing pet peeves,
    346 I would initially avoid the business of micromanaging existing shortcuts in
    347 apps, and optimizing them ad nauseam – it’s just not as much fun, and we didn’t
    348 get all these new keys for no reason.
    349 
    350 So, let’s do some things with those keys.
    351 
    352 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    353 Show me the Keyboard Maestro setup
    354 
    355 Show me the Keyboard Maestro setup 
    356 Show me the Keyboard Maestro setup 
    357 Keyboard Maestro macro setup
    358 
    359 I had fun with a big button.
    360 
    361 I give talks sometimes, but Keynote’s “show presentation” shortcut that I use
    362 for previewing and practice is a thoroughly disappointing, puny ⌥⌘P.
    363 
    364 On the other (well, same) hand, it’s just a lot of fun to slam a big arcade
    365 button without thinking – it feels extremely satisfying to press it and then
    366 see the slides blow up on the screen. I want to think of my presentations as
    367 appearing in a movie theatre, with people quieting down as [16]the THX logo
    368 scares the hell out of them.
    369 
    370 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    371 Show me the Keyboard Maestro setup
    372 
    373 Show me the Keyboard Maestro setup 
    374 Show me the Keyboard Maestro setup 
    375 Keyboard Maestro macro setup
    376 
    377 Actually, even more fun.
    378 
    379 I also do [17]a lot of tech history document scanning. Scanning is even less
    380 glamorous than you might already think – instead of gently laying a piece of
    381 paper onto a scanner bed and pressing a button to Preserve History, you
    382 sometimes have to shove a heavy, half-opened book in there and hold it in the
    383 right position for 20 seconds or more.
    384 
    385 [scanning]
    386 My scanner software is good enough that it allows me to queue the next scan
    387 before the current one is finished, so I really do not have to worry about
    388 timing. If the software wasn’t as good, I am sure Keyboard Maestro would allow
    389 me to make it work, anyway.
    390 
    391 A contorted body and busy hands are not great conditions to carefully target an
    392 onscreen Scan button with a mouse, or even to press a shortcut more complex
    393 than one key. So, I also wired the same big button to start the scan process.
    394 Keyboard Maestro invokes that only if the scanning software is open, but
    395 regardless of whether the scanning app is currently focused or not. This is
    396 important, as I often jump to Finder to verify the results as I’m scanning and
    397 I want to be able to press the key anywhere.
    398 
    399 I also assigned the same function to the Fn key on my laptop keyboard. The Fn
    400 key is kind of [18]useless to me, and it is positioned in a corner, so it’s
    401 easy to press, too. (Tools like Keyboard Maestro allow you to have more than
    402 one key trigger for one function, and that can be very useful.)
    403 
    404 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    405 Show me the Keyboard Maestro setup
    406 
    407 2 images
    408 
    409 Show me the Keyboard Maestro setup (2 images) 
    410 Show me the Keyboard Maestro setup (2 images) 
    411 Keyboard Maestro macro setup for Zoom Keyboard Maestro macro group and macro
    412 setup for Google Meet
    413 
    414 Okay, quite a bit more fun.
    415 
    416 I also wired the same button to mute me on various calls.
    417 
    418 Google Meet, Zoom, and FigJam offer keyboard shortcuts for this – although each
    419 one is different – and FaceTime only has an onscreen button. Keyboard Maestro
    420 can unify all of these things, and just like before, choose the right action
    421 depending on which app is running. (For FaceTime, it’ll get there via the
    422 menu.) I just press the big arcade button.
    423 
    424 I can even wire it so that it if the app is in the background, the button press
    425 can switch to it quickly, do the muting, and go back where I was, effectively
    426 making my button slam a “global” shortcut. It’s a nice enhancement very few
    427 apps offer on their own.
    428 
    429 And now, it works so well, I can mute and contain even a very sudden sneeze.
    430 
    431 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    432 Show me the Keyboard Maestro setup
    433 
    434 Show me the Keyboard Maestro setup 
    435 Show me the Keyboard Maestro setup 
    436 Keyboard Maestro macro setup
    437 
    438 I swear I am done with the big button… right after this.
    439 
    440 Lastly, I also wired the big button to take a screenshot of the main display.
    441 
    442 What’s cool about that is that [19]regular screenshot-taking shortcuts require
    443 you to hold a modifier key or two beforehand. But a modifier key is not truly
    444 inert – it could dismiss the very tooltip I wanted to screenshot, or change the
    445 cursor to look differently. A one-button operation doesn’t have these problems.
    446 
    447 To finish the big button story: In general, I wouldn’t maybe recommend
    448 overloading one key this way – that means I cannot scan while I’m on Zoom, or
    449 take screenshots this way while I’m practicing for my presentation, although
    450 these are not situations that happen anyway.
    451 
    452 But, let’s move away from the big button onto other things.
    453 
    454 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    455 Show me the Keyboard Maestro setup
    456 
    457 2 images
    458 
    459 Show me the Keyboard Maestro setup (2 images) 
    460 Show me the Keyboard Maestro setup (2 images) 
    461 Keyboard Maestro macro setup for Preview Keyboard Maestro macro setup for
    462 DevonThink
    463 
    464 I made more things consistent, but also consistently pleasant.
    465 
    466 I read a lot of documents and PDFs and it’s a similar situation as before.
    467 Chrome, Internet Archive, Preview, and Google Books cannot agree on the keys to
    468 use here, and DevonThink doesn’t even have any keyboard shortcuts for flipping
    469 pages.
    470 
    471 Keyboard Maestro allowed me to unify the existing shortcuts, and for DevonThink
    472 I used one of its smarter features: searching for a button under the hood using
    473 the name of its tooltip.
    474 
    475 But the most important part? I assigned this to the two bottom-most keys on the
    476 keypad just so it feels really nice, too. I actually love keeping my left hand
    477 there when reading, just going through pages and enjoying the clicky keys,
    478 while my right hand is on the trackpad where I can zoom or do other things.
    479 
    480 Now, I can do this thousands of times a day with joy.
    481 
    482 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    483 Show me the Keyboard Maestro setup
    484 
    485 3 images
    486 
    487 Show me the Keyboard Maestro setup (3 images) 
    488 Show me the Keyboard Maestro setup (3 images) 
    489 Keyboard Maestro macro setup for dark mode using Shortcuts Keyboard Maestro
    490 macro setup for dark mode using a built-in function Keyboard Maestro macro
    491 setup for toggling retina mode
    492 
    493 I took charge of time and space.
    494 
    495 When I do design or web work, I want it to look good in dark and light mode.
    496 But going to Settings to toggle it back and forth is really unpleasant. So I
    497 wrote a tiny Shortcuts script, and wired it via Keyboard Maestro, which can
    498 invoke any Shortcut. Now, one single slam of a key that’s always there switches
    499 dark mode wherever I am, and it honestly feels a bit magical.
    500 
    501 (By the way – later I discovered that Keyboard Maestro has its own “toggle dark
    502 mode” action, simplifying my situation even more, but I wanted to show you
    503 talking to Shortcuts was possible.)
    504 
    505 Then, I made it so Shift + the same key toggled the screen in and out of retina
    506 pixels, which is also useful for testing. I don’t do that nearly as often as
    507 dark mode, so I was okay with a modifier key here.
    508 
    509 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    510 Show me the Keyboard Maestro setup
    511 
    512 Show me the Keyboard Maestro setup 
    513 Show me the Keyboard Maestro setup 
    514 Keyboard Maestro macro setup
    515 
    516 I built a slightly smarter escape hatch.
    517 
    518 I use Bear for notetaking and I have one main note, with all to do items in it
    519 – but I check out other notes all the time.
    520 
    521 I wanted a simple and reliable key that would always get me to that main note
    522 wherever I happen to be: an app launcher with a twist.
    523 
    524 [20]This short video might help visualize this.
    525 
    526 Bear doesn’t provide a smart way of controlling it or an API, but I could do it
    527 the “player piano” way by just replaying some keystrokes I would press: switch
    528 to Bear, simulate ⌘⇧O, fake type the name of the main note, press Enter, and
    529 then press down arrow a few times. It’s a little goofy because you can see it
    530 going through its motions, but it works really well.
    531 
    532 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    533 Show me the Karabiner Elements setup
    534 
    535 Show me the Karabiner Elements setup 
    536 Show me the Karabiner Elements setup 
    537 Karabiner Elements setup
    538 
    539 I conflated brightness and volume in a way that probably breaks some laws, and
    540 cleaned up Apple’s strange conventions.
    541 
    542 For some reason, I love changing the brightness by hand. Maybe I don’t trust
    543 the auto brightness stuff, maybe I’m just power hungry, maybe my eyes are funny
    544 – likely all of the above.
    545 
    546 I was also fed up with default macOS modifier key combinations for [21]volume
    547 and brightness keys, so I put all of them on the same two keys my keyboard
    548 happens to have, behaving like this:
    549 
    550   • normal presses = volume
    551   • ⇧ presses = precise volume in smaller steps
    552   • ⌃ presses = brightness on the left screen
    553   • ⌘ presses = brightness on the right screen
    554 
    555 Why ⌃ and ⌘? Because ⌃ is on the left, and ⌘ is on the right. This way I made
    556 it easier for myself to remember, even if that set up is only true on my desk.
    557 
    558 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    559 Show me the Keyboard Maestro setup
    560 
    561 Show me the Keyboard Maestro setup 
    562 Show me the Keyboard Maestro setup 
    563 Keyboard Maestro macro setup
    564 
    565 I added tag wrapping in my programming editor.
    566 
    567 This is the one that made me really happy. I write all of my stuff in HTML, but
    568 HTML with its angle brackets is not as much fun to type in.
    569 
    570 I noticed I was spending a lot of time typing the same tags over and over
    571 again, so I added a few expand-like features where I can select text and then
    572 press one key and it turns it into an <a> link. Another key makes it a specific
    573 style, and another makes it italicized.
    574 
    575 It works no matter how long the string is, and I find it really fun to use –
    576 again, left hand on the keypad row, and right hand to quickly select pieces of
    577 text using the trackpad.
    578 
    579 I know my programming text editor likely has that option… somewhere. But I am
    580 lightly afraid of interfaces of programming editors, and doing it like this
    581 allows me to cheaply reuse it elsewhere, too.
    582 
    583 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    584 Show me the Keyboard Maestro setup
    585 
    586 Show me the Keyboard Maestro setup 
    587 Show me the Keyboard Maestro setup 
    588 Keyboard Maestro macro setup
    589 
    590 I set up universal record and playback.
    591 
    592 This is one of the truly unsung heroes of this area, and one I learned to love
    593 first in a text editor called Sublime Text. Today, Keyboard Maestro allows me
    594 to have it everywhere.
    595 
    596 The starting point is simple: you assign one key to be “record” and one key as
    597 “play.” Then, at any point you can record a sequence of keystrokes, and then
    598 play it back, as many times as you want.
    599 
    600 It seems simple, but the power lies exactly in its simplicity. Having it always
    601 there, ready to use and then ready to throw away, allows for a refreshing new
    602 casual kind of automation.
    603 
    604 One example: As you can see in the video above, I wanted to make a little grid
    605 in Keynote. So I recorded pasting one line, and then moving it the right
    606 amount. Then, playing back the same interaction a few times got me what I
    607 wanted really quickly.
    608 
    609 Another one: Sometimes when you paste a big block of text, it comes with extra
    610 lines between paragraphs, or not enough spacing between paragraphs.
    611 
    612 There are many ways to deal with this. If you’re good with the command line,
    613 you can put together a script. If you’re good at regexps, you can use Find &
    614 Replace. But for me, I don’t do either enough to be good, so I would normally
    615 just do it manually one paragraph at a time. This allows me to automate this
    616 part in an incredibly light way – I record myself doing it once (⌥↓, →, Return
    617 ), then repeat a few more dozen times.
    618 
    619 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    620 Show me the Keyboard Maestro setup
    621 
    622 Show me the Keyboard Maestro setup 
    623 Show me the Keyboard Maestro setup 
    624 Keyboard Maestro macro setup
    625 
    626 I concocted a fun reloading chain.
    627 
    628 When working on a Chrome plugin, it is cumbersome to see its effects
    629 immediately, since you have to reload a few things in the right order. So, I
    630 installed a Chrome extension to reload my extension-in-writing, and wired one
    631 of my macro pad keys to do this sequence of events:
    632 
    633   • save the current work in the programming editor
    634   • jump to Chrome and press the “reload extensions” button in the background,
    635     reloading my extension
    636   • then, press ⌘R to reload the website, to see the extension’s effect
    637   • and then, go back to the editor
    638 
    639 The beauty is that even though this is very “player piano,” it’s so fast it
    640 just feels magical – I press my button, immediately see its results on the
    641 right, and no context is changed or lost. I can continue writing as if nothing
    642 happened.
    643 
    644 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    645 Show me the Keyboard Maestro setup
    646 
    647 2 images
    648 
    649 Show me the Keyboard Maestro setup (2 images) 
    650 Show me the Keyboard Maestro setup (2 images) 
    651 Keyboard Maestro macro setup for arbitrary image rotation Keyboard Maestro
    652 macro setup for resizing the image window
    653 
    654 I added some fun Photoshop flows that… flowed great together.
    655 
    656 What follows scanning is long and often tedious processing: making the scans
    657 brighter, straightening them, cleaning up the edges.
    658 
    659 [scan-befor] [scan-after]
    660 
    661 When I started looking at how I do this – in batches of sometimes hundreds of
    662 pages in one go – I noticed a few patterns:
    663 
    664   • I often go to the Brightness/Contrast window via the menu, and then fiddle
    665     around with different numbers. So I made an action to increase brightness
    666     and contrast by 10%, and assigned it to a key. Now I press it once, twice,
    667     three times, until it looks good. If I overshoot, I can always undo.
    668   • I always resize the window with the mouse to leave some room at the edges.
    669     That made it easier to draw around them and clean them up. So I added a key
    670     to resize the window to be slightly larger, without ever touching the
    671     mouse.
    672   • I noticed that when straightening an image, I have to click a button on the
    673     screen with the mouse, because there is no keyboard shortcut, or way to
    674     assign one. But Keyboard Maestro allows you to automatically click on
    675     buttons, too.
    676 
    677 Then – and this is important – I assigned these to keys that are side by side.
    678 
    679 I know this sounds kind of silly, but now I can just rest my left hand on those
    680 keys, right hand on the trackpad, put on a podcast, and absolutely breeze
    681 through the scans, and feel kind of strangely amazing in the process? The
    682 side-by-side keys mean motor memory starts to develop really quickly, and soon
    683 I just watch my fingers do things.
    684 
    685 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    686 Show me the Keyboard Maestro setup
    687 
    688 Show me the Keyboard Maestro setup 
    689 Show me the Keyboard Maestro setup 
    690 Keyboard Maestro macro setup
    691 
    692 I made keystrokes replace some bookmarklets.
    693 
    694 I use Web Archive to get to older versions of pages, and previously had a [22]
    695 bookmarklet I would press in my browser’s toolbar.
    696 
    697 You could probably assign a keystroke to a bookmarklet, but I went a different
    698 way to simplify: I had Keyboard Maestro press ⌘L (go to the URL bar), then type
    699 web.archive.org/ in front, and then press Enter.
    700 
    701 It’s easy and fun, and I also wanted to show it to you because this is an
    702 interesting way to approach some things previously only bookmarklets could do.
    703 Bonus: This will work in all the browsers without having to set up each one by
    704 hand!
    705 
    706 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    707 Show me the Keyboard Maestro setup
    708 
    709 4 images
    710 
    711 Show me the Keyboard Maestro setup (4 images) 
    712 Show me the Keyboard Maestro setup (4 images) 
    713 Initial setup within Chrome Keyboard Maestro macro setup Keyboard Maestro macro
    714 setup Keyboard Maestro macro setup
    715 
    716 I added a deterministic set of shortcuts for testing speed.
    717 
    718 This is similar to dark mode and retina stuff. When designing for the web, I
    719 sometimes need to fake a slow connection or going offline to make sure my
    720 website behaves well under conditions worse than wired, flawless home internet.
    721 Moreover, I really want tight, immediate control over this – for example,
    722 switching to “fast” for initial load of the page and “offline” immediately
    723 afterwards. Having a great keyboard UI here isn’t the difference between using
    724 it fast or slow. It’s about using it or not using it at all.
    725 
    726 Chrome web inspector offers a little UI for this, but it’s buried inside a menu
    727 inside a tab inside a drawer. To their credit, they offer to also wire some
    728 shortcuts to those options, but the shortcut options are limited to modifier
    729 keys.
    730 
    731 Keyboard Maestro gave me a nicer solution:
    732 
    733   • start by opening a web inspector if it’s not open
    734   • use my macro pad keys without any modifier keys, so it’s very fast and
    735     convenient
    736   • even display a little message to confirm what I’ve done (using Raycast,
    737     since Keyboard Maestro’s visual messaging feels ugly to me)
    738 
    739 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    740 Show me the Keyboard Maestro setup
    741 
    742 2 images
    743 
    744 Show me the Keyboard Maestro setup (2 images) 
    745 Show me the Keyboard Maestro setup (2 images) 
    746 Keyboard Maestro setup for adding a label in Finder Keyboard Maestro setup for
    747 removing all labels in Finder
    748 
    749 I made Finder better, too.
    750 
    751 When I process files in Finder, I sometimes want to tag them with a specific
    752 color label. However, Finder’s UI for this is very mouse-oriented, and fiddly
    753 when it comes to complex selections.
    754 
    755 On my keypad, I set up four keys side by side so that when I am in Finder the
    756 first three add red, yellow, and green labels to whatever my selection is
    757 (could be one file, could be a hundred), and the last one just [23]
    758 deterministically removes all the labels.
    759 
    760 Since Finder’s interface for labeling is kind of a mess, this needed to be
    761 wired on a deeper layer than just “player piano,” and used more advanced
    762 Keyboard Maestro features such as looping and variables.
    763 
    764 I really enjoy using it, because it’s easy to remember, and moving my left hand
    765 to those keys and then back to Shift and Command to control Finder’s selection
    766 feels easy, while my right hand can stay on the trackpad.
    767 
    768 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    769 Show me the Keyboard Maestro setup
    770 
    771 2 images
    772 
    773 Show me the Keyboard Maestro setup (2 images) 
    774 Show me the Keyboard Maestro setup (2 images) 
    775 Initial setup in macOS Settings Keyboard Maestro setup
    776 
    777 I learned you can control your smart home in a strange way.
    778 
    779 There are ways to control your smart home by using different apps or proper API
    780 events. But there is also a much simpler way that can be a fun way to get
    781 started: talking to Siri by typing to it. This way, anything you can say to
    782 Siri could be put under any key, which you can do in macOS out of the box. For
    783 example, I can just put “kitchen lights 10%” under F5 or “decrease room
    784 temperature” under F6.
    785 
    786 It also works a lot faster than saying the same thing to Siri via voice, which
    787 is a very interesting discovery.
    788 
    789 (Unfortunately, this approach has limitations, because Mac’s Siri cannot do
    790 everything. But it is a very simple starting point.)
    791 
    792 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    793 Show me the Karabiner + Keyboard Maestro setup
    794 
    795 4 images
    796 
    797 Show me the Karabiner + Keyboard Maestro setup (4 images) 
    798 Show me the Karabiner + Keyboard Maestro setup (4 images) 
    799 Karabiner Elements setup Keyboard Maestro macro setup Keyboard Maestro macro
    800 setup Keyboard Maestro macro setup
    801 
    802 I invented a completely new keyboard shortcut convention I use all the time
    803 now.
    804 
    805 All that stuff just whetted my appetite to try something new, something
    806 different, something unusual. And this one is perhaps my absolute favourite.
    807 
    808 [macos-text] My previous attempt to make key symbols easily accessible
    809 
    810 In my design and writing, I often want to use symbols like ⌘ or ⇧ to refer to
    811 keys, so I had this idea: What if I press a new “Print the legend” key like a
    812 sort of modifier key, in combination with another modifier key or keys like ↓, 
    813 Esc, or Return. That combination makes their symbol appear on screen.
    814 
    815 This feels so much more fun than the standard way of setting text replacements,
    816 and avoids you having to remember all of these strange writing incantations
    817 that need to be close, but not quite correct strings, since you still want to
    818 write “Command” and “Shift,” too!
    819 
    820 It also has the added benefit that it works in more places than the normal
    821 macOS text expansion, and feels little a magical because… keyboards are not
    822 really meant to work that way. But mine does. It looks like the small keypad is
    823 a “boss” of the huge one – a true Ratatouille situation.
    824 
    825 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    826 Show me the Keyboard Maestro setup
    827 
    828 Show me the Keyboard Maestro setup 
    829 Show me the Keyboard Maestro setup 
    830 Keyboard Maestro macro setup
    831 
    832 I talked to YouTube via JavaScript to simplify a complex flow.
    833 
    834 Text transcript in YouTube is very useful if I want to quote something from a
    835 YouTube video into [24]my blog.
    836 
    837 [youtube-tr]
    838 
    839 If you didn’t know that YouTube had a transcript, you weren’t alone! It’s not
    840 only buried behind a few clicks and scrolls, but also resets the moment you
    841 zoom in the video.
    842 
    843 Instead of a “player piano” action, I used Keyboard Maestro’s JavaScript
    844 integration to find the right button and click it under the hood. And then I
    845 assigned it to a key.
    846 
    847 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    848 Show me the Keyboard Maestro setup
    849 
    850 5 images
    851 
    852 Show me the Keyboard Maestro setup (5 images) 
    853 Show me the Keyboard Maestro setup (5 images) 
    854 Keyboard Maestro helper macro setup Keyboard Maestro helper macro setup
    855 Keyboard Maestro helper macro setup Keyboard Maestro helper macro setup
    856 Keyboard Maestro main macro setup
    857 
    858 I made a super weird shortcut I am very proud of.
    859 
    860 And now, we can go back where we started, armed with more ideas.
    861 
    862 Do you have a favorite shortcut? Something that you just enjoy pressing? My
    863 suggestion to get an external keypad was to automatically get some fun-to-press
    864 keys. But you can get those on the main keyboard, too.
    865 
    866 The fav recent one I “invented” was ⇧Space to insert a divider. It made sense
    867 both conceptually (divider is a long pause), and mnemonically (both the Shift
    868 key and the spacebar are long, like a divider). I wired it up in Bear and
    869 Medium – in Notes, which doesn’t seem to have a divider function, I just made
    870 it output a bunch of hyphens – I excitedly started using it, and then… I
    871 discovered a big problem.
    872 
    873 Turns out I press ⇧Space all the time when typing. Fingers are extremely
    874 precise and rather careless at the same time, and it turns out that I often
    875 pressed ⇧ too early, on the way to a capital latter, which caught the space in
    876 the crossfire. It didn’t have any effect before, but the new shortcut meant my
    877 documents would now be littered with random dividers.
    878 
    879 I didn’t want to give up on my idea, though. Then, I realized something: There
    880 are two Shifts on my keyboard. What if I required ⇧⇧Space – actually holding
    881 both Shift keys?
    882 
    883 No designer would ever allow such a shortcut in any app because it has multiple
    884 problems: it’s not ergonomic, it’s not accessible, and it requires two hands.
    885 But I didn’t have to think about everyone, only me. I knew what I was doing.
    886 When typing, both my hands are on the keyboard already, and dividers don’t
    887 happen often anyway. And there was even something poetic about it feeling a bit
    888 “heavier” – a divider feeling like ripping the page out of the typewriter and
    889 inserting a new one. And the three keys in succession looked like one long
    890 line, so it was a nice visual mnemonic.
    891 
    892 The same line of thinking allows you to have something seemingly impossible: 
    893 Hyper with modifier keys, as long as you’re using modifier keys on one side
    894 only. Simply make Hyper mean the modifier keys you’re not touching, and detect
    895 the other set. This way you could have HyperV do one thing, and HyperLeft Shift
    896 V so another.
    897 
    898 It all required a bit of a deeper surgery, because Keyboard Maestro bundles 
    899 Shifts together by default, but I made it happen.
    900 
    901 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    902 Show me the Keyboard Maestro setup
    903 
    904 Show me the Keyboard Maestro setup 
    905 Show me the Keyboard Maestro setup 
    906 Keyboard Maestro macro setup
    907 
    908 I solved clipboard history in a light way that made me happy.
    909 
    910 Sometimes I accidentally write over my clipboard, but it doesn’t happen often
    911 enough for me to invest in learning a clipboard manager; those things feel
    912 overbuilt and scary to me.
    913 
    914 How did I approach this problem? To me, the most important thing was a
    915 shortcut, and I came up with Caps LockV (a.k.a. HyperV, which means ⇧⌃⌥⌘V). I
    916 thought this would ensure that in a moment of panic, I will remember it,
    917 because it’s very similar to ⌘V.
    918 
    919 But what did I plug into it? Keyboard Maestro has a clipboard manager, but it’s
    920 not very pretty. I happened to have a license for Raycast, so I plugged that
    921 one instead:
    922 
    923 [clipboard-] [clipboard-]
    924 Clipboard history in Keyboard Maestro and in Raycast
    925 
    926 I know macOS Tahoe has a clipboard manager, but I don’t want to update to Tahoe
    927 – but once I do, and if I like what it offers, I should be able to just rewire
    928 the shortcut to go there instead. That’s another benefit of taking ownership
    929 here – over time, you can keep the shortcut, but switch what’s underneath.
    930 
    931 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    932 Show me the Karabiner + Keyboard Maestro setup
    933 
    934 2 images
    935 
    936 Show me the Karabiner + Keyboard Maestro setup (2 images) 
    937 Show me the Karabiner + Keyboard Maestro setup (2 images) 
    938 Karabiner Elements setup Keyboard Maestro macro setup
    939 
    940 Wait, no, this is an even better solution.
    941 
    942 But even that above didn’t feel great. So I thought a bit more.
    943 
    944 And I had a realization: what’s a pretty natural interaction I know from my
    945 phone, or Apple TV? It’s “long press to reveal more advanced options.” Why
    946 couldn’t ⌘V work the same way? Press it normally to paste, but press and hold
    947 it for a clipboard menu. Holding means repeat elsewhere in keyboarding, but I
    948 never want a repeated paste.
    949 
    950 This required some delicate surgery:
    951 
    952   • It all had to start on the Karabiner side because it was pretty invasive.
    953   • Preventing ⌘V repeating was as easy as adding "repeat": false in the right
    954     place.
    955   • Instead of communicating through a throwaway key like F20, Karabiner talks
    956     directly to Keyboard Maestro behind the scenes, and asks it to run a
    957     command.
    958   • That can invoke Raycast’s clipboard as above, but since the first press of 
    959     ⌘V pastes immediately and I didn’t want to change that, it also has to run
    960     an undo first.
    961 
    962 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    963 Show me the Keyboard Maestro setup
    964 
    965 Show me the Keyboard Maestro setup 
    966 Show me the Keyboard Maestro setup 
    967 Keyboard Maestro macro setup
    968 
    969 I made another big button do something silly.
    970 
    971 I haven’t really figured out what to do with knobs yet. They are fashionable,
    972 but my imagination doesn’t reach further than volume, brightness, and/or video
    973 scrubbing – pretty basic stuff.
    974 
    975 But a lot of knobs are also buttons, so I just wired mine to [25]Raycast’s
    976 confetti canon.
    977 
    978 And I just press it from time to time, for no reason at all.
    979 
    980 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    981 
    982 Choose your own adventure
    983 
    984 Okay, we are done with examples! And now…
    985 
    986 [26]Continue with the theory ↓
    987 [27]Skip theory, go to the ending ↓
    988 
    989 This concludes the “choose your own adventure” portion of the essay!
    990 
    991 The life of a keystroke
    992 
    993 There is a lot of keyboard software, and it all exists on different planes.
    994 This is my mental model of how a keystroke travels through the system:
    995 
    996 Event/App
    997 Function
    998 [28](*) Most common apps [29]( ) Example tasks
    999 Key press
   1000 Keyboard firmware apps
   1001 Basic configuration of keys and knobs, modifier keys, keyboard lighting,
   1002 layers.
   1003 
   1004   • VIA
   1005   • 8BitDo Ultimate Software
   1006   • Chrysalis
   1007   • Wootility
   1008 
   1009   • Make top left key be equivalent to Enter
   1010   • Turning knob turns volume up or down
   1011   • F1 key outputs “on my way”
   1012 
   1013 USB side apps
   1014 Rewriting keys and changing them depending on which keyboard they came from.
   1015 Handling volume and other system keys.
   1016 
   1017   • [30]Karabiner Elements
   1018   • [31]Kanata
   1019   • [32]KMonad
   1020 
   1021   • Holding CtrlShift on any keyboard makes HJKL become cursor keys everywhere
   1022   • Ctrl from one specific keyboard becomes ⌘
   1023   • Prevent ⌘Q from working any keyboard from doing anything in any app
   1024 
   1025 Apps assigning shortcuts to commands
   1026 Changing shortcuts, mostly in app menus.
   1027 
   1028   • Keyboard Shortcuts (macOS)
   1029   • [33]CustomShortcuts
   1030 
   1031   • File > Print is now ⌘⇧P instead of ⌘P
   1032   • Format > Italic is now ⌘⌥I instead of ⌘I
   1033   • Disable ⌘⌥D from showing/hiding dock
   1034 
   1035 Player piano apps
   1036 Automation by creating fake key presses and clicks.
   1037 
   1038   • [34]Keyboard Maestro
   1039   • [35]BetterTouchTool
   1040 
   1041   • F1 key outputs “on my way”
   1042   • Pressing F2 clicks a Close button on screen
   1043   • Prevent ⌘Q from working any keyboard from doing anything in any app, with
   1044     exception of Notes
   1045 
   1046 Commands and logic apps
   1047 Automation by talking to other apps.
   1048 
   1049   • [36]Keyboard Maestro
   1050   • [37]Keyboard Cowboy
   1051   • [38]BetterTouchTool
   1052   • [39]Hammerspoon
   1053   • Shortcuts (macOS)
   1054   • Automator (macOS)
   1055   • [40]Alfred Workflows
   1056 
   1057   • if FaceTime is running, ⇧Esc mutes it even if you are not inside the app
   1058   • Pressing F3 turns dark mode on and off
   1059   • Pressing ⌘⌥V pastes selected text into previously opened application
   1060 
   1061 Command palettes
   1062 Visual command lines that offer app launching and automation.
   1063 
   1064   • Spotlight (macOS)
   1065   • [41]Alfred
   1066   • [42]
   1067   • [43]Quicksilver
   1068   • [44]Raycast
   1069 
   1070   • Pressing ⌘Space opens a command palette
   1071   • Pressing ⌘⌥C shows clipboard history
   1072 
   1073 Keyboard control inside specific apps
   1074 Keyboard customization functionality living inside individual apps.
   1075 
   1076   • Photoshop
   1077   • DaVinci Resolve
   1078   • VS Code
   1079   • Nova
   1080   • Chrome
   1081 
   1082   • F1 can be configured to open a custom action in Photoshop
   1083   • ⌥M can be configured to mute in Zoom
   1084   • ⌘/ opens a command palette in Figma
   1085 
   1086 Text expansion apps
   1087 Stuff that helps specifically with typing text, including access to symbols and
   1088 emoji.
   1089 
   1090   • Text Replacements (macOS)
   1091   • [45]Espanso
   1092   • [46]TextExpander
   1093   • [47]Typinator
   1094   • [48]Rocket (emoji selector)
   1095 
   1096   • Typing “omw” outputs “on my way”
   1097   • Typing “$today” outputs today’s date in a nice format
   1098   • Typing “$add” outputs shipping address
   1099 
   1100 Output/Action
   1101 
   1102 Technically, each one of these has two parts: the “engine” and the
   1103 “configurator.” The keyboard firmware running on the keyboard and the firmware
   1104 configurator app running on the web are two different things, and that is true
   1105 for most that follows. In practice, however, you don’t often deal with this
   1106 dichotomy directly.
   1107 
   1108 Keyboard firmware apps
   1109 
   1110 These apps control software that lives inside your keyboard (a.k.a.
   1111 “firmware”).
   1112 
   1113 [wooting] [tex] [via]
   1114 Wooting app, Tex Shinobi app, and VIA firmware configurator (used by many
   1115 keyboards)
   1116 
   1117 These days, those are typically web apps or specialized desktop apps. On some
   1118 keyboards, there is no visible UI and you talk to the keyboards only by
   1119 mystical combinations of the Fn key. On other keyboards, the only UI is
   1120 mechanical DIP switches. Almost none of these are particularly pleasant in use.
   1121 
   1122 [dip-switch] DIP switches on my keyboard
   1123 
   1124 What you can usually do here:
   1125 
   1126   • Swap modifier keys around. Or, at the very least, allow to change the PC
   1127     ordering with the Mac ordering, which are lightly incompatible with each
   1128     other.
   1129   • Assign key presses to the keys. E.g. the top left key is Q or F1, and so
   1130     on.
   1131   • Allow one key to output more characters than one. These sequences are
   1132     usually called “macros.”
   1133   • Decide what should the knobs do. Knobs are usually also keys in disguise –
   1134     they typically emit a flurry of identical key presses whenever turned left
   1135     or right.
   1136 
   1137 This is the only place where you will be able to control:
   1138 
   1139   • Any lights on your keyboard.
   1140   • “Layers” of the keyboard – functionality that toggles between different key
   1141     assignments. I would not worry too much about it first.
   1142   • Specific features unique to your keyboard: optical switches, low-latency
   1143     gaming functions, support for stenotyping, and so on.
   1144 
   1145 A few function keys above F20 are also available, but get a teensy bit trickier
   1146 in use. Buyer beware!
   1147 
   1148 The one thing that’s important: there is a limited number of keys that can
   1149 exist. Look at a regular desktop keyboard, and you can already see most of
   1150 them. There are a few more function keys than you might think of – F13 to F20 –
   1151 and some random stray keys like Switch to Kana. But this is all you get. You
   1152 cannot invent a new key, and you cannot send an ASCII or emoji or a Unicode
   1153 character because those don’t like to fly in economy over USB.
   1154 
   1155 But! You can always send an F20 key and then decide what it does on the other
   1156 side. You’ll also be able to tell an F20 key on one keyboard from one on
   1157 another keyboard. So that gives you a lot of options, but just feels weird –
   1158 like a secret strange key alias that exists only to travel across the USB
   1159 cable.
   1160 
   1161 Admit your fingers just ached a bit even just even imagining [49]this kind of a
   1162 shortcut.
   1163 And below I’ll show you how you can even make it work with other modifier keys
   1164 for more options, even though it seems impossible given its nature.
   1165 
   1166 Wait, you might ask: didn’t you just say above to create a new modifier key
   1167 called Hyper? Yes and no. It’s another kind of trickery. You know how you can
   1168 combine regular modifier keys as much as you want, and for example assign
   1169 something to the extreme combination of ⇧⌃⌥⌘? Neither people nor applications
   1170 do that often, because those shortcuts are incredibly unpleasant to press. But
   1171 you can easily – via software – make Caps Lock behave the same as holding all
   1172 the other modifier keys together. Then, pressing Caps LockD would be the same
   1173 as pressing ⇧⌃⌥⌘D, but infinitely more pleasant on your fingers. This is the
   1174 convention of a “hyper” key – in the background, it really is pressing all four
   1175 of the other modifier keys for you!
   1176 
   1177 [raycast-hy] [raycast-hy]
   1178 Some apps, like Raycast, will allow you to show Hyper in a nice visual way
   1179 (enabled in the second screenshot), but this is relatively rare.
   1180 
   1181 USB side apps
   1182 
   1183 It’s a bit hard to describe this category; my go-to metaphor is “an app that
   1184 lives inside the USB port on your computer.” The inner workings are similar to
   1185 keyboard’s firmware, operating on roughly the same terms, but now living inside
   1186 your computer.
   1187 
   1188 Apps in this category:
   1189 
   1190   • macOS has a built-in small section of settings called Modifier Keys
   1191   • [50]Karabiner Elements (my recommendation), [51]Kanata, and [52]KMonad
   1192 
   1193 This is the only place you can:
   1194 
   1195   • Do something with “media” or “system” keys – for example, if you want to
   1196     control volume in new ways. Those shortcuts get routed to the system right
   1197     after this juncture, and keyboard apps later in the process simply don’t
   1198     even see them.
   1199   • Do things depending on which keyboard did the key come from. (For apps
   1200     later in the chain, all the keystrokes will be unattributed.) For example, 
   1201     F1 key from one keypad can be changed to quietly become ShiftF1 onward, but
   1202     F1 from the main keyboard can be left alone.
   1203 
   1204 My recommendation: Karabiner is free, and generally harmless. You don’t need it
   1205 for most things, but if you want to start messing with modifier keys
   1206 (especially on more than one keyboard), or do something with function keys,
   1207 this is the way. It is interesting to install if only because it has a very
   1208 useful event viewer, but its UI can feel a bit rough and intimidating.
   1209 
   1210 This is where you would split function keys into two halves, if that’s what you
   1211 wanted.
   1212 
   1213 Karabiner will also allow you to do things that firmware allows you to do:
   1214 swapping modifier keys, reassigning keys, and adding macros to keys. But my
   1215 recommendation is not to do these things here unless absolutely necessary,
   1216 because the UI either in firmware apps or in Keyboard Maestro is nicer.
   1217 
   1218 Beware: Just like Keyboard Maestro feels a bit too at home by immediately
   1219 enabling its ⌘Tab alternative, Karabiner might immediately change the meaning
   1220 of your function keys.
   1221 
   1222 Assigning shortcuts to commands
   1223 
   1224 These apps exist solely to add, change, or remove keyboard shortcuts for
   1225 existing app actions. Unfortunately, typically it only means commands you see
   1226 in the menus, because macOS doesn’t have a more generalized command system.
   1227 
   1228 Apps here:
   1229 
   1230   • macOS has a relatively unpleasant-to-use system where you can disable or
   1231     change many of its special system-wide shortcuts (like hiding dock via ⌘⌥D
   1232     ), and assign or change shortcuts in other apps, based on their menus.
   1233   • [53]CustomShortcuts is a nice free app that allows to assign or change
   1234     shortcuts in other apps’ menus.
   1235   • KeyClu and KeyCue show you cheat sheets of commands in other apps, in
   1236     addition to allowing to change them. I did not have a lot of fun using
   1237     them, and I wouldn’t recommend either.
   1238 
   1239 If you choose to do things the way I do it, you never have to touch this
   1240 category except for disabling any system shortcuts – like hiding the dock –
   1241 that bother you or that you want to reclaim. Unfortunately, other apps cannot
   1242 intercept those before they get dispatched to the operating system, and
   1243 rewriting them earlier in the pipeline also doesn’t make sense.
   1244 
   1245 However, apps in this category have an advantage: If you change a shortcut, it
   1246 will show up changed in the menu, which might help you remember it.
   1247 
   1248 Controlling things like a player piano would
   1249 
   1250 Apps in this category think about computer operation solely as human interface
   1251 events: keys going up and down, mouse cursor moving, trackpad clicks, and
   1252 delays in between.
   1253 
   1254 [closed] [open]
   1255 A closed and open player piano
   1256 
   1257 In response to you pressing the key, they can… pretend to press more keys or
   1258 move a mouse to a specific place. They do it quickly and reliably. This simple
   1259 automation can go very far, because what else do you do with the computer than
   1260 pressing keys and clicking on things?
   1261 
   1262 You can teach an app to press 6 keys after pressing a key: now you have text
   1263 expansion. You can wire an app to press ↓ 30 times after pressing another key:
   1264 now you recreated a page down key even if the app doesn’t support it. You can
   1265 have an app press ⌘ and Space for you, and then type an app name followed by 
   1266 Enter – now you can launch anything you want.
   1267 
   1268 But this is also very limiting, because… what else do you do with the computer
   1269 than typing keys and clicking on things? Well, you do a lot of seeing and
   1270 thinking. Here, not a lot of seeing and thinking is allowed, or even possible.
   1271 You can make the mouse go to a specific place on your screen and simulate
   1272 clicking the mouse in order to press a specific button that should be there,
   1273 but you will never be fully sure. You can press the keys for the user, but you
   1274 won’t understand what happens once those keys are pressed. This category is
   1275 “write, but not read.” It’s not as much “fire and forget” as it is “close your
   1276 eyes and fire.”
   1277 
   1278 The apps in this category are:
   1279 
   1280   • [54]Keyboard Maestro – my recommendation
   1281   • BetterTouchTool – I found the UI perplexing and I would not recommend it
   1282 
   1283 The apps in this category also typically cover the category below (but not vice
   1284 versa), so let’s just jump in there.
   1285 
   1286 Controlling things with commands and logic
   1287 
   1288 The previous category was apps swatting at the system and its apps. This
   1289 category is apps actually talking to them. The apps above were simple-minded;
   1290 the apps in this category are multilingual. They know how to use the operating
   1291 system’s internal language, they can chat to apps, and they have a rich
   1292 internal language of their own.
   1293 
   1294 It helps me sometimes to think of the previous category as old-time’y “player
   1295 pianos” – they will continue mindlessly swinging their hammers up and down to
   1296 press the piano keys even if you were to remove the strings. Apps in this
   1297 category are more like musicians facing a music sheet: they won’t mimick the
   1298 movements and report back you if the piano is broken, if they sat down to the
   1299 wrong instrument, if it’s too early or too late to play, or if they’re… missing
   1300 their arms.
   1301 
   1302 In this command-and-logic category, instead of moving a cursor 20 pixels west
   1303 and 40 pixels south to click a button, you can ask for a button by name and
   1304 activate it; this will work even if the button moves, and you will be warned if
   1305 the button is missing altogether. Instead of pressing ↓ 30 times, the app can
   1306 invoke a scrollDown function. Instead of mimicking a human being and
   1307 fake-pressing ⌘Space and then fake-typing the name of a program to launch it,
   1308 an app in this category can ask the operating system to launch it,
   1309 programo-a-programo.
   1310 
   1311 Since communication with the system goes both ways, the app will also get
   1312 feedback, and it can relay it back to you. It can tell you if it can or cannot
   1313 find the program you requested to launch, and your logic can react to that
   1314 knowledge. This also allows you to make conditional decisions: do different
   1315 things whether some software exists or doesn’t, if the system is in a certain
   1316 state, if you pressed some other key just before this one, and so on.
   1317 
   1318 This is typically the right, smart way to do everything. So if we have this,
   1319 why is the previous lizard-brain option even there? There are many reasons:
   1320 
   1321   • It’s sometimes simpler to do a dumb thing and just fake-press some keys
   1322     instead of learning an app’s specific language and rules.
   1323   • The “player piano” method works for all apps, even those that don’t have a
   1324     way to talk to on a higher level.
   1325   • Even in apps with very rich communication vocabulary, some verbs might be
   1326     forgotten. But the player piano method can travel anywhere your key presses
   1327     and mouse clicks do.
   1328 
   1329 There is a bit of an art of knowing which approach is better to take. Often,
   1330 you will get to mix and match: for example, smart logic to determine which app
   1331 is running, and then pretending to press ⌘T instead of asking to “open new tab”
   1332 via official diplomatic channels.
   1333 
   1334 Apps in this category and the category above:
   1335 
   1336   • [55]Keyboard Maestro
   1337   • [56]Keyboard Cowboy
   1338   • BetterTouchTool
   1339 
   1340 Apps only in this category:
   1341 
   1342   • macOS has built in Shortcuts and Automator (an older version of the
   1343     Shortcuts concept)
   1344   • in macOS, you can also communicate with apps by writing scripts in
   1345     AppleScript
   1346 
   1347 Other apps:
   1348 
   1349   • [57]Alfred (Workflows)
   1350 
   1351 Command palettes and other visible UI
   1352 
   1353 The apps in this category are somewhat similar to the apps above, but they
   1354 approach the challenge from a slightly different viewpoint: they want to create
   1355 the best command line for your computer. On your Mac, you already have a
   1356 user-friendly Spotlight under ⌘Space, and the extremely unfriendly Terminal.
   1357 There are many third-party apps that try to find a different take somewhere in
   1358 between these two.
   1359 
   1360 [command-ba] LaunchBar, Alfred, Spotlight, and Raycast
   1361 
   1362 While the above command-and-logic apps allowed you to automate things quietly
   1363 throughout the operating system, this category gives you one specific place you
   1364 invoke via one perfect shortcut, and a lot of magical things happen only inside
   1365 that place.
   1366 
   1367 The options here might be similar to the category above: building complex
   1368 logic, communicating with the apps and the system, chaining many repetitive
   1369 events. Some of these apps throw in nice sweeteners, like better clipboard
   1370 control or window management options. Some will also cover other categories,
   1371 for example assigning shortcuts to commands, as a bonus.
   1372 
   1373 Apps in this category:
   1374 
   1375   • Spotlight (built into macOS)
   1376   • [58]Alfred, [59]LaunchBar, [60]Quicksilver, and [61]Raycast
   1377 
   1378 Some apps in the previous category, like Keyboard Maestro, also do things here
   1379 – but with less success.
   1380 
   1381 Keyboard customization inside individual apps
   1382 
   1383 Some specific apps, especially large ones, offer built-in versions of
   1384 functionality above. Typically, it’s these three categories:
   1385 
   1386   • assigning shortcuts to its own actions
   1387   • control via commands and logic
   1388   • command palettes
   1389 
   1390 Some examples:
   1391 
   1392   • many apps like Sublime Text, Figma, and Linear have their own command
   1393     palettes
   1394   • Chrome allows you to assign keyboard shortcuts to launch extensions (or
   1395     specific actions extensions expose)
   1396   • Sublime Text allows you to record and replay keystrokes
   1397   • Zoom allows you to change its shortcuts and even make them “global” (it
   1398     understands the app is often in the background).
   1399 
   1400 This might be the only reasonable option for single letter key and Shift
   1401 shortcuts. These are always very context dependent – ShiftH in the app can flip
   1402 horizontally, but ShiftH in a text field needs to output a letter – and much
   1403 harder to program outside of the app where the context might be gone.
   1404 
   1405 These are usually better integrated than anything on the “outside,” as they can
   1406 have more awareness of the conditions of the underlying app, can offer access
   1407 to all the commands (even those not in the menus), and add unique features (for
   1408 example, awareness of different modes). But of course, each one is a separate
   1409 system with a unique interface you have to learn, and the UI quality varies a
   1410 lot.
   1411 
   1412 [davinci-re] [nova] [vs-code] [sublime-te]
   1413 Keyboard setting screens in DaVinci Resolve, Nova, Visual Studio Code, and
   1414 Sublime Text
   1415 
   1416 Text expansion
   1417 
   1418 These apps are specifically for dealing with text and typing – e.g. any place
   1419 where you see a blinking text cursor.
   1420 
   1421 Behind the scenes, smarter player pianos press ⌥Backspace to delete the entire
   1422 word, and then put stuff in the clipboard and paste from there in one go, to
   1423 avoid seeing all the little steps. But the challenges remain.
   1424 
   1425 Text expansion can exist on a lower “player piano” level, but it will be
   1426 appropriately naïve: if you type “omw”, the app then has to fake press 
   1427 Backspace to delete what you already typed, and then type “on my way” for you.
   1428 
   1429 Some text expansion apps do this, others integrate into the system on a higher
   1430 level (with visible UI and more nuanced options). Either way specialized text
   1431 expansion apps are typically simpler to use, just because, well, they are
   1432 simpler.
   1433 
   1434 “Player piano” text expansion vs. integrated text expansion
   1435 
   1436 I don’t use this category as much, so I have no strong recommendations, but
   1437 here are some apps I heard people like:
   1438 
   1439   • macOS has native text expansion (called Text Replacements). It’s also
   1440     synced with iPhone and other devices.
   1441   • [62]Espanso, [63]TextExpander, and [64]Typinator
   1442 
   1443 Some of these apps also throw in a nicer character/emoji selector, and there
   1444 are even specific emoji selectors or expanders, like [65]Rocket.
   1445 
   1446 Choose your own adventure
   1447 
   1448 This concludes the “choose your own adventure” portion!
   1449 
   1450 Okay, we are done with theory! And now, onto examples…
   1451 
   1452 That’s it!
   1453 
   1454 This can all get pretty addictive, or at least it was that for me. I’ve been
   1455 trying all sorts of interesting things, interactions I always wanted to try,
   1456 and new combinations of things.
   1457 
   1458 Here is what I learned, summarized:
   1459 
   1460   • Don’t overthink the system. Start with just one or two things that seems
   1461     fun to you.
   1462   • Break all the rules. You’re designing for the audience of one.
   1463   • Listen to your fingers. If they already like something, add more of that.
   1464   • Optimize for what’s fun to press physically; don’t create complex
   1465     incantations that contort your hands.
   1466   • Don’t underestimate seemingly tiny improvements, as they can add up
   1467     quickly.
   1468   • Put related things side by side, or under modifier keys.
   1469   • Use spatial mapping (things on the left in real life are on the left on
   1470     your keyboard).
   1471   • If you can, split the keys into “for the entire system” and “for the
   1472     current app” to make it easier for yourself.
   1473   • You can have more than one key for one action, and more than one action for
   1474     one key.
   1475   • Make shortcuts “global” so you can press them at any time you want.
   1476   • Don’t overthink automation. Automation is not the be all end all, and
   1477     sometimes you want to slow down on purpose, just to enjoy the ride.
   1478   • Above all, have fun!
   1479 
   1480 Things can get more complex than above, of course. All of this is software
   1481 running on your computer, and software talks. Karabiner actually has some
   1482 system logic to do things depending on which app is in front. Karabiner can
   1483 send things directly to Keyboard Maestro and Keyboard Maestro to Karabiner, in
   1484 violation of the flow in the chart above. If you are so inspired, you can even
   1485 quietly open an invisible (headless) Chrome to open your keyboard’s web page to
   1486 change its lights or layers!
   1487 
   1488 My last recommendation would be to write yourself a little cheat sheet on paper
   1489 somewhere before the shortcuts truly become second nature.
   1490 
   1491 I hope you enjoyed this guide. Please [66]let me know what you come up with or
   1492 if you have any questions!
   1493 
   1494 Copyright © Marcin Wichary
   1495 
   1496 Published on 12 May 2026.
   1497 
   1498 [67][68][69][70]
   1499 
   1500 Thank you to Ezra Spier for support and feedback on earlier versions of this
   1501 essay.
   1502 
   1503 Thank you to everyone working on keyboard-related tools in general.
   1504 
   1505 More keyboard stories:
   1506 
   1507   • [71]I don’t know what is Apple’s endgame for the Fn/Globe key, and I’m not
   1508     sure Apple knows either
   1509   • [72]The primitive tortureboard
   1510   • [73]The day Return became Enter
   1511 
   1512 
   1513 References:
   1514 
   1515 [2] https://aresluna.org/
   1516 [3] https://wooting.io/uwu
   1517 [4] https://www.keebmonkey.com/products/megalodon-triple-knob-macro-pad
   1518 [5] https://worklouder.cc/creator-micro-2
   1519 [6] https://www.8bitdo.com/retro-18-mechanical-numpad/
   1520 [7] https://www.keychron.com/search?options%5Bprefix%5D=last&q=numpad
   1521 [8] https://www.eweadn.com/products/eweadn-nk20-mechanical-macropad?variant=45446876496025
   1522 [9] https://web.archive.org/web/20190124214556/https://www.bxfoundry.com/home/30-bx-10-cyclops-usb-controller.html
   1523 [10] https://www.keyboardmaestro.com/
   1524 [11] https://karabiner-elements.pqrs.org/
   1525 [14] https://www.houdah.com/customShortcuts/
   1526 [15] https://aresluna.org/frame-of-preference/
   1527 [16] https://youtu.be/iUhu7sN474o
   1528 [17] https://archive.org/details/wicharytypewriter?sort=title
   1529 [18] https://aresluna.org/fn/
   1530 [19] https://unsung.aresluna.org/how-to-shoot-a-screen-using-a-board-of-keys/
   1531 [20] https://www.youtube.com/watch?v=qKs_-uN6SSQ
   1532 [21] https://unsung.aresluna.org/adjust-in-smaller-steps/
   1533 [22] https://en.wikipedia.org/wiki/Bookmarklet
   1534 [23] https://unsung.aresluna.org/deterministic-vs-idempotent/
   1535 [24] https://unsung.aresluna.org/
   1536 [25] https://unsung.aresluna.org/raycasts-confetti-cannon/
   1537 [26] https://aresluna.org/key-in-sight/#the-life-of-a-keystroke
   1538 [27] https://aresluna.org/key-in-sight/#thats-it
   1539 [30] https://karabiner-elements.pqrs.org/
   1540 [31] https://github.com/jtroo/kanata
   1541 [32] https://github.com/kmonad/kmonad
   1542 [33] https://www.houdah.com/customShortcuts/
   1543 [34] https://www.keyboardmaestro.com/
   1544 [35] https://folivora.ai/
   1545 [36] https://www.keyboardmaestro.com/
   1546 [37] https://github.com/zenangst/KeyboardCowboy
   1547 [38] https://folivora.ai/
   1548 [39] https://www.hammerspoon.org/
   1549 [40] https://www.alfredapp.com/
   1550 [41] https://www.alfredapp.com/
   1551 [42] https://www.obdev.at/products/launchbar
   1552 [43] https://qsapp.com/
   1553 [44] https://www.raycast.com/
   1554 [45] https://espanso.org/
   1555 [46] https://textexpander.com/
   1556 [47] https://ergonis.com/en/typinator/features/
   1557 [48] https://matthewpalmer.net/rocket/
   1558 [49] https://unsung.aresluna.org/save-for-web-claws/
   1559 [50] https://karabiner-elements.pqrs.org/
   1560 [51] https://github.com/jtroo/kanata
   1561 [52] https://github.com/kmonad/kmonad
   1562 [53] https://www.houdah.com/customShortcuts/
   1563 [54] https://www.keyboardmaestro.com/
   1564 [55] https://www.keyboardmaestro.com/
   1565 [56] https://github.com/zenangst/KeyboardCowboy
   1566 [57] https://www.alfredapp.com/
   1567 [58] https://www.alfredapp.com/
   1568 [59] https://www.obdev.at/products/launchbar
   1569 [60] https://qsapp.com/
   1570 [61] https://www.raycast.com/
   1571 [62] https://espanso.org/
   1572 [63] https://textexpander.com/
   1573 [64] https://ergonis.com/en/typinator/features/
   1574 [65] https://matthewpalmer.net/rocket/
   1575 [66] https://aresluna.org/
   1576 [67] mailto:[email protected]
   1577 [68] https://mastodon.online/@mwichary/116562952973195259
   1578 [69] https://bsky.app/profile/aresluna.org/post/3mlofastzhc2u
   1579 [70] https://aresluna.org/main.rss
   1580 [71] https://aresluna.org/fn
   1581 [72] https://aresluna.org/the-primitive-tortureboard/
   1582 [73] https://aresluna.org/the-day-return-became-enter