Page 1 of 1

Reach no more: TapArea customization

Posted: 05 Aug 2005, 14:19
by ivanw
Based on an original idea from The Juggler I started the evaluation of a true layout customization. It is interesting to note that Fingerworks could not go too far from well known layouts and that, when you play with MygestureEditor, you are not limited to do anything of the kind. You can do just what you want to. You wont have to face other critics but your own :?

:idea: If you have any far out idea in this area, please tell us about it.

The image bellow shows the layout I use, the corresponding XML customization files are in this ZIP archive.

The different layouts are selected with a gesture from the left hand:
  • Left 2 Fingers for Numberpad
  • Left Thumb + 3 Fingers for Punctpad
  • Thumb + pinky for Symbolpad

:arrow: This is exactly what Wayne Westerman suggested at the end of one of his posts: [edit] BTW: Left Thumb + 3 Fingers == AltGr [/edit]

Posted: 14 Aug 2005, 23:51
by Rqyteqto
ivanw -

What you are saying here is its possible to have multiple key layouts selectable via various gestures. Is that correct?
I relate this to my previous years working with a puck and graphics tablet, the puck had 16 buttons, '0' was fixed as 'Select' or 'OK' but the other 15 were fully programmable. I set mine up with the remaining three buttons in the first row as selectors to reprogram the other 12. I was using this in a CADD environment and so the first program set was for creation: drawing, etc, the next was for editing and the last was for text and annotation. That was a huge advance for my work, expanding the access to ready keys by a factor of 240% (36 commands vs 15).

If you have other ideas on this, I'd love to discuss them with you. I am still involved with AutoCAD, but my focus now is in large scale 3D models as the basis of design and construction documents.

Posted: 15 Aug 2005, 02:36
by ivanw
It appears that this *keyboard* is able to give you way more than what you got from your tablet...

Aside from a mean to relocate every symbol near the home row like I did, mode activation chords allow you to get different output from each and every key. This makes A LOT of combinations :roll:

As an example, when you hold the AltGr chord with either hand (T+3F) you get an alternate result from any key you activate on the other pad.

To customize, you have to associate a value to these keys while the PunctPad check-box is selected in Mygesture Editor...
The idea is exactly the same for NumberPad and SymbolPad, you get the :idea: :?: :!:

I just did very little exploration in this domain and this is what I currently get from my PunctPad:
  • My customized left keys are: Id, Email, Address, Signature, HomePage.
    They send the output of some Text Macro Ref I've defined in one of the Zipped file attached above.

Posted: 15 Aug 2005, 16:40
by Rqyteqto
"It appears that this *keyboard* is able to give you way more than what you got from your tablet..." by ivanw

Well, I wouldn't go quite that far, the tablet itself could also be mapped for commands other than the small cursor area (4" x 6") and with a net area of about 12" square and a resolution around .01" you could map a lot of commands. Each mapping could also be subject to the menu select keys on the puck. I think I once figured it out there could be over 4000 commands available if you were maniac enough to map them all. The typical AutoCAD layout had about 200 or so with just one mapping.

But your post is most enlightening. I am going to have to study this in more detail. One thing it highlights right off is just how much of a technical coup has been lost with the closing of Fingerworks. Its like the Dark Ages descending on Europe. Hopefully MultiTouch will have its Renaisance as well.

Posted: 15 Aug 2005, 18:28
by ivanw
Rqyteqto wrote:"It appears that this *keyboard* is able to give you way more than what you got from your tablet..." by ivanw
...there could be over 4000 commands available.
Well Rqyteqto, I agree. I once was in charge of training customers at Tektronix on their TekniCAD software, so I know about making good use of a tablet. It is definitely a mandatory resource for professionals.

My praise for the Touchstream was tainted with the idea that you have all these commands at you fingertips. I bet you will never learn to touch-type on some tablet menu layout, would you? With this in mind, you can say that a tablet is no more than some kind of materialized GUI.

A keyboard can be considered to be somehow similar, but it proves to become much more as a result of the training effort we dedicate to become proficient at using it.

