• You are not logged in.

Colemak + Emacs (Evil)

  • Started by joncol
  • 41 Replies:
  • Reputation: 0
  • Registered: 20-Dec-2016
  • Posts: 11

Hello,

I'm a beginner at Colemak, coming from ~30 years of Qwerty usage (touch typing for a long time). Around 70 WPM on Type Racer, using Qwerty.

I only started using Colemak 2 days ago, and so far I've used Type Racer, 10FastFingers and some similar sites to practice. Currently I'm writing at a speed of about 15 words per minute (Type Racer). I'm trying to get some practice daily, at work (as a programmer). Probably around an hour each day.

I'm using Emacs with Vim bindings as my Editor, and so far it has been very difficult to acclimatize (as expected). I'm having the most problems with "f" and "l" and of course "rs".

With regards to the Vim bindings, I miss being able to use "hjkl" for navigation. I don't want to rebind these, as it would invalidate other bindings and mess with compatibility with other packages. If you have any experiences using Colemak with Vim or Emacs (or Emacs Evil mode), it would be interesting to hear them. Will I get used to the new bindings sooner or later?

My current keyboard is a Microsoft Natural Ergonomic Keyboard 4000, but I'm looking for an ergonomic keyboard using mechanical switches (ErgoDox seems fun).

By the way, this took too long to write :).

Offline
  • 0
  • Reputation: 136
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,895

The common opinion seems to be that rebinding is unnecessary, although some do indeed rebind their HJKL keys. You will get used to the keys, and it's logical to let the mnemonic keys of Vim move with their mother keys in the case of other commands.

I use Extend mode (as per my sig topics) which removes the navigation problem.

Last edited by DreymaR (21-Dec-2016 10:10:37)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 74
  • From: UK
  • Registered: 14-Apr-2014
  • Posts: 773
joncol said:

By the way, this took too long to write :).

Yes, I remember when it was like that. Keep going though :P

It's surprising to me that vim users still love HJKL so much. I could understand if it was (qwerty) IJKL. HJKL is not great design for arrow keys navigation really, it doesn't even correspond to the home key positions. Back in the day, I remember using vi(m) with the old green-screen dumb terminals, and so there was no other choice . But these days, when it's much easier to configure everything how you want it, Extend is the obvious answer.

Using Colemak Mod-DH with some additional ergonomic keyboard mods.

Offline
  • 0
  • Reputation: 136
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,895

SteveP and me, the tag team of Extend CurlAngleWide typing! ;-)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 10
  • Registered: 06-Jun-2013
  • Posts: 489

I use emacs with colemak, but not with evil/vim

It was a while back now, but I remember it being pretty hard at the start

Now I don't even notice it - its all normalised

I tried a few times with the extend stuff but never 'got' it. I think possibly the reason being that emacs provides most of that stuff with its own key bindings anyway so its not required. I can see extend would make more sense if you weren't using emacs heavily

i half remember ryan heises site had some info on vim key binding mods for colemak?

Last edited by bph (21-Dec-2016 12:57:07)
Offline
  • 0
  • Reputation: 136
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,895

There are old posts on it here, too. I made a quite extensive set myself, before I abandoned it completely.

One major advantage of Extend is that it carries over to all sorts of OS operations and whatnot. So it's not really about whether you use Emacs heavily or not. (Unless you're one of those people who really use Emacs for everything! Some say that Emacs is a decent OS that only lacks a good editor...)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 10
  • Registered: 06-Jun-2013
  • Posts: 489

haha - my new year 2017 resolution will be to give it (yet) another shot..

the decision for me is even further complicated by the fn key stuff on the filco - which is yet another set of key bindings

i'm not sure how many disparate sets of key bindings my brain can cope with?

Offline
  • 0
  • Reputation: 0
  • Registered: 20-Dec-2016
  • Posts: 11
DreymaR said:

There are old posts on it here, too. I made a quite extensive set myself, before I abandoned it completely.

One major advantage of Extend is that it carries over to all sorts of OS operations and whatnot. So it's not really about whether you use Emacs heavily or not. (Unless you're one of those people who really use Emacs for everything! Some say that Emacs is a decent OS that only lacks a good editor...)

I probably qualify as a heavy Emacs user; I use it for mail, IRC, Slack, and practically all programming I do. And of course org-mode to organize everything I do (GTD-style).

In a few words, how does Extend work? Is it a key you press to switch "layer" on the keyboard?

What keyboards are you guys using? I'm writing this on a Filco Majestouch 2 with brown Cherry MX switches, but I think I like a split layout more.

