ErgoDox EZ Users

Ewen Goisot

Mathematics Student
Ewen Goisot

Who are you, and what do you do?

I’m Ewen, a math student in a master’s degree program. As I take correspondence courses, I have a lot of free time. I spend a lot of time coding but am not paid for that — it’s mostly personal projects with games or optimization (in order to save time in the long term). I’m also interested in something that looks like origami using long paper ribbons instead of a square, and I published some videos explaining my ideas about it. It’s not exhaustive; I still have a lot to post. I also create some puzzles (here is an example) and board games, and will probably post some of them here. I also try to listen to audiobooks or watch movies while I’m working, often accelerated with Video Speed Controller or MPV.

Here are a few of the games I’ve created:

  • Elements, for 2, 3, or 4 players. The first player who makes some pattern on the board wins. The patterns depend on how many players there are. Cards have some effect on neighboring squares like moving other cards, building generators, or canceling adverse effects.
  • Imbrik’, a one-player puzzle. Goal: in the beginning, every visible face is either blue or white; at the end, they have to be either orange or white. The final object will be symmetrical to the initial state. The pieces are squares and cubes with linkages between them.
  • Oriban, for 2 or 3 players, a “computer board game”. Goal: if every pawn has the same color, their controller wins. Players can fold/unfold the board, and if two pawns are in the same place when folding the board, they will merge. If they do not belong to the same player, they merge to the darker color (pink + dark blue = dark blue). But if they belong to the same player, two weak pawns become strong, and everything else becomes weak. The rules for 3 players are a bit different for merging but folding is the same.
    Oriban. Left image = board now, right image = board if unfolded now

What hardware do you use?

Complete Setup
Computer + keyboard + e-reader

My main computer is an MSI GP62 with an Nvidia GTX950M GPU and an Intel I5 CPU. Now, I use only one screen but I usually split it into two or more. I have a second and less powerful HP Pavilion but with the same software config.

Since I have an ErgoDox EZ Keyboard, I use it most of time — more than 95% for typing/coding/shortcuts and 80% for mouse tasks. I have the tilt/tent kit, and I find it useful not only while I’m typing but, for example, when I put both parts in the same small box if I need to go somewhere else. Sometimes I type without them. I have Kailh Silver (linear) switches.

I also sometimes use a Roccat Kiro mouse because it has 5 extra keys, can be customized, and is symmetrical, which is necessary/non-negotiable because I’m left-handed. I also switched the two main buttons (left/right) for the same reason.

I also use a Bookeen Cybook Muse e-reader quite often to read when I don’t have my computer with me or while I’m doing something else on my computer. I can use either the touchscreen or keys to turn pages. I often prefer keys, and I like when I have choices. It has 1 month of battery life — actually, “1 month” means “15 hours” (one month if you use it 1/2 hour a day), but it’s the same for all e-readers.

And what software?

I post my main config files here.

I use GNU/Linux exclusively: currently, Ubuntu 18.04LTS with a highly-customized i3 desktop. I almost always try to use free/open-source software.

Since I almost always use my ErgoDox EZ keyboard with the ZÉPY layout (something I created, a modified BÉPO layout), I at least had to move some i3wm shortcuts. I also changed my i3blocks bar. From left to right: virtual desktop (red = focused), several indicators for CPU, RAM, etc., colored white/black when values are too high, NumLock/CapsLock indicator, date, some software icons.

i3WM bar
The current status bar I use with i3wm

I3wm is a “tiling window manager”, so if I use one application or more, I never see the background/wallpaper — so my wallpaper is monochrome — and I never see half a window. It’s modal: I can define some modes (a bit like Vim, but here I can easily define how many there are) with different keyboard shortcuts for each of them.

My main activity when I’m not studying is programming. I don’t use a true IDE but a separate text editor, NeoVim. It’s like Vim for shortcuts, and they can share the same config file and compiler (like GCC). (Neo)Vim can look like a true IDE if used with some plugins. The ones I use the most are UltiSnips (snippets; increases my code typing speed), Deoplete.nvim (completion; also increase my typing speed, but not in the same way), Vim Airline (better status bar), and Vim-Easymotion (jump to any word with a few keys).

I use the terminal a lot: GNOME Terminal (any terminal that allows zooming is good for me) and Guake, with Zsh shell and Oh-My-Zsh, which is like Bash but with better keyboard shortcuts, themes, and plugins. I use a few plugins: zsh-syntax-highlighting, zsh-autosuggestions, Z (to change directory faster than with cd), and Git.

I also use tmux to have several open tabs and the ability to split the window of every terminal.

I often try to make the keyboard and mouse act almost the same way in several applications, because I want to be able to do most of my tasks using the keyboard only, without excluding the mouse or making it harder to use than before. For example, in (Neo)Vim, I remapped some keys to jzz and kzz (to go up/down and move the cursor to the middle of the screen; I rarely need two separate shortcuts for “move cursor” and “move text on screen”). With i3wm, I don’t use the mouse a lot, but when I focus on a different window, I want my mouse to follow.

When I want to listen to audio, music or otherwise, on YouTube, I prefer to do it outside of YouTube and use youtube-dl for downloads or youtube-viewer with MPV if I simply want to watch/listen to them.

I also use CopyQ in order to remember what I copied (whether pasted or not) when it’s more than one item.

For standard web browsing, I mostly use Chromium, but sometimes Vivaldi, Firefox, or Tor, all with some extensions: Ublock Origin (to avoid ads), Dark Reader (enables dark mode on almost every website; I have dark mode enabled for other aps, too), and Video Speed Controller (for when people in videos and movies speak too slowly for me, which is always). My favorite web search engine is DuckDuckGo.

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

