This thing is pretty bare bones but very functional and easy to use for anyone interested. It requires only AutoHotkey and contains no Ruby code. The good thing about that is that the code is very short, simple, human readable. The bad thing about it is that AHK is Windows-exclusive.
If I get time I’ll add more functionality. Currently it depends on the native SketchUp search / command palette - default is Shift + s to open. I’d suggest adding something easy on your non-mouse hand to trigger the search so that you can roll right into a command. I use s (s for SketchUp) as the leader key which then opens the command palette. The AHK mappings are only active when the command palette has focus. Using the native search was a way to make the script dramatically shorter simpler and reduce the risk of unwanted inputs.
If, for example, you want to open preferences by typing in `prefs` and you’d set your shortcut for command palette to s, then input sprefs it would open the preferences window.
So far I’ve only created functionality for chords, i.e. strings of keys pressed in sequence. This means that the command will fire on the last press - i.e. on the final s in sprefs. If you would rather hit the spacebar or enter after the command and have it trigger on that it would be easy to add that option. So far, I prefer not having a space/enter because it’s faster and fewer keystrokes, but that would make it feel more like a command line and open up the opportunity to have shortcuts that can overlap like rec and recr for rectangle and rotated rectangle. With the current script, a rec mapping monopolizes that prefix to only trigger one tool.
It’s pretty easy to use and set up, just install AutoHotkey version 2 and run the SketchUpChords.ahk file like any windows app once you’ve set up your shortcuts.csv. The syntax for the shortcuts is pretty basic and there are instructions. You can have multiple aliases for the same command if you use the pipe | character to separate them. I included my csv file to use as a template. My mappings are not good and may include mappings for plugins you don’t have so I’d scrap it and build your own. You can edit csv files in excel or google sheets. The script reads the csv file on script startup.