Offline
  • 0
  • Reputation: 0
  • Registered: 20-Dec-2016
  • Posts: 11
bph said:

I use emacs with colemak, but not with evil/vim

It was a while back now, but I remember it being pretty hard at the start

Now I don't even notice it - its all normalised

How long did it take you to reach the point where it became fluent?

Offline
  • 0
  • Reputation: 10
  • Registered: 06-Jun-2013
  • Posts: 489

years! and its still a work in progress

judging by some of the experiences here though, I am at the very slow end of the learner spectrum

the road to touch-typing/colemak has been a long and winding one for me - none of this 100wpm in 3 weeks jazz

i've got the miniature filco minila which has its own weird and wonderful micro spacebar/fn keys layout

i've used it very little as it was banned from work (cherry blues) and i've only just built a home office

I too do pretty much all dev work in emacs and organise my life with .org

on a tangent - if you've figured out a way to view a gpg encrypted .org file on an android device I would be forever in your debt..

Offline
  • 0
  • Reputation: 136
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,895

To learn about the wonders of Extend, you should really visit my sig topic(s) and the Extend Extra Extreme topic linked to therein. But yes, it's like the Fn key on some modern keyboards. Only, it's so much better thought out I believe in all non-modesty.

Most who have started using it have fallen very much in love with Extend, and I consider it fully as useful and delightful to me as Colemak itself!

True, if you do have a Filco with an Fn layer on it you may not desperately need Extend. But I still think that Extend is considerably better than anything I've seen on hardware implementations. One major reason for that is the home row modifiers that create combos such as Ext+STN (= Shift+Ctrl+Left) to select the previous word, followed by a quick cut-move-paste sequence without letting go of the Ext key (Caps). It's a thing of true beauty.

Last edited by DreymaR (22-Dec-2016 12:43:00)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 20-Dec-2016
  • Posts: 11
bph said:

on a tangent - if you've figured out a way to view a gpg encrypted .org file on an android device I would be forever in your debt..

I've never used encryption for my org files, so I'm afraid I can't help you there.

Did you rebind your Caps-lock to Ctrl, Backspace, or something else? I have it bound to Ctrl, and I think it would be too drastic to change that.

Good to hear about the slow progress. Makes me a bit less stressed about my low performance after 5 days :).

Offline
  • 0
  • Reputation: 10
  • Registered: 06-Jun-2013
  • Posts: 489

yes - i have the classic emacs ctrl/caps switch

i use ubuntu and did it using ubuntu-tweak-tool I think

i.e. I didn't muck about with dreymars xkb stuff

i think technically, colemak has caps as bksp

but like you say - that would be drastic and almost certainly a destroyer of the left little finger

Last edited by bph (22-Dec-2016 16:06:00)
Offline
  • 0
  • Reputation: 74
  • From: UK
  • Registered: 14-Apr-2014
  • Posts: 773
DreymaR said:

But I still think that Extend is considerably better than anything I've seen on hardware implementations.

You'd think hardware manufacturers would cotton on to this. Especially for laptop keyboards that already have a Fn key there. They go to the trouble to create an layer, but then typically provide such an underpowered set of mappings, which worse still, can't even be reprogrammed.

That said, the Mod layer defined on the Ultimate Hacking Keyboard looks quite close to that of DreymaR's Extend. That's probably the best hardware mapping I've seen. And as a bonus, it's activated via a thumb too!

Last edited by stevep99 (22-Dec-2016 16:54:21)

Using Colemak Mod-DH with some additional ergonomic keyboard mods.

Offline
  • 0
  • Reputation: 136
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,895
stevep99 said:

That said, the Mod layer defined on the Ultimate Hacking Keyboard looks quite close to that of DreymaR's Extend.

It most certainly doesn't! It completely misses the mark by putting the fairly useless Insert key where I have the useful Backspace, digs its own grave by ignoring modifiers, and pats the dirt nicely over by ignoring the bottom row and pretty much the left hand (how often do you use play/pause/etc?; those belong on the F# keys where I put them).

Don't be duped by the fact that it has the F# keys and most of the right-hand home position right. It lacks versatilty and the power of combos. It's downright shitty, if you ask me, although it's still the best hardware Fn layout I've seen which says a lot.

The power of Extend isn't that you have F4 on Ext+4. It's that you have Ctrl+F4 on Ext+T+4 and Alt+F4 on Ext+A+4. Etc etc.

Last edited by DreymaR (23-Dec-2016 09:51:24)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 74
  • From: UK
  • Registered: 14-Apr-2014
  • Posts: 773
DreymaR said:
stevep99 said:

That said, the Mod layer defined on the Ultimate Hacking Keyboard looks quite close to that of DreymaR's Extend.

It most certainly doesn't!

Yes, obviously by "quite close" I mean, in comparison to other Fn layers. Even getting that right hand navigation cluster is a big step forward over what most Fn layers provide.

While I agree with you that the extra modifiers on the left hand side in Extend are brilliant, I think the fact that this layer is activated with the left thumb mitigates that somewhat. I reckon using this layout, you could press "Mod" with your thumb in combination with Ctrl or Shift with your left pinky, while still using the right-hand arrow keys. Not as elegant as Extend I grant you, but still workable I'd imagine.

It's a shame about Delete (or do they mean backspace?) and Insert.  But actually I think the best mapping of all for backspace is Colemak 'M' (or Mod-DH 'H') because it puts it on a strong finger and backspace is frequently used. In fact, my love of that key position has only grown since using Mod-DH, such that I increasingly think it is superior key than Colemak 'O'.

Where are pause/play/etc? Are you talking about symbols on W and P?  I assumed they were browser back and forward, which is identical mapping to my version of Extend.

Yeah, why on earth don't they define cut/copy/paste on XCV? it's not like those keys are even doing anything else. That is a clear oversight.

Still, for all its imperfections, if something like this were standard on most laptops Fn layer, it would be a significant advancement.

Last edited by stevep99 (23-Dec-2016 16:04:06)

Using Colemak Mod-DH with some additional ergonomic keyboard mods.

Offline
  • 0
  • Reputation: 0
  • Registered: 20-Dec-2016
  • Posts: 11

Are there any other good keys than Caps-lock to put the extend-activation key on? I just got xcape to understand that I want tapping Caps-lock to mean Backspace, while holding it is Control (I hope this is possible in Windows as well?). I don't think that I can cram a third meaning onto that key...

It's a shame that there doesn't seem to be an obviously really good ergonomical keyboard with mechanical switches. I tried to use my Filco Majestouch for some practice today, but my right hand started hurting after only a few typeracer rounds. Back to the MS Natural Keyboard 4000 with its sloppy membranes. Maybe DreymaR's wide angle mod (or is that its name?) would help.

On another note, progress is being (slowly) made: After around 5 days I'm up to around 30 wpm, although my accuracy is only around 90 %. I should probably slow down and try to be more precise, but it's more fun to try and press on.

I'm in a bit of no-man's-land right now; typing on a qwerty layout feels very bad, while my speed and accuracy on Colemak leaves a lot to be desired.

Offline
  • 0
  • Reputation: 74
  • From: UK
  • Registered: 14-Apr-2014
  • Posts: 773
joncol said:

Are there any other good keys than Caps-lock to put the extend-activation key on?

Yes there are!

Well, obviously you can define it any way you want, but here is what I do:

Extend mode is activated with the Left Alt key. In my view is the perfect key for Extend because you can use your thumb. As a result, it is equally easy to do Extend commands for both left and and right side key-combos. I used to use CapsLock, but found it's not so great for left-hand side operations e.g cut/copy/paste etc. CapsLock is still a good choice but I think is not the best possible. DreymaR might disagree though :P

Obviously this means you have to move the actual Left Alt function elsewhere, but I think that's a fairly small price to pay. Especially if you don't use Left Alt that much. I would suggest moving it to the Windows key or to CapsLock.  There are some suggestions for cool ways to remap modifier keys here.

Last edited by stevep99 (24-Dec-2016 14:30:00)

Using Colemak Mod-DH with some additional ergonomic keyboard mods.

Offline
  • 0
  • Reputation: 0
  • Registered: 11-Oct-2013
  • Posts: 79

I'm going to offer an alternative perspective. I've been using emacs with evil for a couple of years. I definitely don't recommend rebinding everything to mirror qwerty vim, but I do recommend at least restoring and using hjkl positions (or whatever positions you would prefer for directional actions). If you're using emacs for mail and a lot of other things, I'd especially recommend doing this over relying on an extend layer (which is inefficient). There's no reason to use a modifier for common actions like moving to the next email thread/message.

These are the basic swaps a lot of people make:
n -> j
e -> k
i -> l
to replace the last 3
k -> n
j -> e
l -> i

This goes for the capital versions as well.

joncol said:

With regards to the Vim bindings, I miss being able to use "hjkl" for navigation. I don't want to rebind these, as it would invalidate other bindings and mess with compatibility with other packages.