I learned BÉPO, an ergonomic layout for French, a bit less than one year ago, and my typing speed increased by ≃15% in 2.5 months. That was before I brought my ErgoDox EZ keyboard. By then, I’d already changed a few things from standard BÉPO. For instance, I don’t like to type with only 9 fingers (i.e., the two thumbs share one key: the spacebar), so I decided that the keys above the spacebar (V, B, N, M in QWERTY) are for the thumbs, too, and had to move some other keys around. These keys were AltGr (right alt for more symbols in some layouts; I use it for the arrow keys, too), Shift, Super (I use it for i3wm shortcuts), and something I call “ControlGr” — used on very few keyboards and sends “ISO_Level5_Shift” with the right control key — because I didn’t have enough letters with AltGr.

But that still wasn’t enough:

  • It wasn’t ortholinear, so I made lots of mistakes (including with BÉPO) on the top and bottom rows even if I typed with 10 (and not 9) fingers.
  • It wasn’t split, so I moved all the right-hand keys to the right, but then some were on some irregular keys like Return, Backspace, and Shift — bigger than usual keys.
  • The keys were too hard to press and hurt my fingers — and I couldn’t change them.
  • It wasn’t perfect for English or other languages.
  • There weren’t enough thumb keys, and they weren’t perfectly placed because I couldn’t easily physically change my keyboard. I needed at least one more for the Control key.

That’s why I now use an ErgoDox EZ. I didn’t really customize the keycaps — I simply switched some keys — but I built something to bind both parts together using Velcro, so I can choose the position of each part and it will not move while I’m typing. I don’t have the Wing wrist rest, so I built my own. I also changed a lot of things in my layout again, even after BÉPO, because BÉPO is optimized for conventional keyboards.

Keyboard alone
The two halves bound together, with the wrist rest
Each part, including the wrist rest, can be moved, added, or removed

My layout and configuration changes:

  • Now, I have 6 keys for each thumb and at least 2 “very easy to press” (like home row keys for other fingers) keys for each, so I decided to put “E” on one of them, and Space on the other. I also put Enter and Escape on the second big thumb keys. I press Escape a lot while I’m programming in NeoVim.
  • I improved my layout compared to BÉPO for other languages (W, K, and the digram TH are a bit too hard to type on BÉPO), and I quite often need to write in English, at least for programming, so I moved a few letters… then I moved every letter… several times. In the end, I use this:

Ewen's ZÉPY layout, optimized for French and programming

  • Sometimes, I like to have direct access, without using Shift, to each digit. They’re still on the top row like in AZERTY, QWERTY, BÉPO, etc. Sometimes, I prefer to have some symbols useful for both speaking in French and English or for programming (like !?-:"()=<>), and I can always directly access .,/' even if I have digits on the top row, so I decided that the NumLock key could be used to switch between those two modes.
  • If I don’t have direct access to digits (i.e., NumLock is off), I have more symbols on the top row (those symbols are on AltGr+letters when NumLock is on), so I put the arrow keys and some other things on AltGr+letters in order to avoid redundancy.
  • ControlGr is now mostly for math symbols, like it was in my modified BÉPO.

How I personalized my ErgoDox EZ:

  • I find dual-function keys very useful and use them a lot. Previously, they were only for my thumb keys, but now I have at least one for each finger except the pinkies.
  • A mouse mode with lots of mouse and web browsing-related actions, including mouse movement, clicks, scrolling (including left/right scroll), close/unclose/open/move/focus tab, copy/paste, previous/next history, zoom, focus another workspace or window, and F1 through F14 keys. F13 is for Guake and F14 for CopyQ to avoid collisions; I have them in normal mode, too.
  • A math mode for digits, including a/b/c/d/e/f for hexadecimal, and direct access to every symbol useful for programming, regardless of NumLock state.
  • Several other modes, mostly for one-hand usage.

My typing speed increased again. It was up ≃25% after 5 months, including the first few months with BÉPO, and a bit more now — probably 35%.

Here’s my layout on the ErgoDox EZ graphical configurator and more explanation on the BÉPO wiki.

What would be your dream setup?

I’ve already spent lots of time customizing most of the tools I use daily, so I almost have my “dream setup”, with a few exceptions:

  • I like the Kailh Silver switches for most keys but would maybe prefer something else for some modifiers, arrows, and other keys, maybe something clicky.
  • Perhaps I could be more productive with a second screen, but I’m not 100% sure; using a tiling window manager like i3wm could be enough. Sometimes I use my e-reader as a second screen (even though it can’t do many of the same things) if I just want to read a PDF while I do something else on my computer, but the e-reader is probably enough for that.
  • My keyboard setup is very good, at least for me, for French, and “not so bad” for English, but if I want to write in other languages, I don’t want to spend a month creating a new keyboard layout each time. So, I wrote a program that creates the best keyboard layout according to my criteria. Here are the results I get. It’s helped me at least for one-hand modes.
  • I still need to find a smartphone that I like (meaning “where I also can use a physical keyboard when I want to”). My phone is almost dead and I definitely need to replace it someday. It hasn’t been a priority because most of time I work (or do everything) on my computer, not on my phone.
  • I type faster, and when I type code, I don’t have to type every letter/symbol. I want to do the same for human languages: I want to find a completion program, or make my own if I can’t find what I need. Then, I will probably discover that I don’t need all those rare letters that appears in French, maybe only “É” and “È” to define new shortcuts, and that I can replace everything else with a letter like “X”; and the software will hesitate for only 2/300,000 words, and those are rare words like faxons/façons, jouxtes/jouâtes, so I will again put a few more symbols in direct access. That will be enough for typing but I will still need some macros to avoid some bad behaviors (like lots of clicks for a very simple action) of some websites/software. There will always be new websites, so I will always have a few optimization tasks to do.