You may not post on this forum because you're not logged in.

#1 05-Jul-2012 16:19:42

DreymaR
Member
From: Bærum, Norway
Registered: 13-Dec-2006
Posts: 2,092
Website

DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

DREYMAR'S (XKB): DreymaR's Extensive Yet Modular AR'Senal (for X KeyBoarding)

[CAVEAT EMPTOR: This work is still under some construction due to its complexity.
It's got mostly nice domitable areas but a few hard-hat areas.]

NOTE: This topic has a sister topic describing my Bag Of Tricks for PKL on Windows. It covers the same topics, but this is the main post as I'm not reposting all info in that other place.

Since I started using Colemak I've been fiddling with it, trying out ideas from the forum and adding a few of my own. Colemak per se is to me only the letter block mappings including the semicolon, with/-out Shift (i.e., modifier lv 1-2). I've always ended up with that intact and it has stood the test of time since 2007 for me.

My personal Colemak arsenal now includes several other enhancements:
• New AltGr mappings (lv 3-4; "Colemak[eD]") putting dead keys on AltGr+symbol keys and reworking other mappings
• An Angle/Wide modification ("AWide-35") to improve wrist angles, hand spacing and right pinky stretch/load effort
• An Extend layer using Caps Lock for its modifier (lv 5-8; "Extend") for navigation from the home position and more
• For several locales, a 'Unified Symbols' layout with only a few necessary locale changes from the standard Colemak[eD];
• Also, a layout to 'Keep Local Symbols' like their default (QWERTY-type) counterparts and key cap markings for that locale
• Access to Greek and Hebrew letters (and soon other scripts I hope) using layout toggling to a phonetic Colemak layout
• Access to a mirrored Colemak that allows one-handed typing (I don't use it now - but if I ever break an arm...!)
• Access to an enhanced set of useful characters via dead key additions (only presently working for Windows/PKL)
• The 4 Tarmak transitional Colemak layouts for learning Colemak in smaller steps if desired

I use Farkas Máté's excellent Portable Keyboard Layout ('PKL') to achieve most of the above for Windows but over the last year I've been using Ubuntu Linux more and more. So I hacked up a bunch of modifications to the X.Org XKB files. I'm pretty proud of it, I must say! :)

I'll be posting topics for discussing some of the modifications on their own, but here is the whole shebang in one place for Linux users! An advantage with my implementation is that you can pick and choose most of the enhancements as modules: The Wide mod is a keyboard model so it works with any layout you choose (including QWERTY or Dvorak ones) and may be chosen per user; the Extend layer and its switch key are Options and should work with any existing layout except a couple of 8-level ones; the locale, Greek/Hebrew, Mirrored and Tarmak options are separate layouts that may use various chooser keys as desired. Freedom of choice through modularity is an ideal in the Linux world.


COLEMAK - EDITION DREYMAR

(See this forum topic by me)

Update 07-28: I've just changed this layout slightly (the 2 3 4 V K H J L ' keys). See the main Colemak[eD] topic.

This is my own preferred AltGr mappings (modifier lv3-4 in Linux terminology) for the Colemak layout. I've tried to add much functionality while keeping it intuitive. In particular, I want to be able to write different scripts and simple IPA phonetics (for dictionary English at least).

See the xkb/symbols/colemak file for comments and explanations, in addition to these design goals:
- Keeping level 1-2 of Colemak intact! This is what I think of as the Colemak layout per se.
- Dead keys easily accessible as unshifted AltGr+symbol keys; common ones in good positions.
- Added letters/quotes allowing many of the major latin scripts to be written correctly.
- Added symbols/glyphs similar to, e.g., Mac ones - allowing common math/tech/etc typing.
- The positions of added letters and symbols should as far as possible be easy to remember!

   Cmk-ISO-eD-Angle_90d-FingerShui.png
   The Colemak [edition DreymaR] layout, using different lv3-4 mappings from the standard Colemak.
   Shown with the ZXCVB_ 'Angle' ergonomic mod (see below), dead key emphasis and color-coded proposed fingering.


THE ANGLE/WIDE KEYBOARD MODEL MODS

(See for instance this topic by cevgar on Wide mods, and this topic by DreymaR on Angle mods)

These are ergonomic mods, moving some keys around to achieve straight wrists (the Angle mods), as well as better hand separation and right pinky load (the Wide mods). The Angle part is almost a no-brainer to me as it allows the left hand to keep a straight wrist without changing the fingering on ZXCV, and makes B easier to reach. You will need a 102/105-key (ISO) keyboard for it. The ANSI solution is usually to move the Z to the middle which is more dramatic. The Wide mod is more optional, but it does put some load off the right-hand pinky, widen the arm distance (useful for small keyboards in particular, but nice regardless), and provide easier access to AltGr/Enter/Backspace/RShift.

When I use these I like to move the key caps around and make the change global - my family actually don't seem to mind as the changes are fairly intuitive and unintrusive, leastways for the run-of-the-mill keyboard user who looks at symbol key caps to find them. I got used to the changes quickly, too, and I recommend at least an Angle shift if you have an ISO (102/105-key) keyboard! But you can implement the change on a per-user basis if you wish (if you do, take care with your logon dialogs and passwords!).

The Angle/Wide mods are implemented as keyboard models! This means that you can use them with any layout including the QWERTY and Dvorak ones. Modularity at your fingertips, again.

   Cmk-ISO-AWide35_90d-FingerShui.png
   The AngleWide-Slash ('AWide-35') wide keyboard mod for a PC105/ISO keyboard.

I've implemented the ZXCVB_ 'Angle' shift for ISO keyboards both separately and as part of the AngleWide-Slash wide mod (or 'AWide-35', so named because it puts the Slash key with scan code 35 at the Right Bracket position) that I use myself. For ANSI boards there are less perfect options but I've made an implementation of the ZXCVB shift (moving the Z key to the middle) that someone asked for a while back and also a Wide(Quote) mod. If you need an A-Frame or something else, let me know and I'll consider it!


EXTEND LAYERS AND THE CAPS SWITCH

This is my favourite mod next to Colemak itself! The ability to navigate and edit from the home position and its immediate surroundings is extremely powerful. It's like having part of the power of advanced editors like Vim ready in all situations.

From my source file:

// 2012-01-01 Øystein Bech "DreymaR" Gadmar
// A modular Extend mapping layer like the one I have in Portable Keyboard Layout for Windows
// - I've used the xkb/symbols/typo 'typographic keyboard' partial mappings as a method template
// - Key names are from keysymdef.h and XF86keysym.h in /usr/include/X11/ (Removing the XK_ prefix)
// - These multimedia F keys are defined (the shifted versions are not implemented in WinPKL):
// These keys are modified/transposed by holding down the 'extend key' (CapsLock by default):
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |Esc + |F1 <> |F2 << |F3 >> |F4 <> |F5 <> |F6 << |F7 >> |F8 <> |F9 <> |F10<> |F11<> |F12<> |
// |      | Pause| Rew  | Fwd  | Eject| Sleep| Bri- | Bri+ | Term | Home | Mail | App3 | App4 |
// | Caps | Play | Prev | Next | Stop | Mute | Vol- | Vol+ | Media| WWW  | Srch | App1 | App2 |
// +======+======+======+======+======+======+======+======+======+======+======+======+======+
// |` €€€ |1     |2     |3     |4     |5     |6     |7     |8     |9     |0     |-     |=     |
// | Del  | F1   | F2   | F3   | F4   | F5   | F6   | F7   | F8   | F9   | F10  | F11  | F12  |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |Tab   |Q €€€ |W *** |F <<> |P <>> |G *** |J ### |L ### |U ### |Y ### |; €€€ |[ €€€ |] €€€ |
// |      | Esc  | *WhUp| BrBck| BrFwd| *MUp | PgUp | Home | Up   | End  | Del  | Esc  | Ins  |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |Caps+ |A +++ |R *** |S +++ |T +++ |D *** |H ### |N ### |E ### |I ### |O €€€ |' €€€ |\ ><> |
// | ++++ | Alt  | *WhDn| Shift| Ctrl | *MDn | PgDn | Left | Down | Right| Back | Menu | BrFav|
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |Z €€€ |X === |C === |V === |B *** |_ *** |K *** |M *** |, *** |. *** |/ *** |Spc € |Entr€ |
// | Undo | Cut  | Copy | Paste| *Bt1 | *MOn | *Bt2 | *Bt3 | *MLe | *MRi | *MOn | Enter| Break|
// +------+------+------+------+------+------+------+------+------+------+------+-------------+
// Legend: # Movement; + Modifiers; = GUI edit; * Mouse; <> MultiMedia; € Various commands.

I've not yet managed to make the XKB understand the modifier keys (Alt/Shift/Ctrl on the AST keys) fully; the original modifiers should work with the extend-mapped arrows and other keys though.

As for the multimedia keys, they are mapped to the F keys as intended but XKB/Ubuntu doesn't currently link any actions to their key presses... I think. You could install a program that does whatever you want to when multimedia keys are pressed. Fiddling with the Settings > Keyboard panel didn't work for me and only registered a 'Level 5 shift' keypress but I think that's because the panel is buggy. I'll look further into it at some point.

   Cmk-ISO-Extend_90d.png
   A symbolic chart of my Extend mappings. Green, navigation; blue, mousing; orange, multimedia; gray, system/misc.

Holding down AltGr you get a NumPad layer (lv7-8) laid out pretty much like a standard one (but with the top row moved around a bit):

// KeyPad overlay with nav block to the left (lv7):
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |` €€€ |1     |2     |3     |4 £   |5 €   |6     |7     |8     |9     |0     |-     |=     |
// | Del  |  !   |  @   |  #   |  $   |  %   |  ^   | KP_7 | KP_8 | KP_9 | KP_* | KP_- | KP_= |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |Tab   |Q ### |W ### |F ### |P €€€ |G     |J     |L     |U     |Y     |;     |[ {   |] }   |
// |      | Home | Up   | End  | Del  |      |      | KP_4 | KP_5 | KP_6 | KP_+ |  (   |  )   |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |Caps+ |A ### |R ### |S ### |T €€€ |D     |H     |N     |E     |I     |O     |' "   |\ |   |
// | ++++ | Left | Down | Right| Back |      |      | KP_1 | KP_2 | KP_3 | K_En |  '   |  \   |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+
// |Z €€€ |X === |C === |V === |B *** |_ *** |K     |M     |,     |.     |/     |Spc   |Entr  |
// | Undo | Cut  | Copy | Paste| *Bt1 | *MOn |      | KP_0 |  ,   | KP_. | KP_/ | Spc  | K_En |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+

Having to hold down both CapsLock and AltGr while entering numbers is hardly ideal. I'd like to use another key (but there are few to spare) and maybe make it a lock instead of a switch modifier (i.e., one you have to hold down). Unsure about that, really. But at least, here it is.

There may be a need for navigating while entering numbers, but on the other hand KeyPad keys rarely use modifiers. So I moved the nav block from its UNEI arrow cross to the WARS cross familiar to gamers. Number row keys 1-6 are reverted to their lv2-3 symbols since these may be needed for numeric input, as are some other keys; the bracket keys cater for the parentheses in this layer which feels logical to me.

If you're cheeky and dexterous enough to press CapsLock+AltGr+Shift at the same time, you're treated to a set of double-arrow symbols of the kind used in mathematical proofs and more (⇖⇑⇗ ⇐⇔⇒ ⇙⇓⇘), laid out like in one of the preexisting xkb keypad layouts. I thought they might be somewhat handy, but the heavy chording required suits the fact that few need them very often! The single arrows didn't fit in, but at least the four orthogonal ones (←↑↓→) are already there in the lv3-4 Colemak[eD] mappings.

Interestingly, while the mousing keys in the lv5-6 Extend mappings aren't working well even with pointer keys enabled (by Shift+NumLock or CapsLock+Œ or /), these KeyPad keys do the job just fine! So if you find the mouse pointer moving around instead of numbers being entered, hit the key to disable pointer mousing again.

Not sure what to use the open positions for yet. And I still haven't got the Undo/Cut/Copy/Paste keys to work for me despite that tip from Kuglee below. :(


LOCALE COLEMAK[eD] VARIANTS AND PHONETIC COLEMAK LAYOUTS

See my Locale Variants forum topic for the various locale solutions!

I took off a bit and made quite a bunch of these, heh! I can make more on request or if I'm bored at some point. It'd be nice with feedback from local users as some design decisions are open to debate and depend on actual usage as well as personal preferences.

Here's what I've covered so far, for the most part both with conservative 'keep local symbols' and my preferred 'unified symbols' variants
(On a side note, there are but 11 Dvorak layouts!):
be br ca cz de dk es fi fr gb gr il is it latam nl no pl pt se us

- The brackets (lvl3-4) and the LSGT key may hold the most common locale-specific keys.
     * The oe/aring special letters may well be replaced; these should also be on dead keys.
     * Furthermore, keys with non-essential mappings (H J K L) are up for grabs if need be.
     * See the colemak_template symbols file for more info on local Colemak[eD] variants.

   Cmk-X-eD-us-awide-sl_mask.png
   The Colemak [edition DreymaR] layout (the standard variant, found in the 'us'/'English' locale).
   Shown with the 'AngleWide-Slash' ergonomic mod (see the 'Angle/Wide' heading).

   Cmk-X-eD-no-usym+dk-awide-sl_crop.png
   The Colemak [edition DreymaR] layout, Norwegian+Danish 'Unified Symbols' variant (mostly like the standard Colemak).

   Cmk-X-eD-no-lsym-awide-sl_mask.png
   The Colemak [edition DreymaR] layout, Norwegian 'Keep Local Symbols' variant (symbols like local key markings).

Please note: The 'Local Symbols' variant for a locale uses symbol mappings from the default locale layout (usually a QWERTY one), which are also the ones normally found on physical key markings on keyboards made for that locale. The letter block, however, is the Colemak[eD] one which may lead to some inconsistencies or faults in lv3-4 mappings. For the most consistent and complete set of AltGr mappings, use the 'Unified Symbols' variants.

For the phonetic variants (Greek and Hebrew for now) I merely moved the keys of their default layouts to a Colemak setup, not changing anything else. Ideally, I should be able to define phonetic names for the keys corresponding to Colemak so that other 'phonetic' layouts would work automatically, but I think the XKB way of doing that may be too QWERTY-centric for that to work right now.

   Cmk-X-gr-phon-awide-sl_mask.png
   The Colemak phonetic layout for Greek, simply moving around the keys of the default (here xkb) Greek layout.


ENHANCED DEAD KEY MAPPINGS

For some reason, the Stroke dead key is still broken in my XKB. Gotta get that fixed soon (maybe it'll be my first Linux bugfix unless someone beats me to it). Furthermore, I'd like to add more mappings that feel intuitive to me such as superscripts on the acute accent key and subscripts on the grave accent key.

Some dead keys are almost empty: The doubleacute only caters for ő ű, and ring only caters for å ů ẘ ẙ. There's also a whole iota dead key that only concerns itself with Greek characters. I'm tempted to stuff something good into those cracks even if it's not an entirely logical thing to do (because the name of the dead key wouldn't reflect these extra mappings). If you use up a key mapping on a dead key it really shouldn't sit there taking up keyboard space for the meager purpose of providing 2-3 glyphs!

Update 2012-08-06:I think it's about the locales. The big en_US.UTF-8 Compose file has the dead_stroke key defined (and lots of other goodness!) so I should find out how to get that then. Defining my own ~/.XCompose file apparently involves setting the xim input method as the active one instead of a hard-compiled GTK one my Ubuntu must be using now I guess. It's a bit complex it seems... :o I'll be back on this issue when/if I find out more!


MIRRORED COLEMAK

Advanced typing is possible with only one hand given a modicum of familiarity with the mirroring method. In fact, this paragraph was written entirely using the left hand with the exception of the mirroring key itself, with hardly any training! The brain is inherently good at mirroring things.

I think the Colemak is a very good layout for this kind of one-handed typing: It scores well on home-row usage, finger load balance and same-finger digraph avoidance, and it doesn't focus overmuch on hand alternation which could lead to same-finger digraphs when mirror-typing (Dvorak has lots of hand alternation; it also has separate right-hand and left-hand variants but then you'd have to learn a new layout).

NOTE: Some adventurous souls might want to try the mirrored Colemak as a main layout?
     (They say it's more similar to Dvorak that way.) However, it's meant for one-handed typing.
     To use it as a standalone layout, you'll want to take out the remapping of special keys.

On XKB: Using a Group setup, add the mirrored Colemak[eD] as your next layout group.
     Then you may choose between a slew of "key(s) to change layout (while pressed)" options!
     This does compromise your group options a bit (if you need to use non-latin layouts etc).
     If that bothers you, consider using both 'next' and 'last' layout groups with chooser keys.
     Use Ubuntu: 'Keyboard Layout'->'Options'->'key(s) to change layout (while pressed)'.


   Cmk-ISO-MirrorOn-Angle_90d-FingerShui.png
   The Mirrored Colemak layout, which should be good for right-handed typing (the Angle mod is recommended for this)


   Cmk-ISO-MirrorOn-AWide35_90d-FingerShui.png
   The Mirrored Colemak layout with the AngleWide-Slash mod (see the Wide mod heading); better for left-handed typing


THE TARMAK TRANSITIONAL COLEMAK LAYOUTS

There's a forum topic or two on this already. Basically, I've added four Tarmak layouts that provide stepping stones from the standard (US) English QWERTY layout to the Colemak[eD] layout by moving only 3-4 keys per step. Each step brings at least one important key to the home row and only uncommon keys like J and the semicolon are misplaced in the process.

Similar transitional layouts have been reported successful in easing the conversion to Colemak typing and although this evidence is anecdotal at best I find the proposed hypothesis that gradual changes should be easier to learn for many a plausible one.

User ghaz has provided a set of Tarmak keylayout definition files for the MacOS! Good job, ghaz!

   Tarmak_SpectralSteps_ETOIR.png
   The 5-step Tarmak (transitional Colemak) layouts, spectrally color-coded from red (Tarmak#1) to violet (Colemak).

Because the XKB doesn't support full modularity practically, these are all based on my standard Colemak[eD](US English) layout with no options for other lv3-4 mappings. They are learning aids anyway, so this shouldn't be much of a problem for most.


DOWNLOAD AND INSTALL

Files for the X.Org xkb can be found here: drey-xkb-patches-ub1304.zip (or the only slightly outdated Ubuntu 12.04 version).

The provided files were created using Ubuntu Linux but should be good for any distro using the same X11 version at least. A zipped archive for the current Ubuntu version and a few older ones (possibly not updated!) should be available. Also, if you're on another distro or something and want to run a 3-way diff feel free to use the original vs modded files archive; that could also be handy if you haven't got or don't want to use the patch command. You could just plop the modded files into their X11/xkb directories as root, replacing their unmodded counterparts.

I've provided a shell script that uses the patch command ('patch -p1 -i'); you'll need it installed. Then, to install the patch to a fresh XKB folder (back it up first just in case!), start a terminal window and run 'sudo sh instdiff.sh -t -d yymmdd' with the date (e.g., '-d 130518') of the file you want to use. The '-t' tag means it's only a test/"dry" run which I recommend to do first to see if it'll all be successful! Next, run the same command without the '-t' to patch for real. (You can use '-r' to reverse a patch should you wish to uninstall the Big Bag from your system.)

After the files have been modified, a restart is usually needed unless you know a more advanced way. You may also have to clean out the XKB server cache (/var/lib/xkb/server*.xkm) manually if you didn't use my instdiff shell script.

On Ubuntu: If you go to the Layout settings, hit '+' to add a layout and type in 'Colemak' you should see a bunch of additions. The Extend option is found under Options -> Miscellaneous Compatibility Options, and you should choose an appropriate lv5 switch for it (I've added a Caps Lock option).

The available Angle/Wide ergonomic mods are the Euro/ISO/PC-105 board ZXCVB> shift (named 'pc105angle-lg'), the Angle/Wide-Slash mod described above ('pc105awide-sl') as well as the US/ANSI/PC-104 board ZXCVB shift ('pc104angle-z') and Wide(Quote) mod ('pc104wide-qu'). Unfortunately, the current Ubuntu versions have lost the GUI Settings option to switch keyboard models (which I find very very odd). To use my Angle/Wide keyboard model on Ubuntu I therefore edited the /etc/default/keyboard file, like this:

#XKBMODEL="pc105"
XKBMODEL="pc105awide-sl"

If you have a non-PC104/PC105-compatible keyboard you might have to do it differently; let me know if you run into trouble.

An alternative way useful for, e.g., non-Gnome distros, is changing your keyboard settings by the command line:

setxkbmap -model pc105awide-sl -layout us,no -variant cmk_ed_us,cmk_ed_us \
  -option lv5:caps_switch_lock,misc:extend

The above example sets up an AngleWide-Slash keyboard with the standard Colemak[eD] layout for US and Norway (both using 'us' unified variants), Extend mode active and Caps as the Extend key. Thanks to Kruppe for this tip! :)

A simpler way of just setting the layouts (you could also set only the model or options of course):

setxkbmap us(cmk_ed_us),us(cmk_ed_mirror),fr(cmk_ed_ks),gr(colemak)

(This time setting mirrored Colemak[eD] as the 2nd, French "keep local symbols" as the 3rd and Greek phonetic Colemak as the 4th layout)

Also, let's not forget the -query option of that useful command to see what's happened:

setxkbmap -query -verbose 9

The shorthand version for that is simply 'setxkbmap -v 9'.


TODO:

• More Extend layers would be nice if I can figure out how to make them (fancy NumPad, accelerated NavPad, CodePad?).
   Modifier chords would be necessary.
• Make the Extend layer modifiers (A/S/T for Alt/Shift/Ctrl) work with the other keys like they do in my PKL implementation under Windows!
• Dead keys need fixing (slash/stroke, currency, IPA, super/subscripts etc);
   my plan is to make dead keys with currency++ on AltGr+4 and IPA/tech/math stuff on AltGr+5
• Make the phonetic key remappings work (is there something wrong with the XKB or just my way of using it?)
• Planned locale variants: hu ro ru tr


Happy tapping!
2013-05, Øystein Bech "DreymaR" Gadmar

Last edited by DreymaR (19-May-2013 15:30:31)


Better burden you cannot carry than man-wisdom much  --  Hávamál
Check out my Big Bag of Keyboard Tricks! For XKB (Linux) and for PKL (Win).

Offline

#2 06-Jul-2012 18:11:34

dkun
New member
Registered: 06-Jul-2012
Posts: 4

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

amazing work !!

i just downloaded your version and i am gonna test it out
it might give me new ideas about the Greek Colemak Layout i am working on

Offline

#3 24-Jul-2012 14:06:29

kuglee
New member
Registered: 24-Jul-2012
Posts: 2

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

I've managed to get the cut, copy and paste keys to work everywhere.
gtk-2 apps: put this code into ~/.gtkrc-2.0

binding "gtk-xf86cut-copy-paste"
{
        bind "XF86Cut"   { "cut-clipboard" () }
        bind "XF86Copy"  { "copy-clipboard" () }
        bind "XF86Paste" { "paste-clipboard" () }
}

class "*" binding "gtk-xf86cut-copy-paste"

gtk-3apps: put this code into ~/.config/gtk-3.0/gtk.css

@binding-set gtk-xf86cut-copy-paste
{
        bind "XF86Cut"   { "cut-clipboard" () };
        bind "XF86Copy"  { "copy-clipboard" () };
        bind "XF86Paste" { "paste-clipboard" () };
}

* {
        gtk-key-bindings: gtk-xf86cut-copy-paste
}

Offline

#4 26-Jul-2012 11:37:57

DreymaR
Member
From: Bærum, Norway
Registered: 13-Dec-2006
Posts: 2,092
Website

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

@Kuglee: Interesting! I'm on Ubuntu 12.04 and I have only a ~/.config/gtk-2.0/ directory with one file in it (gtkfilechooser.ini). Do I make a fresh gtk.css file in there with that code and nothing else in it then?


Better burden you cannot carry than man-wisdom much  --  Hávamál
Check out my Big Bag of Keyboard Tricks! For XKB (Linux) and for PKL (Win).

Offline

#5 26-Jul-2012 13:58:34

kuglee
New member
Registered: 24-Jul-2012
Posts: 2

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

DreymaR wrote:

@Kuglee: Interesting! I'm on Ubuntu 12.04 and I have only a ~/.config/gtk-2.0/ directory with one file in it (gtkfilechooser.ini). Do I make a fresh gtk.css file in there with that code and nothing else in it then?

Yes. I didn't have them either.

Offline

#6 10-Sep-2012 17:07:18

vaskozl
Member
From: Lund, Sweden
Registered: 10-Sep-2012
Posts: 35

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

Hello DreymaR! Wow those are some awesome tricks you've got there! I especially like the extended layer that is activated when CapsLock is pressed.
I think it is really usefull since it is very frequent to jump between lines when writing code or essays. I am really tempted to use your layout, however I switch between ISO and ANSI very often when I work and therefor want one portable keyboard layout that I can universaly use.
I'm still a noob with portable keyboard layout. Can you please guide me on how to add the extended caps-lock layer and alt-gr mapping on normal colemak without having to use the angle/wide mod? Or even better, if it is relatively easy to achive, make one and add it to your post. I would be very greatfull to you if you did :).

Offline

#7 10-Sep-2012 18:10:34

DreymaR
Member
From: Bærum, Norway
Registered: 13-Dec-2006
Posts: 2,092
Website

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

Thanks for the kind words! :)

Since you're using Windows, keep in mind there's a sister topic to this one where the PKL files and descriptions reside. I'll try to answer there, to "keep the family together". ;)


Better burden you cannot carry than man-wisdom much  --  Hávamál
Check out my Big Bag of Keyboard Tricks! For XKB (Linux) and for PKL (Win).

Offline

#8 03-Nov-2012 02:12:06

pablox
Member
Registered: 31-Oct-2012
Posts: 5

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

Me again =P.

Looking at the source code of xkeyboard-config* (package name on arch), I realized that some files, for example rules/base.lst are generated through its Makefile. Your diffs patch also patch the generated files so I was wondering if it was easier (or more straight-forward) to patch them from the upstream to get some kind of patched-version of xkeyboard-config.


*http://xorg.freedesktop.org/archive/ind … .7.tar.bz2

Last edited by pablox (03-Nov-2012 02:12:19)

Offline

#9 03-Nov-2012 08:05:58

DreymaR
Member
From: Bærum, Norway
Registered: 13-Dec-2006
Posts: 2,092
Website

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

It's true that the rules files come with the warning that you shouldn't edit them directly but I couldn't work out how else to do it. That's something I've wanted to learn. On ubuntu I couldn't find the Makefile (maybe I didn't look in the right places).

Thanks for the tip, I'll look into it!

Last edited by DreymaR (03-Nov-2012 08:07:33)


Better burden you cannot carry than man-wisdom much  --  Hávamál
Check out my Big Bag of Keyboard Tricks! For XKB (Linux) and for PKL (Win).

Offline

#10 10-Nov-2012 01:37:27

cevgar
Member
Registered: 04-Feb-2010
Posts: 77

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

@ Dreymar: This has somewhat bothered me since you first started advertising your 'bag-o-tricks' thread, but how are you mirroring the keyboard? Mirroring is an awesome accessibility technique and you get serious bonus points in my book for including it, but while you mention that you typed a segment completely with the left hand with exception of the mirroring key, I see nothing to identify what key you are using to do it. Traditionally (and by traditionally I mean the Mattias 'I live on the blood sweat and tears of the disabled' Half-Qwerty Keyboard) mirroring has been done by holding the spacebar. Is that the idea here?

The extended mappings are a little confusing. You mention green, blue, orange and gray; and I'm looking at map that includes red, sand, purple, spruce... help! (Joking, but it could be clearer. Those circle buttons don't mean anything to me without looking at the code.)

Um... and while I have your attention, knowing you are into mechanicals, which mechanical switch do you prefer? The Bucking Springs require too much pressure for me, and I just got a keyboard with browns which I find... somewhat underwhelming. I'm wondering if it is an adjustment issue, or if maybe the blues or a Freestyle 2 might have been a better choice. Then again, even Sean Wrona seemed to be happy enough on one of those 'PerfectStroke' scissors Logitech has been producing (though they as clear about which models have it as they should be). If you have any input...?

Last edited by cevgar (10-Nov-2012 01:38:45)

Offline

#11 10-Nov-2012 11:04:35

DreymaR
Member
From: Bærum, Norway
Registered: 13-Dec-2006
Posts: 2,092
Website

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

@Cevgar: Hiya, and thanks for the input! We love input. ;)

When I tested the mirroring, I used the RCtrl key as the mirror switch (i.e., I chose it as the Next Layout temporary switch key in Settings) and hit it with my other hand. I did that for both hands although if I were to use it much I'd of course choose the LCtrl or something like that for right-handed typing. This would be a decent way for people who can use the other hand but not its fingers well. For me it was only a test.

Any key can in theory be defined as the layout switch in the files, but it takes a little rules file fiddling (or recompiling, which I don't master yet).

I don't like spacebar mirroring, because since space is the most used character there's bound to be misfiring. I may be wrong, but that's my feeling about it. I've thought about using a foot switch (such as your brilliant "ghetto" solution!) but I'm uncertain as to whether it'd be fast enough? One rather promising and fascinating thought is those headbands that let you press a button (or two different buttons? not sure) by focusing your mind a certain way! If that's combinable with thinking about what you're typing it'd sure be a sweet and futurist approach.

OMG, you're actually more color-gay than I am! ;) Well, it probably could be clearer but this is what I've written up. I thought that between the graphic overview and the code snippet people would figure out what I mean. I guess a longer explanation would be productive but haven't found the "time" so far.

Concerning switches: I don't have strong preferences. I have a Buckling Spring board or two and like them (the old authentic IBM F feels better to me than the new Unicomp but I haven't used the latter a lot). In my daily routine however, I use laptop chicklet boards and I'm fine with that. Even the mushy membrane junk boards get the job done so I'm no snob. To me it's more about the mappings and posture.


Better burden you cannot carry than man-wisdom much  --  Hávamál
Check out my Big Bag of Keyboard Tricks! For XKB (Linux) and for PKL (Win).

Offline

#12 18-May-2013 23:58:30

DreymaR
Member
From: Bærum, Norway
Registered: 13-Dec-2006
Posts: 2,092
Website

Re: DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

Inspired by Colemaker Lalop, I implemented a Wide mod for the ANSI/PC104/US generic keyboard model:

Colemak-eD_pc104Wide-Qu_Linux.gif

The "pc104Wide(Quote)" mod is a Wide ergonomic keyboard model that moves the four right-hand half-rows one key to the right. This helps hand separation notably on small keyboards, access to Enter/RAlt/Back and right hand pinky load.

Brackets are in the middle as with the pc105 Wide mod. The slash key simply moves into the middle which may be a little annoying to some but should be okay and is the most logical thing to do. The quote/apostrophe key had to move one row up but is still accessible with the same finger and a minimal change in effort. All in all it's a good mod I think.

I didn't implement any Angle mods for the lower left-hand half-row together with this Wide mod (for now). It's possible to edit the keycodes/evdev file yourself, commenting out the line in the pc104wide-qu section that augments pc104 and activating the line above that augments pc104angle-z instead. This won't change the displayed layout images like the one shown above (unless you also edit the corresponding part of geometry/pc) but it should affect the key presses after a restart. If not you may have to clear out the temp cache in /var/lib/xkb/ as described above.

Last edited by DreymaR (19-May-2013 14:44:45)


Better burden you cannot carry than man-wisdom much  --  Hávamál
Check out my Big Bag of Keyboard Tricks! For XKB (Linux) and for PKL (Win).

Offline

Board footer