Dusty
Roughly a year ago, I found myself inwardly complaining about the fact that my 60% keyboard only had the Control key on one side. This minor inconvenience led me down a rabbit hole of keyboard optimization that is so deep I may never emerge
In any event, I have settled on a 36-key split as my daily driver—and in the course of optimizing the layout, it became clear to me that I could do very specific things to make the layout better for Elixir, which is a favorite of mine. After 8 years using Dvorak, followed by a few years back on QWERTY, I had settled into using Colemak DHm as my primary layout for the alpha keys. I wanted to apply the pleasant inward rolls that Colemak was giving me to the symbol layer as well, with some special attention to Elixir. For programming in general, I grouped inward-rolling pairs like +=, (), [], and {}, but I also discovered that by using the grouping: < | - >, I could make comfortable rolls for a number of Elixir conventions all at once (<>, <-, ->, |>). I could also put other commonly used symbols, like " or :, in positions that better reflect their Elixir-specific importance, and still have room for rolled pairings that serve other purposes (like ~/ for Unix file paths). Coupling these improvements with the power of QMK firmware (oneshot layers/modifiers, dual-function keys) has made for a really comfortable and enjoyable experience. I don’t have any idea how much overlap there might be between the various communities (Elixir, alt layout, mechanical keyboard), but I thought I would share it here since a lot of my thinking was inspired by Elixir syntax.
If this type of thing interests you, you can see the layout itself in the QMK repo (the symbol layer is towards the end).
If you’re wondering about my choice of alpha layout, I’ve written about that elsewhere.
There is always room for improvement—you’d be correct to point out that EEx openers (<%=) aren’t that smooth—but I’m relatively satisfied for now.
Anyway, thanks to the community for this awesome language. I’ve only just started my journey but it’s really a joy to use.
Trending in Discussions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #security










Showing Posts 23 to 14- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
codeanpeace
There’s a fun bit of trivia around how hjkl was chosen in case you were wondering.
sanswork
I have the directional keys in the same place on one of my layers but thats the only thing I needed to worry about everything else is in the normal place
See layer 2 here Oryx: The ZSA Keyboard Configurator
stefanluptak
Oh, I never realized that. OK, makes sense, thanks.
Dusty
I meant that I use all 4 fingers for my arrows, in their home positions, whereas standard Vim bindings use index for both left and down, making use of only 3 fingers and requiring a movement out of home position for left. That’s what I meant by JKL; position, rather than HJKL.
stefanluptak
Thanks a lot. I am doing that too now. And what do you mean by the double-duty of index finger?
Dusty
Remapping is not the answer—once you start, it never ends. Basically, there is only one issue with Colemak and (Neo)vim, and that’s the position of HJKL. You need a solution to that problem, and then you can leave everything else untouched. For me, the solution was home-row arrows in a layer. I put them in JKL; position, because I’ve never liked giving the index finger double-duty with HJKL, but either way works.
stefanluptak
How do you Colemak typists use VIM? I got myself a ZSA Voyager keyboard and thought I could try Colemak while learning to touch type properly. Previously I was able to do around 100WPM on MacBook keyboard with QWERTY using maybe 7 fingers or so. I am now at around 17WPM with Colemak. I feel like I will soon want to switch to VIM too, but I am not sure if it is a good idea and the whole Colemak+VIM combo isn’t bigger pain than it is a gain because all the remaps and tweaks needed. Maybe I should just stick with QWERTY while using the Voyager and my life will be much simpler. What do you think?
shihou
Here have some good mechanical keyboard options:
I have a keychron K2 V2, which I recommend. it’s very solid and comfortable.
adkron
I use a keyboardio and love it. The thumb keys in one arc allows them all to be reached and usable. I created an Elixir pipe key, but I need to spend more time with my layout. The numbers I moved to the home row on another layer. The original number keys are shortcuts for switch tmux windows. My wrist pain went away completely. I love the keyboard. If you want to know more let me know. I also have a discount code for it. I get no kickbacks.
sanswork
I type mostly at a standing desk with the keyboard slightly below parallel with my elbow so I don’t actually hit any wrist rests.