• You are not logged in.
  • Index
  • Technical
  • Learning and using UK Colemak on Windows and Linux

    Learning and using UK Colemak on Windows and Linux

    • Started by ukd
    • 10 Replies:
    • Reputation: 0
    • Registered: 12-Jan-2016
    • Posts: 6

    Hi,

    I'm interested in learning Colemak but have some slightly unusual requirements and despite a few hours nosing around these forums and Google it is not clear to me (a) whether what I need will be at all straightforward and (b) what tools would be the best to look into to achieve what I want.

    I don't mind putting some work in to get what I want but I'm sure folks around here can give me some early pointers that will avoid a lot of hours' wasted effort!

    Here are my requirements:
    1. I would ultimately aim to use a UK (ISO) variant Colemak on Windows (7 and someday 10) and Linux.
    2. I want to continue using caps lock as a control key as control in its vanilla location has given me RSI in the past.  I'm happy to do this with registry hacks/existing Linux tools however, so I'd be good with Colemak solutions that leave caps lock untouched.
    3. I need " to be in its US-ANSI location, as the British location is insane (I've used MKML in the past to achieve this).
    4. I would like to use Tarmak layouts on Windows in order to transition (when I was stuck on a Pacific island for two years I tried to learn Dvorak cold turkey and failed, so I'm pretty sure this is a dealbreaker), but they have to be for a UK layout, and keep zxcv in their QWERTY locations.

    I'm a bit surprised that, apart from the Linux side, so much of this has been so difficult to achieve quickly.  For instance, I'm shocked that I haven't been able to find a UK-ISO Colemak layout for Windows for download via Google.

    I have tried out PKL and have played with different .ini files but it completely mashes half of my keyboard.  zxcv and every symbol all move, and that isn't just inconvenient, it destroys the purpose of trying to learn Colemak in the first place.

    Windows is my more urgent requirement as most of my work on Linux is done through a Windows terminal anyway.  I also have trust that if I can fix this on Windows, Linux will be (relatively) easy, as that's been my experience with keyboard hacks in the past.

    So, can anybody point me to downloadable resources or suggest the best tools for me to investigate to get what I want?  I don't mind building my own layouts, but I would prefer to start from the closest available alternatives, and I'm not convinced I've found them.

    Thanks everyone for any help!

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,362

    Hi and welcome!

    Indeed, variants aren't completely supported. I've done quite a bit on the Linux side, but I did it my way. ;-) You will of course understand that neither Shai nor I can work full time to support locales, so I guess the real problem is the lack of a supporting community with clear goals; we haven't been able to agree on any standards for locales or anything like that... yet.

    I'd say that PKL is your friend. With it you can not only get the remappings you want and bring them with you on a USB drive that you can use without install privileges, but you can get awesome tools like Extend in the bargain.

    One slight hassle is that some security-related dialogues on Win7+ won't allow remapping so you'll have to type Ye Olde QWERTIE there. I've chosen not to physically remap my keys.

    You describe the layout you chose as "completely mashing your keyboard"; that's not entirely specific but I'll assume you've gotten an Angle mod (for ZXVCB) and the "US/Universal" symbols? Did you get Wide with that, too (right-hand keys shifted one key to the right)?

    If you're happy enough with the symbol mappings you used to have, you'll want what in the Linux files call a "Keep Local Symbols" variant. For PKL, that's really as simple as editing the layout.ini file you've chosen (its path is seen in pkl.ini) and commenting out or deleting the symbol key lines. If on the other hand you want to change anything from your system mappings you'll have to learn to edit key mappings.

    The Angle mod, similarly, can be fixed by looking at the ZXCVB_ key lines in layout.ini. The only hassle is if you do want to use Extend, because then you'll have to make sure you're using a non-AngleWide pkl.ini; there are two in the PKL root directory to choose from and rename to pkl.ini.

    A simpler PKL approach would be to use a VirtualKey layout, with which you won't get any of the Colemak[editionDreymaR] AltGr mappings but only what your system layout specifies. There's a plethora of these to choose from; you'll likely want VK_colemak_ISO. Using that, you should be nearly all set apart from your special requirements.

    The Tarmak layouts are all VK_ layouts so they shouldn't mess with your symbols. Unless you use TarmakCurl you won't have any trouble with the Angle mod I think.

    Caps-as-Control is doable with PKL (although I haven't made the lines for it; hope you figure it out from the examples in the layout.ini file), as is the " position. If using a VK_ layout, you'll want to change the lines for the apostrophe (and maybe the 2) key to a standard remapping line as seen in the fully-mapped layouts. Poke around and let me know if you can figure it out.

    In my sig topic for Linux/XKB you should find what you need (provided you want to use my UK 'KS' Colemak); you'll have to choose the Caps as a separate option (hooray for modularity) and edit in the " bit in the symbols/uk file; you could just add a remapping line in the 'cmk_ed_ks' section after the rest of the mappings.

    Last edited by DreymaR (13-Jan-2016 10:55:27)

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

    Offline
    • 0
    • Reputation: 11
    • Registered: 06-Jun-2013
    • Posts: 560

    on the linux side you should actually get all that straight out of the box with dreymars big bag

    thats what I have used and it gives me all the things you ask for, i.e. tarmak, colemak, sensible " position

    just swap the caps and ctrl using gnome-tweak-tool if you are using a debian style linux

    i think i have managed to get the same setup for windows using dreymars windows big bag, can't quite remember how i swapped ctrl and caps - will check and report back

    I'd go wide mod FTW as well if I were you, perhaps DH mod too?

    UPDATE

    having looked into the windows bit, I remembered that because I am running windows 7 as a VM, some of the host keyboard settings percolate through, as such I automagically get the wide mod and the swapped ctrl and caps in windows (because I have that setup in the host linux), all I had to do was use the following pkl.ini setting to get a UK type ISO layout:

    layout = colemak-eD_ISO:Colemak[eD]-ISO,vk_qwerty_ISO:QWERTY(VK)-ISO

    Last edited by bph (14-Jan-2016 14:39:12)
    Offline
    • 0
    • Reputation: 117
    • From: UK
    • Registered: 14-Apr-2014
    • Posts: 978
    ukd said:

    1. I would ultimately aim to use a UK (ISO) variant Colemak on Windows (7 and someday 10) and Linux.
    2. I want to continue using caps lock as a control key as control in its vanilla location has given me RSI in the past.  I'm happy to do this with registry hacks/existing Linux tools however, so I'd be good with Colemak solutions that leave caps lock untouched.
    3. I need " to be in its US-ANSI location, as the British location is insane (I've used MKML in the past to achieve this).
    4. I would like to use Tarmak layouts on Windows in order to transition (when I was stuck on a Pacific island for two years I tried to learn Dvorak cold turkey and failed, so I'm pretty sure this is a dealbreaker), but they have to be for a UK layout, and keep zxcv in their QWERTY locations.

    What you have there is quite a unique setup. By UK (ISO) variant, I assume that means you want backslash to be left of Z, but you still want to swap quote with @.  Probably the easiest would be to take an existing UK configuration and make your custom adjustments.

    PKL is a good for this as already mentioned, as is AutoHotKey.  When I learned, I went the tarmak route too, and as I was mainly using Windows at the time, I used AutoHotKey.  It's easy to set up and very flexible so I simply made my own mappings for each of the Tarmak steps.

    At the risk of giving you too many things to think about all at once, since you have as ISO keyboard, you might want to instead consider the Angle Mod (moving ZXCVB leftward by one key), and even Mod DH (but then, I would say that!).  You would then be able to use standard US style mappings for quote etc, but still get maximum benefit from the ISO key.

    Using Colemak-DH with Seniply.

    Offline
    • 0
    • Reputation: 0
    • Registered: 12-Jan-2016
    • Posts: 6

    Thanks everyone for taking so much time to respond.  There really is a lot of information here, it just feels a bit impenetrable at times!

    As a quick suggestion in terms of accessibility for n00bs, could somebody add a question about each of the common mods to the FAQ?  Even if they were links to forum articles or similar (stevep99's page on mod-DH is particularly useful but I didn't find it for a long time) it would help us to make it through the jargon.

    I should have said at the start that I have already fixed up caps lock/control and swapping @" on the systems that I use, so solutions that modify my keyboard (rather than starting from scratch) ought to be able to ignore these requirements.

    I'm not interested (right now) in mods that change qwazxc or v as control keystrokes were one of the things that drove me crazy with Dvorak.  I'd prefer to try a regular Colemak for now and see if I'm capable of switching first.

    DreymaR, I've tried following your recommendations to use vk_colemak_iso and corresponding tarmaks.  I started from one of the iso pkl.inis (forgot what it was called before I renamed it), commented out all of the extend stuff and have uncommented the line

    layout = vk_Tarmak1E_ISO:Tarmak1,vk_Tarmak2ET_ISO:Tarmak2,vk_Tarmak3ETR_ISO:Tarmak3,vk_Tarmak4ETRO_ISO:Tarmak4,vk_Tarmak5Colemak_ISO:Colemak(VK-ISO)

    Is that what you were recommending?

    Now if I switch to Colemak(VK-ISO), then I get
    1. zxcvb shifted one place to the left and qwerty-b does nothing
    2. p[];'# (qwerty) now come out as '];o#/ (I think o is correct but all the others are in the wrong place)
    3. `-= are all shifted as well.

    So I figure I've missed out some part of the config or misunderstood something badly.  Can you tell me what I'm doing wrong?

    stevep00, thanks for your suggestion -- AutoHotKey may well be the easiest way to do what I want as PKL seems to do a lot more than I'm interested in right now and it's probably clear that I'm really struggling to understand how the config works.  Moving D and H makes sense to me but I think re-learning all those control combinations would drive me crazy.

    Thanks again for everyone's help.

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,362

    Yeah, I think you used the wrong pkl.ini, the WideAngle one. Read in my sig topic about the Wide and Angle mods, and you'll see what I mean.

    You want the other pkl.ini, nonWide.

    PKL is really very brilliant once you get used to it! If you only need the bare-bones remappings though, sure, use AHK. (You realize that PKL uses AHK though – hehe?)

    Last edited by DreymaR (14-Jan-2016 22:47:17)

    *** 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: 12-Jan-2016
    • Posts: 6

    Okay, so I'm trying pkl_ISO-noWide.ini, I've just re-downloaded a fresh copy.  I've commented out everything from [extend] onwards.

    Using Tarmak1:
    * zxcv are still shifted, b is still dead
    * ];'#/\-= all throw up different characters

    I think maybe I didn't understand what I was meant to do to disable whatever is messing with the non-letter keys?

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,362

    Okay, sorry about the delay in getting back to you!

    Yes, with Tarmak 0 and Tarmak 1 it seems I've chosen to implement the ZXCVB "Angle" mod (and it doesn't show up on the help images!) as defaults. It's really brilliant, as it lets you keep your left-hand wrist straight while typing. Shai himself recommends it. ;-) You can easily undo it, looking at the pertinent layout.ini file (for instance, vk_Tarmak0QWERTY_ISO is the directory of the Tarmak 0 step for ISO keyboards). Find the Angle part as seen below, and reverse the comments so the 'no wrist comfort' section is active, like this:

    ; ***** Traditional 'no wrist comfort' layout - if you have no VK_102 key (or WANT pain?!). *****
    SC056 = OEM_102    VirtualKey    ; QWERTY <> (ISO only)
    SC02c = Z    VirtualKey    ; QWERTY Z
    SC02d = X    VirtualKey    ; QWERTY X
    SC02e = C    VirtualKey    ; QWERTY C
    SC02f = V    VirtualKey    ; QWERTY V
    SC030 = B    VirtualKey    ; QWERTY B
    ; ***** 'Angle-ISO wrist comfort' mod, for a better wrist angle. *****
    ;SC056 = Z    VirtualKey    ; QWERTY <> (ISO only)
    ;SC02c = X    VirtualKey    ; QWERTY Z
    ;SC02d = C    VirtualKey    ; QWERTY X
    ;SC02e = V    VirtualKey    ; QWERTY C
    ;SC02f = B    VirtualKey    ; QWERTY V
    ;SC030 = OEM_102    VirtualKey    ; QWERTY B
    ; ***** End of key set affected by the 'angle wrist comfort' mod. *****

    I'm thinking you've got an ANSI keyboard though? Have you got that key between Z and LShift, mark of the glorious ISO board? If not, then you need to use an ANSI layout to get the right symbol key mappings. Also, the Angle mod would have to be AngleZ or A-Frame if you want it (which I'm guessing you don't, since you think the ZXCV keys are in the "wrong" position with the Angle mod?).

    ANSI and ISO keyboards have different scan codes for the OEM_ keys which include the ones you listed. A further possibility is that even though your keyboard may be ISO your underlying system layout may be ANSI (if, say, you use a US-based layout in Windows). If so, treat your keyboard as an ANSI one. The VK_102 key can still be mapped.

    You don't really need to lose all the Extend mappings in the file. Just find the line with "extend_key = CapsLock" in each layout.ini you use and change it to "extend_key = none". My strong recommendation would of course be to learn Extend instead!

    Last edited by DreymaR (18-Jan-2016 23:02:04)

    *** 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: 12-Jan-2016
    • Posts: 6

    Thanks for figuring that out, it's helpful.  I do have a UK ISO keyboard, with \ between the shift and z, so I don't know what's happening to the symbols.  It is based on a UK layout, just with the @ and " swapped to where they are on US keyboards and UK Macs.  Created through MKLC.

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,362

    My first attempt would be to change the underlying system layout, as I think that may affect the key codes PKL gets. If there's a difference between using the standard US and the standard UK system layouts while activating PKL, you'll know more about what happened.

    If not, maybe trying an ANSI PKL layout might help? The '\' or VK_102/OEM_102 extra key may still be mapped normally (SC056).

    *** 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: 12-Jan-2016
    • Posts: 6

    Thanks, I'll look into it!

    Offline
    • 0
      • Index
      • Technical
      • Learning and using UK Colemak on Windows and Linux