I'm not sure what you mean about messing with compatability. I personally use evil everywhere in emacs (mpd client, mail client, feed reader, etc.), and depending on how you do this, it can already require a lot of key rebindings even with qwerty. One possible approach (that works for qwerty as well) you can take if you don't want to have to find the appropriate directional commands for every mode you want to use the hjkl positions with is to bind them to simulate the <left>, <up>, <down>, and <right> keys.  See here for more information. I also have an example that does this specifically for pdf tools here. Keep in mind that for the basic directions, you can do this globally without needing to make rebindings for every evil or non-evil package.

Offline
  • 0
  • Reputation: 0
  • Registered: 20-Dec-2016
  • Posts: 11

Thanks for the suggestions -- exactly what I was looking for.

angelic_sedition said:

I'm not sure what you mean about messing with compatability.

I think I was mostly going on what I read somewhere on this forum, where someone recommended against changing the bindings since it would cause a ripple of collisions. So pretty vague reasons.

But I'll try out those rebinds that you mentioned, and see how it works out. "hjkl" is pretty ingrained geometrically and it would be nice to have it still work. Do you recommend that "general" package for doing the rebinds, or would anything work? (I'm only familiar with John Wiegley's bind-key and standard define-key.)

Is your Emacs-configuration public?

Have you encountered any downsides to using Colemak with Evil Emacs?

Offline
  • 0
  • Reputation: 0
  • Registered: 11-Oct-2013
  • Posts: 79
joncol said:

I think I was mostly going on what I read somewhere on this forum, where someone recommended against changing the bindings since it would cause a ripple of collisions. So pretty vague reasons.

But I'll try out those rebinds that you mentioned, and see how it works out. "hjkl" is pretty ingrained geometrically and it would be nice to have it still work. Do you recommend that "general" package for doing the rebinds, or would anything work? (I'm only familiar with John Wiegley's bind-key and standard define-key.)

Is your Emacs-configuration public?

Have you encountered any downsides to using Colemak with Evil Emacs?

It's my package, so I'm biased towards it, but general.el definitely has better support for evil and a lot of additional functionality. My configuration isn't currently public because parts of it are pretty messy, but I could try to answer any specific questions you have. The only real downside to using colemak with evil is that most evil packages support the hjkl positions. The extend layer approach can't always be used as workaround since some of these packages only bind hjkl and not the arrow keys. I personally prefer to always rebind a lot of keys, but there are more lazy approaches depending on package. I've found it doesn't take me any significant amount of time to throw another evil-define-key (or general-define-key) statement into my config to correct hjkl functionality, so it doesn't bother me too much.

Offline
  • 0
  • Reputation: 136
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,895
joncol said:

Are there any other good keys than Caps-lock to put the extend-activation key on?

With Extend, you don't really need a Backspace or anything else on the CapsLock key. Unless you want to hit it with one hand a lot, that is. But for that, there's the old Backspace key.

I use Ext+T+O (Ctrl+Back) to delete the last word. That's really handy since I usually type a few more characters after an error and retyping the whole word is probably better for my typing training anyway. When you get used to it, you certainly won't miss having a non-Extend Backspace on Caps.

Last edited by DreymaR (29-Dec-2016 20:59:53)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 10
  • Registered: 06-Jun-2013
  • Posts: 489

I wonder if I could get extend to work from the additional Fn key that my minila has in between the left alt and space?

left alt is too painful to mess with due to its emacs usage

Offline
  • 0
  • Reputation: 74
  • From: UK
  • Registered: 14-Apr-2014
  • Posts: 773
bph said:

I wonder if I could get extend to work from the additional Fn key that my minila has in between the left alt and space?

left alt is too painful to mess with due to its emacs usage

I think that would be an excellent choice for Extend. However I'm guessing that Fn key doesn't send a keycode in it's own right, and instead is interpreted by the keyboard hardware itself, in combination with other keys. Which probably means the only way to do it would be if the Fn key is capable of being remapped. I don't know for certain but I would suspect not.

The Minila looks like a really nice keyboard - I was half-tempted to get one myself at one point. The only issues with it are (1) if those Fn really are really not remappable, that would be a major fail and (2) the non-standard stagger on the the bottom row make it unsuitable for the angle-mod. It's a shame when a keyboard gets a lot of things right but then fails at the last hurdle.

Using Colemak Mod-DH with some additional ergonomic keyboard mods.

Offline
  • 0
  • Reputation: 10
  • Registered: 06-Jun-2013
  • Posts: 489

i use the angle mod on it and it seems ok to me

i think i was a bit rash getting it - prob should have got something like a tenkeyless instead

there is  a wireless minila now, and i think maybe a wireless tenkeyless is about to come out

i'll have to delve into what i can achieve re: the fn key at some point..

Offline
  • 0