Now, with *this keyboard*, at the cost of the extra complexity of mode switching, we can make good use of the knowledge at hand.
See: You are able to hit the "a" key in a fraction of a second without even looking where you hit with your pinkie. So, why not decide to get your whole address be sent to the computer -- only when some fingers of your right hand do some kind of gesture :?: ...just try to ask a tablet for something like this... be lucky, you won't get insulted, they have no sense of humor either.

Most people have already the required knowledge. The extra modes are just an extension of the SHIFT-CONTROL-ALT modifiers. (...see space-cadet keyboard)

Posted: 15 Aug 2005, 20:54
by Rqyteqto
There's no question these buggers (any MultiTouch product) are among the most sophisticated input devices yet created. There's much made of them in regards to RSI relief, but they are so much more than just a good ergonomic solution. I am beginning to believe they are like AutoCAD, nobody really knows all you can make it do, if you just know how. These are a tad easier to tease stuff out of, at least there's a template for how to do it. With AutoCAD, its whatever you can dream up in LISP and now other programming languages.

I'm certain there are potential features in MultiTouch even the inventors haven't imagined. I hope someday, somehow, someone with the wherewithall to make it happen will realize what MultiTouch is and can do and will bring it back, better than ever. Unfortunately its more likely the future will be a slowly dwindling group of diehard MultiTouch enthusiasts cannibalizing whatever bits and pieces they can find to keep their 'Precious' working. I hope not but I am also realistic.

Posted: 21 Sep 2005, 12:49
by TorbenGB
A recent post made me revisit this topic. I am impressed by Ivan's mapping (as well as the clear representation!) and thought I'd add a note about the mappings of open- and close-brackets and -parentheses. This might give you additional inspiration for your customizations.

