Go to file
i-c-u-p 58f8a14356
Made shell scripts executable
Changed permissions of setxkb.sh and install-dreymar-xmod.sh from 644 to 755 to be able to run them via "./<script name>" without first executing "chmod +x <script name>".
2022-04-06 10:24:38 +00:00
.github Create FUNDING.yml 2021-02-18 13:47:50 +01:00
console Update to xkb-data 2.17.1ub1; diverse changes 2017-02-16 16:18:57 +01:00
docs_dreymar-xmod Update to xkb-data 2.17.1ub1; diverse changes 2017-02-16 16:18:57 +01:00
dreymar-xtools New unified Curl-DH mod; CurlAngle models 2017-06-09 12:44:45 +02:00
xkb-data_orig Renamed to _orig and _xmod 2021-02-02 12:31:23 +01:00
xkb-data_xmod Tweak to the Greek layout 2022-03-17 18:36:03 +01:00
.gitattributes New unified Curl-DH mod; CurlAngle models 2017-06-09 12:44:45 +02:00
.gitignore Removed the Curl keyboard models 2020-12-04 10:56:21 +01:00
LICENSE.md New unified Curl-DH mod; CurlAngle models 2017-06-09 12:44:45 +02:00
README.md Extend tweak 2022-03-17 18:33:32 +01:00
install-dreymar-xmod.sh Made shell scripts executable 2022-04-06 10:24:38 +00:00
setxkb.sh Made shell scripts executable 2022-04-06 10:24:38 +00:00

README.md

DreymaR's Big Bag of Keyboard Tricks


For Linux using XKB

  • New "Colemak[eD]" AltGr mappings (lv3-4) putting dead keys on AltGr+symbol keys and reworking most other mappings
  • Angle/Wide ergo modifications to improve wrist angles, hand spacing and right pinky stretch/load effort
  • Curl(DH) ergo modifications to encourage natural finger curvature
  • An "Extend" layer using Caps Lock as a modifier (lv5-8) for navigation/editing from the home position and more
  • For several locales, a 'Unified Symbols' layout with only a few necessary changes from the standard Colemak[eD]; Also, a layout to 'Keep Local Symbols' like their default (QWERTY-type) counterparts for that locale
  • Intuitive phonetic layouts for Cyrillic, Greek and Hebrew scripts
  • Mirrored Colemak that allows one-handed typing (if I ever break an arm...)
  • The 4 Tarmak transitional Colemak layouts for learning Colemak(-DH) in smaller steps if desired

More info

Run the install and setxkb scripts with -h (or look inside them) for more help and info about their workings!

Learn about setxkb.sh "model locale variant" shortstring syntax in the BigBag. The default is "5caw us us": PC105(ISO) board with Curl(DH)AngleWide mods, US locale, Cmk-eD UniversalSymbols variant. To switch to, say, an ANSI board without ergo mods, that's 4n instead of 5caw. Look in the scripts.

NOTE: It may be necessary to select "Use system defaults" if you have changed anything in the OS GUI layout settings.

These files are updated to XKB-data v2.23.1-1ubuntu1, 2018. The xkb-data package is very consistent between distros. I use the Debian xkb-data, sometimes with some Ubuntu updates. The .deb packages may be opened using dpkg -x or ar -xv (from binutils) on Linux, and for instance PeaZip on Windows.

See DREYMAR'S BigBag XKB topic on the Colemak Forums. There are plenty of explanations and further links in there.

Happy XKB hacking! DreymaR, 2021-10

