I’m Luke, a backend software developer for a PACS/medical imaging software company in Montreal, Canada. My duties fluctuate between building new features and doing maintenance. Both feature work and maintenance are rewarding in their own ways and present their own unique challenges.
I use a MacBook Pro (late 2016, 15 inch) at home and a CentOS 7 desktop at work. The MacBook Pro is the model with the touchbar. The touchbar itself doesn’t really affect me one way or the other as I use my Ergodox EZ for any serious typing or coding.
At home I have a Belkin Thunderbolt 3 dock which I use to dock my laptop to an ASUS 4K monitor, wireless mouse, USB hub, and of course, my Ergodox EZ.
I have two keyboards, one for work and one for home. Both of them have Cherry MX Clear switches. I prefer the clears because they offer the most resistance of any tactile switch (much more so than the browns), which minimizes typos caused by accidental key presses and are quiet enough for office use. When Ergodox EZ switched to Cherry MX switches from Gateron, I took the opportunity to order a keyboard with Cherry MX Clears. They’re both tented and I didn’t bother getting the wrist rests because my wrists hover over the keyboard, which feels more ergonomic to me. This is what it looks like:
My mice are nothing special. I use a wireless Logitech mouse at home and the Dell mouse that came with my workstation at work. They’re both positioned between the keyboard halves.
My desk at home is a cheaper model of Ikea Bekant with adjustable height (the cheaper non-standing desk).
I’m also a devoted Vim user, having learned the editor long ago after having had the good fortune to have been enrolled in a Unix class at my first IT job. I’ve installed Vim plugins on all of my editors, including IntelliJ. In fact one of the major selling points for IntelliJ is that the Vim integration is way better than Eclipse’s, as that IDE doesn’t have the option to install a Vim plugin out of the box. Recently, I’ve started using VSCode for Python development, which also has solid Vim integration.
On CentOS 7, I prefer the Cinnamon desktop environment, as it’s far friendlier to keyboardists than Gnome 3, which has made some truly bizarre UI choices, such as switching workspaces for only one monitor by default. Switching workspaces, moving windows between monitors/workspaces/conrners from the keyboard is easy. Also, there’s a Mission Control like environment that’s completely usable from the keyboard, including switching monitors. It has everything I want insofar as window management is concerned except text-based window switching.
On macOS, I’ve installed various plugins to make the user experience as keyboard friendly as possible with Shortcat, Contexts, and SizeUp. These allow me to trigger various UI elements from the keyboard, switch to open applications by typing their names, and moving windows to different sides of the screen/other monitors/other workspaces. The one thing I can’t do on macOS is invoke the context menu from the keyboard except for apps that support it (such as IntelliJ and Sublime Text).
As much as I like the web based keyboard configurator, I’ve decided to maintain my own custom QMK layout by maintaining my own C code and compiling it. I used an illustrator tool to show my Mac and Linux layouts and well as my symbol layer and my mouse/media layer, which are common to both operating systems. The only feature I can’t do without that the web configurator doesn’t support (as of this writing) is sticky keys (ed note: the configurator now supports one-shot sticky keys). This means that I don’t have to hold down a given modifier to invoke it. For example, I can tap the SHIFT key and only the next key will be capitalized. This saves my pinky fingers, especially when using Clear switches. Also, as a Vim user, I’ve given the ESC key prime real estate, as it’s mapped to the larger right inner thumb cluster key. This means I don’t have to type “jk” anymore to switch back to normal mode. It saves me dozens if not hundreds of keystrokes a day. I have two keys mapped to CTRL-SHIFT, which I use several times during the day. Otherwise, my layout is very similar to the factory defaults as I’ve mapped most of the thumb cluster keys to their defaults (top keys are both CTRL and ALT with sticky keys) and a QWERTY layout. I’ve set up two other layers with minor tweaks from the defaults — most notably media controls on the thumb cluster for layer 2.
I have 3D-printed custom keycaps based on OpenSCAD definitions that compile to 3D printer STL files. Each key will be indented based on how far away it is from the home row or the bottom most thumb cluster keys, making keys farther away from the home row more easily reachable. This solves the major problem I had when I first used the Ergodox EZ with flat keys, reaching the top thumb cluster keys, the number row, and the bottom row. I made the home row keys purple to give colour to an otherwise all black keyboard and keycaps. My coworker’s original keycap definitions came with letters and some very intricate and artistic icons, and I greatly admire his creativity. However, I didn’t need any of them on my keys since my layout is different from his and I’m a touch typist, so I made them blank.
It would have been nice to have one of the newer models of Ergodox EZ where I could swap out the switches and try some Purple Zealio switches, like one of my other coworkers did (yes, I have two other Ergodox users as coworkers: what are the odds?). They’re similar to Clears but they feel “bouncier” which means, at least in theory, more pleasant and more efficient typing.