• You are not logged in.
  • Index
  • General
  • right (dominant) hand is incapacitated

    right (dominant) hand is incapacitated

    • Started by losty
    • 13 Replies:
    • Reputation: 0
    • Registered: 03-Mar-2007
    • Posts: 23

    Any ideas? I'm a colemak user ... all the one hand typing systems are QWERTY

    its really frustrating and physically tiring typing with 1 hand

    cheers

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

    Half-colemak is the most likely bet. It should probably have been named "mirror-Colemak" instead: What it does is that when you hold down a special key (the old script uses the Space bar) all the other keys turn into their mirrored counterparts from the other side of the board! This is actually quite easy to get used to since our brain has some automatic mirroring functions. That wonderful, wonderful brain...

    Here's the old AutoHotKey script (download and install AHK and this can be run by double-clicking or compiled to .exe):

    #SingleInstance force
    ; Adapted from https://www.autohotkey.com/forum/viewtopic.php?t=1326
    ; Adaption to the Colemak layout: Shai Coleman, 2006-07-25
    
    ; Many thanks to Chris for helping me out with this script.
    ; Capslock hacks and `~ remap to '" by Watcher
    
    mirror_1 = 0
    mirror_2 = 9
    mirror_3 = 8
    mirror_4 = 7
    mirror_5 = 6
    mirror_6 = 5
    mirror_7 = 4
    mirror_8 = 3
    mirror_9 = 2
    mirror_0 = 1
    
    mirror_q = `;
    mirror_w = y
    mirror_f = u
    mirror_p = l
    mirror_g = j
    mirror_j = g
    mirror_l = p
    mirror_u = f
    mirror_y = w
    
    mirror_a = o
    mirror_r = i
    mirror_s = e
    mirror_t = n
    mirror_d = h
    mirror_h = d
    mirror_n = t
    mirror_e = s
    mirror_i = r
    mirror_o = a
    
    mirror_z = /
    mirror_x = .
    mirror_c = ,
    mirror_v = m
    mirror_b = k
    mirror_k = b
    mirror_m = v
    return
    
    ; This key may help, as the space-on-up may get annoying, especially if you type fast.
    Control & Space::Suspend
    
    ; Not exactly mirror but as close as we can get, Capslock enter, Tab backspace.
    Space & CapsLock::Send {Enter}
    Space & Tab::Send {Backspace}
    Space & '::Send {Backspace}
    
    ; Without this capslock would shift only letters, this resolves that issue.
    +CapsLock::   ; Must catch capslock and Shift capslock to make this work.
    CapsLock::
      if CapsState = D
      {
        CapsState = U
        Send {LShift Up}
      }
      else
      {
        CapsState = D
        Send {LShift Down}
      }
      return
    
    Shift::CapsState = U  ; User pressed shift which toggles shift back up.
    ; The only strange part of this setup is that although capslock will toggle
    ; shift state, hitting the shift key will not toggle, it will act as a shift
    ; key reguardless of the capslock state and release afterward.
    
    
    ; If spacebar didn't modify anything, send a real space keystroke upon release.
    space::
    Send {space}
    return
    
    space & `::
    space & 1::
    space & 2::
    space & 3::
    space & 4::
    space & 5::
    space & 6::
    space & 7::
    space & 8::
    space & 9::
    space & 0::
    
    space & q::
    space & w::
    space & f::
    space & p::
    space & g::
    space & j::
    space & l::
    space & u::
    space & y::
    space & `;::
    
    space & a::
    space & r::
    space & s::
    space & t::
    space & d::
    space & h::
    space & n::
    space & e::
    space & i::
    space & o::
    
    space & z::
    space & x::
    space & c::
    space & v::
    space & b::
    space & k::
    space & m::
    space & ,::
    space & .::
    space & /::
    
    ; Determine the mirror key, if there is one:
    if A_ThisHotkey = space & ``
       MirrorKey = '
    else if A_ThisHotkey = space & `;
       MirrorKey = q
    else if A_ThisHotkey = space & ,
       MirrorKey = c
    else if A_ThisHotkey = space & .
       MirrorKey = x
    else if A_ThisHotkey = space & /
       MirrorKey = z
    else  ; To avoid runtime errors due to invalid var names, do this part last.
    {
       StringRight, ThisKey, A_ThisHotkey, 1
       StringTrimRight, MirrorKey, mirror_%ThisKey%, 0  ; Retrieve "array" element.
       if MirrorKey =  ; No mirror, script probably needs adjustment.
          return
    }
    
    Modifiers =
    GetKeyState, state1, LWin
    GetKeyState, state2, RWin
    state = %state1%%state2%
    if state <> UU  ; At least one Windows key is down.
       Modifiers = %Modifiers%#
    GetKeyState, state1, Control
    if state1 = D
       Modifiers = %Modifiers%^
    GetKeyState, state1, Alt
    if state1 = D
       Modifiers = %Modifiers%!
    GetKeyState, state1, Shift
    if state1 = D
       Modifiers = %Modifiers%+
    Send %Modifiers%{%MirrorKey%}
    return

    I'm working on a script that I think will work much smoother though - and we may end up with this inside Portable Keyboard Layout too.

    Even today it could've been implemented on PKL via the "extend key"; I don't think anyone has done that yet though. Let us know if you need it, because with PKL you could take the one-handed layout with you if you go to different computers during your work day for instance.

    One thing I'd intuitively recommend would be a foot switch instead of pressing the "extend" (or "transpose" as I like to call it) key with your hand. I also think the space bar should ideally be let out of this since it's so commonly needed to do its normal function; that creates a potential for mix-ups and errors, leading to annoyance. A foot switch could be engineered properly of course, but I'd probably make one out of an old keyboard! In these days of USB keyboards you can hook up several boards to your computer, and you could make a foot pedal that simulated a keypress on the extra board and then use that as your "transpose" key. I'd choose a rarely used key such as scroll lock (if the lights get annoying, that can be fixed). Or, if you have a proper 102-key board the VK_102 key could be ideal.

    Last edited by DreymaR (02-Oct-2008 10:06:10)

    *** 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: 03-Mar-2007
    • Posts: 23

    Great, thanks very much for your help!

    Offline
    • 0
    • Reputation: 0
    • Registered: 03-Mar-2007
    • Posts: 23

    This is my first message with half colemak and its actually not that bad. Though its still going to take some serious practice to get fluent I think. Back to the old practice software. Going to be handy skill to have.   Big, big thanks to all those involved in making half / colemak !

    Offline
    • 0
    • Reputation: 0
    • Registered: 03-Mar-2007
    • Posts: 23

    Hey guys, if any of you know of left hand enter key hack? so dont have to move hand from row all the time?

    Offline
    • 0
    • Reputation: 0
    • Registered: 03-Mar-2007
    • Posts: 23

    Sorted it.... though how do i do " [ { etc from left hand home row ?

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

    The problem is that in order to benefit from the mirroring functions in your brain you want to have the same finger/position hitting a key on both sides upon mirroring. That way there's not enough keys on the left-hand side! This is unfortunate.

    If you have any suggestions, I'd like to hear them. Here's an idea that just struck me: A second transpose key for the leftover keys! Using, say, the letter Z to transpose you could get the []{}\| in place. How does that sound?

    I'll try to find some time to work on my improved script.

    *** 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: 03-Mar-2007
    • Posts: 23

    Not sure I follow what u are saying re: z but its greatly appreciated.

    Offline
    • 0
    • Reputation: 0
    • Registered: 03-Mar-2007
    • Posts: 23

    I really like the idea of a foot board with a few pedals

    different modes ... cause still need to sort out cursor keys

    as you say space bar is annoying ...

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

    Hey losty: Are you using a US 101/104-key or a "Euro" 102/105-key keyboard? The scan codes are different for the two, and the 102nd key is handy too. I really like working with scan codes for this.

    Also: How's it going?

    Last edited by DreymaR (06-Oct-2008 16:51:09)

    *** 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: 03-Mar-2007
    • Posts: 23

    Dreymar, I really appreciate your work on this.

    I use a laptop keyboard at the moment.

    Hand is healing faster than anticipated, out of the plaster and into a splint. Should be back using two hands in a few weeks.

    Was initially expecting about 6 weeks going by first consultation.

    Long time for a colemak user.... I mean anyone who uses colemak tends to be on a computer a lot generally for work.

    But .... US laptop to answer your question ... not sure  how many keys exactl....

    Offline
    • 0
    • Reputation: 0
    • Registered: 03-Mar-2007
    • Posts: 23

    i probably wont need the script all that much but i can help test it for other people

    Offline
    • 0
    • Reputation: 0
    • Registered: 21-Dec-2006
    • Posts: 17

    Is there Half Colemak for Lınux?? I'd lıke to type whıle doıng other thıngs...

    —R2D2! // Ilhuıtemoc δ

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

    Not that I know of, and I'm still too much a Linux n00b to be of any use there. Yeah, the geek factor is through the roof.  ;)

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

    Offline
    • 0
      • Index
      • General
      • right (dominant) hand is incapacitated