98% of the times I type an opening bracket (or parenthesis), I will also type the closing. So instead of doing that, I mapped a text-macro to the ( key that does "("+")"+"left-arrow" -- thus making the set and placing the text cursor where I need it. This is done using the AltGr modifier with each of the four {[]} keys to map each of the four kinds of bracket shape sets plus left-arrow.

Similarly, I often use markup that is in the form of [[]] and [[][]] so I also added these as text macros with a handful of left-arrows so that the cursor is moved into the [] container. These are also AltGr'ed to suitable keys. I also often need to type "three spaces, an asterisk, and another space". And the same with the digit 1 instead of the asterisk. So these two are also made as text macros and AltGr'ed to * and 1, respectively.

Posted: 21 Sep 2005, 13:37
by ivanw
Torben, thanks for your input on the subject, that make me want to make a few more steps on this ground.

At first, I have no straightforward idea about how we should get to this "next level".
1 - I am not satisfied of my current symbol layout, simply because it is not the result of any serious investigation.
2 - The number of modifier-mode-gesture is limited to those already used and I think that the interesting character sequences you consider should be associated with their leading symbol. This calls for some extra unused mode that we don't have.

This is a technical issue but it is also related to ergonomy and mnemonic.

...Now we all have an interesting problem to solve :wink: , good.

Posted: 21 Sep 2005, 14:02
by TorbenGB
ivanw wrote:I think that the character sequences should be associated with their leading symbol. This calls for some extra unused mode that we don't have. It is also related to ergonomy and mnemonic.
This is not necessarily a problem. On a non-US keyboard (Danish), the shift-values of the number row keys help you with the mnemonics. This is what I have set up (¤ denotes the cursor position afterwards):
AltGR+7/ = [][/] + 4*left-arrow = [¤][/]
AltGR+8( = () + 1*left-arrow = (¤)
AltGR+9) = [] + 1*left-arrow = [¤]
AltGR+0= = [[][]] + 4*left-arrow = [[¤][]]

The / on the 7 key reminds me og the BBcode slash.
The ( on the 8 key simply states the () macro.
The ] on the 9 key reminds me of the [] macro -- I have to remember that the () is already on the 8, though.
The = on the 0 key reminds me of the syntax of the [[][]] macro. (This is an A HREF tag in wiki notation.)

Granted, this is neither bullet-proof nor Apple-elegant, but it works just fine!

Posted: 21 Sep 2005, 15:36
by ivanw
Torben, your organization is an elaborate example of what one can do. This kind of settings can be shared and worked upon among those of us who have to deal with similar activities.

The application-specific viewpoint:
These could feed some application-specific layout discussion. I started one on VIM but I choose to think more generic at first. Vim is so smart that it is not easy to decide where to put the effort: The keyboard generates already a so rich input set that Vim could accommodate them through its macro programming :!:

The TS viewpoint:
As for the moment, I was just wondering if it would be possible to investigate some more general behavior. I am still looking for some way to extend the number of available modes that can allow to associate more distinct actions to every single key.

I have to admit that I am obsessed by the idea of using only the home-row keys and those just above and bellow. May be I should consider that having to look at the keyboard sometimes did not injured anyone so far :wink:

Anyway we have to gather good ideas of the kind and look for some template to come out of the resulting collection... So the more contributions like this we get, the better.

Posted: 17 Apr 2006, 17:18
by ivanw
I don't know if anyone is using the switchable layout pads I described here but if some do, this may come handy as it is a transposition for the standard keyboard with AutoHotkey.

I've lived with it for two weeks now and It is starting to kick in as a usable mean to kill reaches for fucking-pinky-symbols and fucking-off-home-row-numbers.

As I am pretty new at touch-typing (~1year now), I get pissed off when my hand leaves home row. Being able to type everything from home row and those right above and below make me really happy!

Here it is, without much comments because it is very likely that I am the only one interested and I don't need to explain that to myself here.

Code: Select all

; {{{

; AutoHotkey script: Adding more modifier to the standard keyboard:
; [060412]
; With an AutoHotkey script, "Tab", "CapsLock" and "Tilde" can be
; used as chording modifiers.
; Still, these keys retain their original value if they are pressed
; then released with no intervening keypress.
; In this particular customization script, these additional modifiers
; are used to transform right-hand keys surrounding home-row into a
; "NumberPad", a "PunctPad" or a "SymbolPad".
; There are two side effects though that have to be acceptable:
; 1- The autorepeat wont work for these keys anymore since they can be
;    maintained depressed without generating any event until some other
;    key is activated.
; 2- In case no other key has been activated in the mean time, the
;    original key stroke will be sent when the key is released.
;    Under normal circumstances, this happens at keypress.
; Note. Jargon has keypress renamed "make", release is named "break".
; }}}

; Accents -- grave and circumflex {{{

; grave accent
     `::Send,  {sc29}{Space}	; Note: This key will only trigger on key break
    +`::Send, +{sc29}{Space}
 ` & a::Send,  {sc29}a		; `a = à
 ` & e::Send,  {sc29}e		; `e = è
 ` & v::Send,  {sc29}u		; `u = ù

; circumflex accent
     6::Send,  {sc7}		; Note: This key will only trigger on key break
    +6::Send, +{sc7}{Space}
 6 & e::Send, +{sc7}e		; ^e = ê
 6 & a::Send, +{sc7}a		; ^q = â
 6 & i::Send, +{sc7}i		; ^i = î
 6 & o::Send, +{sc7}o		; ^o = ô
 6 & u::Send, +{sc7}u		; ^u = û

; }}}
; NumberPad -- Tab {{{

 LAlt & Tab::AltTab

 Tab::Send, {Blind}{Tab}
+Tab::Send, {Blind}{Tab}

 Tab & y::Send, {5}
 Tab & h::Send, {0}
 Tab & n::Send, {*}

 Tab & u::Send, {6}
 Tab & j::Send, {1}
 Tab & m::Send, {+}

 Tab & i::Send, {7}
 Tab & k::Send, {2}
 Tab & ,::Send, {-}

 Tab & o::Send, {8}
 Tab & l::Send, {3}
 Tab & .::Send, {.}

 Tab &  p::Send, {9}
 Tab & `;::Send, {4}
 Tab &  /::Send, {=}

; }}}
; PunctPad -- CapsLock {{{

 CapsLock & y::  Send, {``}{Space}
 CapsLock & h::  Send, {"}{Space}
 CapsLock & n::  Send, {'}{Space}

 CapsLock & u::  Send, {{}
 CapsLock & j::  Send, {(}
 CapsLock & m::  Send, {[}

 CapsLock & i::  Send, {}}
 CapsLock & k::  Send, {)}
 CapsLock & ,::  Send, {]}

 CapsLock & o::  Send, {<}
 CapsLock & l::  Send, {\}
 CapsLock & .::  Send, {_}

 CapsLock & p::  Send, {>}
 CapsLock & `;:: Send, {/}
 CapsLock & /::  Send, {|}

;; Capslock burden handling: {{{

;; Just disable CapsLock with Control Panel - It will still be received by AutoHotkey!
;; Or make those as harmless as possible

;           *CapsLock:: SetCapsLockState, Off
; CapsLock &     LAlt:: SetCapsLockState, Off
; CapsLock &     LWin:: SetCapsLockState, Off
; CapsLock &     RAlt:: SetCapsLockState, Off
; CapsLock &     RWin:: SetCapsLockState, Off ; has no effect, why?
; CapsLock &    Space:: Send, {Space}
; CapsLock &   Return:: SetCapsLockState, Off
; CapsLock & ':: Send, {'}{Space}
; CapsLock & [:: Send, {[}
; CapsLock & \:: Send, {\}
; CapsLock & ]:: Send, {]}
;; }}}

; }}}
; SymbolPad -- ~ {{{

 ` & y::  Send, +{``}{Space}
 ` & h::  Send, {^}{Space}
 ` & n::

 ` & u::  Send, {`%}
 ` & j::  Send, {Tab}
 ` & m::

 ` & i::  Send, {#}
 ` & k::  Send, {Esc}
 ` & ,::

 ` & o::  Send, {&}
 ` & l::  Send, {$}
 ` & .::

 ` & p::  Send, {@}
 ` & `;:: Send, {!}
 ` & /::

; }}}


;               0 ---- 7					    8 ---- F
; sc0  - scF  = Esc 1234567					    890-= Bksp Tab
; sc10 - sc1F = qwertyui					    op[] Enter Ctrl as
; sc20 - sc2F = dfghjkl;					    '`\zxcv
; sc30 - sc3F = bnm,./* Shift					    Num* Alt Space F1-F5
; sc40 - sc4F = F6...F10 NumLock ScrolLock Home			    Up PageUp Num- Left Num= Num+ End
; sc50 - sc5F = Down PDown Insrt Del PrtScr <unk> <unk> F11 F12	    Num= <unk...>
; sc60 - sc69 = <UNKNOWN> ... <UNKNOWN>

;; {{{
; ` & Tab::
; Send, {sc10}
; Send, {sc11}
; Send, {sc12}
; Send, {sc13}
; Send, {sc14}
; Send, {sc15}
; Send, {sc16}
; Send, {sc17}
; Send, {sc18}
; Send, {sc19}
; Send, {sc1A}
; Send, {sc1B}
; Send, {sc1C}
; Send, {sc1D}
; Send, {sc1E}
; Send, {sc1F}
; return
;; }}}

; }}}

Posted: 17 Apr 2006, 22:39
by Rqyteqto
ivanw, this is your self speaking, you really do need to explain things more clearly to me as half the time I don't know what you (I mean, I) am talking about. I bet the rest of forum members are unsure of what you are saying as well.

Posted: 17 Apr 2006, 23:42
by ivanw
Ok, all this is about switching between the default set of symbols you get with your right hand and three other sets of symbols from the same group of keys.

You get one of those alternate sets if you press CapsLock, Tab or Tilde with your left pinky like if they were modifier keys, like Shift, Control or Alt. This is kind of a modal chording, something quite like what it is all about with the TS in my first message of this topic.

:roll: You can be interested only after having played with AutoHotkey for awhile.

:wink: If this does not make sense, well, it is not a problem. You don't need to bother getting into these scripting details unless you feel the need to.

Maybe this can make sense only for programmers like me. One thing is for sure after more than 20 years with computers, I can't see straight anymore... Still, should someone want technical details, I can give hints about how to read and understand what this script contains... As I have experimented on AutoHotkey with some other scripts to make an opinion on what could be expected from it, I took the time to read the documentation and I know that each of these lines deserves a few words of explanation.