ErgoDox EZ Users

Marco Fontani

Tech Lead
Marco Fontani

Who are you, and what do you do?

I’m Marco Fontani. I’m a freelance IT consultant / Tech Lead / Devops / Web / Perl developer, and I mainly work from home from the green suburbs of Milan, Italy.

What hardware do you use?

I do most work on my slightly aging Macbook Pro, which is just about to get replaced with a maxed out Thinkpad T480; I also use a beefy desktop machine.

The Macbook Pro is a Retina, 15-inch, Mid 2015, with 16GiB 1600 MHz DDR3 RAM, a 1TiB SSD, and a AMD Radeon R9 M370X 2048 MB. I’m running the latest High Sierra OS on it, and it unfortunately doesn’t last a couple hours on battery if I’m working on it. I blame the VMs it’s running, more than its battery — but I have nothing but Apple to blame for its inability to work properly when it’s mildly hot out there. At 28C, its lovingly fanless design causes the CPU to spin uselessly, and makes it hard to do common tasks.

The desktop machine runs a vanilla Windows 10 Home edition, with a liquid-cooled 4-core Intel i7-7740X CPU (4.3GHz base speed), 32GiB 3000MHz RAM, a Patriot Hellfire M2 500GiB NVMe SSD; two ST4000VX007 Skyhawk Seagate 4TiB “spinning rust” HDDs; and an NVIDIA GeForce GTX 1080 Ti graphics card. It’s been assembled by hand by a fantastic company in Florence, Tradeco.

The upcoming Lenovo ThinkPad T480 will come with Windows 10 Pro, an Intel i7-8650U (up to 4.2GHz) CPU, 32GiB 2400MHz DDR4 RAM, a 14” WQHD IPS display, an NVIDIA GeForce MX150, a 1TiB NVMe M2 2280 SSD and a 128 PCIe-NVMe 128GiB SSD, as well as an “internal” 24Wh battery and an external “beefy” 72Wh battery. It should last longer than the 2 hours the Macbook currently lasts on a battery, and it’ll most likely dual-boot Debian. I don’t expect this one to have any CPU related problems — crossing my fingers.

I’m still deciding on whether to use both my monitors (a horizontal Asus MG28U 4k and a - currently vertical - Philips Brilliance 27” 273Plph WUXGA) with the upcoming Thinkpad; chances are I’ll just let the desktop computer run the latter.

My main keyboard on all computers is the Ergodox EZ. I use an old Apple wireless mouse for the Macbook Pro, and a USB “gaming” mouse for the desktop PC. As I’m more often than not working on the Macbook, I also have another dirt cheap ET I-500 mechanical keyboard always attached to the desktop machine.

I have a couple gaming peripherals which have dubious use outside of gaming:

  • Logitech G13 gamepad, with 24 programmable keys and a thumb joystick
  • Utechsmart Venus MMO gaming mouse, with 12 side programmable buttons

The home network sits behind a wonderful FRITZ!box 7590 modem/router, and is helped by a tiny Raspberry Pi.

I have an aging Samsung Galaxy S6 phone, which is starting to have battery and overheating issues. I’m looking to get that changed in the next few months.

Other very important pieces of “hardware” in my arsenal are the DeLonghi coffee machine, as well as the Kindle I read most books on.

Setup

And what software?

Most of what I work on revolves around the web or Linux servers, so the applications I spend most of my time in are the terminal, and browsers.

On the Macbook i use iTerm2; Firefox (beta, as well as the ”developer edition”); Google Chrome; Rambox (to embed Slack and Gmail and WhatsApp instances); Homebrew; Todoist; Skype; XQuartz.

On Windows 10, I also use the Windows Subsystem for Linux, XMing, and Opera.

I use VirtualBox on both, as that’s my preferred way to run development VMs.

My editor is vim or Neovim, depending on where I’m working. I use VimR or for a few tasks like composing Markdown files (or emails!), as it “embeds” neovim, and provides a great side-by-side preview pane.

I’ll likely switch to using mostly Debian + LXQT + i3 once the ThinkPad arrives, but I’ll keep the Windows 10 installation around also.

I religiously use ssh-ident to ensure each ssh connection I make only has available the SSH key it should. I’ve got a dozen or so different SSH keys, as I use pretty much one for each service.

I’ll be getting a couple GPG smartcards to play with soon, so I’ll likely switch at least a couple SSH keys to being wholly embedded within those.