TODO:

  • Rename setxkb --> setkb ?

  • Make a restore to default layout shortcut? It's only an alias for setxkb 4n/5n. Maybe resetxkb 4/5?

  • To get Extend with the currently active layout, use setxkbmap -v 9 -option "" -option "misc:extend,lv5:caps_switch_lock,compose:menu".

  • Add lv5:lalt_switch_lock for LALT-Extend.

  • Add compose:102? Inconsistent between ISO and ANSI, just add a pro-tip.

  • The Curl(DH) model implementation has to go as it may mess w/ QWERTY. Instead, I should use two Extend variants.

    • It also seems very hard for some newcomers to understand. So yes, I should have the Angle mod only and not CurlAngle models.
    • Also, matrix users want the V-D swap without an Angle mod! Another nail in the coffin for the Curl models.
    • Actually, should I make a NoModel CurlAngle layout for the model impaired? Vanilla, Curl(DH) and Curl(DH)Angle then. ... No?
    • First, just make Curl with D-V swap built in. Let the Extend Paste function be where it falls for now.
  • Check out the compose:102 option. This would be similar to what I now use in EPKL for Windows! It's also present in some other layouts.

  • Problems with Super+ shortcuts: https://github.com/DreymaR/BigBagKbdTrixXKB/issues/23#issuecomment-1027839924

  • A purge option in addition to restore for the install script? So backup dirs etc are removed and the xkb dir restored to original state.

  • Update xkb-data and start testing on a Wayland system!

  • Echo the setxkbmap command when using setxkb.sh, for ease of troubleshooting! Also make the script able to output the command for piping?

  • Add a model-less Colemak-CAWS for people who want to switch to QWERTY? Or instructions on how to setxkb it? That's better, I think.

  • Problem: Using Google Spreadsheets, hitting Caps Lock (which is mapped to ISO_Level5_Shift) clears the current spreadsheet cell.

  • Is there a way to clear the LevelFive mod on all the Extend mappings by default? Or must I be more careful with each RedirectKey()?

    • Example: Q -> Esc -> Caps caused people trouble, as Ext+Q would act as Esc+Caps.
    • Possibly, finally make a new key type EIGHT_LEVEL_EXTEND with the action clearmods=LevelFive added to state 5-8? No, no actions.
    • In xkb/types/level5 under EIGHT_LEVEL_SEMIALPHABETIC I used preserve[Shift] = Shift;. We need the opposite here, to discard lvl5.
    • See for instance https://www.x.org/releases/X11R7.5/doc/input/XKB-Enhancing.html
    • "Usually, all modifiers introduced in 'modifiers=' list are used for shift level calculation and then discarded."
    • Does this mean that LevelFive should've been discarded but isn't? Is it an XKB bug?
  • From Daniele at the Cmk Discord: Try out localectl?

  • Update to the latest xkb-data: https://ubuntu.pkgs.org/20.04/ubuntu-main-amd64/xkb-data_2.29-2_all.deb.html

  • Find out how to change the rules component properly to allow compiling and eventually merging to the main repo?

  • Migrate from ~/.bashrc to ~/.xprofile? The latter is more appropriate, but which setups source it and which ones don't?

    • Include both? Or, people can just enter the file names.
  • Could use an key code alias defined in keycodes/evdev (alias = ), instead of the code?

  • Test this method for using a local dir, by Bjørnar "zkf" Hansen:

    • Copy the xkb-data_mod/xkb dir to, say, /usr/local/bigbag/xkb if desired.
    • Set setenv MYXKB <dir> or export MYKXB=<dir> as appropriate (not necessary for this, just practical here).
    • setxkbmap -rules evdev -option '' <parameters> -print | xkbcomp -I -I$MYXKB -I/usr/share/X11/xkb - $DISPLAY
    • See https://github.com/DreymaR/BigBagKbdTrixXKB/issues/14
    • More useful info in this comment: https://github.com/DreymaR/BigBagKbdTrixXKB/issues/14#issuecomment-767590722
    • "-I/usr/local/share/X11/xkb can be written more succinctly as -I. if you first cd into this directory."
    • Another reason to first cd into the local xkb dir is that the rules dir is expected to be in the pwd.
  • An earlier comment on the local dir subject, by neeasade@github in issue 1:

  • For an EsAlt variant as in EPKL:

    key <AE04> { [             4,        dollar,       dead_currency,            EuroSign ] }; // 4
    key <AD07> { [             l,             L,               U2039,       guillemotleft ] }; // QWE U Cmk L
    key <AD08> { [             u,             U,                   ú,                   Ú ] }; // QWE I Cmk U - EsAlt
    key <AC01> { [             a,             A,                   á,                   Á ] }; // QWE A Cmk A - EsAlt
    key <AC06> { [             h,             H,           leftarrow,          rightarrow ] }; // QWE H Cmk H
//    key <AC07> { [             n,             N,                   ñ,                   Ñ ] }; // QWE J Cmk N - EsAlt ANSI
    key <AC08> { [             e,             E,                   é,                   É ] }; // QWE K Cmk E - EsAlt
    key <AC09> { [             i,             I,                   í,                   Í ] }; // QWE L Cmk I - EsAlt
    key <AC10> { [             o,             O,                   ó,                   Ó ] }; // QWE ; Cmk O - EsAlt
    key <LSGT> { [             ñ,             Ñ,                  oe,                  OE ] }; // <>          - EsAlt ISO
//    key <AB06> { [             k,             K,              endash,             uparrow ] }; // QWE N Cmk K - ANSI
    key <AD11> { [   bracketleft,     braceleft,           masculine,         ordfeminine ] }; // [{
  • To change the logon keyboard layout:
    • sudo dpkg-reconfigure keyboard-configuration

DONE:

  • 2020-11-05: Switched to the new DH = DHm standard (was DH = DHk)
  • Changed the default layout for the setxkb.sh script to US (UniSym): In my experience, most users that struggle with the setup want US English.
  • To get back to your old layout/model, use setxkb 4n/5n [loc]. You may also specify mod loc [var]; omit var for the default (basic) variant.
  • Separated out the F# key block in the extend file: People complain that their TTY shortcuts aren't working because of it. Ext+AltGr+F# works though.
  • Relieve the sudo requirement. And add an option to change the X11 dir since Nix uses another place. Pulled from fufexan@github.