Mechanical Keyboard Sound Isn't That Simple
Figure 1: I couldn't think of a more literal way to represent this article if I tried... Looking back just a few years ago, there’s no doubt that the huge influx of people that joined the hobby at the peak of the COVID pandemic were drawn to keyboards by way of YouTube, TikTok, and other audio-visual content platforms. Even as the output from these content creators has waned in recent months, their collective impact and legacy on the keyboard hobby is rather firmly etched in the history books. As a result of all of their sound tests, build logs, and opinion videos, the message is clear to any new person joining the hobby: mechanical keyboards are all about the sound. Thock this, clack that. Whether it’s keyboards, keycaps, or even singular switches, seemingly everyone new to the hobby meticulously pores over each component of their keyboard not in an attempt to figure out how it will feel in hand, but how it will sound as they’re furiously grinding their way out from...
Mar 27, 2024
* Given a physical key KEY, how can I map KEY to something and Shift+KEY to something else? * The small set of macros provided on the website is only useful for users of the QWERTY US layout. How can I define my own macros?
I do not want to rely on tweaks on the operating system layout (like a custom layout) because I want to be able to plug my keyboard in any computer in my country that runs the default local layout. Some characters do not exist on the standard QWERTY layout so I also cannot simply switch to QWERTY.
For example, I would like to assign the four small vertical keys to ( [ { < and > } ] ). In my local layout, < and > correspond to the following physical keys: ISO/ and Shift+ISO/. { is mapped to physical ALTGR+4 and } to ALTGR+= As you can see, I happen to live in the Land of Logic. Here, given one of the small vertical key from the left half (let's call it KEY), I would have to configure KEY to spawn ISO/ and Shift+KEY to spawn ALTGR+4. As far as I know, the online configurator simply cannot do this. What are my options?
Alternatively, you could google around to see if anyone out there has done the layout you want (probably not that likely but a 1 in a billion chance is still a chance...) or at least comes closer than the configurator with layers. If it's not a default shift enabled key, then you'd have to define a shift key as a different layer and map that key to the layer. I doubt that's the answer that you wanted to hear, but I'll bet once you put the work in, it will be worth it. Even if you spent a week figuring out how to compile and create macros, you'd still have potentially a lifetime of keyboard use out of it.
I'm afraid you are right: I will have to throw myself in advanced firmware customization. This is actually a good thing and I had planned from the very beginning to take the opportunity to learn from this and dive into low level tweaking but I had also expected to be able to quickly set up a draft of convenient configuration first. On the plus side, I am already a daily archlinux user. Mimicking the VM conf and installing the dependencies should be quick.
Yesterday I stumbled across an interesting gist written by an ergodox user. He said that the sanest way to configure an ergodox, instead of generating scancodes that reverse-match the os local keybindings (it is indeed quite silly when you think about it), would be to generate individual scancodes for each and every possible combination (every physical key on every layer minus the layer switching keys) and then do the actual mapping in a custom keymap in the os (really easy: a simple text file in xorg on linux with lines such as "keycode 59 = semicolon period semicolon period multiply U22C5 multiply U22C5"). Admittedly, this goes against my initial request (being able to plug the keyboard in any computer that runs my country's stupid local keymap), but I like the idea and I could still have an additional compatibility layer just in case.
Hope you do better than I did!
1. Install VirtualBox (free download) 2. Import the virtual machine into it (I think those can be packaged as tars) 3. ????? 4. Profit.
A tar file is a 'tape archive' (used to be used for [and may still be] backing up to tape drives). Basically you can think of it as a special sort of zip file. You can open it with 7zip (great software) and look at the contents; giving me a list/screenshot of what it contains could assist me in determining the type of vm it is.
Thanks.
https://github.com/kiibohd/controller
Scroll down a bit and you should see the VM link.