Most of the other programs I use are command-line ones - from tmux for terminal multiplexing and the plethora of UNIX utilities or the “brew” or “apt” installable ones. “UNIX is my IDE” is my motto.

I prefer to “do” most things from the keyboard (a good reason why I’ve gotten the Ergodox EZ), so whenever possible I use a tiling window manager and use keyboard “commands” or “shortcuts”. On MacOS, I’m currently using chunkwm, with skhd. On linux, it’ll be i3. On windows, I’ll just weep.

What’s your keyboard setup like? Do you use a custom layout or custom keycaps?

My secondary “vanilla” cheap mechanical keyboard has a custom “Esc” keycap - with the Vim logo - as well as custom HJKL keys, with arrows. It’s otherwise a plain old keyboard, but I had that one for a while before getting the Ergodox EZ.

I’ve not yet gotten a set of custom keycaps for the Ergodox EZ, as I’m not yet settled on “a” layout despite having had the Ergodox for almost a year now.

I’d like to have a custom coloured set made, but until and unless I settle on the same layout for a while, I’d feel bad if I ordered one and ended up switching things around yet again. None of the pre-made coloured sets use the number row in the way I use it, so most pre-made sets are useless to me.

I use a custom QMK layout on the Ergodox EZ, mostly based on a standard QWERTY and with the arrows, numbers, and backspace keys in the “standard place”.

I’ve modified the layout at least 230 times, judging from the amount of *.hex files in my QMK directory. Most were minor changes, I’m sure, as well as slight changes in the colours for the RGB lights.

I think this may show things in a more visual manner - although it won’t show all the layers or tap dances or the leader key I’ve set up, or the colour changes… but it will show you the two “emojis”:

,--------------------------------------------------.           ,--------------------------------------------------.
| Esc    |   1  |   2  |   3  |   4  |   5  |   6  |           |   7  |   8  |   9  |   0  |   -  |   =  |Backspac|
|        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 | Delete |
|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
| Tab    |   Q  |   W  |   E  |   R  |   T  |  /   |           |   \  |   Y  |   U  |   I  |   O  |   P  |   '"   |
|        |      |      | MsUp |      |      | SYMB |           |      |      |      |      |      |      |        |
|--------+------+------+------+------+------|      |           |  CAG |------+------+------+------+------+--------|
| `~ Ctrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / MD|Ent/Cmd |
|        |      |MsLeft|MsDown|MsRght|      |      |           |      | Left | Down |  Up  | Right|      |  Play  |
|--------+------+------+------+------+------| LEAD |           | LEAD |------+------+------+------+------+--------|
| LShift |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |  UP  | / Shift|
|        |      |MSAcc0|MSAcc1|MSAcc2|      |¯(ツ)¯|           |  ಠ_ಠ |      |      | Prev | Next |      |        |
`--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 | LCtrl |SYMB/`| AltG | Alt  |  Cmd |                                       |[ AltG|] AltG| LEFT | DOWN | RIGHT|
 |       |      |      | Lclk | Rclk |                                       |      |      |      |      |      |
 `-----------------------------------'                                       `----------------------------------'
                                      ,-------------.       ,---------------.
                                      |  /?  |  '"  |       | Del  |  AltGr |
                                      | WhUP | WhDN |       | MUTE |  BACK  |
                               ,------|------|------|       |------+--------+------.
                               |      |      | Home |       | PgUp |        | SPACE|
                               |      |      | BriUP|       | VolUp| ENTER  |      |
                               | Space|Bkspc |------|       |------|        |toggle|
                               |      |      | End  |       | PgDn |        | back |
                               |      |      | BriDN|       | VolDn|        | light|
                               `--------------------'       `----------------------'

What would be your dream setup?

Hardware wise, I’m pretty happy with my current setup - at least, I should be once the Thinkpad arrives. I’ve given up on the ability for Apple to deliver a good developer machine.

I’d like to have a better desk, though, as the current one feels a little cramped, with all the hardware on it.

I’d also like to have a non-Apple phone capable of lasting more than a few hours while running Google Maps for driving directions. While I can easily carry a USB power bank, I’d really rather the phones came with more battery, expandable storage, etc.

I’d love to get a few “inexpensive” PCs (NUCs?) to be able to play more with Kubernetes without having to do everything on the cloud, but those are still a bit too pricey for the moment.

If I were to truly dream, I’d love to be able to carry just one piece of gear allowing me to truly work from anywhere, anytime: long lasting battery, great screen, 5G connection, the works - and “real” fibre to the home.