• You are not logged in.

    My XKB extend layer

    • Started by akheron
    • 7 Replies:
    • Reputation: 0
    • Registered: 16-Oct-2019
    • Posts: 3

    Hi all!

    I'm a programmer and Emacs user, and I've been using Colemak for about half a year now after almost 20 years on qwerty, and I'm quite happy with it! The only problems I've had are the loss of ability to touch type on qwerty (makes using other people's computers hard) and creating an ideal keymap configuration on Linux/X11.

    Building the keymap configuration took months and there was lots of trial and error involved. I recently pushed it to GitHub: https://github.com/akheron/xkb. It consists of a single symbols file, which can be dropped to /usr/share/X11/xkb/symbols, and no other adjustments are needed. Huge thanks to DreymaR's for his Big Bag of Keyboard Trix, it made me think about how I would like to use my keyboard and gave many great ideas :)

    Have look at the GitHub repo, it even has ascii art illustrations of the keymap. Feel free to ask me anything if you got interested!

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

    Nice! What you have there is basically also available in the BigBag, as the cmk_fi_ks variant (Colemak Swedish/Finnish, keep local symbols). But it's your own twist, so I see why you chose to tweak your own.

    Your Extend layer is really only a proto-Extend. Why? Because it lacks the important home row modifiers. Without them it's just another Happy Hacking Fn layer. With them, power ensues. Have you read my Extend topic to understand the power of it?

    Yeah, key repeat with the 8-level keys is a bitch. Not sure how to fix it...

    Last edited by DreymaR (16-Oct-2019 08:49:38)

    *** 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: 16-Oct-2019
    • Posts: 3

    Yeah, I actually used cmk_fi_ks as a starting point (not in the beginning, but at one point when restarting my xkb config project). My goal was to get all this to a single file which would not require me to change any files provided by the xkeyboard-config package. I'd like the files managed by the distro's package manager to be left untouched, unless they are config files under /etc. Now I have a single file that I can drop or link to /usr/share/X11/xkb and everything just works.

    I actually hadn't read your Extend topic, just peeked at the keyboard layout pictures. I read it now, and I still don't think modifier keys, like your Extend layer does it, would be super useful for me on the home row. I use the i3 window manager for which e.g. Alt-F4 means nothing. Text selection in Emacs is quite different from today's desktop text editors, and Shift is not used for that.

    For me, the most important feature is to get easy access to Control and Alt (Mod1) keys in combination with letter keys, because those constitute almost every key binding Emacs has.

    With Control on the Caps Lock Key, I have Control-X/C/V in comfortable positions, and having arrows with the Caps Lock key pressed is enough on the occasion I use something else than Emacs for editing documents (e.g. I'm writing this post in Chromium). Now that you made me thing about it, having Shift on the home row could make that experience better, but I'm not sure where to put it to not sacrifice an important Control + letter key combination.

    With i3, I've mapped many window managing keys behind Super (Mod4), and that's why I have Super in the QWERTY B position. It could be changed to somewhere more comfortable, but on the other hand, I can always reconfigure i3 to adjust the Super bindings.

    About the key repeat bug, have you reported it somewhere? I thought about writing to the xorg mailing list about it, I guess someone there could have some insight into what breaks it.

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

    Many beginners don't see the power of the home row mods at first. Much of the point is to have it omnimode so it's nearly as simple and powerful to edit a text within your browser as in your editor. I use Extend a lot while browsing, to scroll, to switch (or move) tabs, to go to the command line then open a new tab etc etc. While editing this reply I'm not in a good editor but Extend is with me so it's simple to edit and navigate. Jump up a line and back three words to change something, then straight back to the end to continue writing, etc.

    I haven't reported the key repeat problem, and I've seen many people wonder about it. I haven't been so active in the Linux community, sadly.

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

    Offline
    • 0
    • Reputation: 60
    • From: UK
    • Registered: 14-Apr-2014
    • Posts: 696

    Hmm, Interesting. I usually chime in at this point in these discussions to also say how great Extend is and how everyone should be using it. 

    I can see in a case where the user mostly uses Emacs and has Control mapped to CapsLock, the arguments might be slightly less persuasive though. I never really got into Emacs, so I can't judge.

    But in general, it does seem to be that newcomers often don't realize the true power of the home row modifiers!  I know I didn't at first - when I first adopted Extend, it was mainly to get home key arrows and backspace etc, an appreciation of the home row modifiers only came afterwards.  I think it requires too much of a mindset shift - people can only come to full enlightenment gradually :P

    Last edited by stevep99 (17-Oct-2019 14:10:14)

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

    Offline
    • 0
    • Reputation: 0
    • Registered: 16-Oct-2019
    • Posts: 3

    Yeah, I really hope I can come to full enlightement at some point! I've only fiddled with my keyboard layout for a few months, and it seems you guys have been tweaking it to perfection for years!

    Modifier keys are always used together with another key. When the modifier keys are on the extend layer home row, which keys do you modify with them? The extend layer remaps every key to something else, so you cannot use a modifier with a letter key, right? So you're basically left with arrows, pgup, pgdown, backspace, delete and the function keys to modify. Which of these you think are the most useful, or are there other useful combinations I don't see?

    Offline
    • 0
    • Reputation: 60
    • From: UK
    • Registered: 14-Apr-2014
    • Posts: 696

    I use them mainly in conjunction with arrow keys. So, for example, Extend+S is shift, and Extend+N is left, so combining these means Extend+S+N is the equivalent of pressing left arrow with shift, which in most UIs selects the character to the left. Similarly, Extend+S+T+N is equivalent to left arrow with shift and control, which selects the *word* to the left. With similiar combinations you can instantly select rows of text, copy and paste them etc, all while keeping your fingers pretty much on the home keys.
    You can also do combinations involving backspace to quickly delete a word etc. There are lots of possibilities. But I recognise these might be less intuitive for people who are used to the Emacs Way.

    Last edited by stevep99 (20-Oct-2019 17:48:27)

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

    Offline
    • 1
    • Reputation: 111
    • From: Oslo, Norway
    • Registered: 13-Dec-2006
    • Posts: 4,707

    To see what you can do with the modifiers, I urge you to really read my Big Bag Extend topic! I've gone in detail there and you'll see lots of applications. A little of it is Windows specific, but a lot isn't.

    Among the ones I use the most are:
    Ext+S+T+N (Shift+Ctrl+Back): Select previous word – then Ext+X, some movement and Ext+V and the word has been moved elsewhere
    Ext+(S+)(T+)L/Y (Home/End): Select or move to start/end of line or document
    Ext+T+Spc (Ctrl+Enter): Send email
    Ext+T+J/K (Ctrl+PgUp/PgDn): Change browser tab
    Ext+W/R (Scroll Up/Dn): Scroll in documents/pages
    etc etc. Again, all this is in my topic

    Last edited by DreymaR (21-Oct-2019 08:23:39)

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

    Offline
    • 0