From 9d3de38160a6cde4e4bb0dd349c670e98f7b3330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Bech=20Gadmar?= Date: Fri, 17 Jun 2016 15:04:32 +0200 Subject: [PATCH] Update to xkb-data 2.17.1ub1; diverse changes Several tweaks and tricks. Shell scripts improved, Curl and Tarmak-Curl improvements, Kyrillic phonetic layouts updated. See the main Big Bag for XKB topic, and the Tarmak topic (at the Colemak forum). --- README.md | 30 +- README_dreymar-xmod.txt | 24 - console/Colemak_ConsoleMode.txt | 11 + console/colemak.iso15.kmap | 75 + .../data_keymaps_i386_colemak_en-latin9.map | 75 + .../Cmk-phon-locales_X-img/Cmk-X-phon-bg.png | Bin 31523 -> 41550 bytes .../Cmk-X-phon-bg_2015-02.png | Bin 0 -> 31523 bytes .../Cmk-phon-locales_X-img/Cmk-X-phon-ru.png | Bin 31463 -> 41485 bytes .../Cmk-X-phon-ru_2015-02.png | Bin 0 -> 31463 bytes .../Extend-ISO-NoWi-Linux_90d.png | Bin 0 -> 63583 bytes install-dreymar-xmod.sh | 145 +- setxkb.sh | 199 +- x-bak_v2-12-1_2014-08-06/xkb/rules/base | 1225 --- x-bak_v2-12-1_2014-08-06/xkb/rules/base.lst | 887 -- x-bak_v2-12-1_2014-08-06/xkb/rules/base.xml | 6859 --------------- x-bak_v2-12-1_2014-08-06/xkb/symbols/is | 210 - x-bak_v2-12-1_2014-08-06/xkb/symbols/latam | 68 - .../xkb/geometry/pc | 0 .../xkb/keycodes/aliases | 0 .../xkb/keycodes/evdev | 0 .../xkb/keycodes/xfree86 | 0 .../xkb/rules/evdev | 26 +- .../xkb/rules/evdev.lst | 28 +- .../xkb/rules/evdev.xml | 442 +- .../xkb/symbols/al | 0 .../xkb/symbols/at | 0 .../xkb/symbols/ba | 0 .../xkb/symbols/be | 0 .../xkb/symbols/bg | 2 +- .../xkb/symbols/br | 2 +- .../xkb/symbols/ca | 0 .../xkb/symbols/cz | 70 + .../xkb/symbols/de | 117 +- .../xkb/symbols/dk | 0 x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/epo | 150 + .../xkb/symbols/es | 4 +- .../xkb/symbols/fi | 73 +- .../xkb/symbols/fr | 88 +- .../xkb/symbols/gb | 0 .../xkb/symbols/gr | 0 .../xkb/symbols/group | 6 +- .../xkb/symbols/hr | 0 .../xkb/symbols/hu | 0 .../xkb/symbols/il | 2 +- x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/is | 284 + .../xkb/symbols/it | 0 x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/latam | 129 + .../xkb/symbols/level5 | 0 .../xkb/symbols/nl | 0 .../xkb/symbols/no | 0 .../xkb/symbols/pl | 0 .../xkb/symbols/pt | 0 .../xkb/symbols/ro | 0 .../xkb/symbols/rs | 12 +- .../xkb/symbols/ru | 82 +- .../xkb/symbols/se | 0 .../xkb/symbols/si | 0 .../xkb/symbols/sk | 0 .../xkb/symbols/tr | 0 .../xkb/symbols/us | 11 +- x-bak_v2-17-1ub1_2016-05-24/xkb/types/level5 | 214 + x-mod_v2-12-1_2015-01-18/xkb/rules/base | 1249 --- x-mod_v2-12-1_2015-01-18/xkb/rules/base.lst | 963 --- x-mod_v2-12-1_2015-01-18/xkb/rules/base.xml | 7320 ----------------- .../xkb/geometry/pc | 0 .../xkb/keycodes/aliases | 0 .../xkb/keycodes/evdev | 0 .../xkb/keycodes/xfree86 | 0 .../xkb/rules/evdev | 38 +- .../xkb/rules/evdev.lst | 64 +- .../xkb/rules/evdev.xml | 549 +- .../xkb/symbols/al | 0 .../xkb/symbols/at | 0 .../xkb/symbols/ba | 0 .../xkb/symbols/be | 0 .../xkb/symbols/bg | 51 +- .../xkb/symbols/br | 2 +- .../xkb/symbols/ca | 0 .../xkb/symbols/colemak | 115 +- .../xkb/symbols/colemak_eD_epo | 89 + .../xkb/symbols/colemak_eD_template | 0 .../xkb/symbols/cz | 70 + .../xkb/symbols/de | 118 +- .../xkb/symbols/dk | 0 x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/epo | 150 + .../xkb/symbols/es | 4 +- .../xkb/symbols/extend | 73 +- .../xkb/symbols/fi | 73 +- .../xkb/symbols/fr | 88 +- .../xkb/symbols/gb | 0 .../xkb/symbols/gr | 0 .../xkb/symbols/group | 6 +- .../xkb/symbols/hr | 0 .../xkb/symbols/hu | 0 .../xkb/symbols/il | 2 +- .../xkb/symbols/is | 178 +- .../xkb/symbols/it | 0 .../xkb/symbols/latam | 61 + .../xkb/symbols/level5 | 37 +- .../xkb/symbols/nl | 0 .../xkb/symbols/no | 0 .../xkb/symbols/pl | 0 .../xkb/symbols/pt | 0 .../xkb/symbols/ro | 0 .../xkb/symbols/rs | 12 +- .../xkb/symbols/ru | 136 +- .../xkb/symbols/se | 0 .../xkb/symbols/si | 0 .../xkb/symbols/sk | 0 .../xkb/symbols/tr | 0 .../xkb/symbols/us | 35 +- x-mod_v2-17-1ub1_2016-06-06/xkb/types/level5 | 220 + 112 files changed, 3776 insertions(+), 19477 deletions(-) delete mode 100644 README_dreymar-xmod.txt create mode 100644 console/Colemak_ConsoleMode.txt create mode 100644 console/colemak.iso15.kmap create mode 100644 console/data_keymaps_i386_colemak_en-latin9.map create mode 100644 docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-bg_2015-02.png create mode 100644 docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-ru_2015-02.png create mode 100644 docs_dreymar-xmod/Extend-ISO-NoWi-Linux_90d.png delete mode 100644 x-bak_v2-12-1_2014-08-06/xkb/rules/base delete mode 100644 x-bak_v2-12-1_2014-08-06/xkb/rules/base.lst delete mode 100644 x-bak_v2-12-1_2014-08-06/xkb/rules/base.xml delete mode 100644 x-bak_v2-12-1_2014-08-06/xkb/symbols/is delete mode 100644 x-bak_v2-12-1_2014-08-06/xkb/symbols/latam rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/geometry/pc (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/keycodes/aliases (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/keycodes/evdev (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/keycodes/xfree86 (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/rules/evdev (96%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/rules/evdev.lst (96%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/rules/evdev.xml (94%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/al (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/at (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/ba (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/be (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/bg (99%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/br (99%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/ca (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/cz (64%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/de (84%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/dk (100%) create mode 100644 x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/epo rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/es (98%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/fi (70%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/fr (95%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/gb (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/gr (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/group (98%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/hr (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/hu (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/il (99%) create mode 100644 x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/is rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/it (100%) create mode 100644 x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/latam rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/level5 (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/nl (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/no (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/pl (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/pt (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/ro (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/rs (98%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/ru (89%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/se (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/si (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/sk (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/tr (100%) rename {x-bak_v2-12-1_2014-08-06 => x-bak_v2-17-1ub1_2016-05-24}/xkb/symbols/us (99%) create mode 100644 x-bak_v2-17-1ub1_2016-05-24/xkb/types/level5 delete mode 100644 x-mod_v2-12-1_2015-01-18/xkb/rules/base delete mode 100644 x-mod_v2-12-1_2015-01-18/xkb/rules/base.lst delete mode 100644 x-mod_v2-12-1_2015-01-18/xkb/rules/base.xml rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/geometry/pc (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/keycodes/aliases (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/keycodes/evdev (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/keycodes/xfree86 (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/rules/evdev (95%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/rules/evdev.lst (94%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/rules/evdev.xml (94%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/al (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/at (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/ba (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/be (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/bg (92%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/br (99%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/ca (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/colemak (89%) create mode 100644 x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak_eD_epo rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/colemak_eD_template (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/cz (69%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/de (85%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/dk (100%) create mode 100644 x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/epo rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/es (98%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/extend (92%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/fi (73%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/fr (95%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/gb (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/gr (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/group (98%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/hr (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/hu (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/il (99%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/is (52%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/it (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/latam (54%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/level5 (80%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/nl (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/no (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/pl (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/pt (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/ro (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/rs (98%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/ru (86%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/se (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/si (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/sk (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/tr (100%) rename {x-mod_v2-12-1_2015-01-18 => x-mod_v2-17-1ub1_2016-06-06}/xkb/symbols/us (98%) create mode 100644 x-mod_v2-17-1ub1_2016-06-06/xkb/types/level5 diff --git a/README.md b/README.md index 3119ed7..2c06b8e 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,26 @@ DreymaR's Big Bag of Keyboard Tricks ==================================== -For Linux (updated to XKB-data v2.12.1) +For Linux (updated to XKB-data v2.17.1ub1, 2016-06) + +* New "Colemak[eD]" AltGr mappings (lv3-4) putting dead keys on AltGr+symbol keys and reworking most other mappings +* An "Extend" layer using Caps Lock as a modifier (lv5-8) for navigation/editing from the home position and more +* 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 +* 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 (or Colemak-Curl) 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! -* New "Colemak[eD]" AltGr mappings (lv 3-4) putting dead keys on AltGr+symbol keys and reworking most other mappings -* An Extend layer using Caps Lock for its modifier (lv 5-8; "Extend") for navigation from the home position and more -* Angle/Wide modifications to improve wrist angles, hand spacing and right pinky stretch/load effort -* Curl modifications to improve hand curvature -* 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 Cyrillic, Greek and Hebrew letters using layout toggling to intuitive phonetic Colemak layouts -* Access to a mirrored Colemak that allows one-handed typing (I haven't used it much - but if I ever break an arm...!) -* The 4 Tarmak transitional Colemak layouts for learning Colemak in smaller steps if so desired Links ----- -See the [DREYMAR'S (XKB) topic on the Colemak Forums](http://forum.colemak.com/viewtopic.php?id=1438) (http://forum.colemak.com) -There are plenty of explanations and further links in there, as well as links to files +See the [DREYMAR'S (XKB) topic on the Colemak Forums](http://forum.colemak.com/viewtopic.php?id=1438) (http://forum.colemak.com). +There are plenty of explanations and further links in there, as well as links to files. \ No newline at end of file diff --git a/README_dreymar-xmod.txt b/README_dreymar-xmod.txt deleted file mode 100644 index c6ffb41..0000000 --- a/README_dreymar-xmod.txt +++ /dev/null @@ -1,24 +0,0 @@ -# ================================================================= -# === INSTALL-DREYMAR-XMOD.sh for DreymaR's XKB modifications === -# === by リystein Bech "DreymaR" Gadmar, 2015 === -# ================================================================= -# -# DreymaR's Big Bag Of Tricks install script (by GadOE, 2015-01) -# -# Shell script to apply DreymaR's changes to the X keyboard files: -# - AngleWide Ergonomic keyboard models for pc104/pc105 keyboards, -# - Extend mappings as a Misc option and CapsLock as a chooser (using lv5-8), -# - the Colemak [edition DreymaR] layout, using my own lv3-4 mappings, -# - locale variants of Colemak[eD] with 'local' or 'unified' symbol keys, -# - mirrored Colemak[eD] for one-handed typing, -# - and the Tarmak(1-4) transitional (step-by-step) Colemak learning layouts. -# -# - By default, this script creates a backup of the X11 files if none exist. -# - With '-o', overwrite the system X11 files (makes the mod GUI accessible). -# - With '-s ', specify a model/layout to activate immediately. -# (Shortstring format: -s '[4|5][n|a|w] loc [ks|us]'; 'loc'(ale) is 2-letter. -# Some model shortstr examples: '4n' is pc104, '5w' is pc105AngleWide etc. -# E.g.: -s '5n fr us' is normal pc105 model, French Colemak[eD]'USym'.) -# - With '-?', list further instructions and default values. -# -# Happy xkb-hacking! リystein Bech "DreymaR" Gadmar diff --git a/console/Colemak_ConsoleMode.txt b/console/Colemak_ConsoleMode.txt new file mode 100644 index 0000000..f952be4 --- /dev/null +++ b/console/Colemak_ConsoleMode.txt @@ -0,0 +1,11 @@ +From http://colemak.com/Unix + +Linux in text console mode +覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 + Download, untar/gunzip archive + Under Debian/Ubuntu/Knoppix/Debian derivatives type: install-keymap linux_console/colemak.iso15.kmap to install as the default layout. + Type: loadkeys linux_console/colemak.iso15.kmap to switch layouts. + To switch to a ISO8859-15 compatible font type: consolechars -f lat9v-14 + To switch back to QWERTY type: loadkeys us +覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 + diff --git a/console/colemak.iso15.kmap b/console/colemak.iso15.kmap new file mode 100644 index 0000000..eca4f1a --- /dev/null +++ b/console/colemak.iso15.kmap @@ -0,0 +1,75 @@ +# colemak.kmap for Linux console. +# 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain. +alt_is_meta +charset "iso-8859-15" # use a ISO-8859-15 font, e.g.: consolechars -f lat9v-14 +keymaps 0-12 +include "qwerty-layout" +include "linux-with-alt-and-altgr" +strings as usual + +keycode 41 = grave asciitilde dead_tilde asciitilde nul +keycode 2 = one exclam exclamdown onesuperior +keycode 3 = two at masculine twosuperior nul +keycode 4 = three numbersign ordfeminine threesuperior Escape +keycode 5 = four dollar cent sterling Control_backslash +keycode 6 = five percent euro yen Control_bracketright # EuroSign yen +keycode 7 = six asciicircum asciitilde asciitilde Control_asciicircum # hstroke Hstroke +keycode 8 = seven ampersand eth ETH Control_underscore +keycode 9 = eight asterisk thorn THORN Delete +keycode 10 = nine parenleft asciitilde asciitilde # leftsinglequotemark leftdoublequotemark +keycode 11 = zero parenright asciitilde asciitilde # rightsinglequotemark rightdoublequotemark +keycode 12 = minus underscore asciitilde asciitilde Control_underscore # endash emdash +keycode 13 = equal plus multiply division + +keycode 16 = q Q adiaeresis Adiaeresis Control_q +keycode 17 = w W aring Aring Control_w +keycode 18 = f F atilde Atilde Control_f +keycode 19 = p P oslash Ooblique Control_p +keycode 20 = g G asciitilde asciitilde Control_g # dead_ogonek asciitilde +keycode 21 = j J asciitilde asciitilde Control_j # dstroke Dstroke +keycode 22 = l L asciitilde asciitilde Control_l # lstroke Lstroke +keycode 23 = u U uacute Uacute Control_u +keycode 24 = y Y udiaeresis Udiaeresis Control_y +keycode 25 = semicolon colon odiaeresis Odiaeresis +keycode 26 = bracketleft braceleft guillemotleft asciitilde Escape # guillemotleft 0x1002039 +keycode 27 = bracketright braceright guillemotright asciitilde Control_bracketright # guillemotright 0x100203a +keycode 43 = backslash bar asciitilde asciitilde Control_backslash + +keycode 30 = a A aacute Aacute Control_a +keycode 31 = r R dead_grave asciitilde Control_r +keycode 32 = s S ssharp asciitilde Control_s +keycode 33 = t T dead_acute asciitilde Control_t # dead_acute dead_doubleacute +keycode 34 = d D dead_diaeresis asciitilde Control_d +keycode 35 = h H asciitilde asciitilde Control_h # dead_caron asciitilde +keycode 36 = n N ntilde Ntilde Control_n +keycode 37 = e E eacute Eacute Control_e +keycode 38 = i I iacute Iacute Control_i +keycode 39 = o O oacute Oacute Control_o +keycode 40 = apostrophe quotedbl otilde Otilde + +keycode 44 = z Z ae AE Control_z +keycode 45 = x X dead_circumflex asciitilde Control_x +keycode 46 = c C ccedilla Ccedilla Control_c +keycode 47 = v V oe OE Control_v +keycode 48 = b B asciitilde asciitilde Control_b # dead_breve asciitilde +keycode 49 = k K asciitilde asciitilde Control_k # dead_abovering asciitilde +keycode 50 = m M asciitilde asciitilde Control_m # dead_macron asciitilde +keycode 51 = comma less dead_cedilla asciitilde +keycode 52 = period greater asciitilde asciitilde # dead_abovedot asciitilde +keycode 53 = slash question questiondown asciitilde Delete + +keycode 58 = BackSpace BackSpace BackSpace BackSpace +keycode 86 = minus underscore asciitilde asciitilde Control_underscore # endash emdash +keycode 57 = space space space nobreakspace nul + + +keycode 1 = Escape +keycode 14 = Delete +keycode 15 = Tab +keycode 28 = Return + alt keycode 28 = Meta_Control_m +keycode 29 = Control +keycode 42 = Shift +keycode 54 = Shift +keycode 56 = Alt +keycode 97 = Control diff --git a/console/data_keymaps_i386_colemak_en-latin9.map b/console/data_keymaps_i386_colemak_en-latin9.map new file mode 100644 index 0000000..eca4f1a --- /dev/null +++ b/console/data_keymaps_i386_colemak_en-latin9.map @@ -0,0 +1,75 @@ +# colemak.kmap for Linux console. +# 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain. +alt_is_meta +charset "iso-8859-15" # use a ISO-8859-15 font, e.g.: consolechars -f lat9v-14 +keymaps 0-12 +include "qwerty-layout" +include "linux-with-alt-and-altgr" +strings as usual + +keycode 41 = grave asciitilde dead_tilde asciitilde nul +keycode 2 = one exclam exclamdown onesuperior +keycode 3 = two at masculine twosuperior nul +keycode 4 = three numbersign ordfeminine threesuperior Escape +keycode 5 = four dollar cent sterling Control_backslash +keycode 6 = five percent euro yen Control_bracketright # EuroSign yen +keycode 7 = six asciicircum asciitilde asciitilde Control_asciicircum # hstroke Hstroke +keycode 8 = seven ampersand eth ETH Control_underscore +keycode 9 = eight asterisk thorn THORN Delete +keycode 10 = nine parenleft asciitilde asciitilde # leftsinglequotemark leftdoublequotemark +keycode 11 = zero parenright asciitilde asciitilde # rightsinglequotemark rightdoublequotemark +keycode 12 = minus underscore asciitilde asciitilde Control_underscore # endash emdash +keycode 13 = equal plus multiply division + +keycode 16 = q Q adiaeresis Adiaeresis Control_q +keycode 17 = w W aring Aring Control_w +keycode 18 = f F atilde Atilde Control_f +keycode 19 = p P oslash Ooblique Control_p +keycode 20 = g G asciitilde asciitilde Control_g # dead_ogonek asciitilde +keycode 21 = j J asciitilde asciitilde Control_j # dstroke Dstroke +keycode 22 = l L asciitilde asciitilde Control_l # lstroke Lstroke +keycode 23 = u U uacute Uacute Control_u +keycode 24 = y Y udiaeresis Udiaeresis Control_y +keycode 25 = semicolon colon odiaeresis Odiaeresis +keycode 26 = bracketleft braceleft guillemotleft asciitilde Escape # guillemotleft 0x1002039 +keycode 27 = bracketright braceright guillemotright asciitilde Control_bracketright # guillemotright 0x100203a +keycode 43 = backslash bar asciitilde asciitilde Control_backslash + +keycode 30 = a A aacute Aacute Control_a +keycode 31 = r R dead_grave asciitilde Control_r +keycode 32 = s S ssharp asciitilde Control_s +keycode 33 = t T dead_acute asciitilde Control_t # dead_acute dead_doubleacute +keycode 34 = d D dead_diaeresis asciitilde Control_d +keycode 35 = h H asciitilde asciitilde Control_h # dead_caron asciitilde +keycode 36 = n N ntilde Ntilde Control_n +keycode 37 = e E eacute Eacute Control_e +keycode 38 = i I iacute Iacute Control_i +keycode 39 = o O oacute Oacute Control_o +keycode 40 = apostrophe quotedbl otilde Otilde + +keycode 44 = z Z ae AE Control_z +keycode 45 = x X dead_circumflex asciitilde Control_x +keycode 46 = c C ccedilla Ccedilla Control_c +keycode 47 = v V oe OE Control_v +keycode 48 = b B asciitilde asciitilde Control_b # dead_breve asciitilde +keycode 49 = k K asciitilde asciitilde Control_k # dead_abovering asciitilde +keycode 50 = m M asciitilde asciitilde Control_m # dead_macron asciitilde +keycode 51 = comma less dead_cedilla asciitilde +keycode 52 = period greater asciitilde asciitilde # dead_abovedot asciitilde +keycode 53 = slash question questiondown asciitilde Delete + +keycode 58 = BackSpace BackSpace BackSpace BackSpace +keycode 86 = minus underscore asciitilde asciitilde Control_underscore # endash emdash +keycode 57 = space space space nobreakspace nul + + +keycode 1 = Escape +keycode 14 = Delete +keycode 15 = Tab +keycode 28 = Return + alt keycode 28 = Meta_Control_m +keycode 29 = Control +keycode 42 = Shift +keycode 54 = Shift +keycode 56 = Alt +keycode 97 = Control diff --git a/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-bg.png b/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-bg.png index 9031f31db4ffae6432f498b1b40af5fdabbcaddf..0719ae889b4ea40a17bd49c96e827581b118d2ff 100644 GIT binary patch literal 41550 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�+S{Yf^8d5; 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 LoM@G>e!%|%-oqG> diff --git a/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-bg_2015-02.png b/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-bg_2015-02.png new file mode 100644 index 0000000000000000000000000000000000000000..9031f31db4ffae6432f498b1b40af5fdabbcaddf GIT binary patch literal 31523 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�+S{Yf^8d5; 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 LoM@G>e!%|%-oqG> literal 0 HcmV?d00001 diff --git a/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-ru.png b/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-ru.png index fa654a94bce163e83577964c0c8b2a49b8e48fd1..90aa694e6c59b8473b37824cb2764a29559d9809 100644 GIT binary patch literal 41485 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 literal 31463 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 diff --git a/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-ru_2015-02.png b/docs_dreymar-xmod/Cmk-phon-locales_X-img/Cmk-X-phon-ru_2015-02.png new file mode 100644 index 0000000000000000000000000000000000000000..fa654a94bce163e83577964c0c8b2a49b8e48fd1 GIT binary patch literal 31463 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 literal 0 HcmV?d00001 diff --git a/docs_dreymar-xmod/Extend-ISO-NoWi-Linux_90d.png b/docs_dreymar-xmod/Extend-ISO-NoWi-Linux_90d.png new file mode 100644 index 0000000000000000000000000000000000000000..41df46a21505be628ca39ca0e076f8bf58d4d2e9 GIT binary patch literal 63583 zcmd?Rg;$hc+cu0MC?cS=q>6MYEh!)%(p>{cOLwQz-5@cf)C`?N=g=wO&?7l?cfJ?T zy`JyBf6w!+_aAtd@{bD#S>j^jKCRg{;)c}n&a4Gj%P`tv7cG&FP;G_(g+ zPcVTaY|=tgz#FEajMOKzyZe7x%?0tm5iGmUT8_Xk5cmHdh%uzO0S6yDNy|w*Mq=P$ zd>|JhqHIS)dxa+bNmSKsW*hA6rfPQDBXSniHBa#B?IY|*uE}CD+0`F$n5r93Z02W6 ztaM#`8=Z3(O3156-$)RUNZKrWKi#oQd$Y` z+a!rMp(e4PolZ5?FVFUnIGWgxYB@$hV0m8S&LEt}+61c1waK3+@;7nrzh7;ES>J>SEHD28u2XSu2qsIAwd7B=ax?J*=~|1$$4ySj2exKM)G+1_DbsSqJgN=b|EAT0$~XI0fDeRE@B8fQgSIJ^Jq@_ zjy@ZoWV+fFD(km?e0-d&qf)z6j#z))?B?U5(Buqfn3@~W3!_xX`>7axtqAdnoy*4Ty<=`+k@kLIK4 zln3>)Im)KMqel&yb{aAooNgOLb)tXsK17H4uD#-F?AzHf;U=+1MFY zwYXG5*M^MTG>Qn~R_t|2U?gU+a62qf{=R=ynK=jRwQU|RKIL|W<4 zeCJT@NISAwuv&HzpDlUmU-uVk5^4f`L@YYcv80+xj1PM$NhnGvjc%PJwn2o4T`|>9 z_8NxsK47=NjqAP^)JzSqfI3#SLHGkpKID)d(tU{B?M9=zzfqBU(KHH*&sU zW5FH{UrN_u1ZJK1KD>bE2{k#uS;Q~Je9OZ9KrM0FijJ8Xsx7I;9S&`v`EFF2j^2CV zI=KzqtXCZ(#lb|U8&6?Pw&qE59M*xOYGcZ)B|TSHR-O|Q2DE<#=Fo!RB&e(MA2%EH zC_RT^1%=9V<}0j4UHX*PI{xOu$sG%sv?zJBf_o)X_X%So>a=ophmeS9ae3KauZ#pZ z5$8WoGz7W?P9$H@X;`7kUy({x1GbVAKvxxNc_TYX@P}*29hWFLe8w=xp=CQ!U-OG- z>`O4@w=mQ5#{AeMEx&wGJ3n60+l3)R_NwV^<8N|43?OA&E)AB<3tUCDv$M!+F@hrv z%CDR2Hj|sL7agKCYp1!R%vO{&t-39$jJU``BA>qDYtu2*+H?m7i@*LD2Mg99-%wOl z-C$g!O{?@l;q>xgWZsLz6?<&)w&|?Pq!7|SUp7dyqxyh%gmiF696v<$XK|C23ht53o zgOk&5f6n=-Pn8KV;-`Uy=;l#q4O!qz<``sTFz75LC|+=h7>Ao)dkb#FK5yR_rj%ZP z9yT**GNp-Rn60ne-s>!yzPJDy(Xzr>jwqL|CTbp@R>9 z%M;nXsq!2BNNrQ^^~80Ef~{hkZl}=kB=W}_f;>~5X+jz)@w$$L+^{m0TPv=0EbPNP zVc1Zg8pz^xK^CFEo|G)i7h0iFH2pyBtO0 z+l?4NU-dZqTRF2Wc-GFrg;SdLdnBb=)5=Bo%9*oo!(Gtv>eIEC;QSxGu$-8<*b$Ld z%}@w~pw}{~VeXF^Q1e&}$D=@;M*012UQ4ZJ)|YB(Pw-Cj3cCjBk9cB7g%i@uo|&#m zct6=caxh0~)*U@M(xCpkpd}vq>_A*i^%*}AxU^U)-UZ@!cjdsXA-@eTU#MVnlrx8d zYT%V{3)B&^cK>Ec_u2XwZupRV^3*%3RH0NG`xgO^E^YWJ410Gs$`6?*igvBaz`-2#SCbfBk{E~W zNOoG5DFiL-81-;o)p5>3`pID+zxK-teb&%cI-x#$6e)*DnFJyj&#+^ zq>h{TuCZ4iBVmbGVSHoIqEj7SeEp_H7Z%S<_x1(Z`Vd${j`qE9M_w5t%6}`ER^Z&c z5BJvX>^>KPc#;%MNe|elEP(C$SGIH}#_7j?|u*1d&IixugQc*2X z&Qsp5hseL){qmKd(6dCB9A(15n%Q{wLvSDv1_Di;d4?BVeGhqdq>Z-y_;|L3+ZAM7 zI2-gSB*nF=JjOE!ewOfvp?gcq55T`ojOVJn-JwBee6Katz>cH%FmM0oA`xU(_WQ8`T4w2SQi>@8oQqzxHx-gm>btflAl`AT1! z{&NM?xw4<=-NT`z8faN?yn4XvgDRjE0G9r;Q*7v8G}|S^AG(9|Ux88cY8E=5Wo~_M z^HuOZK{SAin$E{KguN^<#XX$u8u=kbFi>KZA!W^;Cb4^g%*Hr(SfC~D;XY0-lvdNa z2Io1|wv2R9AnVoddJjW|KUNBhe-EtGt!46k4WG^8{mNA#dgejt8D*-hsM$X(PCwmr z_UKmFB$t`owZM*xJNUpK|NL){^DmP%qnep17&AsZyuWXIoG@8avu>Hsb%<icpXStFMPI!pPyDkc4#etqozu7y zMu@mn$S@CRQe?_%mLsw7^!&B

R7eeI4r!w*FsP~{P@ISN-?*sijB8UPgeWt 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', specify a model/layout to activate immediately.\n"\ -" (Shortstr format: -s '[4|5][n|a|w|e|f] loc [ks|us]'; 'loc'(ale) is 2-letter.\n"\ -" Some model shortstr examples: '4n' is pc104, '5e' is pc105AngleWide etc.\n"\ +" (Shortstr format: -s '[4|5][n|a|b|v][w|f] loc [ks|us]'; 'loc'(ale) is 2-letter.\n"\ +" Some model shortstr examples: '4n' is pc104, '5aw' is pc105AngleWide etc.\n"\ " E.g.: -s '5n fr us' is normal pc105 model, French Colemak[eD]'USym'.)\n"\ -"- With '-?', list further instructions and default values.\n" +"- With '-?', list further instructions and default values.\n"\ +"- See http://forum.colemak.com/viewtopic.php?id=1438 for more info\n" +# FootStr="Happy xkb-hacking! ~ テystein Bech 'DreymaR' Gadmar" #"- With '-i

', specify a directory path/name to install in.\n"\ #"- With '-g', also install GTK 2.0/3.0 config for XF86 Cut/Copy/Paste.\n"\ @@ -31,10 +34,10 @@ FootStr="Happy xkb-hacking! ~ テystein Bech 'DreymaR' Gadmar" ## - It has subdirectories like 'xkb' that are to be installed (one, some or all) ## NOTE: This is the new preferred way instead of patching the system files: ## - Backup system xkb to dbak-xkb_ (and the same for any other subdirs) -## - Copy X11/xkb to ${InstDir}/dmod-xkb, then modify files in dmod-xkb -## - Set up setxkb.sh to run from the modified dmod-xkb +## - Copy X11/xkb to ${InstDir}/dxkb, then modify files in dxkb +## - Set up setxkb.sh to run from the modified dxkb [WARNING: This may not work now!] ## - Optionally (-o) overwrite the system files instead -## NOTE: The x-mod dir holds an xkb subfolder; later, there will be a locale dir too. +## NOTE: The x-mod dir now holds x-mod*/xkb; eventually there may be a locale dir too. ##-------------- init ------------------------------------------ @@ -45,7 +48,8 @@ MyNAME=`basename $0` MyPATH=`dirname $0` #~ XVERSION='2-5-1-3ub2' #~ XVERSION='2-10-1-1' -XVERSION='2-12-1' +#~ XVERSION='2-12-1' +XVERSION='2-17-1ub1' ## @@@ The default X11 dir under Debian/Ubuntu/etc is /usr/share/X11 @@@ ## @@@ The default X11 dir under some (older) distros is /usr/lib/X11 @@@ X11DIR='/usr/share/X11'; [ -d "${X11DIR}" ] || X11DIR='/usr/lib/X11' @@ -54,27 +58,27 @@ ModDATE='' DModDir=`dirname $0` # (-d) Path to the script (and mod?) root directory ToolDir="${DModDir}/dreymar-xtools" # The location of tool scripts (like setxkb.sh) DModTag="x-mod_v${XVERSION}_${ModDATE}" # (-t) Mod dir "prefix" -DBakFix='dbak-' # (--) Backup dir prefix -DModFix='dmod-' # (--) Modded dir prefix -#~ InstDir="${X11DIR}" # (-i) Path to install subfolder(s) in -InstDir="${HOME}/drey-xmod" # (-i) Path to install subfolder(s) in -WriteSys='no' # (-o) Overwrite the original xkb dir with the modded one -Restore='0' # (-r) Reverse: Restore from backup # instead of installing -DoBackup='ifnone' # (-n/b) Default backup behavior is "if no backups are found" -SubDirs='all' # (-m) Directory/-ies inside X11 to modify (e.g., 'xkb locale', 'all') -InstGTK='no' # (-g) Whether to install the GTK 2.0/3.0 config (if not present) -SetXMap='no' # (-x) Whether to run the setxkb script after installing -SetXStr='5aw us us' # (-s) Shortcut string for setxkb - 'mmm ll vv' (model layout eD-variant) +DBakFix='dbak-' # (--) Backup dir prefix +DModFix='d' # (--) Modded dir prefix +InstDir="${X11DIR}" # (-i) Path to install subfolder(s) in +#~ InstDir="${HOME}/drey-xmod" # (-i) Path to install subfolder(s) in +WriteSys='no' # (-o) Overwrite the original xkb dir with the modded one +Restore='0' # (-r) Reverse: Restore from backup # instead of installing +DoBackup='ifnone' # (-n/b) Default backup behavior is "if no backups are found" +SubDirs='all' # (-m) Directory/-ies inside X11 to modify (e.g., 'xkb locale', 'all') +InstGTK='no' # (-g) Whether to install the GTK 2.0/3.0 config (if not present) +SetXMap='no' # (-x) Whether to run the setxkb script after installing +SetXStr='5aw us us' # (-s) Shortcut string for setxkb - 'mmm ll vv' (model layout eD-variant) -HelpStr="Usage: bash ${MyNAME} [optional args]\n"\ +HelpStr="\e[1mUsage: bash ${MyNAME} [optional args]\e[0m\n"\ "Run this from the directory containing the x-mod dir\n"\ -"[-o] Overwrite system X11 directory - ${WriteSys}\n"\ +"[-i] - ${InstDir}\n"\ +"[-o] Override install path w/ X11 - ${WriteSys}\n"\ "[-b] Force backup | location - ${X11DIR}\n"\ "[-n] Force no backup | default - ${DoBackup}\n"\ -"[-r] <#> Restore backup - 1 is oldest - ${Restore}\n"\ -"[-m] - ${SubDirs}\n"\ -"[-i] - ${InstDir}\n"\ +"[-r] <#> Restore backup | 1 is oldest - ${Restore}\n"\ "[-d] - ${DModDir}\n"\ +"[-m] - ${SubDirs}\n"\ "[-t] - ${DModTag}\n"\ "[-g] Install GTK 2.0/3.0 edit config - ${InstGTK}\n"\ "[-x] Run the setxkbmap script, yes/no - ${SetXMap}\n"\ @@ -84,17 +88,19 @@ HelpStr="Usage: bash ${MyNAME} [optional args]\n"\ ##-------------- functions and line parser --------------------- -MyMsg() +MyMsg() # Formatted output: last arg is printf 'style[;fgcolor[;bgcolor]]' { - printf "\n@@@ $1 @@@\n\n" + # Style: 0-Off, 1-Bold, 4-Underscore, 5-Blink, 7-Reverse, 8-Concealed + # Color: (3#/4# FG/BG): 0-Black, 1-Red, 2-Green, 3-Yellow, 4-Blue, 5-Magenta, 6-Cyan, 7-White + printf "\n\e[${3:-1;32;40}m@@@ $1 @@@\e[0m\n$2" # default: Bold green on black } PrintHelpAndExit() { - MyMsg "${HeadStr}" + MyMsg "${HeadStr}" "\n" printf "${DescStr}\n" printf "${HelpStr}" - MyMsg "${FootStr}" + MyMsg "${FootStr}" "\n" exit $1 } @@ -104,9 +110,20 @@ MyEcho() [ -z "$2" ] || printf "$1\n" >> "$2" } +MyPoint() +{ + MyEcho "\e[1;32mツ、 \e[0m$@" # Bold green +} + +MyWarning() +{ + MyMsg "WARNING: ${@:-'Beware of nargles!'}" "\n" '1;36;44' # Bold cyan on blue +#~ exit 1 +} + MyError() { - MyMsg "$MyNAME - ERROR: ${@:-'Undefined error'}" + MyMsg "$MyNAME - ERROR: ${@:-'Undefined error'}" "\n" '1;37;41' # Bold white on red exit 1 } @@ -115,7 +132,7 @@ MyError() #~ OldDir=`pwd` #~ NewDir=${1:-`pwd`} #~ cd ${NewDir} || MyError "Change to '${NewDir}' failed" - #~ MyEcho "ツ、 Changed dir to '${NewDir}'" + #~ MyPoint "Changed dir to '${NewDir}'" #~ } #~ if [ "$#" == 0 ]; then PrintHelpAndExit 2; fi # No args @@ -143,12 +160,12 @@ done ##-------------- main ------------------------------------------ MyMsg "$HeadStr" -#~ MyEcho "ツ、 Working from '`pwd`'" +#~ MyPoint "Working from '`pwd`'" ## Check for a mod dir (the latest found) and if found, get its full name DModDir=`find "${DModDir%/}/${DModTag}"* -maxdepth 0 -type d 2>/dev/null | tail -n 1` [ -n "${DModDir}" ] || MyError "Mod root dir not found!" -MyEcho "ツ、 Found mod root dir '${DModDir}'" +MyPoint "Found mod root dir '${DModDir}'" ## Read the mod subdirs if [ "${SubDirs}" == "all" ]; then @@ -156,7 +173,7 @@ if [ "${SubDirs}" == "all" ]; then SubDirs=`echo ${SubDirs}` # A trick to make a var space separated for the following echo cmd [ -n "${SubDirs}" ] || MyError "No mod subdirs found!" fi -MyEcho "ツ、 Subdirectories to mod: '${SubDirs}'" +MyPoint "Subdirectories to mod: '${SubDirs}'" ## For each subdir, backup if either DoBackup = 'yes' or DoBackup = 'ifnone' and no backup exists BackIt='' @@ -164,7 +181,7 @@ if [ ${DoBackup} == 'yes' ]; then BackIt="${SubDirs}" elif [ ${DoBackup} == 'ifnone' ] && [ ${Restore} == '0' ]; then for That in ${SubDirs}; do - MyEcho "ツ、 Looking for '${That}' backup in '${X11DIR}'..." + MyPoint "Looking for '${That}' backup in '${X11DIR}'..." # Test for (at least one) backup dir; if none found then proceed without errors # if [ -z `find "${X11DIR}/${DBakFix}${That}"* -maxdepth 0 -type d 2>/dev/null | head -n 1` ]; then if [ -z `find "${X11DIR}/${DBakFix}${That}"* -maxdepth 0 -type d -print -quit 2>/dev/null` ]; then @@ -173,13 +190,21 @@ elif [ ${DoBackup} == 'ifnone' ] && [ ${Restore} == '0' ]; then fi done fi -[ -z "${BackIt}" ] && MyEcho "ツ、 Backing up: None" || MyEcho "ツ、 Backing up: '${BackIt}'" +[ -z "${BackIt}" ] && MyPoint "Backing up: None" || MyPoint "Backing up: '${BackIt}'" + +## Check for root privileges (if not root, sudo command); note that root is only needed in some cases! +DoSudo='' +if [ "$EUID" -ne 0 ]; then # not root, so test for and use sudo instead (but some distros don't have it!) + #[ command -v sudo >/dev/null 2>&1 ] || MyError "Root access needed - sudo won't run!" + ( command -v sudo >/dev/null 2>&1 ) || MyWarning "Root/superuser access may be needed!" + DoSudo='sudo' +fi ## Perform the actual backup(s) ## NOTE: cp -a makes an "archive" copy, preserving all attributes and links for That in ${BackIt}; do [ -d "${X11DIR}/${That}" ] || MyError "Unable to backup '${That}': Directory not found!" - sudo cp -a "${X11DIR}/${That}" "${X11DIR}/${DBakFix}${That}_${MyDATE}" || MyError "Copy error!" + ${DoSudo} cp -a "${X11DIR}/${That}" "${X11DIR}/${DBakFix}${That}_${MyDATE}" || MyError "Copy error!" done ## For each subfolder: Restore from backup #, overwrite X11 files or make new mod folder @@ -188,22 +213,28 @@ for That in ${SubDirs}; do ## Restore from backup. Pick a backup # by parameter, 1 being oldest; use 999 or such for the last one BackIt=`find "${X11DIR}/${DBakFix}${That}"* -maxdepth 0 -type d 2>/dev/null | head -n ${Restore} | tail -n 1` [ -d "${BackIt}" ] || MyError "Unable to restore from '$(basename ${BackIt})': Not found!" - MyEcho "ツ、 Restoring from backup '$(basename "${BackIt}")'" - sudo cp -a "${BackIt}/"* "${X11DIR}/${That}" 2>/dev/null || MyError "Restore copy error!" + MyPoint "Restoring from backup '$(basename "${BackIt}")'" + ${DoSudo} cp -a "${BackIt}/"* "${X11DIR}/${That}" 2>/dev/null \ + && MyPoint "Restore done" || MyError "Restore copy error!" XKBDir="${X11DIR}/xkb" # Setxkbmap will default to the X11 dir, but this makes it unambigous - elif [ ${WriteSys} == 'yes' ] && [ -d "${DModDir}/${That}" ]; then # Overwrite system files - MyEcho "ツ、 Replacing files in '${X11DIR}/${That}' with mod" - sudo cp -a "${DModDir}/${That}/"* "${X11DIR}/${That}" 2>/dev/null || MyError "System files copy error!" + elif [ ${WriteSys} == 'yes' ] || [ ${InstDir} == ${X11DIR} ] && [ -d "${DModDir}/${That}" ]; then # Overwrite OS files + MyPoint "Replacing files in '${X11DIR}/${That}' with mod" + ${DoSudo} cp -a "${DModDir}/${That}/"* "${X11DIR}/${That}" 2>/dev/null \ + && MyPoint "System install done" || MyError "System files copy error!" XKBDir="${X11DIR}/xkb" else ## Make new mod folder (will not show up in keyboard settings GUI; use setxkbmap instead) - DoSudo=''; mkdir -p "${InstDir}" 2>/dev/null && [ -w "${InstDir}" ] || DoSudo='sudo' + DoSudo='' + mkdir -p "${InstDir}" 2>/dev/null && [ -w "${InstDir}" ] || DoSudo='sudo' # check whether sudo is needed MyDir="${InstDir%/}/${DModFix}${That}" #~ MyDir="$(dirname "${MyDir}")/${DModFix}$(basename "${MyDir}")" # Insert prefix in path/name - MyEcho "ツ、 Installing mod files in '${MyDir}'" + MyPoint "Installing mod files in '${MyDir}'" + MyWarning "It seems that setxkbmap w/ local dir isn't working now?!" ${DoSudo} mkdir -p "${MyDir}" || MyError "Can't make '${MyDir}'!" ${DoSudo} cp -a "${X11DIR}/${That}/"* "${MyDir}" 2>/dev/null || MyError "Local files copy error!" - ${DoSudo} cp -a "${DModDir}/${That}/"* "${MyDir}" 2>/dev/null || MyError "Local files copy error!" + ${DoSudo} cp -a "${DModDir}/${That}/"* "${MyDir}" 2>/dev/null \ + && MyPoint "Local install done" || MyError "Local files copy error!" XKBDir="${InstDir%/}/${DModFix}xkb" # Prepare for setxkbmap + cp -a setxkb.sh ${InstDir} # Copy over the setxkb.sh script to the new dir fi done @@ -218,15 +249,15 @@ fi #~ MyMsg "Press any key to set the new xkb map${That}, or 'q' to quit" #~ read -p '$>' -n 1 keypress #~ if [ "${keypress}" == 'q' ]; then + ## If selected, call the DreymaR setxkbmap script to activate the new (default) layout if [ "${SetXMap}" != 'yes' ]; then - MyEcho; MyMsg "XKBmap activation skipped" + MyMsg "XKBmap activation skipped" "" '1;33;40' else - #~ "${ToolDir}/setxkb.sh" -p $(dirname "${XKBDir}") -d $(basename "${XKBDir}") || MyError "setxkb.sh failed!" - "./setxkb.sh" -d "${XKBDir}" -s "${SetXStr}" || MyError "setxkb.sh failed!" + bash ./setxkb.sh -d "${XKBDir}" -s "${SetXStr}" || MyError "setxkb.sh failed!" fi -MyMsg "${MyNAME} finished!" +MyMsg "${MyNAME} finished!" "\n" exit 0 ##-------------- misc ------------------------------------------ diff --git a/setxkb.sh b/setxkb.sh index a00555a..648bf8f 100644 --- a/setxkb.sh +++ b/setxkb.sh @@ -7,21 +7,22 @@ HeadStr="DreymaR's setxkbmap script (by GadOE, 2015-01)" DescStr=\ -"Shell script to change X.org keyboard setup\n"\ -" using the 'setxkbmap' command.\n"\ -" To override system settings after logon,\n"\ -" source it, e.g., in your ~/.bashrc file\n" +"\e[1mShell script to change X.org keyboard setup\e[0m\n"\ +" using the 'setxkbmap' command.\n"\ +" To override system settings after logon,\n"\ +" source it, e.g., in your ~/.bashrc file,\n"\ +" or use -a to write the setxkbmap command to a file.\n" FootStr="Happy xkb-hacking! ~ テystein Bech 'DreymaR' Gadmar" ## NOTE: It now works with local xkb(-mod) dir -# By default, setxkbmap checks ./rules first! -# Need a full xkb dir then (not just the xkb-mod files) +# By default, setxkbmap checks ./rules first! +# Need a full xkb dir then (not just the xkb-mod files) ## NOTE: I made a handy shorthand for activating simple cmk_ed model/layout combos. -# Example: -s '5w no us' activates model pc105awide-sl, layout no(cmk_ed_us) -# Options left out of this: Too complex (replace all or add another, and if so, how?) -# Models: 4n 4a(pc104angle-z) 4w(pc104wide-qu) 4e(pc104awide-zqu) 4f(pc104aframe) -# 5n 5a(pc105angle-lg) 5w/5e(pc105awide-sl) +# Example: -s '5w no us' activates model pc105awide-sl, layout no(cmk_ed_us) +# Models: 4n 4a(pc104angle-z) 4w(pc104wide-qu) 4aw(pc104awide-zqu) 4f(pc104aframe) +# 5n 5a(pc105angle-lg) 5w/5aw(pc105awide-sl) +# Options left out of this: Too complex (replace all or add another, and if so, how?) ##-------------- init ------------------------------------------ ## NOTE: '#(-a)' means that the value can be set by a command-line argument '-a ' @@ -35,15 +36,19 @@ X11DIR='/usr/share/X11'; [ -d "${X11DIR}" ] || X11DIR='/usr/lib/X11' #~ XKBmodel=pc104awide-zqu # ANSI-104 keyboard w/ Angle(Z)Wide(Quote) mod XKBmodel=pc105awide-sl # ISO-105 keyboard w/ AngleWide(Slash) mod +#~ XKBmodel=pc105caw-bksl # ISO-105 w/ Curl(DbgHk)AngleWide(Slash) mod #~ XKBlayout='us(cmk_ed_us),gr(colemak),ru(colemak)' XKBlayout='no(cmk_ed_us)' # Norwegian Colemak[eD]'Universal Symbols' layout XKBoption='misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu' VerboseLvl=9 # (-v) How much info should setxkbmap print out? KeepXKM='no' # (-k) Retain old /var/lib/xkb/server-*.xkm files? XKBdir="${X11DIR}/xkb" # (-d) The xkb-type dir to run setxkbmap from +AddCmd='no' # (-a) Add setxkbmap cmd to file? +AddDefault="${HOME}/.bashrc" +AddCmdTo=${AddDefault} # (-f) File (such as '~/.bashrc') to add setxkbmap cmd to SetXStr='' #'5aw no us' # (-s) Shortcut string for setxkb - 'model locale eD-variant(sym)' -HelpStr="Usage: bash ${MyNAME} [optional args]\n"\ +HelpStr="\e[1mUsage: bash ${MyNAME} [optional args]\e[0m\n"\ "[-m] - '${XKBmodel}'\n"\ "[-l] - '${XKBlayout}'\n"\ "[-o] - microsoftmult + microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A Microsoft Inc. - microsoftelite + microsoftelite Microsoft Natural Keyboard Elite Microsoft Inc. - microsoftccurve2k + microsoftccurve2k Microsoft Comfort Curve Keyboard 2000 Microsoft Inc. @@ -1295,6 +1295,20 @@ htc + + + teck227 + Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) + Megawin Technology + + + + + teck229 + Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) + Megawin Technology + + @@ -1382,7 +1396,7 @@ dvp - English (programmer Dvorak) + English (Programmer Dvorak) @@ -1406,9 +1420,11 @@ altgr-intl English (international AltGr dead keys) - eng - fra - ger + + eng + fra + ger + @@ -1421,11 +1437,13 @@ hbs Serbo-Croatian (US) - eng - bos - hbs - hrv - srp + + eng + bos + hbs + hrv + srp + @@ -1572,6 +1590,12 @@ Arabic (Buckwalter) + + + mac + Arabic (Macintosh) + + @@ -1717,9 +1741,11 @@ be Belgian - ger - nld - fra + + ger + nld + fra + @@ -1774,6 +1800,8 @@ Bangla ben + + sat @@ -1801,6 +1829,8 @@ Bangla (India) ben + + sat @@ -1812,6 +1842,8 @@ Bangla (India, Probhat) ben + + sat @@ -1819,35 +1851,53 @@ ben_baishakhi Bangla (India, Baishakhi) - ben + + ben + + sat + ben_bornona Bangla (India, Bornona) - ben - + + ben + + sat + + ben_gitanjali Bangla (India, Uni Gitanjali) - ben + + ben + + sat + ben_inscript Bangla (India, Baishakhi Inscript) - ben + + ben + + sat + eeyek Manipuri (Eeyek) - mni + + mni + @@ -1933,7 +1983,9 @@ ml Malayalam (enhanced Inscript, with rupee sign) - mal + + mal + @@ -1944,6 +1996,20 @@ Oriya ori + + sat + + + + + + olck + + sat + Ol Chiki + + + sat @@ -2206,6 +2272,12 @@ + + + thinkpad + Portuguese (Brazil, IBM/Lenovo ThinkPad) + + @@ -2326,14 +2398,18 @@ cm English (Cameroon) - eng + + eng + french French (Cameroon) - fra + + fra + @@ -2546,7 +2622,7 @@ ug Uyghur - ug + uig @@ -2630,6 +2706,17 @@ Czech (US Dvorak with CZ UCW support) + + + rus + + ru + Russian (Czech, phonetic) + + rus + + + @@ -2817,8 +2904,10 @@ ar Iraqi - ara - kur + + ara + kur + @@ -2919,7 +3008,9 @@ smi Northern Saami (Finland) - sme + + sme + @@ -2928,6 +3019,12 @@ Finnish (Macintosh) + + + das + Finnish (DAS) + + @@ -3019,6 +3116,12 @@ French (Macintosh) + + + azerty + French (Azerty) + + bre @@ -3232,14 +3335,18 @@ ro Romanian (Germany) - rum + + rum + ro_nodeadkeys Romanian (Germany, eliminate dead keys) - rum + + rum + @@ -3511,6 +3618,12 @@ Icelandic (eliminate dead keys) + + + mac_legacy + Icelandic (Macintosh, legacy) + + mac @@ -3699,16 +3812,20 @@ ru Russian (Kazakhstan, with Kazakh) - kaz - rus + + kaz + rus + kazrus Kazakh (with Russian) - kaz - rus + + kaz + rus + @@ -3728,7 +3845,8 @@ stea Lao (STEA proposed standard layout) - lao + + lao @@ -3786,6 +3904,12 @@ Spanish (Latin American, Sun dead keys) + + + dvorak + Spanish (Latin American, Dvorak) + + @@ -4058,7 +4182,7 @@ Norwegian (Macintosh, eliminate dead keys) - + colemak Norwegian (Colemak) @@ -4120,7 +4244,9 @@ szl Silesian - szl + + szl + @@ -4381,8 +4507,10 @@ srp Serbian (Russia) - rus - srp + + rus + srp + @@ -4403,6 +4531,18 @@ + + + phonetic_azerty + Russian (phonetic azerty) + + + + + phonetic_fr + Russian (phonetic French) + + @@ -4662,7 +4802,9 @@ swl Swedish Sign Language - swl + + swl + @@ -4673,8 +4815,10 @@ de German (Switzerland) - ger - gsw + + ger + gsw + @@ -4865,6 +5009,13 @@ + + + us + us + Sinhala (US keyboard with Sinhala letters) + + @@ -5360,6 +5511,8 @@ Nepali nep + + sat @@ -5531,6 +5684,16 @@ + + + tg + fr-tg + French (Togo) + + fra + + + ke @@ -5572,33 +5735,37 @@ ph Filipino - eng - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + eng + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + qwerty-bay Filipino (QWERTY Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -5611,16 +5778,18 @@ capewell-dvorak-bay Filipino (Capewell-Dvorak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -5633,16 +5802,18 @@ capewell-qwerf2k6-bay Filipino (Capewell-QWERF 2006 Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -5655,16 +5826,18 @@ colemak-bay Filipino (Colemak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -5677,16 +5850,18 @@ dvorak-bay Filipino (Dvorak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -5696,7 +5871,9 @@ md md Moldavian - rum + + rum + @@ -5704,7 +5881,9 @@ gag gag Moldavian (Gagauz) - gag + + gag + @@ -5842,7 +6021,7 @@ grp:rctrl_rshift_toggle Right Ctrl+Right Shift - + + + + @@ -6542,7 +6744,7 @@ + + + korean + Korean Hangul/Hanja keys + + + + + esperanto diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/al b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/al similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/al rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/al diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/at b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/at similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/at rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/at diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/ba b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ba similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/ba rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ba diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/be b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/be similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/be rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/be diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/bg b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/bg similarity index 99% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/bg rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/bg index f44b5c6..1de6c30 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/bg +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/bg @@ -190,7 +190,7 @@ xkb_symbols "bas_phonetic" { // This is an extended variant of the standard Latin QWERTY layout with // additional symbols in levels 3 and 4. -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "latin" { key {[ grave, asciitilde, U2248, U2245 ]}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/br b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/br similarity index 99% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/br rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/br index 85f5f55..b7a76d5 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/br +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/br @@ -64,7 +64,7 @@ partial alphanumeric_keys xkb_symbols "thinkpad" { include "br(abnt2)" - name[Group1]="Portuguese (Brazil)"; + name[Group1]="Portuguese (Brazil, IBM/Lenovo ThinkPad)"; key { [ slash, question, degree, questiondown ] }; }; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/ca b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ca similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/ca rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ca diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/cz b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/cz similarity index 64% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/cz rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/cz index 97ab3cf..22caf6d 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/cz +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/cz @@ -177,6 +177,76 @@ xkb_symbols "dvorak-ucw" { include "level3(ralt_switch)" }; +// phonetic layout for Russian letters on an CZ (QWERTY) keyboard +// originaly created by Pavel Sorejs + +partial alphanumeric_keys +xkb_symbols "rus" { + + include "cz(qwerty)" + name[Group1]= "Russian (Czech, phonetic)"; + + key { [ plus, ampersand, 1 , 1 ] }; + key { [ Cyrillic_hardsign, 2, 2 , 2 ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, 3 , 3 ] }; + key { [ Cyrillic_che, Cyrillic_CHE, 4 , 4 ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, 5 , 5 ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, 6 , 6 ] }; + key { [ quotedbl, 4, 7 , 7 ] }; + key { [ section, 5, 8 , 8 ] }; + key { [ dollar, 6, 9 , 9 ] }; + key { [ equal, 7, 0 , 0 ] }; + key { [ percent, 8 ] }; + key { [ apostrophe, 9 ] }; + + key { [ comma, question ] }; + key { [ period, exclam ] }; + key { [ minus, slash ] }; + + key { [ semicolon, colon ] }; + + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + + + key { [ numerosign, 1, q, Q ] }; + key { [ Cyrillic_yu, Cyrillic_YU, w, W ] }; + key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; + key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; + key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; + key { [ Cyrillic_u, Cyrillic_U, u, U ] }; + key { [ Cyrillic_i, Cyrillic_I, i, I ] }; + key { [ Cyrillic_o, Cyrillic_O, o, O ] }; + key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; + key { [ Cyrillic_e, Cyrillic_E, bracketleft, division ] }; + key { [ parenright, parenleft, bracketright, multiply ] }; + + key { [ Cyrillic_a, Cyrillic_A, a, A ] }; + key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; + key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; + key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; + key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] }; + key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; + key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, less, greater ] }; + + key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; + key { [ Cyrillic_ya, Cyrillic_YA, x, X ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, c, C ] }; + key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; + key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; + key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; + key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; + + key { [ backslash, brokenbar ] }; + + include "level3(ralt_switch)" +}; + // EXTRAS: partial alphanumeric_keys diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/de b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/de similarity index 84% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/de rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/de index 368456c..c16a462 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/de +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/de @@ -43,6 +43,7 @@ xkb_symbols "basic" { key { [ comma, semicolon, periodcentered, multiply ] }; key { [ period, colon, U2026, division ] }; key { [ minus, underscore, endash, emdash ] }; + key { [ less, greater, bar, NoSymbol ] }; include "kpdl(comma)" @@ -338,7 +339,7 @@ xkb_symbols "neo_base" { // Alphanumeric-keys // =============== - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; // Tab as Multi_key (Compose) // -------------------------------------------------------------- @@ -366,7 +367,7 @@ xkb_symbols "neo_base" { // Top row // -------------------------------------------------------------- - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] }; key { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] }; key { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] }; @@ -381,12 +382,12 @@ xkb_symbols "neo_base" { key { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ dead_acute, dead_tilde, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] }; // Middle row // -------------------------------------------------------------- - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] }; key { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] }; key { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] }; @@ -411,12 +412,12 @@ xkb_symbols "neo_base" { key { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] }; key { [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] }; key { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; // Space key // -------------------------------------------------------------- @@ -472,8 +473,8 @@ xkb_symbols "neo" { include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" - include "level5(lsgt_switch)" - include "level5(ralt_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" }; // Copied from macintosh_vndr/de @@ -636,6 +637,40 @@ xkb_symbols "ru" { include "level3(ralt_switch)" }; +partial alphanumeric_keys +xkb_symbols "pl" { + + // Combined layout for entering both German and Polish symbols on a German physical + // keyboard. Based on German (eliminate dead keys) and Polish (basic). Polish diacritics + // on AltGr+"acelnosxz". EuroSign moved to AE04 (AltGr+dollar key) to avoid conflict + // with Polish eogonek. + // + // https://github.com/kontextify/xkeyboard-config + + include "latin(type4)" + + name[Group1]= "Polish (Germany, eliminate dead keys)"; + + include "de(nodeadkeys)" + key { [ 4, dollar, EuroSign, currency ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ f, F ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + partial alphanumeric_keys xkb_symbols "htcdream" { include "inet(htcdream)" @@ -753,11 +788,11 @@ partial alphanumeric_keys xkb_symbols "adnw_base" { include "de(neo_base)" - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; @@ -781,7 +816,7 @@ xkb_symbols "adnw_base" { key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; - key { [ odiaeresis, odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; @@ -800,7 +835,61 @@ xkb_symbols "adnw" { include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" - include "level5(lsgt_switch)" - include "level5(ralt_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" }; +partial alphanumeric_keys +xkb_symbols "koy_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "koy" { + + include "de(koy_base)" + + name[Group1]= "German (KOY)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/dk b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/dk similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/dk rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/dk diff --git a/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/epo b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/epo new file mode 100644 index 0000000..1d40009 --- /dev/null +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/epo @@ -0,0 +1,150 @@ +// Esperanto keyboard maps -- "Ekverto" +// +// Ekverto A ("legacy") (2004-01-10) +// Chusslove Illich (トaslavo Iliト頴) +// +// Ekverto B ("basic") (2006-12-02) +// Benno Schulenberg (Beno Sト・ilenberト・) +// Chusslove Illich (トaslavo Iliト頴) + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "us(basic)" + name[Group1]= "Esperanto"; + + key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ scircumflex, Scircumflex, q, Q ] }; + key { [ gcircumflex, Gcircumflex, w, W ] }; + key { [ ccircumflex, Ccircumflex, x, X ] }; + key { [ ubreve, Ubreve, y, Y ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] }; + key { [ hcircumflex, Hcircumflex, bracketright, braceright ] }; + + key { [ o, O, braceleft, braceleft ] }; + key { [ p, P, braceright, braceright ] }; + + key { [ a, A, leftsinglequotemark, NoSymbol ] }; + key { [ s, S, rightsinglequotemark, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + + key { [ n, N, endash, endash ] }; + key { [ m, M, emdash, emdash ] }; + + key.type[Group1] = "FOUR_LEVEL"; + + key { [ 5, percent, EuroSign, EuroSign ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "legacy" { + + name[Group1]= "Esperanto (displaced semicolon and quote, obsolete)"; + + key.type[Group1] = "FOUR_LEVEL"; + + key { [ grave, asciitilde, NoSymbol, NoSymbol ] }; + key { [ 1, exclam, NoSymbol, NoSymbol ] }; + key { [ 2, quotedbl, NoSymbol, NoSymbol ] }; + key { [ 3, numbersign, NoSymbol, NoSymbol ] }; + key { [ 4, dollar, NoSymbol, NoSymbol ] }; + key { [ 5, percent, NoSymbol, NoSymbol ] }; + key { [ 6, apostrophe, NoSymbol, NoSymbol ] }; + key { [ 7, ampersand, NoSymbol, NoSymbol ] }; + key { [ 8, asterisk, NoSymbol, NoSymbol ] }; + key { [ 9, parenleft, NoSymbol, NoSymbol ] }; + key { [ 0, parenright, NoSymbol, NoSymbol ] }; + key { [ minus, underscore, NoSymbol, NoSymbol ] }; + key { [ equal, plus, NoSymbol, NoSymbol ] }; + + key { [ comma, semicolon, NoSymbol, NoSymbol ] }; + key { [ period, colon, NoSymbol, NoSymbol ] }; + key { [ slash, question, NoSymbol, NoSymbol ] }; + + key { [ bracketleft, braceleft, NoSymbol, NoSymbol ] }; + key { [ bracketright, braceright, NoSymbol, NoSymbol ] }; + + key { [ backslash, bar, NoSymbol, NoSymbol ] }; + key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ scircumflex, Scircumflex, at, NoSymbol ] }; + key { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, emdash, NoSymbol ] }; + key { [ t, T, endash, NoSymbol ] }; + key { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ a, A, less, NoSymbol ] }; + key { [ s, S, greater, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + key { [ g, G, NoSymbol, NoSymbol ] }; + key { [ h, H, NoSymbol, NoSymbol ] }; + key { [ j, J, NoSymbol, NoSymbol ] }; + key { [ k, K, NoSymbol, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol ] }; + key { [ ubreve, Ubreve, NoSymbol, NoSymbol ] }; + key { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] }; + + key { [ z, Z, leftsinglequotemark, NoSymbol ] }; + key { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol ] }; + key { [ b, B, NoSymbol, NoSymbol ] }; + key { [ n, N, NoSymbol, NoSymbol ] }; + key { [ m, M, NoSymbol, NoSymbol ] }; + + include "level3(ralt_switch)" +}; + +// Add the Esperanto supersigned letters to their related keys on a Qwerty keyboard. +// This is a generic "component" that is not used by the other layouts in this file, +// but is meant to be applied to any Qwerty layout. If you have any questions, ask +// J. Pablo Fernテ。ndez . +partial +xkb_symbols "qwerty" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; + +// Add the Esperanto supersigned letters to their related keys in a +// Dvorak layout. Similar comment as above applies. +partial +xkb_symbols "dvorak" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; + +// Add the Esperanto supersigned letters to their related keys in a +// Colemak layout. Similar comment as above applies. +partial +xkb_symbols "colemak" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/es b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/es similarity index 98% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/es rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/es index ab29a05..ce407ff 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/es +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/es @@ -86,8 +86,8 @@ xkb_symbols "dvorak" { key {[ apostrophe, question, dead_macron, dead_ogonek ]}; key {[ exclamdown, questiondown, dead_breve, dead_abovedot ]}; - key {[ period, colon, less ]}; - key {[ comma, semicolon, greater ]}; + key {[ period, colon, less, guillemotleft ]}; + key {[ comma, semicolon, greater, guillemotright ]}; key {[ ntilde, Ntilde, lstroke, Lstroke ]}; key {[ p, P, paragraph ]}; key {[ y, Y, yen ]}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/fi b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/fi similarity index 70% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/fi rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/fi index 1bf9ff0..85970da 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/fi +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/fi @@ -79,7 +79,6 @@ xkb_symbols "kotoistus" { include "nbsp(level3)" include "kpdl(comma)" include "level3(ralt_switch)" - include "compose(rwin)" }; partial alphanumeric_keys @@ -98,7 +97,7 @@ xkb_symbols "classic" { name[Group1]="Finnish (classic)"; }; -partial alphanumeric_keys hidden +hidden partial alphanumeric_keys xkb_symbols "fi" { // Classic Finnish keyboard layout with dead keys @@ -211,3 +210,73 @@ xkb_symbols "sun_type6" { include "sun_vndr/fi(sun_type6)" }; + +partial +xkb_symbols "das" { + + // This is DAS layout for typing Finnish. It is originally designed by + // Cristian Seres (cseres at iki.fi). + // More information about DAS: http://c.seres.fi/DAS_en.html + // This xkeyboard layout is originally made by Joel Lehtonen, + // (joel.lehtonen at iki.fi) on 2008-01-14. He released it under Public + // domain. + + name[Group1]="Finnish (DAS)"; + + key { [ 1, exclam, section ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, at, sterling ] }; + key { [ 4, EuroSign, dollar ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, ampersand ] }; + key { [ 7, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, braceright, degree ] }; + key { [ plus, question, currency ] }; + key { [ equal, numbersign ] }; + + key { [ p, P, Greek_pi ] }; + key { [ h, H ] }; + key { [ r, R, dead_circumflex ] }; + key { [ k, K, dead_caron ] }; + key { [ less, greater ] }; + key { [ apostrophe, bar ] }; + key { [ w, W ] }; + key { [ u, U ] }; + key { [ y, Y ] }; + key { [ b, B ] }; + key { [ q, Q ] }; + key { [ z, Z, zcaron, Zcaron ] }; + + key { [ s, S, scaron, Scaron ] }; + key { [ l, L, dead_acute ] }; + key { [ n, N, dead_grave ] }; + key { [ t, T, dead_diaeresis ] }; + key { [ v, V ] }; + key { [ g, G ] }; + key { [ a, A ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ e, E ] }; + key { [ c, C ] }; + key { [ backslash, dead_tilde ] }; + + key { [ asterisk, slash ] }; + key { [ f, F ] }; + key { [ x, X ] }; + key { [ d, D ] }; + key { [ m, M, mu ] }; + key { [ j, J ] }; + key { [ aring, Aring ] }; + key { [ odiaeresis, Odiaeresis, oe, OE ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore, U2013, dead_macron ] }; + key { [ space, space, space, nobreakspace ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" + include "compose(rwin)" +}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/fr b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/fr similarity index 95% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/fr rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/fr index fe5399c..ec407f0 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/fr +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/fr @@ -127,7 +127,7 @@ xkb_symbols "oss" { include "latin" include "level3(ralt_switch)" - include "nbsp(level4nl)" + include "nbsp(level4n)" include "keypad(oss)" name[Group1]="French (alternative)"; @@ -985,3 +985,89 @@ partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/fr(sun_type6)" }; + + +partial alphanumeric_keys +xkb_symbols "azerty" { + name[Group1]="French (Azerty)"; + + include "level3(ralt_switch)" + +// French AZERTY-Keyboard layout +// Author : 2015, Mats Blakstad +// Based on the layout at https://en.wikipedia.org/wiki/File:KB_France.svg + +// LAYOUT OVERVIEW +// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ +// | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ツー | + | <-- | +// | ツイ | & | テゥ ~| " #| ' {| ( [| - || ティ `| _ \| テァ ^| テ @| ) ]| = }| | +// ======================================================================== +// | |<- | A | Z | E | R | T | Y | U | I | O | P | ツィ | $ | , | +// | ->| | a | z | e 竄ャ| r | t | y | u | i | o | p | ^ | ツ」 ツ、| <-' | +// ===================================================================ツャ | +// | | Q | S | D | F | G | H | J | K | L | M | % | ツオ | | +// | MAJ | q | s | d | f | g | h | j | k | l | m | テケ | * | | +// ======================================================================== +// | ^ | > | W | X | C | V | B | N | ? | . | / | ツァ | ^ | +// | | | < | w | x | c | v | b | n | , | ; | : | ! | | | +// ======================================================================== +// | | | | | | | | | +// | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | +// ツッツッツッツッツッツッ ツッツッツッツッツッツッ ツッツッツッツッツッツッ ツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッ ツッツッツッツッツッツッツッ ツッツッツッツッツッツッ ツッツッツッツッツッ ツッツッツッツッツッツッ + + // First row + key { [ twosuperior ] }; + key { [ ampersand, 1 ] }; + key { [ eacute, 2, asciitilde ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [ apostrophe, 4, braceleft ] }; + key { [ parenleft, 5, bracketleft ] }; + key { [ minus, 6, bar ] }; + key { [ egrave, 7, grave ] }; + key { [ underscore, 8, backslash ] }; + key { [ ccedilla, 9, asciicircum ] }; + key { [ agrave, 0, at ] }; + key { [ parenright, degree, bracketright ] }; + key { [ equal, plus, braceright ] }; + + // Second row + key { [ a, A ] }; + key { [ z, Z ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ dead_circumflex,dead_diaeresis ] }; + key { [ dollar, sterling, currency ] }; + + // Third row + key { [ q, Q ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ m, M ] }; + key { [ ugrave, percent ] }; + key { [ asterisk, mu ] }; + + // Fourth row + key { [ less, greater ] }; + key { [ w, W ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, section ] }; +}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/gb b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/gb similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/gb rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/gb diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/gr b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/gr similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/gr rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/gr diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/group b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/group similarity index 98% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/group rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/group index 91be486..722fc1d 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/group +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/group @@ -322,12 +322,12 @@ partial modifier_keys xkb_symbols "ctrls_toggle" { virtual_modifiers LControl, RControl; key { - type[Group1]="PC_RCONTROL_LEVEL2", + type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= LControl }; key { - type[Group1]="PC_LCONTROL_LEVEL2", + type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= RControl }; @@ -410,7 +410,7 @@ xkb_symbols "alt_caps_toggle" { }; }; -partial hidden modifier_keys +hidden partial modifier_keys xkb_symbols "olpc" { key { [ ISO_Next_Group, ISO_Prev_Group ] }; }; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/hr b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/hr similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/hr rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/hr diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/hu b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/hu similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/hu rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/hu diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/il b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/il similarity index 99% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/il rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/il index 48452d6..67487c1 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/il +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/il @@ -205,7 +205,7 @@ xkb_symbols "biblical" { key { [ 2, U0599, VoidSymbol, at ] }; key { [ 3, U0592, VoidSymbol, numbersign ] }; key { [ 4, U05AF, NewSheqelSign, dollar ] }; - key { [ 5, VoidSymbol, U200D, percent ] }; + key { [ 5, U05BA, U200D, percent ] }; key { [ 6, U05B9, U200C, asciicircum ] }; key { [ 7, U05BF, U034F, ampersand ] }; key { [ 8, U05C2, U200E, asterisk ] }; diff --git a/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/is b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/is new file mode 100644 index 0000000..6e785e2 --- /dev/null +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/is @@ -0,0 +1,284 @@ +// based on +// XKB keyboard by Hrafnkell Eiriksson - hkelle@rhi.hi.is +// fixes by Olafur Osvaldsson - oli@isnic.is +// +// "basic" corrected according to the Icelandic standard for keyboards, +// IST 125:1995 (some symbols substituted by a dead diacritic). +// Some positions are according to IST ISO/IEC 9995-3:1994 +// Added nobreakspace + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="Icelandic"; + +// = + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 4, dollar, onequarter, currency ] }; + key { [odiaeresis, Odiaeresis, backslash, questiondown ] }; + key { [ minus, underscore, dead_cedilla, dead_ogonek ] }; + + key { [ eth, ETH, dead_diaeresis, dead_abovering ] }; + key { [apostrophe, question, asciitilde, dead_macron ] }; + + key { [ d, D, U201e, U201c ] }; + key { [ ae, AE, asciicircum, dead_doubleacute ] }; + key { [dead_acute, dead_acute, dead_circumflex, dead_caron ] }; + key { [dead_abovering, dead_diaeresis, notsign, hyphen ] }; + +// = + key { [ plus, asterisk, grave, dead_breve ] }; + +// = , is in file "pc": pc105 + key { [ thorn, THORN, dead_belowdot, dead_abovedot ] }; + + key { [ space, space, space, space ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // modify the basic Icelandic layout to use Sun dead keys + + include "is(basic)" + + name[Group1]="Icelandic (Sun dead keys)"; + + key { [dead_circumflex, degree, notsign, notsign ] }; + key { [dead_acute, dead_grave, dead_cedilla, dead_cedilla ] }; + key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_diaeresis ] }; + key { [ plus, asterisk, dead_tilde, dead_macron ] }; + key { [odiaeresis, Odiaeresis, dead_acute, dead_acute ] }; + key { [adiaeresis, Adiaeresis, dead_circumflex, dead_circumflex ] }; + key { [numbersign, acute, dead_grave, dead_grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // modify the basic Icelandic layout to not have any dead keys + + include "is(basic)" + + name[Group1]="Icelandic (eliminate dead keys)"; + + key { [asciicircum, degree, notsign, notsign ] }; + key { [apostrophe, grave, cedilla, cedilla ] }; + key { [udiaeresis, Udiaeresis, diaeresis, diaeresis ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [odiaeresis, Odiaeresis, acute, acute ] }; + key { [adiaeresis, Adiaeresis, asciicircum, asciicircum ] }; + key { [numbersign, acute, grave, grave ] }; + key { [ thorn, THORN, dead_belowdot, abovedot ] }; +}; + +// Copyright (C) 2004, 2006 テvar Arnfjテカrテー Bjarmason +// +// = HISTORY +// * 2004-09-28: +// Initial cleanroom writing of the keymap, I just booted Mac OS X, opened +// TextEdit.app and wrote down what the value produced by each key was when I +// pressed it, a for a, A for shift + a, テ・ for lalt + a etc and made the +// keymap from that information +// +// * 2006-01-14: +// Revised the comments in the file +// +// * 2013-05-30: +// Renamed the old keyboard layout and created a new one that conforms with the later +// model Apple Laptop and Aluminium USB/Bluetooth keyboards (A1243/A1255 and later) +// that are used with the more recent versions of OS X. Also replaced some Unicode +// codes with proper symbol names. +// +// = NOTES +// * 20 characters in this keymap have no named character defined in +// include/keysymdef.h and as a result their Unicode code points in +// hexadecimal are listed here, these can be generated with the following +// perl command: +// $ perl -CA -e 'printf "U%x\n", ord shift' テ +// and converted back like: +// $ perl -CO -le '$_=shift;s/[^a-f0-9]//ig;print chr hex' Uc6 +// * The Apple logo appears twice on this keymap like the Mac OS and Mac OS X +// keymaps. In the MacRoman encoding it has the code point 0xF0 (240) but it +// has no assigned code point in Unicode, the code point Apple uses for it is +// U+F8FF (63743) which is in the BMP's Private Use Area (U+E000窶填+F8FF) +// * This keymap has only been tested on a PowerBook6,5 (iBook G4) but it +// should work on other Apple laptop models which use the same keyboard +// layout. It will probably work on standard sized keyboards with little or +// no modification but it might not support them fully, please report if +// you're able to get it running with such a keyboard + +// Copied from macintosh_vndr/is + +xkb_symbols "mac_legacy" { + name[Group1]= "Icelandic (Macintosh, legacy)"; + + //-- Row 5 (E) --// + key { [ sterling, section, UF8FF, apostrophe ] }; + key { [ 1, exclam, exclamdown, VoidSymbol ] }; + key { [ 2, quotedbl, at, VoidSymbol ] }; + key { [ 3, numbersign, U2122, sterling ] }; + key { [ 4, dollar, U00A2, EuroSign ] }; + key { [ 5, percent, U2030, infinity ] }; + key { [ 6, ampersand, asciicircum, U2044 ] }; + key { [ 7, slash, backslash, U00F7 ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, U2260, U2248 ] }; + key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [ minus, underscore, endash, emdash ] }; + + + //-- Row 4 (D) --// + key { [ q, Q, paragraph, VoidSymbol ] }; + key { [ w, W, U2211, VoidSymbol ] }; + key { [ e, E, dead_grave, VoidSymbol ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ t, T, degree, VoidSymbol ] }; + key { [ y, Y, yen, VoidSymbol ] }; + key { [ u, U, dead_diaeresis, VoidSymbol ] }; + key { [ i, I, U0131, U00AA ] }; + key { [ o, O, dead_circumflex, U00BA ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ eth, Eth, U201e, U201c ] }; + key { [ apostrophe, question, questiondown, U00B7 ] }; + + + //-- Row 3 (C) --// + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, abovedot ] }; + key { [ d, D, U2202, U2DA ] }; + key { [ f, F, U192, macron ] }; + key { [ g, G, copyright, breve ] }; + key { [ h, H, bar, VoidSymbol ] }; + key { [ j, J, U2206, U2dd ] }; + key { [ k, K, U00AC, VoidSymbol ] }; + key { [ l, L, U2026, caron ] }; + key { [ ae, AE, oe, OE ] }; + key { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; + key { [ plus, asterisk, U2022, plusminus ] }; + + + //-- Row 2 (B) --// + key { [ less, greater, section, UF8FF ] }; + key { [ z, Z, U3A9, VoidSymbol ] }; + key { [ x, X, asciitilde, VoidSymbol ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, U221A, U25CA ] }; + key { [ b, B, U222B, VoidSymbol ] }; + key { [ n, N, dead_tilde, VoidSymbol ] }; + key { [ m, M, U00B5, VoidSymbol ] }; + key { [ comma, semicolon, lessthanequal, guillemotleft ] }; + key { [ period, colon, greaterthanequal, guillemotright ] }; + key { [ thorn, Thorn, U2019, U201d ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + name[Group1]= "Icelandic (Macintosh)"; + + //-- Row 5 (E) --// + key { [ less, greater, bar, UF8FF ] }; + key { [ 1, exclam, exclamdown, VoidSymbol ] }; + key { [ 2, quotedbl, at, VoidSymbol ] }; + key { [ 3, numbersign, trademark, sterling ] }; + key { [ 4, dollar, cent, EuroSign ] }; + key { [ 5, percent, U2030, infinity ] }; + key { [ 6, ampersand, asciicircum, U2044 ] }; + key { [ 7, slash, braceleft, division ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, braceright, approxeq ] }; + key { [ odiaeresis, Odiaeresis, backslash, U2260 ] }; + key { [ minus, underscore, endash, emdash ] }; + + + //-- Row 4 (D) --// + key { [ q, Q, U0040, paragraph ] }; + key { [ w, W, U2211, U00A7 ] }; + key { [ e, E, U20AC, U00BF ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ t, T, degree, U2022 ] }; + key { [ y, Y, yen, VoidSymbol ] }; + key { [ u, U, dead_diaeresis, VoidSymbol ] }; + key { [ i, I, idotless, ordfeminine ] }; + key { [ o, O, dead_circumflex, U00BA ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ eth, Eth, doublelowquotemark, leftdoublequotemark ] }; + key { [ apostrophe, question, asciitilde, periodcentered ] }; + + + //-- Row 3 (C) --// + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, abovedot ] }; + key { [ d, D, partialderivative, U02DA ] }; + key { [ f, F, function, macron ] }; + key { [ g, G, copyright, breve ] }; + key { [ h, H, bar, U00B8 ] }; + key { [ j, J, U2206, doubleacute ] }; + key { [ k, K, notsign, U2DB ] }; + key { [ l, L, ellipsis, caron ] }; + key { [ ae, AE, oe, OE ] }; + key { [ dead_acute, dead_acute, asciicircum, leftsinglequotemark ] }; + key { [ plus, asterisk, grave, plusminus ] }; + + + //-- Row 2 (B) --// + key { [ degree, dead_diaeresis, oslash, Ooblique ] }; + key { [ z, Z, Greek_OMEGA, VoidSymbol ] }; + key { [ x, X, asciitilde, VoidSymbol ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, radical, U25CA ] }; + key { [ b, B, integral, VoidSymbol ] }; + key { [ n, N, dead_tilde, VoidSymbol ] }; + key { [ m, M, mu, VoidSymbol ] }; + key { [ comma, semicolon, lessthanequal, guillemotleft ] }; + key { [ period, colon, greaterthanequal, guillemotright ] }; + key { [ thorn, Thorn, rightsinglequotemark, rightdoublequotemark ] }; + + include "level3(ralt_switch)" +}; + +// This is a modified version of the English Dvorak layout that allows +// you to type all Icelandic letters under X. It's not a full attempt at +// nationalizing the layout as e.g. the Norwegian, Swedish and French +// layouts which modify the primary keys of the basic Dvorak layout +// extensively. + +// Rather it's a simple modification of 5 keys of the US Dvorak layout, +// it adds Germanic/Icelandic style quotation marks (窶樞), eth (テーテ), ae +// (テヲテ), endash and emdash (窶凪), thorn (テセテ), EuroSign (竄ャ) and the German +// Sharp S (テ溂コ). These keys aren't used in the US version, making the +// Icelandic version a superset of it. + +// Maybe someone else will make a "full" attempt at an Icelandic layout +// but I was mostly interested in continuing to type English comfortably +// as a primary function while being able to type the full Icelandic +// alphabet as a secondary function. +// -- テvar Arnfjテカrテー Bjarmason + +// Icelandic Dvorak +partial alphanumeric_keys +xkb_symbols "dvorak" { + + include "us(dvorak)" + include "eurosign(4)" + + name[Group1]= "Icelandic (Dvorak)"; + + key { [ slash, question, U201e, U201c ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ d, D, eth, ETH ] }; + key { [ s, S, ae, AE ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ z, Z, thorn, Thorn ] }; + key { [ b, B, ssharp, U1E9E ] }; + + include "level3(ralt_switch)" +}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/it b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/it similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/it rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/it diff --git a/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/latam b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/latam new file mode 100644 index 0000000..f6717a4 --- /dev/null +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/latam @@ -0,0 +1,129 @@ +// based on a keyboard +// Modified for a real Latin American Keyboard by Fabian Mandelbaum + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="Spanish (Latin American)"; + + key { [ 1, exclam, bar, exclamdown ] }; + key { [ 3, numbersign, periodcentered, sterling ] }; + key { [ 4, dollar, asciitilde, dollar ] }; + key { [ 6, ampersand, notsign, fiveeighths ] }; + key { [apostrophe, question, backslash, questiondown ] }; + key { [questiondown, exclamdown, dead_cedilla, dead_ogonek] }; + + key { [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ] }; + key { [ plus, asterisk, asciitilde, dead_macron ] }; + + key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; + key { [ braceleft, bracketleft, dead_circumflex, braceleft] }; + key { [ bar, degree, notsign, notsign ] }; + + key { [braceright, bracketright, dead_grave, braceright ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + include "latam(basic)" + + key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; + key { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "latam(Sundeadkeys)" + name[Group1]="Spanish (Latin American, Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + include "latam(basic)" + + name[Group1]="Spanish (Latin American, eliminate dead keys)"; + + key { [questiondown, exclamdown, cedilla, ogonek ] }; + key { [ grave, asciicircum, bracketleft, degree ] }; + key { [ plus, asterisk, bracketright, macron ] }; + key { [ ntilde, Ntilde, asciitilde, doubleacute ] }; + key { [ acute, diaeresis, braceleft, braceleft ] }; + key { [ ccedilla, Ccedilla, braceright, breve ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +partial alphanumeric_keys +xkb_symbols "deadtilde" { + + include "latam(basic)" + + name[Group1]="Spanish (Latin American, include dead tilde)"; + + key { [ plus, asterisk, dead_tilde, dead_macron ] }; +}; + +// Latin American Spanish Dvorak mapping (note R-H exchange) +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]="Spanish (Latin American, Dvorak)"; + + key {[ bar, degree, notsign, notsign ]}; + key {[ 1, exclam, bar, exclamdown ]}; + key {[ 2, quotedbl, at, oneeighth ]}; + key {[ 3, numbersign, periodcentered, sterling ]}; + key {[ 4, dollar, asciitilde, dollar ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, ampersand, notsign, fiveeighths ]}; + key {[ 7, slash, braceleft, seveneighths ]}; + key {[ 8, parenleft, bracketleft, trademark ]}; + key {[ 9, parenright, bracketright, plusminus ]}; + key {[ 0, equal, braceright, degree ]}; + key {[ apostrophe, question, backslash, questiondown ]}; + key {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]}; + + key {[ period, colon, at ]}; + key {[ comma, semicolon ]}; + key {[ ntilde, Ntilde, lstroke, Lstroke ]}; + key {[ p, P, paragraph ]}; + key {[ y, Y, yen ]}; + key {[ f, F, tslash, Tslash ]}; + key {[ g, G, dstroke, Dstroke ]}; + key {[ c, C, cent, copyright ]}; + key {[ h, H, hstroke, Hstroke ]}; + key {[ l, L, sterling ]}; + key {[ dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ]}; + key {[ plus, asterisk, asciitilde, dead_macron ]}; + + key {[ a, A, ae, AE ]}; + key {[ o, O, oslash, Oslash ]}; + key {[ e, E, EuroSign ]}; + key {[ u, U, aring, Aring ]}; + key {[ i, I, oe, OE ]}; + key {[ d, D, eth, ETH ]}; + key {[ r, R, registered, trademark ]}; + key {[ t, T, thorn, THORN ]}; + key {[ n, N, eng, ENG ]}; + key {[ s, S, ssharp, section ]}; + key {[ braceleft, bracketleft, dead_circumflex, braceleft ]}; + key {[ braceright, bracketright, dead_grave, braceright ]}; + + key {[ less, greater, guillemotleft, guillemotright ]}; + key {[ minus, underscore, hyphen, macron ]}; + key {[ q, Q, currency ]}; + key {[ j, J ]}; + key {[ k, K, kra ]}; + key {[ x, X, multiply, division ]}; + key {[ b, B ]}; + key {[ m, M, mu ]}; + key {[ w, W ]}; + key {[ v, V ]}; + key {[ z, Z ]}; + + include "level3(ralt_switch)" +}; diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/level5 b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/level5 similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/level5 rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/level5 diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/nl b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/nl similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/nl rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/nl diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/no b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/no similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/no rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/no diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/pl b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/pl similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/pl rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/pl diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/pt b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/pt similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/pt rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/pt diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/ro b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ro similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/ro rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ro diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/rs b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/rs similarity index 98% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/rs rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/rs index c39f4ed..e164f2e 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/rs +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/rs @@ -45,7 +45,7 @@ xkb_symbols "yz" { key { [ Cyrillic_ze, Cyrillic_ZE, any, any ] }; // z }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "common" { // "Common" keys: keys that are the same // for both latin and cyrillic keyboards. @@ -73,7 +73,7 @@ xkb_symbols "common" { include "kpdl(comma)" }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "cyralpha" { key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; @@ -114,7 +114,7 @@ xkb_symbols "cyralpha" { }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "latalpha" { key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; @@ -127,7 +127,7 @@ xkb_symbols "latalpha" { key { [ zcaron, Zcaron, any, any ] }; // \ | }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "twoletter" { // Letters which are written in latin transcription with two characters. @@ -142,7 +142,7 @@ xkb_symbols "twoletter" { key { [ zcaron, Zcaron, any, any ] }; // z }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "latlevel3" { key { [ any, any, notsign, notsign ] }; // ` ~ key { [ any, any, dead_tilde, asciitilde ] }; // 1 ! @@ -196,7 +196,7 @@ xkb_symbols "latlevel3" { key { [ any, any, emdash, endash ] }; // / ? }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "cyrlevel3" { key { [ any, any, degree, notsign ] }; // ` ~ key { [ any, any, dead_circumflex, NoSymbol ] }; // 3 # diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/ru b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ru similarity index 89% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/ru rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ru index 64c862b..0ba9870 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/ru +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/ru @@ -21,7 +21,7 @@ xkb_symbols "winkeys" { key { [ backslash, slash ] }; }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "common" { key { [ 1, exclam ] }; @@ -478,11 +478,12 @@ xkb_symbols "srp" { }; // Mari language layout -// http://www.marlamuter.ru/ +// http://www.marlamuter.com/ +// Last edit by Viatcheslav Kileev (slavakileev@yandex.ru) partial alphanumeric_keys xkb_symbols "chm" { - include "ru(common)" + include "ru(winkeys)" name[Group1]= "Mari"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; @@ -491,13 +492,82 @@ xkb_symbols "chm" { key { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] }; key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; - key { [ Cyrillic_e, Cyrillic_E, U04E9, U04E8 ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE, U04EB, U04EA ] }; - key { [ Cyrillic_ef, Cyrillic_EF, UF537, UF536 ] }; + key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; include "level3(ralt_switch)" }; +partial alphanumeric_keys +xkb_symbols "phonetic_azerty" { + + include "level3(ralt_switch)" + + name[Group1]= "Russian (phonetic azerty)"; + + key { [ ampersand, 1, onesuperior, exclamdown ] }; + key { [ eacute, 2, asciitilde, oneeighth ] }; + key { [ quotedbl, 3, numbersign, sterling ] }; + key { [apostrophe, 4, braceleft, dollar ] }; + key { [ parenleft, 5, bracketleft, threeeighths ] }; + key { [ minus, 6, bar, fiveeighths ] }; + key { [ egrave, 7, grave, seveneighths ] }; + key { [underscore, 8, backslash, trademark ] }; + key { [ ccedilla, 9, asciicircum, plusminus ] }; + key { [ agrave, 0, at, degree ] }; + key { [parenright, degree, bracketright, questiondown ] }; + key { [ equal, plus, braceright, dead_ogonek ] }; + + key { [ comma, question, acute, doubleacute ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, dead_belowdot, dead_abovedot ] }; + + key { [ ugrave, percent, asciicircum, caron ] }; + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; // Q + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // Z + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; // W + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; // M + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic_fr" { + + include "fr" + include "ru(phonetic_azerty)" + + name[Group1]= "Russian (phonetic French)"; +}; + // EXTRAS: // Church Slavonic language layout diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/se b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/se similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/se rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/se diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/si b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/si similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/si rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/si diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/sk b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/sk similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/sk rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/sk diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/tr b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/tr similarity index 100% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/tr rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/tr diff --git a/x-bak_v2-12-1_2014-08-06/xkb/symbols/us b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/us similarity index 99% rename from x-bak_v2-12-1_2014-08-06/xkb/symbols/us rename to x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/us index d5a6c18..49f684f 100644 --- a/x-bak_v2-12-1_2014-08-06/xkb/symbols/us +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/symbols/us @@ -541,11 +541,12 @@ xkb_symbols "dvorak-classic" { // Main features: Numbers are in shift position (like French), symbols have been // placed in locations that give good hand-alternation and finger rolling with // symbols that usually follows, accented characters are possible for I18N. +// Patch suggestions should be sent upstream. partial alphanumeric_keys xkb_symbols "dvp" { include "us(dvorak)" - name[Group1] = "English (programmer Dvorak)"; + name[Group1] = "English (Programmer Dvorak)"; // Unmodified Shift AltGr Shift+AltGr // symbols row, left side @@ -568,8 +569,8 @@ xkb_symbols "dvp" { // upper row, left side key { [ semicolon, colon, dead_diaeresis ] }; - key { [ comma, less, guillemotleft, ellipsis ] }; - key { [ period, greater, guillemotright ] }; + key { [ comma, less, guillemotleft, U201C ] }; + key { [ period, greater, guillemotright, U201D ] }; key { [ p, P, paragraph, section ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; @@ -596,9 +597,9 @@ xkb_symbols "dvp" { // lower row, left side key { [ apostrophe, quotedbl, dead_acute ] }; - key { [ m, M, mu ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - include "level3(ralt_switch)" + // do NOT hardcode this switch; use lv3:ralt_switch option instead! + //include "level3(ralt_switch)" }; // phonetic layout for Russian letters on an US keyboard diff --git a/x-bak_v2-17-1ub1_2016-05-24/xkb/types/level5 b/x-bak_v2-17-1ub1_2016-05-24/xkb/types/level5 new file mode 100644 index 0000000..0570725 --- /dev/null +++ b/x-bak_v2-17-1ub1_2016-05-24/xkb/types/level5 @@ -0,0 +1,214 @@ +partial default xkb_types "default" { + + // Defines a type with an eight-level shift, similar to the three-level + // type used for iso9995, but it lets the Shift key behave "normally". + + virtual_modifiers LevelThree,ScrollLock,LevelFive; + + type "EIGHT_LEVEL" { + modifiers = Shift+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level8; + map[Lock+Shift+LevelThree+LevelFive] = Level7; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { + // Level5-Lock is implemented by using NumLock, because a real modifier + // is required. + + modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[LevelThree+Shift] = Level4; + + map[LevelFive] = Level5; + map[LevelFive+Shift] = Level6; + map[LevelFive+LevelThree] = Level7; + map[LevelFive+LevelThree+Shift] = Level8; + + map[NumLock] = Level5; + map[NumLock+Shift] = Level6; + map[NumLock+LevelThree] = Level7; + map[NumLock+LevelThree+Shift] = Level8; + + map[NumLock+LevelFive] = Level1; + map[NumLock+LevelFive+Shift] = Level2; + map[NumLock+LevelFive+LevelThree] = Level3; + map[NumLock+LevelFive+LevelThree+Shift] = Level4; + + // Lock has no effect + map[Lock] = Level1; + map[Lock+Shift] = Level2; + map[Lock+LevelThree] = Level3; + map[Lock+LevelThree+Shift] = Level4; + + map[Lock+LevelFive] = Level5; + map[Lock+LevelFive+Shift] = Level6; + map[Lock+LevelFive+LevelThree] = Level7; + map[Lock+LevelFive+LevelThree+Shift] = Level8; + + map[Lock+NumLock] = Level5; + map[Lock+NumLock+Shift] = Level6; + map[Lock+NumLock+LevelThree] = Level7; + map[Lock+NumLock+LevelThree+Shift] = Level8; + + map[Lock+NumLock+LevelFive] = Level1; + map[Lock+NumLock+LevelFive+Shift] = Level2; + map[Lock+NumLock+LevelFive+LevelThree] = Level3; + map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; + + preserve[LevelFive+Shift] = Shift; + preserve[NumLock+Shift] = Shift; + preserve[Lock+LevelFive+Shift] = Shift; + preserve[Lock+NumLock+Shift] = Shift; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { + // Level5-Lock is implemented by using NumLock, because a real modifier + // is required. + + modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[LevelThree+Shift] = Level4; + + map[LevelFive] = Level5; + map[LevelFive+Shift] = Level6; + map[LevelFive+LevelThree] = Level7; + map[LevelFive+LevelThree+Shift] = Level8; + + map[NumLock] = Level5; + map[NumLock+Shift] = Level6; + map[NumLock+LevelThree] = Level7; + map[NumLock+LevelThree+Shift] = Level8; + + map[NumLock+LevelFive] = Level1; + map[NumLock+LevelFive+Shift] = Level2; + map[NumLock+LevelFive+LevelThree] = Level3; + map[NumLock+LevelFive+LevelThree+Shift] = Level4; + + // Lock interchanges Level1 and Level2 + map[Lock] = Level2; + map[Lock+Shift] = Level1; + map[Lock+LevelThree] = Level3; + map[Lock+LevelThree+Shift] = Level4; + + map[Lock+LevelFive] = Level5; + map[Lock+LevelFive+Shift] = Level6; + map[Lock+LevelFive+LevelThree] = Level7; + map[Lock+LevelFive+LevelThree+Shift] = Level8; + + map[Lock+NumLock] = Level5; + map[Lock+NumLock+Shift] = Level6; + map[Lock+NumLock+LevelThree] = Level7; + map[Lock+NumLock+LevelThree+Shift] = Level8; + + map[Lock+NumLock+LevelFive] = Level2; + map[Lock+NumLock+LevelFive+Shift] = Level1; + map[Lock+NumLock+LevelFive+LevelThree] = Level4; + map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; + + preserve[LevelFive+Shift] = Shift; + preserve[NumLock+Shift] = Shift; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[Lock+Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level7; + map[Lock+Shift+LevelThree+LevelFive] = Level8; + + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + preserve[Lock+LevelFive] = Lock; + preserve[Lock+Shift+LevelFive] = Lock; + preserve[Lock+LevelThree+LevelFive] = Lock; + preserve[Lock+Shift+LevelThree+LevelFive] = Lock; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +}; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/rules/base b/x-mod_v2-12-1_2015-01-18/xkb/rules/base deleted file mode 100644 index 78d5ac2..0000000 --- a/x-mod_v2-12-1_2015-01-18/xkb/rules/base +++ /dev/null @@ -1,1249 +0,0 @@ -// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part -// -// Rules for resolving XKB components for use with XFree86 -// Copyright 1996 by Joseph Moss -// -// 2002 Modifier: Ivan Pascal The XFree86 Project -// - -// If you want non-latin layouts implicitly include the en_US layout -// uncomment lines below -//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ -// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \ -// ru scc sy syr tel th tj tam ua uz - -// PC models -! $pcmodels = pc101 pc102 pc104 pc105 pc104angle-z pc104wide-qu pc104awide-zqu pc104aframe pc105angle-lg pc105awide-sl - -// Microsoft models (using MS geometry) -! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose - -// Nokia devices and keyboards -! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 - -// PC geometries - they have special geometry but symbols are mostly pc105 -! $pcgeometries = latitude - -// TypeMatrix geometries -! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 - -// Layouts that provide further specializations for the OLPC -! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us - -! $macbooks = macbook78 macbook79 -! $maclaptop = ibook powerbook macbook78 macbook79 -! $applealu = applealu_ansi applealu_iso applealu_jis -! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 - -! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us - -! $azerty = be fr -! $qwertz = al cz de hr hu ro si sk - - -// all layouts with 3rd and 4th groups -! $threelevellayouts = al az \ - be br bt \ - ca ch cs cz \ - de dk \ - ee es \ - fi fo fr \ - gb gr \ - hu \ - ie ir is it \ - latam \ - lk lt \ - mn mt \ - nl no \ - pl pt \ - ro \ - se sk \ - tr \ - us \ - vn \ - za - -! $thinkpads = thinkpad thinkpad60 thinkpadz60 - -! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ - sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \ - sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb - -! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb - -// Sun Type_6_7 keyboards with custom layouts -! $sun_custom = ara be br ca ch cz de dk \ - ee es fi fr gb gr it jp \ - kr lt lv nl no pl pt ro \ - ru se sk tr tw ua us - -! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \ - sun_type7 sun_type7_suncompat suncompat - -! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat - -! $htcdreamlayouts = us it de - -! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ - airkey \ - apple armada azonaRF2300 \ - benqx brother \ - btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ - cherryblue cherrybluea cherryblueb \ - cherrycyboard cherrycmexpert \ - chicony chicony0108 chicony0420 chicony9885 \ - compalfl90 \ - compaqeak8 compaqik7 compaqik13 compaqik18 \ - creativedw7000 \ - cymotionlinux \ - dell dellm65 inspiron dellusbmm \ - emachines ennyah_dkb1008 evdev \ - genius geniuscomfy2 \ - gyration honeywell_euroboard \ - hp250x hp5xx hp500fa hpdv5 \ - hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \ - ibm_spacesaver ipaq inspiron intel \ - logiaccess logicda logicink \ - logiex110 logiclx300 \ - logiinkse logiinkseusb logiitc logiik \ - logitech_base itouch logiultrax \ - logitech_g15 \ - logidinovo logidinovoedge \ - microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ - microsoftoffice microsoftmult \ - mx1998 mx2500 mx2750 \ - oretec \ - pc105 \ - presario propeller \ - qtronix \ - rapidaccess rapidaccess2 thinkpad60 \ - samsung4500 samsung4510 \ - silvercrest \ - sk1300 sk2500 sk6200 sk7100 \ - sven sven303 symplon \ - toshiba_s3000 trust trustda \ - unitekkb1925 yahoo - -! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \ - cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \ - armada presario dellm65 inspiron dellusbmm diamond \ - ennyah_dkb1008 genius geniuscomfy2 hpi6 hpxe3gc hpxe3gf \ - hpxt1000 hpzt11xx hpdv5 hpxe4xxx hp5xx thinkpad60 ogitech_base \ - logidinovo logidinovoedge logitech_g15 mx1998 mx2500 mx2750 \ - microsoft4000 microsoft7000 microsoftprooem microsoftmult \ - propeller samsung4500 samsung4510 sk1300 sk2500 sk7100 \ - toshiba_s3000 trust trustda cymotionlinux silvercrest \ - emachines benqx unitekkb1925 creativedw7000 compalfl90 \ - pc105 a4techKB21 a4techKBS8 a4_rfkb23 asus_laptop btc6301urf \ - dexxa dtk2000 fscaa1667g geniuskb19e geniuscomfy latitude \ - microsoftpro precision_m scorpius sp_inet targa_v811 thinkpad \ - tm2030USB-102 tm2030USB-106 trust_slimline - -! $dvoraklayouts = br ca de ee es fr gb no pl se us -! $colemaklayouts = al at ba be bg br ca cz de dk es fi fr gb gr hr hu il is it latam nl no pl pt ro rs ru se si tr us - -! model = keycodes - amiga = amiga(de) - ataritt = ataritt(de) - empty = empty - $sun_jp = sun(type6_jp_usb) - $sun = sun(type6_usb) - pc98 = xfree98(pc98) - $applealu = macintosh(alukbd) - macintosh_hhk = macintosh(hhk) - macintosh_old = macintosh(old) - $macbooks = macintosh+macintosh(goodmap) - $macs = macintosh - thinkpadz60 = xfree86(thinkpadz60) - pc104angle-z = xfree86(pc104angle-z) - pc104wide-qu = xfree86(pc104wide-qu) - pc104awide-zqu = xfree86(pc104awide-zqu) - pc104aframe = xfree86(pc104aframe) - pc105angle-lg = xfree86(pc105angle-lg) - pc105awide-sl = xfree86(pc105awide-sl) - * = xfree86 - -! layout[1] = keycodes - $azerty = +aliases(azerty) - $qwertz = +aliases(qwertz) - * = +aliases(qwerty) - -! layout = keycodes - $azerty = +aliases(azerty) - $qwertz = +aliases(qwertz) - * = +aliases(qwerty) - -//! layout[1] variant = keycodes -// $colemaklayouts cmk_ed_ks = +aliases(colemak) -// $colemaklayouts cmk_ed_us = +aliases(colemak) - -//! layout variant = keycodes -// $colemaklayouts cmk_ed_ks = +aliases(colemak) -// $colemaklayouts cmk_ed_us = +aliases(colemak) - -! option = keycodes - apple:badmap = +macintosh(badmap) - apple:goodmap = +macintosh(goodmap) - -! model layout = geometry - thinkpad us = thinkpad(us) - -! model = geometry - microsoftelite = microsoft(elite) - $msmodels = microsoft(natural) - dell101 = dell(dell101) - dellm65 = dell(dellm65) - latitude = dell(latitude) - flexpro = keytronic(FlexPro) - hp6000 = hp(omnibook) - hpmini110 = hp(mini110) - hpdv5 = hp(dv5) - omnikey101 = northgate(omnikey101) - sanwaskbkg3 = sanwa(sanwaskbkg3) - $pcmodels = pc(%m) - $pcgeometries = pc(%m) - everex = everex(STEPnote) - thinkpad = thinkpad(intl) - thinkpad60 = thinkpad(60) - thinkpadz60 = thinkpad(60) - $tmgeometries = typematrix(%m) - winbook = winbook(XP5) - pc98 = nec(pc98) - $applealu = macintosh(%m) - $macbooks = macintosh(%m) - $macs = macintosh(macintosh) - hhk = hhk(basic) - kinesis = kinesis(model100) - $nokiamodels = nokia(%m) - sun_type6_jp = sun(type6jp) - sun_type6_usb = sun(type6) - sun_type6_euro_usb = sun(type6tuv) - sun_type6_jp_usb = sun(type6jp) - sun_type6_unix_usb = sun(type6unix) - sun_type7_jp_usb = sun(type6jp) - sun_type7_usb = sun(type7) - sun_type7_euro_usb = sun(type7tuv) - sun_type7_unix_usb = sun(type7unix) - * = pc(pc104) - -! model layout variant = symbols - * ben basic = pc+in(ben) - * ben probhat = pc+in(ben_probhat) - * dev basic = pc+in(deva) - * dvorak $dvoraklayouts = pc+%v(dvorak) - * dvorak basic = pc+us(dvorak) - * dvorak pl_basic = pc+pl(dvorak) - * dvorak pl = pc+pl(dvorak_quotes) - * dvorak pl_altquotes = pc+pl(dvorak_altquotes) - * dzdwi basic = pc+bt(basic) - * fi basic = pc+fi(classic) - * ge azerty_tskapo = pc+fr(geo) - * guj basic = pc+in(guj) - * gur basic = pc+in(guru) - * ie laptop = pc+ie(basic) - * ie CloGaelachLaptop = pc+ie(CloGaelach) - * in urd = pc+in(urd-phonetic) - * iu basic = pc+ca(ike) - * lo basic = pc+la(basic) - * kan basic = pc+in(kan) - * mal basic = pc+in(mal) - * mal mlplusnum = pc+in(mal) - * ogham basic = pc+ie(ogam) - * ogham laptop = pc+ie(ogam) - * ogham is434 = pc+ie(ogam_is434) - * ogham is434laptop = pc+ie(ogam_is434) - * ori basic = pc+in(ori) - * ro de = pc+ro(winkeys) - * ro us = pc+ro(std) - * ro academic = pc+ro(std) - * ro std_comma = pc+ro(std) - * ro comma = pc+ro(basic) - * ru os = pc+ru(os_legacy) - * pk urd = pc+pk(urd-phonetic) - * sapmi basic = pc+no(smi) - * sapmi nodeadkeys = pc+no(smi_nodeadkeys) - * sapmi sefi = pc+fi(smi) - * sin phonetic-static = pc+in(sin_phonetic) - * syr basic = pc+sy(syc) - * syr phonetic = pc+sy(syc_phonetic) - * tam INSCRIPT = pc+in(tam) - * tam UNI = pc+in(tam_unicode) - * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) - * tam TAB = pc+in(tam_TAB) - * tam TSCII = pc+in(tam_TSCII) - * tel basic = pc+in(tel) - * yu basic = pc+srp(latin) - * yu unicode = pc+srp(latinunicode) - * yu yz = pc+srp(latinyz) - * yu unicodeyz = pc+srp(latinunicodeyz) - classmate us intl = pc+us(classmate-intl) - classmate us alt-intl = pc+us(classmate-alt-intl) - classmate us altgr-intl = pc+us(classmate-altgr-intl) - nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) - * $sun_custom $sun_var = pc+sun_vndr/%l%(v) - -! model layout = symbols - * ar = pc+ara - * ben = pc+in(ben) - * bs = pc+ba - * cs = pc+rs - * cz_qwerty = pc+cz(qwerty) - * dev = pc+in(deva) - * dvorak = pc+us(dvorak) - * dzdwi = pc+bt - * el = pc+gr - * en_US = pc+latin - * guj = pc+in(guj) - * gur = pc+in(guru) - * iu = pc+ca(ike) - * lo = pc+la - * kan = pc+in(kan) - * mi = pc+mao - * ogham = pc+ie(ogam) - * ori = pc+ie(ori) - * sapmi = pc+no(smi) - * sr = pc+srp - * syr = pc+sy(syc) - * tel = pc+in(tel) - * tml = pc+in(tam) - * yu = pc+srp - * fr-latin9 = pc+fr(latin9) - * us_intl = pc+us(alt-intl) - * ben(basic) = pc+in(ben) - * ben(probhat) = pc+in(ben_probhat) - * dev(basic) = pc+in(deva) - * dvorak($dvoraklayouts) = pc+%v(dvorak) - * dvorak(basic) = pc+us(dvorak) - * dvorak(pl_basic) = pc+pl(dvorak) - * dvorak(pl) = pc+pl(dvorak_quotes) - * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) - * dzdwi(basic) = pc+bt(basic) - * fi(basic) = pc+fi(classic) - * ge(azerty_tskapo) = pc+fr(geo) - * guj(basic) = pc+in(guj) - * gur(basic) = pc+in(guru) - * ie(laptop) = pc+ie(basic) - * ie(CloGaelachLaptop) = pc+ie(CloGaelach) - * in(urd) = pc+in(urd-phonetic) - * iu(basic) = pc+ca(ike) - * lo(basic) = pc+la(basic) - * kan(basic) = pc+in(kan) - * mal(basic) = pc+in(mal) - * mal(mlplusnum) = pc+in(mal) - * ogham(basic) = pc+ie(ogam) - * ogham(laptop) = pc+ie(ogam) - * ogham(is434) = pc+ie(ogam_is434) - * ogham(is434laptop) = pc+ie(ogam_is434) - * ori(basic) = pc+in(ori) - * ro(de) = pc+ro(winkeys) - * ro(us) = pc+ro(std) - * ro(academic) = pc+ro(std) - * ro(std_comma) = pc+ro(std) - * ro(comma) = pc+ro(basic) - * ru(os) = pc+ru(os_legacy) - * pk(urd) = pc+pk(urd-phonetic) - * sapmi(basic) = pc+no(smi) - * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) - * sapmi(sefi) = pc+fi(smi) - * sin(phonetic-static) = pc+in(sin_phonetic) - * syr(basic) = pc+sy(syc) - * syr(phonetic) = pc+sy(syc_phonetic) - * tam(INSCRIPT) = pc+in(tam) - * tam(UNI) = pc+in(tam_unicode) - * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) - * tam(TAB) = pc+in(tam_TAB) - * tam(TSCII) = pc+in(tam_TSCII) - * tel(basic) = pc+in(tel) - * yu(basic) = pc+srp(latin) - * yu(unicode) = pc+srp(latinunicode) - * yu(yz) = pc+srp(latinyz) - * yu(unicodeyz) = pc+srp(latinunicodeyz) - ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 - ataritt * = xfree68_vndr/ataritt(us)+%l%(v) - amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 - amiga * = xfree68_vndr/amiga(usa1)+%l%(v) - classmate us = pc+%l(classmate) - empty * = empty(basic) - * empty = empty(basic) - $sun $sun_custom = pc+sun_vndr/%l%(v) - pc98 nec_vndr/jp = nec_vndr/jp(pc98) - macintosh_old us = macintosh_vndr/us(oldmac) - macintosh_old en_US = macintosh_vndr/us(oldmac) - macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) - macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 - macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) - applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 - applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 - $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) - $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) - $macs en_US = pc+macintosh_vndr/us(extended) - $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) - nokiarx44 * = nokia_vndr/rx-44(%l) - nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) - nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) - nokiasu8w * = nokia_vndr/su-8w(%l) - olpc $olpclayouts = olpc+%l%(m) - olpc * = olpc+%l%(v) - olpcm $olpclayouts = olpc+%l%(m) - olpcm * = olpc+%l%(v) - $thinkpads br = pc+br(thinkpad) - sl-c3x00 * = pc+sharp_vndr/sl-c3x00(basic) - ws003sh * = pc+sharp_vndr/ws003sh(basic) - ws007sh * = pc+sharp_vndr/ws007sh(basic) - ws011sh * = pc+sharp_vndr/ws011sh(basic) - ws020sh * = pc+sharp_vndr/ws020sh(basic) - htcdream $htcdreamlayouts = %l(htcdream) - * $nonlatin = pc+us+%l%(v):2 - * * = pc+%l%(v) - -! model layout[1] = symbols - * ar = pc+ara%(v[1]) - * ben = pc+in(ben) - * bs = pc+ba%(v[1]) - * cs = pc+rs%(v[1]) - * cz_qwerty = pc+cz(qwerty) - * dev = pc+in(deva) - * dvorak = pc+us(dvorak) - * dzdwi = pc+bt%(v[1]) - * el = pc+gr%(v[1]) - * en_US = pc+latin%(v[1]) - * guj = pc+in(guj) - * gur = pc+in(guru) - * iu = pc+ca(ike) - * lo = pc+la%(v[1]) - * kan = pc+in(kan) - * mi = pc+mao%(v[1]) - * ogham = pc+ie(ogam) - * ori = pc+ie(ori) - * sapmi = pc+no(smi) - * sr = pc+srp%(v[1]) - * syr = pc+sy(syc) - * tel = pc+in(tel) - * tml = pc+in(tam) - * yu = pc+srp%(v[1]) - * fr-latin9 = pc+fr(latin9) - * us_intl = pc+us(alt-intl) - * ben(basic) = pc+in(ben) - * ben(probhat) = pc+in(ben_probhat) - * dev(basic) = pc+in(deva) - * dvorak($dvoraklayouts) = pc+%v(dvorak) - * dvorak(basic) = pc+us(dvorak) - * dvorak(pl_basic) = pc+pl(dvorak) - * dvorak(pl) = pc+pl(dvorak_quotes) - * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) - * dzdwi(basic) = pc+bt(basic) - * fi(basic) = pc+fi(classic) - * ge(azerty_tskapo) = pc+fr(geo) - * guj(basic) = pc+in(guj) - * gur(basic) = pc+in(guru) - * ie(laptop) = pc+ie(basic) - * ie(CloGaelachLaptop) = pc+ie(CloGaelach) - * in(urd) = pc+in(urd-phonetic) - * iu(basic) = pc+ca(ike) - * lo(basic) = pc+la(basic) - * kan(basic) = pc+in(kan) - * mal(basic) = pc+in(mal) - * mal(mlplusnum) = pc+in(mal) - * ogham(basic) = pc+ie(ogam) - * ogham(laptop) = pc+ie(ogam) - * ogham(is434) = pc+ie(ogam_is434) - * ogham(is434laptop) = pc+ie(ogam_is434) - * ori(basic) = pc+in(ori) - * ro(de) = pc+ro(winkeys) - * ro(us) = pc+ro(std) - * ro(academic) = pc+ro(std) - * ro(std_comma) = pc+ro(std) - * ro(comma) = pc+ro(basic) - * ru(os) = pc+ru(os_legacy) - * pk(urd) = pc+pk(urd-phonetic) - * sapmi(basic) = pc+no(smi) - * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) - * sapmi(sefi) = pc+fi(smi) - * sin(phonetic-static) = pc+in(sin_phonetic) - * syr(basic) = pc+sy(syc) - * syr(phonetic) = pc+sy(syc_phonetic) - * tam(INSCRIPT) = pc+in(tam) - * tam(UNI) = pc+in(tam_unicode) - * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) - * tam(TAB) = pc+in(tam_TAB) - * tam(TSCII) = pc+in(tam_TSCII) - * tel(basic) = pc+in(tel) - * yu(basic) = pc+srp(latin) - * yu(unicode) = pc+srp(latinunicode) - * yu(yz) = pc+srp(latinyz) - * yu(unicodeyz) = pc+srp(latinunicodeyz) - ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) - amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) - $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) - macintosh_old us = macintosh_vndr/us(oldmac) - macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) - macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) - applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) - $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) - $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) - $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) - nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) - nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) - $thinkpads br = pc+%l[1](thinkpad) - * * = pc+%l[1]%(v[1]) - -! model layout[1] variant[1] = symbols - * ben basic = pc+in(ben) - * ben probhat = pc+in(ben_probhat) - * dev basic = pc+in(deva) - * dvorak $dvoraklayouts = pc+%v(dvorak) - * dvorak basic = pc+us(dvorak) - * dvorak pl_basic = pc+pl(dvorak) - * dvorak pl = pc+pl(dvorak_quotes) - * dvorak pl_altquotes = pc+pl(dvorak_altquotes) - * dzdwi basic = pc+bt(basic) - * fi basic = pc+fi(classic) - * ge azerty_tskapo = pc+fr(geo) - * guj basic = pc+in(guj) - * gur basic = pc+in(guru) - * ie laptop = pc+ie(basic) - * ie CloGaelachLaptop = pc+ie(CloGaelach) - * in urd = pc+in(urd-phonetic) - * iu basic = pc+ca(ike) - * lo basic = pc+la(basic) - * kan basic = pc+in(kan) - * mal basic = pc+in(mal) - * mal mlplusnum = pc+in(mal) - * ogham basic = pc+ie(ogam) - * ogham laptop = pc+ie(ogam) - * ogham is434 = pc+ie(ogam_is434) - * ogham is434laptop = pc+ie(ogam_is434) - * ori basic = pc+in(ori) - * ro de = pc+ro(winkeys) - * ro us = pc+ro(std) - * ro academic = pc+ro(std) - * ro std_comma = pc+ro(std) - * ro comma = pc+ro(basic) - * ru os = pc+ru(os_legacy) - * pk urd = pc+pk(urd-phonetic) - * sapmi basic = pc+no(smi) - * sapmi nodeadkeys = pc+no(smi_nodeadkeys) - * sapmi sefi = pc+fi(smi) - * sin phonetic-static = pc+in(sin_phonetic) - * syr basic = pc+sy(syc) - * syr phonetic = pc+sy(syc_phonetic) - * tam INSCRIPT = pc+in(tam) - * tam UNI = pc+in(tam_unicode) - * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) - * tam TAB = pc+in(tam_TAB) - * tam TSCII = pc+in(tam_TSCII) - * tel basic = pc+in(tel) - * yu basic = pc+srp(latin) - * yu unicode = pc+srp(latinunicode) - * yu yz = pc+srp(latinyz) - * yu unicodeyz = pc+srp(latinunicodeyz) - -! model layout[2] = symbols - * ar = +ara%(v[2]):2 - * ben = +in(ben):2 - * bs = +ba%(v[2]):2 - * cs = +rs%(v[2]):2 - * cz_qwerty = +cz(qwerty):2 - * dev = +in(deva):2 - * dvorak = +us(dvorak):2 - * dzdwi = +bt%(v[2]):2 - * el = +gr%(v[2]):2 - * en_US = +latin%(v[2]):2 - * guj = +in(guj):2 - * gur = +in(guru):2 - * iu = +ca(ike):2 - * lo = +la%(v[2]):2 - * kan = +in(kan):2 - * mi = +mao%(v[2]):2 - * ogham = +ie(ogam):2 - * ori = +ie(ori):2 - * sapmi = +no(smi):2 - * sr = +srp%(v[2]):2 - * syr = +sy(syc):2 - * tel = +in(tel):2 - * tml = +in(tam):2 - * yu = +srp%(v[2]):2 - * fr-latin9 = +fr(latin9):2 - * us_intl = +us(alt-intl):2 - * ben(basic) = +in(ben):2 - * ben(probhat) = +in(ben_probhat):2 - * dev(basic) = +in(deva):2 - * dvorak($dvoraklayouts) = +%v(dvorak):2 - * dvorak(basic) = +us(dvorak):2 - * dvorak(pl_basic) = +pl(dvorak):2 - * dvorak(pl) = +pl(dvorak_quotes):2 - * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 - * dzdwi(basic) = +bt(basic):2 - * fi(basic) = +fi(classic):2 - * ge(azerty_tskapo) = +fr(geo):2 - * guj(basic) = +in(guj):2 - * gur(basic) = +in(guru):2 - * ie(laptop) = +ie(basic):2 - * ie(CloGaelachLaptop) = +ie(CloGaelach):2 - * in(urd) = +in(urd-phonetic):2 - * iu(basic) = +ca(ike):2 - * lo(basic) = +la(basic):2 - * kan(basic) = +in(kan):2 - * mal(basic) = +in(mal):2 - * mal(mlplusnum) = +in(mal):2 - * ogham(basic) = +ie(ogam):2 - * ogham(laptop) = +ie(ogam):2 - * ogham(is434) = +ie(ogam_is434):2 - * ogham(is434laptop) = +ie(ogam_is434):2 - * ori(basic) = +in(ori):2 - * ro(de) = +ro(winkeys):2 - * ro(us) = +ro(std):2 - * ro(academic) = +ro(std):2 - * ro(std_comma) = +ro(std):2 - * ro(comma) = +ro(basic):2 - * ru(os) = +ru(os_legacy):2 - * pk(urd) = +pk(urd-phonetic):2 - * sapmi(basic) = +no(smi):2 - * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 - * sapmi(sefi) = +fi(smi):2 - * sin(phonetic-static) = +in(sin_phonetic):2 - * syr(basic) = +sy(syc):2 - * syr(phonetic) = +sy(syc_phonetic):2 - * tam(INSCRIPT) = +in(tam):2 - * tam(UNI) = +in(tam_unicode):2 - * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 - * tam(TAB) = +in(tam_TAB):2 - * tam(TSCII) = +in(tam_TSCII):2 - * tel(basic) = +in(tel):2 - * yu(basic) = +srp(latin):2 - * yu(unicode) = +srp(latinunicode):2 - * yu(yz) = +srp(latinyz):2 - * yu(unicodeyz) = +srp(latinunicodeyz):2 - nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 - nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 - $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2 - * * = +%l[2]%(v[2]):2 - -! model layout[3] = symbols - * ar = +ara%(v[3]):3 - * ben = +in(ben):3 - * bs = +ba%(v[3]):3 - * cs = +rs%(v[3]):3 - * cz_qwerty = +cz(qwerty):3 - * dev = +in(deva):3 - * dvorak = +us(dvorak):3 - * dzdwi = +bt%(v[3]):3 - * el = +gr%(v[3]):3 - * en_US = +latin%(v[3]):3 - * guj = +in(guj):3 - * gur = +in(guru):3 - * iu = +ca(ike):3 - * lo = +la%(v[3]):3 - * kan = +in(kan):3 - * mi = +mao%(v[3]):3 - * ogham = +ie(ogam):3 - * ori = +ie(ori):3 - * sapmi = +no(smi):3 - * sr = +srp%(v[3]):3 - * syr = +sy(syc):3 - * tel = +in(tel):3 - * tml = +in(tam):3 - * yu = +srp%(v[3]):3 - * fr-latin9 = +fr(latin9):3 - * us_intl = +us(alt-intl):3 - * ben(basic) = +in(ben):3 - * ben(probhat) = +in(ben_probhat):3 - * dev(basic) = +in(deva):3 - * dvorak($dvoraklayouts) = +%v(dvorak):3 - * dvorak(basic) = +us(dvorak):3 - * dvorak(pl_basic) = +pl(dvorak):3 - * dvorak(pl) = +pl(dvorak_quotes):3 - * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 - * dzdwi(basic) = +bt(basic):3 - * fi(basic) = +fi(classic):3 - * ge(azerty_tskapo) = +fr(geo):3 - * guj(basic) = +in(guj):3 - * gur(basic) = +in(guru):3 - * ie(laptop) = +ie(basic):3 - * ie(CloGaelachLaptop) = +ie(CloGaelach):3 - * in(urd) = +in(urd-phonetic):3 - * iu(basic) = +ca(ike):3 - * lo(basic) = +la(basic):3 - * kan(basic) = +in(kan):3 - * mal(basic) = +in(mal):3 - * mal(mlplusnum) = +in(mal):3 - * ogham(basic) = +ie(ogam):3 - * ogham(laptop) = +ie(ogam):3 - * ogham(is434) = +ie(ogam_is434):3 - * ogham(is434laptop) = +ie(ogam_is434):3 - * ori(basic) = +in(ori):3 - * ro(de) = +ro(winkeys):3 - * ro(us) = +ro(std):3 - * ro(academic) = +ro(std):3 - * ro(std_comma) = +ro(std):3 - * ro(comma) = +ro(basic):3 - * ru(os) = +ru(os_legacy):3 - * pk(urd) = +pk(urd-phonetic):3 - * sapmi(basic) = +no(smi):3 - * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 - * sapmi(sefi) = +fi(smi):3 - * sin(phonetic-static) = +in(sin_phonetic):3 - * syr(basic) = +sy(syc):3 - * syr(phonetic) = +sy(syc_phonetic):3 - * tam(INSCRIPT) = +in(tam):3 - * tam(UNI) = +in(tam_unicode):3 - * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 - * tam(TAB) = +in(tam_TAB):3 - * tam(TSCII) = +in(tam_TSCII):3 - * tel(basic) = +in(tel):3 - * yu(basic) = +srp(latin):3 - * yu(unicode) = +srp(latinunicode):3 - * yu(yz) = +srp(latinyz):3 - * yu(unicodeyz) = +srp(latinunicodeyz):3 - nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 - nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 - $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3 - * * = +%l[3]%(v[3]):3 - -! model layout[4] = symbols - * ar = +ara%(v[4]):4 - * ben = +in(ben):4 - * bs = +ba%(v[4]):4 - * cs = +rs%(v[4]):4 - * cz_qwerty = +cz(qwerty):4 - * dev = +in(deva):4 - * dvorak = +us(dvorak):4 - * dzdwi = +bt%(v[4]):4 - * el = +gr%(v[4]):4 - * en_US = +latin%(v[4]):4 - * guj = +in(guj):4 - * gur = +in(guru):4 - * iu = +ca(ike):4 - * lo = +la%(v[4]):4 - * kan = +in(kan):4 - * mi = +mao%(v[4]):4 - * ogham = +ie(ogam):4 - * ori = +ie(ori):4 - * sapmi = +no(smi):4 - * sr = +srp%(v[4]):4 - * syr = +sy(syc):4 - * tel = +in(tel):4 - * tml = +in(tam):4 - * yu = +srp%(v[4]):4 - * fr-latin9 = +fr(latin9):4 - * us_intl = +us(alt-intl):4 - * ben(basic) = +in(ben):4 - * ben(probhat) = +in(ben_probhat):4 - * dev(basic) = +in(deva):4 - * dvorak($dvoraklayouts) = +%v(dvorak):4 - * dvorak(basic) = +us(dvorak):4 - * dvorak(pl_basic) = +pl(dvorak):4 - * dvorak(pl) = +pl(dvorak_quotes):4 - * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 - * dzdwi(basic) = +bt(basic):4 - * fi(basic) = +fi(classic):4 - * ge(azerty_tskapo) = +fr(geo):4 - * guj(basic) = +in(guj):4 - * gur(basic) = +in(guru):4 - * ie(laptop) = +ie(basic):4 - * ie(CloGaelachLaptop) = +ie(CloGaelach):4 - * in(urd) = +in(urd-phonetic):4 - * iu(basic) = +ca(ike):4 - * lo(basic) = +la(basic):4 - * kan(basic) = +in(kan):4 - * mal(basic) = +in(mal):4 - * mal(mlplusnum) = +in(mal):4 - * ogham(basic) = +ie(ogam):4 - * ogham(laptop) = +ie(ogam):4 - * ogham(is434) = +ie(ogam_is434):4 - * ogham(is434laptop) = +ie(ogam_is434):4 - * ori(basic) = +in(ori):4 - * ro(de) = +ro(winkeys):4 - * ro(us) = +ro(std):4 - * ro(academic) = +ro(std):4 - * ro(std_comma) = +ro(std):4 - * ro(comma) = +ro(basic):4 - * ru(os) = +ru(os_legacy):4 - * pk(urd) = +pk(urd-phonetic):4 - * sapmi(basic) = +no(smi):4 - * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 - * sapmi(sefi) = +fi(smi):4 - * sin(phonetic-static) = +in(sin_phonetic):4 - * syr(basic) = +sy(syc):4 - * syr(phonetic) = +sy(syc_phonetic):4 - * tam(INSCRIPT) = +in(tam):4 - * tam(UNI) = +in(tam_unicode):4 - * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 - * tam(TAB) = +in(tam_TAB):4 - * tam(TSCII) = +in(tam_TSCII):4 - * tel(basic) = +in(tel):4 - * yu(basic) = +srp(latin):4 - * yu(unicode) = +srp(latinunicode):4 - * yu(yz) = +srp(latinyz):4 - * yu(unicodeyz) = +srp(latinunicodeyz):4 - nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 - nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 - $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4 - * * = +%l[4]%(v[4]):4 - -! model layout[2] variant[2] = symbols - * ben basic = +in(ben):2 - * ben probhat = +in(ben_probhat):2 - * dev basic = +in(deva):2 - * dvorak $dvoraklayouts = +%v(dvorak):2 - * dvorak basic = +us(dvorak):2 - * dvorak pl_basic = +pl(dvorak):2 - * dvorak pl = +pl(dvorak_quotes):2 - * dvorak pl_altquotes = +pl(dvorak_altquotes):2 - * dzdwi basic = +bt(basic):2 - * fi basic = +fi(classic):2 - * ge azerty_tskapo = +fr(geo):2 - * guj basic = +in(guj):2 - * gur basic = +in(guru):2 - * ie laptop = +ie(basic):2 - * ie CloGaelachLaptop = +ie(CloGaelach):2 - * in urd = +in(urd-phonetic):2 - * iu basic = +ca(ike):2 - * lo basic = +la(basic):2 - * kan basic = +in(kan):2 - * mal basic = +in(mal):2 - * mal mlplusnum = +in(mal):2 - * ogham basic = +ie(ogam):2 - * ogham laptop = +ie(ogam):2 - * ogham is434 = +ie(ogam_is434):2 - * ogham is434laptop = +ie(ogam_is434):2 - * ori basic = +in(ori):2 - * ro de = +ro(winkeys):2 - * ro us = +ro(std):2 - * ro academic = +ro(std):2 - * ro std_comma = +ro(std):2 - * ro comma = +ro(basic):2 - * ru os = +ru(os_legacy):2 - * pk urd = +pk(urd-phonetic):2 - * sapmi basic = +no(smi):2 - * sapmi nodeadkeys = +no(smi_nodeadkeys):2 - * sapmi sefi = +fi(smi):2 - * sin phonetic-static = +in(sin_phonetic):2 - * syr basic = +sy(syc):2 - * syr phonetic = +sy(syc_phonetic):2 - * tam INSCRIPT = +in(tam):2 - * tam UNI = +in(tam_unicode):2 - * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 - * tam TAB = +in(tam_TAB):2 - * tam TSCII = +in(tam_TSCII):2 - * tel basic = +in(tel):2 - * yu basic = +srp(latin):2 - * yu unicode = +srp(latinunicode):2 - * yu yz = +srp(latinyz):2 - * yu unicodeyz = +srp(latinunicodeyz):2 - -! model layout[3] variant[3] = symbols - * ben basic = +in(ben):3 - * ben probhat = +in(ben_probhat):3 - * dev basic = +in(deva):3 - * dvorak $dvoraklayouts = +%v(dvorak):3 - * dvorak basic = +us(dvorak):3 - * dvorak pl_basic = +pl(dvorak):3 - * dvorak pl = +pl(dvorak_quotes):3 - * dvorak pl_altquotes = +pl(dvorak_altquotes):3 - * dzdwi basic = +bt(basic):3 - * fi basic = +fi(classic):3 - * ge azerty_tskapo = +fr(geo):3 - * guj basic = +in(guj):3 - * gur basic = +in(guru):3 - * ie laptop = +ie(basic):3 - * ie CloGaelachLaptop = +ie(CloGaelach):3 - * in urd = +in(urd-phonetic):3 - * iu basic = +ca(ike):3 - * lo basic = +la(basic):3 - * kan basic = +in(kan):3 - * mal basic = +in(mal):3 - * mal mlplusnum = +in(mal):3 - * ogham basic = +ie(ogam):3 - * ogham laptop = +ie(ogam):3 - * ogham is434 = +ie(ogam_is434):3 - * ogham is434laptop = +ie(ogam_is434):3 - * ori basic = +in(ori):3 - * ro de = +ro(winkeys):3 - * ro us = +ro(std):3 - * ro academic = +ro(std):3 - * ro std_comma = +ro(std):3 - * ro comma = +ro(basic):3 - * ru os = +ru(os_legacy):3 - * pk urd = +pk(urd-phonetic):3 - * sapmi basic = +no(smi):3 - * sapmi nodeadkeys = +no(smi_nodeadkeys):3 - * sapmi sefi = +fi(smi):3 - * sin phonetic-static = +in(sin_phonetic):3 - * syr basic = +sy(syc):3 - * syr phonetic = +sy(syc_phonetic):3 - * tam INSCRIPT = +in(tam):3 - * tam UNI = +in(tam_unicode):3 - * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 - * tam TAB = +in(tam_TAB):3 - * tam TSCII = +in(tam_TSCII):3 - * tel basic = +in(tel):3 - * yu basic = +srp(latin):3 - * yu unicode = +srp(latinunicode):3 - * yu yz = +srp(latinyz):3 - * yu unicodeyz = +srp(latinunicodeyz):3 - -! model layout[4] variant[4] = symbols - * ben basic = +in(ben):4 - * ben probhat = +in(ben_probhat):4 - * dev basic = +in(deva):4 - * dvorak $dvoraklayouts = +%v(dvorak):4 - * dvorak basic = +us(dvorak):4 - * dvorak pl_basic = +pl(dvorak):4 - * dvorak pl = +pl(dvorak_quotes):4 - * dvorak pl_altquotes = +pl(dvorak_altquotes):4 - * dzdwi basic = +bt(basic):4 - * fi basic = +fi(classic):4 - * ge azerty_tskapo = +fr(geo):4 - * guj basic = +in(guj):4 - * gur basic = +in(guru):4 - * ie laptop = +ie(basic):4 - * ie CloGaelachLaptop = +ie(CloGaelach):4 - * in urd = +in(urd-phonetic):4 - * iu basic = +ca(ike):4 - * lo basic = +la(basic):4 - * kan basic = +in(kan):4 - * mal basic = +in(mal):4 - * mal mlplusnum = +in(mal):4 - * ogham basic = +ie(ogam):4 - * ogham laptop = +ie(ogam):4 - * ogham is434 = +ie(ogam_is434):4 - * ogham is434laptop = +ie(ogam_is434):4 - * ori basic = +in(ori):4 - * ro de = +ro(winkeys):4 - * ro us = +ro(std):4 - * ro academic = +ro(std):4 - * ro std_comma = +ro(std):4 - * ro comma = +ro(basic):4 - * ru os = +ru(os_legacy):4 - * pk urd = +pk(urd-phonetic):4 - * sapmi basic = +no(smi):4 - * sapmi nodeadkeys = +no(smi_nodeadkeys):4 - * sapmi sefi = +fi(smi):4 - * sin phonetic-static = +in(sin_phonetic):4 - * syr basic = +sy(syc):4 - * syr phonetic = +sy(syc_phonetic):4 - * tam INSCRIPT = +in(tam):4 - * tam UNI = +in(tam_unicode):4 - * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 - * tam TAB = +in(tam_TAB):4 - * tam TSCII = +in(tam_TSCII):4 - * tel basic = +in(tel):4 - * yu basic = +srp(latin):4 - * yu unicode = +srp(latinunicode):4 - * yu yz = +srp(latinyz):4 - * yu unicodeyz = +srp(latinunicodeyz):4 - -! model = symbols - a4techKB21 = +inet(media_nav_common) - a4techKBS8 = +inet(media_nav_acpi_common) - a4_rfkb23 = +inet(media_nav_acpi_common) - asus_laptop = +inet(media_common) - acer_tm_800 = +inet(acer_laptop) - benqx730 = +inet(benqx) - benqx800 = +inet(benqx) - btc5126t = +inet(nav_acpi_common) - btc9116u = +inet(btc9019u) - btc6301urf = +inet(media_nav_acpi_common) - dellsk8125 = +inet(dell) - dellsk8135 = +inet(dell) - cherrybunlim = +inet(nav_common) - dexxa = +inet(media_nav_common) - dtk2000 = +inet(media_nav_acpi_common) - fscaa1667g = +inet(media_nav_common) - geniuskb19e = +inet(media_nav_acpi_common) - geniuscomfy = +inet(media_nav_acpi_common) - geniuskkb2050hs = +inet(dellusbmm) - hpnx9020 = +inet(hpi6) - latitude = +inet(media_common) - logicd = +inet(logitech_base) - logicd_it = +inet(logitech_base) - logicd_nav = +inet(logitech_base) - logicd_opt = +inet(logitech_base) - logiultrax = +inet(logitech_base) - logiclx300 = +inet(logiex110) - logii350 = +inet(logiex110) - logimel = +inet(logiex110) - logicdit = +inet(logicd) - logicdo = +inet(logicd) - logicdp = +inet(logicd) - logicdpa = +inet(logicda) - logiciink = +inet(logicink) - ltcd = +inet(logicda) - microsoftccurve2k = +inet(microsoftprooem) - microsoftpro = +inet(media_nav_acpi_common) - precision_m = +inet(media_nav_common) - scorpius = +inet(media_nav_acpi_common) - sp_inet = +inet(media_nav_acpi_common) - targa_v811 = +inet(media_nav_acpi_common) - thinkpad = +inet(media_nav_common) - thinkpadz60 = +inet(thinkpad60) - tm2030USB-102 = +inet(media_nav_acpi_common) - tm2030USB-106 = +inet(media_nav_acpi_common) - trust_slimline = +inet(media_nav_acpi_common) - vsonku306 = +inet(microsoftprooem) - $inetkbds = +inet(%m) - $maclaptop = +inet(apple)+level3(enter_switch) - $applealu = +inet(apple) - $macs = +inet(apple) - sun_type7_jp_usb = +sun_vndr/solaris(defaults_type7jp) - $sun = +sun_vndr/solaris(defaults) - -! model layout = symbols - $inetmediakbds jp = +jp(henkan) - -! layout variant = compat - de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) - de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) - jp $sun_compat = complete+japan(kana_lock) - -! layout[1] variant[1] = compat - de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) - de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) - jp $sun_compat = complete+japan(kana_lock) - -! layout[2] variant[2] = compat - de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 - de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 - jp $sun_compat = +complete+japan(kana_lock):2 - -! layout[3] variant[3] = compat - de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 - de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 - jp $sun_compat = +complete+japan(kana_lock):3 - -! layout[4] variant[4] = compat - de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 - de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 - jp $sun_compat = +complete+japan(kana_lock):4 - -! model layout = compat - pc98 nec_vndr/jp = pc98(basic) - * jp = complete+japan - olpc * = olpc - olpcm * = olpc - * * = complete - -! model layout[1] = compat - * * = complete - -! model = types - $macs = complete+numpad(mac) - $applealu = complete+numpad(mac) - $nokiamodels = complete+nokia - * = complete - -! layout option = symbols - $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) - * misc:typo = +typo(base) - * misc:extend = +extend(basic) - -! layout[1] option = symbols - $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 - * misc:typo = +typo(base):1 - * misc:extend = +extend(basic):1 - -! layout[2] option = symbols - $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 - * misc:typo = +typo(base):2 - * misc:extend = +extend(basic):2 - -! layout[3] option = symbols - $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 - * misc:typo = +typo(base):3 - * misc:extend = +extend(basic):3 - -! layout[4] option = symbols - $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 - * misc:typo = +typo(base):4 - * misc:extend = +extend(basic):4 - -! option = symbols - grp:shift_toggle = +group(shifts_toggle) - altwin:menu = +altwin(menu) - altwin:meta_alt = +altwin(meta_alt) - altwin:alt_win = +altwin(alt_win) - altwin:ctrl_win = +altwin(ctrl_win) - altwin:ctrl_alt_win = +altwin(ctrl_alt_win) - altwin:meta_win = +altwin(meta_win) - altwin:left_meta_win = +altwin(left_meta_win) - altwin:hyper_win = +altwin(hyper_win) - altwin:alt_super_win = +altwin(alt_super_win) - altwin:swap_alt_win = +altwin(swap_alt_win) - grab:debug = +srvr_ctrl(grab_debug) - grp:switch = +group(switch) - grp:lswitch = +group(lswitch) - grp:win_switch = +group(win_switch) - grp:lwin_switch = +group(lwin_switch) - grp:rwin_switch = +group(rwin_switch) - grp:toggle = +group(toggle) - grp:shifts_toggle = +group(shifts_toggle) - grp:ctrls_toggle = +group(ctrls_toggle) - grp:alts_toggle = +group(alts_toggle) - grp:caps_toggle = +capslock(grouplock) - grp:caps_switch = +capslock(groupshift) - grp:shift_caps_toggle = +group(shift_caps_toggle) - grp:shift_caps_switch = +group(shift_caps_switch) - grp:win_space_toggle = +group(win_space_toggle) - grp:win_menu_switch = +group(win_menu_switch) - grp:alt_caps_toggle = +group(alt_caps_toggle) - grp:alt_space_toggle = +group(alt_space_toggle) - grp:menu_toggle = +group(menu_toggle) - grp:lwin_toggle = +group(lwin_toggle) - grp:rwin_toggle = +group(rwin_toggle) - grp:lshift_toggle = +group(lshift_toggle) - grp:rshift_toggle = +group(rshift_toggle) - grp:lctrl_switch = +group(lctrl_switch) - grp:rctrl_switch = +group(rctrl_switch) - grp:lctrl_toggle = +group(lctrl_toggle) - grp:rctrl_toggle = +group(rctrl_toggle) - grp:lalt_toggle = +group(lalt_toggle) - grp:sclk_toggle = +group(sclk_toggle) - grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) - grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) - grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) - grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) - grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) - grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) - grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) - grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) - grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) - grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) - grp:rctrl_switch_ctrls_toggle = +group(rctrl_switch_ctrls_toggle) - grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) - grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) - grp:alt_shift_toggle = +group(alt_shift_toggle) - grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) - lv3:switch = +level3(switch) - lv3:ralt_switch = +level3(ralt_switch) - lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) - lv3:ralt_alt = +level3(ralt_alt) - lv3:lalt_switch = +level3(lalt_switch) - lv3:alt_switch = +level3(alt_switch) - lv3:menu_switch = +level3(menu_switch) - lv3:win_switch = +level3(win_switch) - lv3:lwin_switch = +level3(lwin_switch) - lv3:rwin_switch = +level3(rwin_switch) - lv3:enter_switch = +level3(enter_switch) - caps:capslock = +capslock(capslock) - caps:numlock = +capslock(numlock) - caps:shiftlock = +capslock(shiftlock) - caps:swapescape = +capslock(swapescape) - caps:escape = +capslock(escape) - caps:backspace = +capslock(backspace) - caps:super = +capslock(super) - caps:hyper = +capslock(hyper) - caps:none = +capslock(none) - caps:ctrl_modifier = +capslock(ctrl_modifier) - ctrl:nocaps = +ctrl(nocaps) - ctrl:lctrl_meta = +ctrl(lctrl_meta) - ctrl:swapcaps = +ctrl(swapcaps) - ctrl:ac_ctrl = +ctrl(ac_ctrl) - ctrl:aa_ctrl = +ctrl(aa_ctrl) - ctrl:rctrl_ralt = +ctrl(rctrl_ralt) - ctrl:menu_rctrl = +ctrl(menu_rctrl) - ctrl:ralt_rctrl = +ctrl(ralt_rctrl) - compose:ralt = +compose(ralt) - compose:lwin = +compose(lwin) - compose:lwin-altgr = +compose(lwin-altgr) - compose:rwin = +compose(rwin) - compose:rwin-altgr = +compose(rwin-altgr) - compose:menu = +compose(menu) - compose:menu-altgr = +compose(menu-altgr) - compose:lctrl = +compose(lctrl) - compose:lctrl-altgr = +compose(lctrl-altgr) - compose:rctrl = +compose(rctrl) - compose:rctrl-altgr = +compose(rctrl-altgr) - compose:caps = +compose(caps) - compose:caps-altgr = +compose(caps-altgr) - compose:102 = +compose(102) - compose:102-altgr = +compose(102-altgr) - compose:paus = +compose(paus) - compose:prsc = +compose(prsc) - compose:sclk = +compose(sclk) - srvrkeys:none = +srvr_ctrl(no_srvr_keys) - eurosign:e = +eurosign(e) - eurosign:2 = +eurosign(2) - eurosign:4 = +eurosign(4) - eurosign:5 = +eurosign(5) - rupeesign:4 = +rupeesign(4) - keypad:oss = +keypad(oss) - keypad:legacy = +keypad(legacy) - keypad:legacy_wang = +keypad(legacy_wang) - keypad:oss_wang = +keypad(oss_wang) - keypad:future = +keypad(future) - keypad:future_wang = +keypad(future_wang) - keypad:hex = +keypad(ops)+keypad(hex) - keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) - nbsp:none = +nbsp(none) - nbsp:level2 = +nbsp(level2) - nbsp:level3 = +nbsp(level3) - nbsp:level3s = +nbsp(level3s) - nbsp:level3n = +nbsp(level3n) - nbsp:level4 = +nbsp(level4) - nbsp:level4n = +nbsp(level4n) - nbsp:level4nl = +nbsp(level4nl) - japan:nicola_f_bs = +jp(nicola_f_bs) - japan:hztg_escape = +jp(hztg_escape) - kpdl:dot = +kpdl(dot) - kpdl:comma = +kpdl(comma) - kpdl:dotoss = +kpdl(dotoss) - kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) - kpdl:commaoss = +kpdl(commaoss) - kpdl:momayyezoss = +kpdl(momayyezoss) - kpdl:kposs = +kpdl(kposs) - kpdl:semi = +kpdl(semi) - shift:breaks_caps = +shift(breaks_caps) - esperanto:qwerty = +epo(qwerty) - esperanto:dvorak = +epo(dvorak) - esperanto:colemak = +epo(colemak) - terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) - keypad:pointerkeys = +keypad(pointerkeys) - apple:alupckeys = +macintosh_vndr/apple(alupckeys) - shift:both_capslock = +shift(both_capslock) - shift:lshift_both_capslock = +shift(lshift_both_capslock) - shift:rshift_both_capslock = +shift(rshift_both_capslock) - shift:both_capslock_cancel = +shift(both_capslock_cancel) - shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) - shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) - shift:both_shiftlock = +shift(both_shiftlock) - shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) - shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) - solaris:sun_compat = +sun_vndr/solaris(sun_compat) - lv3:caps_switch = +level3(caps_switch) - lv3:bksl_switch = +level3(bksl_switch) - lv3:lsgt_switch = +level3(lsgt_switch) - lv3:caps_switch_latch = +level3(caps_switch_latch) - lv3:bksl_switch_latch = +level3(bksl_switch_latch) - lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) - lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) - lv5:ralt_switch_lock = +level5(ralt_switch_lock) - lv5:lwin_switch_lock = +level5(lwin_switch_lock) - lv5:rwin_switch_lock = +level5(rwin_switch_lock) - lv5:caps_switch_lock = +level5(caps_switch_lock) - lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) - lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) - lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) - lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) - lv5:caps_switch_lock_cancel = +level5(caps_switch_lock_cancel) - - - -! option = compat - grp_led:num = +lednum(group_lock) - grp_led:caps = +ledcaps(group_lock) - grp_led:scroll = +ledscroll(group_lock) - japan:kana_lock = +japan(kana_lock) - caps:shiftlock = +ledcaps(shift_lock) - grab:break_actions = +xfree86(grab_break) - - -! option = types - caps:internal = +caps(internal) - caps:internal_nocancel = +caps(internal_nocancel) - caps:shift = +caps(shift) - caps:shift_nocancel = +caps(shift_nocancel) - numpad:pc = +numpad(pc) - numpad:mac = +numpad(mac) - numpad:microsoft = +numpad(microsoft) - numpad:shift3 = +numpad(shift3) diff --git a/x-mod_v2-12-1_2015-01-18/xkb/rules/base.lst b/x-mod_v2-12-1_2015-01-18/xkb/rules/base.lst deleted file mode 100644 index 8753b30..0000000 --- a/x-mod_v2-12-1_2015-01-18/xkb/rules/base.lst +++ /dev/null @@ -1,963 +0,0 @@ -! model - pc101 Generic 101-key PC - pc102 Generic 102-key (Intl) PC - pc104 Generic 104-key PC - pc105 Generic 105-key (Intl) PC - pc104angle-z Generic 104-key PC Angle(Z)Ergo - pc104wide-qu Generic 104-key PC Wide(Quote)Ergo - pc104awide-zqu Generic 104-key PC Angle(Z)Wide(Quote)Ergo - pc104aframe Generic 104-key PC AngleFrame(Quote)Ergo - pc105angle-lg Generic 105-key (Intl) PC Angle(LSGT)Ergo - pc105awide-sl Generic 105-key (Intl) PC AngleWide(/)Ergo - dell101 Dell 101-key PC - latitude Dell Latitude series laptop - dellm65 Dell Precision M65 - everex Everex STEPnote - flexpro Keytronic FlexPro - microsoft Microsoft Natural - omnikey101 Northgate OmniKey 101 - winbook Winbook Model XP5 - pc98 PC-98xx Series - a4techKB21 A4Tech KB-21 - a4techKBS8 A4Tech KBS-8 - a4_rfkb23 A4Tech Wireless Desktop RFKB-23 - airkey Acer AirKey V - azonaRF2300 Azona RF2300 wireless Internet Keyboard - scorpius Advance Scorpius KI - brother Brother Internet Keyboard - btc5113rf BTC 5113RF Multimedia - btc5126t BTC 5126T - btc6301urf BTC 6301URF - btc9000 BTC 9000 - btc9000a BTC 9000A - btc9001ah BTC 9001AH - btc5090 BTC 5090 - btc9019u BTC 9019U - btc9116u BTC 9116U Mini Wireless Internet and Gaming - cherryblue Cherry Blue Line CyBo@rd - cherryblueb Cherry CyMotion Master XPress - cherrybluea Cherry Blue Line CyBo@rd (alternate option) - cherrycyboard Cherry CyBo@rd USB-Hub - cherrycmexpert Cherry CyMotion Expert - cherrybunlim Cherry B.UNLIMITED - chicony Chicony Internet Keyboard - chicony0108 Chicony KU-0108 - chicony0420 Chicony KU-0420 - chicony9885 Chicony KB-9885 - compaqeak8 Compaq Easy Access Keyboard - compaqik7 Compaq Internet Keyboard (7 keys) - compaqik13 Compaq Internet Keyboard (13 keys) - compaqik18 Compaq Internet Keyboard (18 keys) - cymotionlinux Cherry CyMotion Master Linux - armada Laptop/notebook Compaq (eg. Armada) Laptop Keyboard - presario Laptop/notebook Compaq (eg. Presario) Internet Keyboard - ipaq Compaq iPaq Keyboard - dell Dell - dellsk8125 Dell SK-8125 - dellsk8135 Dell SK-8135 - dellusbmm Dell USB Multimedia Keyboard - inspiron Dell Laptop/notebook Inspiron 6xxx/8xxx - precision_m Dell Laptop/notebook Precision M series - dexxa Dexxa Wireless Desktop Keyboard - diamond Diamond 9801 / 9802 series - dtk2000 DTK2000 - ennyah_dkb1008 Ennyah DKB-1008 - fscaa1667g Fujitsu-Siemens Computers AMILO laptop - genius Genius Comfy KB-16M / Genius MM Keyboard KWD-910 - geniuscomfy Genius Comfy KB-12e - geniuscomfy2 Genius Comfy KB-21e-Scroll - geniuskb19e Genius KB-19e NB - geniuskkb2050hs Genius KKB-2050HS - gyration Gyration - htcdream HTC Dream - kinesis Kinesis - logitech_base Logitech Generic Keyboard - logitech_g15 Logitech G15 extra keys via G15daemon - hpi6 Hewlett-Packard Internet Keyboard - hp250x Hewlett-Packard SK-250x Multimedia Keyboard - hpxe3gc Hewlett-Packard Omnibook XE3 GC - hpxe3gf Hewlett-Packard Omnibook XE3 GF - hpxt1000 Hewlett-Packard Omnibook XT1000 - hpdv5 Hewlett-Packard Pavilion dv5 - hpzt11xx Hewlett-Packard Pavilion ZT11xx - hp500fa Hewlett-Packard Omnibook 500 FA - hp5xx Hewlett-Packard Omnibook 5xx - hpnx9020 Hewlett-Packard nx9020 - hp6000 Hewlett-Packard Omnibook 6000/6100 - honeywell_euroboard Honeywell Euroboard - hpmini110 Hewlett-Packard Mini 110 Notebook - rapidaccess IBM Rapid Access - rapidaccess2 IBM Rapid Access II - thinkpad IBM ThinkPad 560Z/600/600E/A22E - thinkpad60 IBM ThinkPad R60/T60/R61/T61 - thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t - ibm_spacesaver IBM Space Saver - logiaccess Logitech Access Keyboard - logiclx300 Logitech Cordless Desktop LX-300 - logii350 Logitech Internet 350 Keyboard - logimel Logitech Media Elite Keyboard - logicd Logitech Cordless Desktop - logicd_it Logitech Cordless Desktop iTouch - logicd_nav Logitech Cordless Desktop Navigator - logicd_opt Logitech Cordless Desktop Optical - logicda Logitech Cordless Desktop (alternate option) - logicdpa2 Logitech Cordless Desktop Pro (alternate option 2) - logicfn Logitech Cordless Freedom/Desktop Navigator - logicdn Logitech Cordless Desktop Navigator - logiitc Logitech iTouch Cordless Keyboard (model Y-RB6) - logiik Logitech Internet Keyboard - itouch Logitech iTouch - logicink Logitech Internet Navigator Keyboard - logiex110 Logitech Cordless Desktop EX110 - logiinkse Logitech iTouch Internet Navigator Keyboard SE - logiinkseusb Logitech iTouch Internet Navigator Keyboard SE (USB) - logiultrax Logitech Ultra-X Keyboard - logiultraxc Logitech Ultra-X Cordless Media Desktop Keyboard - logidinovo Logitech diNovo Keyboard - logidinovoedge Logitech diNovo Edge Keyboard - mx1998 Memorex MX1998 - mx2500 Memorex MX2500 EZ-Access Keyboard - mx2750 Memorex MX2750 - microsoft4000 Microsoft Natural Wireless Ergonomic Keyboard 4000 - microsoft7000 Microsoft Natural Wireless Ergonomic Keyboard 7000 - microsoftinet Microsoft Internet Keyboard - microsoftpro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro - microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro - microsoftprooem Microsoft Natural Keyboard Pro OEM - vsonku306 ViewSonic KU-306 Internet Keyboard - microsoftprose Microsoft Internet Keyboard Pro, Swedish - microsoftoffice Microsoft Office Keyboard - microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A - microsoftelite Microsoft Natural Keyboard Elite - microsoftccurve2k Microsoft Comfort Curve Keyboard 2000 - oretec Ortek MCK-800 MM/Internet keyboard - propeller Propeller Voyager (KTEZ-1000) - qtronix QTronix Scorpius 98N+ - samsung4500 Samsung SDM 4500P - samsung4510 Samsung SDM 4510P - sanwaskbkg3 Sanwa Supply SKB-KG3 - sk1300 SK-1300 - sk2500 SK-2500 - sk6200 SK-6200 - sk7100 SK-7100 - sp_inet Super Power Multimedia Keyboard - sven SVEN Ergonomic 2500 - sven303 SVEN Slim 303 - symplon Symplon PaceBook (tablet PC) - toshiba_s3000 Toshiba Satellite S3000 - trust Trust Wireless Keyboard Classic - trustda Trust Direct Access Keyboard - trust_slimline Trust Slimline - tm2020 TypeMatrix EZ-Reach 2020 - tm2030PS2 TypeMatrix EZ-Reach 2030 PS2 - tm2030USB TypeMatrix EZ-Reach 2030 USB - tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) - tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode) - yahoo Yahoo! Internet Keyboard - macbook78 MacBook/MacBook Pro - macbook79 MacBook/MacBook Pro (Intl) - macintosh Macintosh - macintosh_old Macintosh Old - macintosh_hhk Happy Hacking Keyboard for Mac - acer_c300 Acer C300 - acer_ferrari4k Acer Ferrari 4000 - acer_laptop Acer Laptop - asus_laptop Asus Laptop - apple Apple - apple_laptop Apple Laptop - applealu_ansi Apple Aluminium Keyboard (ANSI) - applealu_iso Apple Aluminium Keyboard (ISO) - applealu_jis Apple Aluminium Keyboard (JIS) - silvercrest SILVERCREST Multimedia Wireless Keyboard - emachines Laptop/notebook eMachines m68xx - benqx BenQ X-Touch - benqx730 BenQ X-Touch 730 - benqx800 BenQ X-Touch 800 - hhk Happy Hacking Keyboard - classmate Classmate PC - olpc OLPC - sun_type7_usb Sun Type 7 USB - sun_type7_euro_usb Sun Type 7 USB (European layout) - sun_type7_unix_usb Sun Type 7 USB (Unix layout) - sun_type7_jp_usb Sun Type 7 USB (Japanese layout) / Japanese 106-key - sun_type6_usb Sun Type 6/7 USB - sun_type6_euro_usb Sun Type 6/7 USB (European layout) - sun_type6_unix_usb Sun Type 6 USB (Unix layout) - sun_type6_jp_usb Sun Type 6 USB (Japanese layout) - sun_type6_jp Sun Type 6 (Japanese layout) - targa_v811 Targa Visionary 811 - unitekkb1925 Unitek KB-1925 - compalfl90 FL90 - creativedw7000 Creative Desktop Wireless 7000 - htcdream Htc Dream phone - -! layout - us English (US) - af Afghani - ara Arabic - al Albanian - am Armenian - at German (Austria) - az Azerbaijani - by Belarusian - be Belgian - bd Bangla - in Indian - ba Bosnian - br Portuguese (Brazil) - bg Bulgarian - ma Arabic (Morocco) - cm English (Cameroon) - mm Burmese - ca French (Canada) - cd French (Democratic Republic of the Congo) - cn Chinese - hr Croatian - cz Czech - dk Danish - nl Dutch - bt Dzongkha - ee Estonian - ir Persian - iq Iraqi - fo Faroese - fi Finnish - fr French - gh English (Ghana) - gn French (Guinea) - ge Georgian - de German - gr Greek - hu Hungarian - is Icelandic - il Hebrew - it Italian - jp Japanese - kg Kyrgyz - kh Khmer (Cambodia) - kz Kazakh - la Lao - latam Spanish (Latin American) - lt Lithuanian - lv Latvian - mao Maori - me Montenegrin - mk Macedonian - mt Maltese - mn Mongolian - no Norwegian - pl Polish - pt Portuguese - ro Romanian - ru Russian - rs Serbian - si Slovenian - sk Slovak - es Spanish - se Swedish - ch German (Switzerland) - sy Arabic (Syria) - tj Tajik - lk Sinhala (phonetic) - th Thai - tr Turkish - tw Taiwanese - ua Ukrainian - gb English (UK) - uz Uzbek - vn Vietnamese - kr Korean - nec_vndr/jp Japanese (PC-98xx Series) - ie Irish - pk Urdu (Pakistan) - mv Dhivehi - za English (South Africa) - epo Esperanto - np Nepali - ng English (Nigeria) - et Amharic - sn Wolof - brai Braille - tm Turkmen - ml Bambara - tz Swahili (Tanzania) - ke Swahili (Kenya) - bw Tswana - ph Filipino - md Moldavian - -! variant - chr us: Cherokee - euro us: English (US, with euro on 5) - intl us: English (US, international with dead keys) - alt-intl us: English (US, alternative international) - colemak us: English (Colemak) - cmk_ed_us us: English (Colemak, edition DreymaR) - tarmak1_e us: English (Tarmak1 - Colemak transitional) - tarmak2_et us: English (Tarmak2 - Colemak transitional) - tarmak3_etr us: English (Tarmak3 - Colemak transitional) - tarmak4_etro us: English (Tarmak4 - Colemak transitional) - cmk_ed_dvbghm us: English (Colemak[eD], Curl-Dvbg/Hm ergo) - cmk_ed_dbghk us: English (Colemak[eD], Curl-Dbg/Hk ergo) - cmk_ed_mirror us: English (Colemak[eD], mirrored) - dvorak us: English (Dvorak) - dvorak-intl us: English (Dvorak, international with dead keys) - dvorak-alt-intl us: English (Dvorak alternative international no dead keys) - dvorak-l us: English (left handed Dvorak) - dvorak-r us: English (right handed Dvorak) - dvorak-classic us: English (classic Dvorak) - dvp us: English (programmer Dvorak) - rus us: Russian (US, phonetic) - mac us: English (Macintosh) - altgr-intl us: English (international AltGr dead keys) - olpc2 us: English (the divide/multiply keys toggle the layout) - hbs us: Serbo-Croatian (US) - workman us: English (Workman) - workman-intl us: English (Workman, international with dead keys) - ps af: Pashto - uz af: Uzbek (Afghanistan) - olpc-ps af: Pashto (Afghanistan, OLPC) - fa-olpc af: Persian (Afghanistan, Dari OLPC) - uz-olpc af: Uzbek (Afghanistan, OLPC) - azerty ara: Arabic (azerty) - azerty_digits ara: Arabic (azerty/digits) - digits ara: Arabic (digits) - qwerty ara: Arabic (qwerty) - qwerty_digits ara: Arabic (qwerty/digits) - buckwalter ara: Arabic (Buckwalter) - plisi-d1 al: Albanian (Plisi D1) - cmk_ed_ks al: Albanian (Colemak[eD], keep local symbols) - cmk_ed_us al: Albanian (Colemak[eD], unified symbols) - phonetic am: Armenian (phonetic) - phonetic-alt am: Armenian (alternative phonetic) - eastern am: Armenian (eastern) - western am: Armenian (western) - eastern-alt am: Armenian (alternative eastern) - nodeadkeys at: German (Austria, eliminate dead keys) - sundeadkeys at: German (Austria, Sun dead keys) - mac at: German (Austria, Macintosh) - cmk_ed_ks at: German (Austria, Colemak[eD], keep local symbols) - cmk_ed_us at: German (Austria, Colemak[eD], unified symbols) - cyrillic az: Azerbaijani (Cyrillic) - legacy by: Belarusian (legacy) - latin by: Belarusian (Latin) - oss be: Belgian (alternative) - oss_latin9 be: Belgian (alternative, Latin-9 only) - oss_sundeadkeys be: Belgian (alternative, Sun dead keys) - iso-alternate be: Belgian (ISO alternate) - nodeadkeys be: Belgian (eliminate dead keys) - sundeadkeys be: Belgian (Sun dead keys) - wang be: Belgian (Wang model 724 azerty) - cmk_ed_ks be: Belgian (Colemak[eD], keep local symbols) - cmk_ed_us be: Belgian (Colemak[eD], unified symbols) - probhat bd: Bangla (Probhat) - ben in: Bangla (India) - ben_probhat in: Bangla (India, Probhat) - ben_baishakhi in: Bangla (India, Baishakhi) - ben_bornona in: Bangla (India, Bornona) - ben_gitanjali in: Bangla (India, Uni Gitanjali) - ben_inscript in: Bangla (India, Baishakhi Inscript) - eeyek in: Manipuri (Eeyek) - guj in: Gujarati - guru in: Punjabi (Gurmukhi) - jhelum in: Punjabi (Gurmukhi Jhelum) - kan in: Kannada - kan-kagapa in: Kannada (KaGaPa phonetic) - mal in: Malayalam - mal_lalitha in: Malayalam (Lalitha) - mal_enhanced in: Malayalam (enhanced Inscript, with rupee sign) - ori in: Oriya - tam_unicode in: Tamil (Unicode) - tam_keyboard_with_numerals in: Tamil (keyboard with numerals) - tam_TAB in: Tamil (TAB typewriter) - tam_TSCII in: Tamil (TSCII typewriter) - tam in: Tamil - tel in: Telugu - tel-kagapa in: Telugu (KaGaPa phonetic) - urd-phonetic in: Urdu (phonetic) - urd-phonetic3 in: Urdu (alternative phonetic) - urd-winkeys in: Urdu (WinKeys) - bolnagri in: Hindi (Bolnagri) - hin-wx in: Hindi (Wx) - hin-kagapa in: Hindi (KaGaPa phonetic) - san-kagapa in: Sanskrit (KaGaPa phonetic) - mar-kagapa in: Marathi (KaGaPa phonetic) - eng in: English (India, with rupee sign) - alternatequotes ba: Bosnian (with guillemets for quotes) - unicode ba: Bosnian (with Bosnian digraphs) - unicodeus ba: Bosnian (US keyboard with Bosnian digraphs) - us ba: Bosnian (US keyboard with Bosnian letters) - cmk_ed_ks ba: Bosnian (Colemak[eD], keep local symbols) - cmk_ed_us ba: Bosnian (Colemak[eD], unified symbols) - nodeadkeys br: Portuguese (Brazil, eliminate dead keys) - dvorak br: Portuguese (Brazil, Dvorak) - nativo br: Portuguese (Brazil, Nativo) - nativo-us br: Portuguese (Brazil, Nativo for US keyboards) - nativo-epo br: Esperanto (Brazil, Nativo) - cmk_ed_ks br: Portuguese (Brazil, Colemak[eD], keep local symbols) - cmk_ed_us br: Portuguese (Brazil, Colemak[eD], unified symbols) - phonetic bg: Bulgarian (traditional phonetic) - bas_phonetic bg: Bulgarian (new phonetic) - colemak bg: Bulgarian (Colemak, phonetic) - french ma: French (Morocco) - tifinagh ma: Berber (Morocco, Tifinagh) - tifinagh-alt ma: Berber (Morocco, Tifinagh alternative) - tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alternative phonetic) - tifinagh-extended ma: Berber (Morocco, Tifinagh extended) - tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic) - tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic) - french cm: French (Cameroon) - qwerty cm: Cameroon Multilingual (qwerty) - azerty cm: Cameroon Multilingual (azerty) - dvorak cm: Cameroon Multilingual (Dvorak) - fr-dvorak ca: French (Canada, Dvorak) - fr-legacy ca: French (Canada, legacy) - multix ca: Canadian Multilingual - multi ca: Canadian Multilingual (first part) - multi-2gr ca: Canadian Multilingual (second part) - cmk_ed_ks ca: Canadian multilingual (Colemak[eD], keep local symbols) - cmk_ed_us ca: Canadian multilingual (Colemak[eD], unified symbols) - ike ca: Inuktitut - eng ca: English (Canada) - tib cn: Tibetan - tib_asciinum cn: Tibetan (with ASCII numerals) - ug cn: Uyghur - alternatequotes hr: Croatian (with guillemets for quotes) - unicode hr: Croatian (with Croatian digraphs) - unicodeus hr: Croatian (US keyboard with Croatian digraphs) - us hr: Croatian (US keyboard with Croatian letters) - cmk_ed_ks hr: Croatian (Colemak[eD], keep local symbols) - cmk_ed_us hr: Croatian (Colemak[eD], unified symbols) - bksl cz: Czech (with <\|> key) - qwerty cz: Czech (qwerty) - qwerty_bksl cz: Czech (qwerty, extended Backslash) - ucw cz: Czech (UCW layout, accented letters only) - dvorak-ucw cz: Czech (US Dvorak with CZ UCW support) - cmk_ed_ks cz: Czech (Colemak[eD], keep local symbols) - cmk_ed_us cz: Czech (Colemak[eD], unified symbols) - nodeadkeys dk: Danish (eliminate dead keys) - winkeys dk: Danish (Winkeys) - mac dk: Danish (Macintosh) - mac_nodeadkeys dk: Danish (Macintosh, eliminate dead keys) - dvorak dk: Danish (Dvorak) - cmk_ed_ks dk: Danish (Colemak[eD], keep local symbols) - cmk_ed_us dk: Danish (Colemak[eD], unified symbols) - sundeadkeys nl: Dutch (Sun dead keys) - mac nl: Dutch (Macintosh) - std nl: Dutch (standard) - cmk_ed_ks nl: Dutch (Colemak[eD], keep local symbols) - cmk_ed_us nl: Dutch (Colemak[eD], unified symbols) - nodeadkeys ee: Estonian (eliminate dead keys) - dvorak ee: Estonian (Dvorak) - us ee: Estonian (US keyboard with Estonian letters) - pes_keypad ir: Persian (with Persian keypad) - ku ir: Kurdish (Iran, Latin Q) - ku_f ir: Kurdish (Iran, F) - ku_alt ir: Kurdish (Iran, Latin Alt-Q) - ku_ara ir: Kurdish (Iran, Arabic-Latin) - ku iq: Kurdish (Iraq, Latin Q) - ku_f iq: Kurdish (Iraq, F) - ku_alt iq: Kurdish (Iraq, Latin Alt-Q) - ku_ara iq: Kurdish (Iraq, Arabic-Latin) - nodeadkeys fo: Faroese (eliminate dead keys) - classic fi: Finnish (classic) - nodeadkeys fi: Finnish (classic, eliminate dead keys) - winkeys fi: Finnish (Winkeys) - smi fi: Northern Saami (Finland) - mac fi: Finnish (Macintosh) - cmk_ed_ks fi: Finnish (Colemak[eD], keep local symbols) - cmk_ed_us fi: Finnish (Colemak[eD], unified symbols) - nodeadkeys fr: French (eliminate dead keys) - sundeadkeys fr: French (Sun dead keys) - oss fr: French (alternative) - oss_latin9 fr: French (alternative, Latin-9 only) - oss_nodeadkeys fr: French (alternative, eliminate dead keys) - oss_sundeadkeys fr: French (alternative, Sun dead keys) - latin9 fr: French (legacy, alternative) - latin9_nodeadkeys fr: French (legacy, alternative, eliminate dead keys) - latin9_sundeadkeys fr: French (legacy, alternative, Sun dead keys) - bepo fr: French (Bepo, ergonomic, Dvorak way) - bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only) - dvorak fr: French (Dvorak) - mac fr: French (Macintosh) - bre fr: French (Breton) - cmk_ed_ks fr: French (Colemak[eD], keep local symbols) - cmk_ed_us fr: French (Colemak[eD], unified symbols) - oci fr: Occitan - geo fr: Georgian (France, AZERTY Tskapo) - generic gh: English (Ghana, multilingual) - akan gh: Akan - ewe gh: Ewe - fula gh: Fula - ga gh: Ga - hausa gh: Hausa - avn gh: Avatime - gillbt gh: English (Ghana, GILLBT) - ergonomic ge: Georgian (ergonomic) - mess ge: Georgian (MESS) - ru ge: Russian (Georgia) - os ge: Ossetian (Georgia) - deadacute de: German (dead acute) - deadgraveacute de: German (dead grave acute) - nodeadkeys de: German (eliminate dead keys) - T3 de: German (T3) - ro de: Romanian (Germany) - ro_nodeadkeys de: Romanian (Germany, eliminate dead keys) - dvorak de: German (Dvorak) - sundeadkeys de: German (Sun dead keys) - neo de: German (Neo 2) - mac de: German (Macintosh) - mac_nodeadkeys de: German (Macintosh, eliminate dead keys) - cmk_ed_ks de: German (Colemak[eD], keep local symbols) - cmk_ed_us de: German (Colemak[eD], unified symbols) - dsb de: Lower Sorbian - dsb_qwertz de: Lower Sorbian (qwertz) - qwerty de: German (qwerty) - tr de: Turkish (Germany) - ru de: Russian (Germany, phonetic) - legacy de: German (legacy) - simple gr: Greek (simple) - extended gr: Greek (extended) - nodeadkeys gr: Greek (eliminate dead keys) - polytonic gr: Greek (polytonic) - colemak gr: Greek (Colemak, phonetic) - standard hu: Hungarian (standard) - nodeadkeys hu: Hungarian (eliminate dead keys) - qwerty hu: Hungarian (qwerty) - cmk_ed_ks hu: Hungarian (Colemak[eD], keep local symbols) - cmk_ed_us hu: Hungarian (Colemak[eD], unified symbols) - 101_qwertz_comma_dead hu: Hungarian (101/qwertz/comma/dead keys) - 101_qwertz_comma_nodead hu: Hungarian (101/qwertz/comma/eliminate dead keys) - 101_qwertz_dot_dead hu: Hungarian (101/qwertz/dot/dead keys) - 101_qwertz_dot_nodead hu: Hungarian (101/qwertz/dot/eliminate dead keys) - 101_qwerty_comma_dead hu: Hungarian (101/qwerty/comma/dead keys) - 101_qwerty_comma_nodead hu: Hungarian (101/qwerty/comma/eliminate dead keys) - 101_qwerty_dot_dead hu: Hungarian (101/qwerty/dot/dead keys) - 101_qwerty_dot_nodead hu: Hungarian (101/qwerty/dot/eliminate dead keys) - 102_qwertz_comma_dead hu: Hungarian (102/qwertz/comma/dead keys) - 102_qwertz_comma_nodead hu: Hungarian (102/qwertz/comma/eliminate dead keys) - 102_qwertz_dot_dead hu: Hungarian (102/qwertz/dot/dead keys) - 102_qwertz_dot_nodead hu: Hungarian (102/qwertz/dot/eliminate dead keys) - 102_qwerty_comma_dead hu: Hungarian (102/qwerty/comma/dead keys) - 102_qwerty_comma_nodead hu: Hungarian (102/qwerty/comma/eliminate dead keys) - 102_qwerty_dot_dead hu: Hungarian (102/qwerty/dot/dead keys) - 102_qwerty_dot_nodead hu: Hungarian (102/qwerty/dot/eliminate dead keys) - Sundeadkeys is: Icelandic (Sun dead keys) - nodeadkeys is: Icelandic (eliminate dead keys) - mac is: Icelandic (Macintosh) - dvorak is: Icelandic (Dvorak) - cmk_ed_ks is: Icelandic (Colemak[eD], keep local symbols) - cmk_ed_us is: Icelandic (Colemak[eD], unified symbols) - lyx il: Hebrew (lyx) - phonetic il: Hebrew (phonetic) - biblical il: Hebrew (Biblical, Tiro) - colemak il: Hebrew (Colemak, phonetic) - nodeadkeys it: Italian (eliminate dead keys) - winkeys it: Italian (Winkeys) - mac it: Italian (Macintosh) - us it: Italian (US keyboard with Italian letters) - cmk_ed_ks it: Italian (Colemak[eD], keep local symbols) - cmk_ed_us it: Italian (Colemak[eD], unified symbols) - geo it: Georgian (Italy) - ibm it: Italian (IBM 142) - kana jp: Japanese (Kana) - kana86 jp: Japanese (Kana 86) - OADG109A jp: Japanese (OADG 109A) - mac jp: Japanese (Macintosh) - dvorak jp: Japanese (Dvorak) - phonetic kg: Kyrgyz (phonetic) - ruskaz kz: Russian (Kazakhstan, with Kazakh) - kazrus kz: Kazakh (with Russian) - stea la: Lao (STEA proposed standard layout) - nodeadkeys latam: Spanish (Latin American, eliminate dead keys) - deadtilde latam: Spanish (Latin American, include dead tilde) - sundeadkeys latam: Spanish (Latin American, Sun dead keys) - cmk_ed_ks latam: Spanish (Latin American, Colemak[eD], keep local symbols) - cmk_ed_us latam: Spanish (Latin American, Colemak[eD], unified symbols) - std lt: Lithuanian (standard) - us lt: Lithuanian (US keyboard with Lithuanian letters) - ibm lt: Lithuanian (IBM LST 1205-92) - lekp lt: Lithuanian (LEKP) - lekpa lt: Lithuanian (LEKPa) - apostrophe lv: Latvian (apostrophe variant) - tilde lv: Latvian (tilde variant) - fkey lv: Latvian (F variant) - modern lv: Latvian (modern) - ergonomic lv: Latvian (ergonomic, ナェGJRMV) - adapted lv: Latvian (adapted) - cyrillic me: Montenegrin (Cyrillic) - cyrillicyz me: Montenegrin (Cyrillic, ZE and ZHE swapped) - latinunicode me: Montenegrin (Latin Unicode) - latinyz me: Montenegrin (Latin qwerty) - latinunicodeyz me: Montenegrin (Latin Unicode qwerty) - cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets) - latinalternatequotes me: Montenegrin (Latin with guillemets) - nodeadkeys mk: Macedonian (eliminate dead keys) - us mt: Maltese (with US layout) - nodeadkeys no: Norwegian (eliminate dead keys) - winkeys no: Norwegian (Winkeys) - dvorak no: Norwegian (Dvorak) - smi no: Northern Saami (Norway) - smi_nodeadkeys no: Northern Saami (Norway, eliminate dead keys) - mac no: Norwegian (Macintosh) - mac_nodeadkeys no: Norwegian (Macintosh, eliminate dead keys) - colemak no: Norwegian (Colemak) - cmk_ed_ks no: Norwegian (Colemak[eD], keep local symbols) - cmk_ed_us no: Norwegian (Colemak[eD], unified symbols) - legacy pl: Polish (legacy) - qwertz pl: Polish (qwertz) - dvorak pl: Polish (Dvorak) - dvorak_quotes pl: Polish (Dvorak, Polish quotes on quotemark key) - dvorak_altquotes pl: Polish (Dvorak, Polish quotes on key 1) - cmk_ed_ks pl: Polish (Colemak[eD], keep local symbols) - cmk_ed_us pl: Polish (Colemak[eD], unified symbols) - csb pl: Kashubian - szl pl: Silesian - ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak) - dvp pl: Polish (programmer Dvorak) - nodeadkeys pt: Portuguese (eliminate dead keys) - sundeadkeys pt: Portuguese (Sun dead keys) - mac pt: Portuguese (Macintosh) - mac_nodeadkeys pt: Portuguese (Macintosh, eliminate dead keys) - mac_sundeadkeys pt: Portuguese (Macintosh, Sun dead keys) - cmk_ed_ks pt: Portuguese (Colemak[eD], keep local symbols) - cmk_ed_us pt: Portuguese (Colemak[eD], unified symbols) - nativo pt: Portuguese (Nativo) - nativo-us pt: Portuguese (Nativo for US keyboards) - nativo-epo pt: Esperanto (Portugal, Nativo) - cedilla ro: Romanian (cedilla) - std ro: Romanian (standard) - std_cedilla ro: Romanian (standard cedilla) - winkeys ro: Romanian (WinKeys) - cmk_ed_ks ro: Romanian (Colemak[eD], keep local symbols) - cmk_ed_us ro: Romanian (Colemak[eD], unified symbols) - phonetic ru: Russian (phonetic) - phonetic_winkeys ru: Russian (phonetic WinKeys) - colemak ru: Russian (Colemak, phonetic Rulemak) - typewriter ru: Russian (typewriter) - legacy ru: Russian (legacy) - typewriter-legacy ru: Russian (typewriter, legacy) - tt ru: Tatar - os_legacy ru: Ossetian (legacy) - os_winkeys ru: Ossetian (WinKeys) - cv ru: Chuvash - cv_latin ru: Chuvash (Latin) - udm ru: Udmurt - kom ru: Komi - sah ru: Yakut - xal ru: Kalmyk - dos ru: Russian (DOS) - mac ru: Russian (Macintosh) - srp ru: Serbian (Russia) - bak ru: Bashkirian - chm ru: Mari - yz rs: Serbian (Cyrillic, ZE and ZHE swapped) - latin rs: Serbian (Latin) - latinunicode rs: Serbian (Latin Unicode) - latinyz rs: Serbian (Latin qwerty) - latinunicodeyz rs: Serbian (Latin Unicode qwerty) - alternatequotes rs: Serbian (Cyrillic with guillemets) - latinalternatequotes rs: Serbian (Latin with guillemets) - cmk_ed_ks rs: Serbian (Colemak[eD], keep local symbols) - cmk_ed_us rs: Serbian (Colemak[eD], unified symbols) - rue rs: Pannonian Rusyn - alternatequotes si: Slovenian (with guillemets for quotes) - us si: Slovenian (US keyboard with Slovenian letters) - cmk_ed_ks si: Slovenian (Colemak[eD], keep local symbols) - cmk_ed_us si: Slovenian (Colemak[eD], unified symbols) - bksl sk: Slovak (extended Backslash) - qwerty sk: Slovak (qwerty) - qwerty_bksl sk: Slovak (qwerty, extended Backslash) - nodeadkeys es: Spanish (eliminate dead keys) - winkeys es: Spanish (Winkeys) - deadtilde es: Spanish (include dead tilde) - sundeadkeys es: Spanish (Sun dead keys) - dvorak es: Spanish (Dvorak) - cmk_ed_ks es: Spanish (Colemak[eD], keep local symbols) - cmk_ed_us es: Spanish (Colemak[eD], unified symbols) - ast es: Asturian (Spain, with bottom-dot H and bottom-dot L) - cat es: Catalan (Spain, with middle-dot L) - mac es: Spanish (Macintosh) - nodeadkeys se: Swedish (eliminate dead keys) - dvorak se: Swedish (Dvorak) - rus se: Russian (Sweden, phonetic) - rus_nodeadkeys se: Russian (Sweden, phonetic, eliminate dead keys) - smi se: Northern Saami (Sweden) - mac se: Swedish (Macintosh) - svdvorak se: Swedish (Svdvorak) - swl se: Swedish Sign Language - cmk_ed_ks se: Swedish (Colemak[eD], keep local symbols) - cmk_ed_us se: Swedish (Colemak[eD], unified symbols) - legacy ch: German (Switzerland, legacy) - de_nodeadkeys ch: German (Switzerland, eliminate dead keys) - de_sundeadkeys ch: German (Switzerland, Sun dead keys) - fr ch: French (Switzerland) - fr_nodeadkeys ch: French (Switzerland, eliminate dead keys) - fr_sundeadkeys ch: French (Switzerland, Sun dead keys) - fr_mac ch: French (Switzerland, Macintosh) - de_mac ch: German (Switzerland, Macintosh) - syc sy: Syriac - syc_phonetic sy: Syriac (phonetic) - ku sy: Kurdish (Syria, Latin Q) - ku_f sy: Kurdish (Syria, F) - ku_alt sy: Kurdish (Syria, Latin Alt-Q) - legacy tj: Tajik (legacy) - tam_unicode lk: Tamil (Sri Lanka, Unicode) - tam_TAB lk: Tamil (Sri Lanka, TAB Typewriter) - tis th: Thai (TIS-820.2538) - pat th: Thai (Pattachote) - f tr: Turkish (F) - alt tr: Turkish (Alt-Q) - sundeadkeys tr: Turkish (Sun dead keys) - ku tr: Kurdish (Turkey, Latin Q) - ku_f tr: Kurdish (Turkey, F) - ku_alt tr: Kurdish (Turkey, Latin Alt-Q) - intl tr: Turkish (international with dead keys) - cmk_ed_ks tr: Turkish (Colemak[eD], keep local symbols) - cmk_ed_us tr: Turkish (Colemak[eD], unified symbols) - crh tr: Crimean Tatar (Turkish Q) - crh_f tr: Crimean Tatar (Turkish F) - crh_alt tr: Crimean Tatar (Turkish Alt-Q) - indigenous tw: Taiwanese (indigenous) - saisiyat tw: Saisiyat (Taiwan) - phonetic ua: Ukrainian (phonetic) - typewriter ua: Ukrainian (typewriter) - winkeys ua: Ukrainian (WinKeys) - legacy ua: Ukrainian (legacy) - rstu ua: Ukrainian (standard RSTU) - rstu_ru ua: Russian (Ukraine, standard RSTU) - homophonic ua: Ukrainian (homophonic) - extd gb: English (UK, extended WinKeys) - intl gb: English (UK, international with dead keys) - dvorak gb: English (UK, Dvorak) - dvorakukp gb: English (UK, Dvorak with UK punctuation) - mac gb: English (UK, Macintosh) - mac_intl gb: English (UK, Macintosh international) - colemak gb: English (UK, Colemak) - cmk_ed_ks gb: English (UK, Colemak[eD], keep local symbols) - cmk_ed_us gb: English (UK, Colemak[eD], unified symbols) - latin uz: Uzbek (Latin) - kr104 kr: Korean (101/104 key compatible) - CloGaelach ie: CloGaelach - UnicodeExpert ie: Irish (UnicodeExpert) - ogam ie: Ogham - ogam_is434 ie: Ogham (IS434) - urd-crulp pk: Urdu (Pakistan, CRULP) - urd-nla pk: Urdu (Pakistan, NLA) - ara pk: Arabic (Pakistan) - snd pk: Sindhi - legacy epo: Esperanto (displaced semicolon and quote, obsolete) - igbo ng: Igbo - yoruba ng: Yoruba - hausa ng: Hausa - left_hand brai: Braille (left hand) - right_hand brai: Braille (right hand) - alt tm: Turkmen (Alt-Q) - fr-oss ml: French (Mali, alternative) - us-mac ml: English (Mali, US Macintosh) - us-intl ml: English (Mali, US international) - kik ke: Kikuyu - qwerty-bay ph: Filipino (QWERTY Baybayin) - capewell-dvorak ph: Filipino (Capewell-Dvorak Latin) - capewell-dvorak-bay ph: Filipino (Capewell-Dvorak Baybayin) - capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006 Latin) - capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006 Baybayin) - colemak ph: Filipino (Colemak Latin) - colemak-bay ph: Filipino (Colemak Baybayin) - dvorak ph: Filipino (Dvorak Latin) - dvorak-bay ph: Filipino (Dvorak Baybayin) - gag md: Moldavian (Gagauz) - -! option - grp Switching to another layout - grp:switch Right Alt (while pressed) - grp:lswitch Left Alt (while pressed) - grp:lwin_switch Left Win (while pressed) - grp:rwin_switch Right Win (while pressed) - grp:win_switch Any Win key (while pressed) - grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock does the original capslock action - grp:lctrl_switch Left Ctrl (while pressed) - grp:rctrl_switch Right Ctrl (while pressed) - grp:toggle Right Alt - grp:lalt_toggle Left Alt - grp:caps_toggle Caps Lock - grp:shift_caps_toggle Shift+Caps Lock - grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout) - grp:win_menu_switch Left Win (to first layout), Right Win/Menu (to last layout) - grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout) - grp:alt_caps_toggle Alt+Caps Lock - grp:shifts_toggle Both Shift keys together - grp:alts_toggle Both Alt keys together - grp:ctrls_toggle Both Ctrl keys together - grp:ctrl_shift_toggle Ctrl+Shift - grp:lctrl_lshift_toggle Left Ctrl+Left Shift - grp:rctrl_rshift_toggle Right Ctrl+Right Shift - grp:ctrl_alt_toggle Alt+Ctrl - grp:alt_shift_toggle Alt+Shift - grp:lalt_lshift_toggle Left Alt+Left Shift - grp:alt_space_toggle Alt+Space - grp:menu_toggle Menu - grp:lwin_toggle Left Win - grp:win_space_toggle Win Key+Space - grp:rwin_toggle Right Win - grp:lshift_toggle Left Shift - grp:rshift_toggle Right Shift - grp:lctrl_toggle Left Ctrl - grp:rctrl_toggle Right Ctrl - grp:sclk_toggle Scroll Lock - grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout) - grp:rctrl_switch_ctrls_toggle Right Ctrl (while pressed), L+R Ctrl toggles layouts - lv3 Key to choose 3rd level - lv3:switch Right Ctrl - lv3:menu_switch Menu - lv3:win_switch Any Win key - lv3:lwin_switch Left Win - lv3:rwin_switch Right Win - lv3:alt_switch Any Alt key - lv3:lalt_switch Left Alt - lv3:ralt_switch Right Alt - lv3:ralt_switch_multikey Right Alt, Shift+Right Alt key is Compose - lv3:ralt_alt Right Alt key never chooses 3rd level - lv3:enter_switch Enter on keypad - lv3:caps_switch Caps Lock - lv3:bksl_switch Backslash - lv3:lsgt_switch <Less/Greater> - lv3:caps_switch_latch Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser - lv3:bksl_switch_latch Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser - lv3:lsgt_switch_latch <Less/Greater> chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser - ctrl Ctrl key position - ctrl:nocaps Caps Lock as Ctrl - ctrl:lctrl_meta Left Ctrl as Meta - ctrl:swapcaps Swap Ctrl and Caps Lock - ctrl:ac_ctrl At left of 'A' - ctrl:aa_ctrl At bottom left - ctrl:rctrl_ralt Right Ctrl as Right Alt - ctrl:menu_rctrl Menu as Right Ctrl - ctrl:ctrl_ralt Right Alt as Right Ctrl - ctrl:swap_lalt_lctl Swap Left Alt key with Left Ctrl key - ctrl:swap_lwin_lctl Swap Left Win key with Left Ctrl key - ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt - grp_led Use keyboard LED to show alternative layout - grp_led:num Num Lock - grp_led:caps Caps Lock - grp_led:scroll Scroll Lock - keypad Layout of numeric keypad - keypad:legacy Legacy - keypad:oss Unicode additions (arrows and math operators) - keypad:future Unicode additions (arrows and math operators; math operators on default level) - keypad:legacy_wang Legacy Wang 724 - keypad:oss_wang Wang 724 keypad with Unicode additions (arrows and math operators) - keypad:future_wang Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level) - keypad:hex Hexadecimal - keypad:atm ATM/phone-style - kpdl Numeric keypad delete key behaviour - kpdl:dot Legacy key with dot - kpdl:comma Legacy key with comma - kpdl:dotoss Four-level key with dot - kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only - kpdl:commaoss Four-level key with comma - kpdl:momayyezoss Four-level key with momayyez - kpdl:kposs Four-level key with abstract separators - kpdl:semi Semicolon on third level - caps Caps Lock key behavior - caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock - caps:internal_nocancel Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock - caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock - caps:shift_nocancel Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock - caps:capslock Caps Lock toggles normal capitalization of alphabetic characters - caps:numlock Make Caps Lock an additional Num Lock - caps:swapescape Swap ESC and Caps Lock - caps:escape Make Caps Lock an additional ESC - caps:backspace Make Caps Lock an additional Backspace - caps:super Make Caps Lock an additional Super - caps:hyper Make Caps Lock an additional Hyper - caps:shiftlock Caps Lock toggles ShiftLock (affects all keys) - caps:none Caps Lock is disabled - caps:ctrl_modifier Make Caps Lock an additional Ctrl - altwin Alt/Win key behavior - altwin:menu Add the standard behavior to Menu key - altwin:meta_alt Alt and Meta are on Alt keys - altwin:alt_win Alt is mapped to Win keys (and the usual Alt keys) - altwin:ctrl_win Ctrl is mapped to Win keys (and the usual Ctrl keys) - altwin:ctrl_alt_win Ctrl is mapped to Alt keys, Alt is mapped to Win keys - altwin:meta_win Meta is mapped to Win keys - altwin:left_meta_win Meta is mapped to Left Win - altwin:hyper_win Hyper is mapped to Win keys - altwin:alt_super_win Alt is mapped to Right Win, Super to Menu - altwin:swap_alt_win Alt is swapped with Win - Compose key Position of Compose key - compose:ralt Right Alt - compose:lwin Left Win - compose:lwin-altgr 3rd level of Left Win - compose:rwin Right Win - compose:rwin-altgr 3rd level of Right Win - compose:menu Menu - compose:menu-altgr 3rd level of Menu - compose:lctrl Left Ctrl - compose:lctrl-altgr 3rd level of Left Ctrl - compose:rctrl Right Ctrl - compose:rctrl-altgr 3rd level of Right Ctrl - compose:caps Caps Lock - compose:caps-altgr 3rd level of Caps Lock - compose:102 <Less/Greater> - compose:102-altgr 3rd level of <Less/Greater> - compose:paus Pause - compose:prsc PrtSc - compose:sclk Scroll Lock - compat Miscellaneous compatibility options - numpad:pc Default numeric keypad keys - numpad:mac Numeric keypad keys always enter digits (as in Mac OS) - numpad:microsoft Shift with numeric keypad keys works as in MS Windows - numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead - srvrkeys:none Special keys (Ctrl+Alt+<key>) handled in a server - apple:alupckeys Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock) - shift:breaks_caps Shift cancels Caps Lock - misc:typo Enable extra typographic characters - misc:extend Enable level5 Extend mappings (home position arrows etc) - shift:both_capslock Both Shift keys together toggle Caps Lock - shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates - shift:both_shiftlock Both Shift keys together toggle ShiftLock - keypad:pointerkeys Shift + NumLock toggles PointerKeys - grab:break_actions Allow breaking grabs with keyboard actions (warning: security risk) - grab:debug Allow grab and window tree logging - currencysign Adding currency signs to certain keys - eurosign:e Euro on E - eurosign:2 Euro on 2 - eurosign:4 Euro on 4 - eurosign:5 Euro on 5 - rupeesign:4 Rupee on 4 - lv5 Key to choose 5th level - lv5:lsgt_switch_lock <Less/Greater> chooses 5th level, locks when pressed together with another 5th-level-chooser - lv5:ralt_switch_lock Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser - lv5:lwin_switch_lock Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser - lv5:rwin_switch_lock Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser - lv5:caps_switch_lock Caps Lock chooses 5th level, locks when pressed together with another 5th-level-chooser - nbsp Using space key to input non-breakable space character - nbsp:none Usual space at any level - nbsp:level2 Non-breakable space character at second level - nbsp:level3 Non-breakable space character at third level - nbsp:level3s Non-breakable space character at third level, nothing at fourth level - nbsp:level3n Non-breakable space character at third level, thin non-breakable space character at fourth level - nbsp:level4 Non-breakable space character at fourth level - nbsp:level4n Non-breakable space character at fourth level, thin non-breakable space character at sixth level - nbsp:level4nl Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift) - nbsp:zwnj2 Zero-width non-joiner character at second level - nbsp:zwnj2zwj3 Zero-width non-joiner character at second level, zero-width joiner character at third level - nbsp:zwnj2zwj3nb4 Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level - nbsp:zwnj2nb3 Zero-width non-joiner character at second level, non-breakable space character at third level - nbsp:zwnj2nb3s Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level - nbsp:zwnj2nb3zwj4 Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level - nbsp:zwnj2nb3nnb4 Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level - nbsp:zwnj3zwj4 Zero-width non-joiner character at third level, zero-width joiner at fourth level - japan Japanese keyboard options - japan:kana_lock Kana Lock key is locking - japan:nicola_f_bs NICOLA-F style Backspace - japan:hztg_escape Make Zenkaku Hankaku an additional ESC - esperanto Adding Esperanto supersigned letters - esperanto:qwerty To the corresponding key in a Qwerty layout - esperanto:dvorak To the corresponding key in a Dvorak layout - esperanto:colemak To the corresponding key in a Colemak layout - solaris Maintain key compatibility with old Solaris keycodes - solaris:sun_compat Sun Key compatibility - terminate Key sequence to kill the X server - terminate:ctrl_alt_bksp Ctrl + Alt + Backspace diff --git a/x-mod_v2-12-1_2015-01-18/xkb/rules/base.xml b/x-mod_v2-12-1_2015-01-18/xkb/rules/base.xml deleted file mode 100644 index 582a0a1..0000000 --- a/x-mod_v2-12-1_2015-01-18/xkb/rules/base.xml +++ /dev/null @@ -1,7320 +0,0 @@ - - - - - - - pc101 - Generic 101-key PC - Generic - - - - - pc102 - Generic 102-key (Intl) PC - Generic - - - - - pc104 - Generic 104-key PC - Generic - - - - - pc105 - Generic 105-key (Intl) PC - Generic - - - - - pc104angle-z - Generic 104-key PC (Angle(Z)Ergo mod) - Generic - - - - - pc104wide-qu - Generic 104-key PC (Wide(Quote)Ergo mod) - Generic - - - - - pc104awide-zqu - Generic 104-key PC (Angle(Z)Wide(Quote)Ergo mod) - Generic - - - - - pc104aframe - Generic 104-key PC (AngleFrame(Quote)Ergo mod) - Generic - - - - - pc105angle-lg - Generic 105-key (Intl) PC (Angle(LSGT)Ergo mod) - Generic - - - - - pc105awide-sl - Generic 105-key (Intl) PC (AngleWide(/)Ergo mod) - Generic - - - - - dell101 - Dell 101-key PC - Dell - - - - - latitude - Dell Latitude series laptop - Dell - - - - - dellm65 - Dell Precision M65 - Dell - - - - - everex - Everex STEPnote - Everex - - - - - flexpro - Keytronic FlexPro - Keytronic - - - - - microsoft - Microsoft Natural - Microsoft Inc. - - - - - omnikey101 - Northgate OmniKey 101 - Northgate - - - - - winbook - Winbook Model XP5 - Generic - - - - - pc98 - PC-98xx Series - Generic - - - - - a4techKB21 - A4Tech KB-21 - A4Tech - - - - - a4techKBS8 - A4Tech KBS-8 - A4Tech - - - - - a4_rfkb23 - A4Tech Wireless Desktop RFKB-23 - A4Tech - - - - - airkey - Acer AirKey V - Acer - - - - - azonaRF2300 - Azona RF2300 wireless Internet Keyboard - Azona - - - - - scorpius - Advance Scorpius KI - Scorpius - - - - - brother - Brother Internet Keyboard - Brother - - - - - btc5113rf - BTC 5113RF Multimedia - BTC - - - - - btc5126t - BTC 5126T - BTC - - - - - btc6301urf - BTC 6301URF - BTC - - - - - btc9000 - BTC 9000 - BTC - - - - - btc9000a - BTC 9000A - BTC - - - - - btc9001ah - BTC 9001AH - BTC - - - - - btc5090 - BTC 5090 - BTC - - - - - btc9019u - BTC 9019U - BTC - - - - - btc9116u - BTC 9116U Mini Wireless Internet and Gaming - - - - - cherryblue - Cherry Blue Line CyBo@rd - - - - - cherryblueb - Cherry CyMotion Master XPress - Cherry - - - - - cherrybluea - Cherry Blue Line CyBo@rd (alternate option) - Cherry - - - - - cherrycyboard - Cherry CyBo@rd USB-Hub - Cherry - - - - - cherrycmexpert - Cherry CyMotion Expert - Cherry - - - - - cherrybunlim - Cherry B.UNLIMITED - Cherry - - - - - chicony - Chicony Internet Keyboard - Chicony - - - - - chicony0108 - Chicony KU-0108 - Chicony - - - - - chicony0420 - Chicony KU-0420 - Chicony - - - - - chicony9885 - Chicony KB-9885 - Chicony - - - - - compaqeak8 - Compaq Easy Access Keyboard - Compaq - - - - - compaqik7 - Compaq Internet Keyboard (7 keys) - Compaq - - - - - compaqik13 - Compaq Internet Keyboard (13 keys) - Compaq - - - - - compaqik18 - Compaq Internet Keyboard (18 keys) - Compaq - - - - - cymotionlinux - Cherry CyMotion Master Linux - Cherry - - - - - armada - Laptop/notebook Compaq (eg. Armada) Laptop Keyboard - Compaq - - - - - presario - Laptop/notebook Compaq (eg. Presario) Internet Keyboard - Compaq - - - - - ipaq - Compaq iPaq Keyboard - Compaq - - - - - dell - Dell - Dell - - - - - dellsk8125 - Dell SK-8125 - Dell - - - - - dellsk8135 - Dell SK-8135 - Dell - - - - - dellusbmm - Dell USB Multimedia Keyboard - Dell - - - - - inspiron - Dell Laptop/notebook Inspiron 6xxx/8xxx - Dell - - - - - precision_m - Dell Laptop/notebook Precision M series - Dell - - - - - dexxa - Dexxa Wireless Desktop Keyboard - Dexxa - - - - - diamond - Diamond 9801 / 9802 series - Diamond - - - - - dtk2000 - DTK2000 - - - - - ennyah_dkb1008 - Ennyah DKB-1008 - Ennyah - - - - - fscaa1667g - Fujitsu-Siemens Computers AMILO laptop - Fujitsu-Siemens - - - - - genius - Genius Comfy KB-16M / Genius MM Keyboard KWD-910 - Genius - - - - - geniuscomfy - Genius Comfy KB-12e - Genius - - - - - geniuscomfy2 - Genius Comfy KB-21e-Scroll - Genius - - - - - geniuskb19e - Genius KB-19e NB - Genius - - - - - geniuskkb2050hs - Genius KKB-2050HS - Genius - - - - - gyration - Gyration - Gyration - - - - - htcdream - HTC Dream - HTC - - - - - kinesis - Kinesis - Kinesis - - - - - logitech_base - Logitech Generic Keyboard - Logitech - - - - - logitech_g15 - Logitech G15 extra keys via G15daemon - Logitech - - - - - hpi6 - Hewlett-Packard Internet Keyboard - Hewlett-Packard - - - - - hp250x - Hewlett-Packard SK-250x Multimedia Keyboard - Hewlett-Packard - - - - - hpxe3gc - Hewlett-Packard Omnibook XE3 GC - Hewlett-Packard - - - - - hpxe3gf - Hewlett-Packard Omnibook XE3 GF - Hewlett-Packard - - - - - hpxt1000 - Hewlett-Packard Omnibook XT1000 - Hewlett-Packard - - - - - hpdv5 - Hewlett-Packard Pavilion dv5 - Hewlett-Packard - - - - - hpzt11xx - Hewlett-Packard Pavilion ZT11xx - Hewlett-Packard - - - - - hp500fa - Hewlett-Packard Omnibook 500 FA - Hewlett-Packard - - - - - hp5xx - Hewlett-Packard Omnibook 5xx - Hewlett-Packard - - - - - hpnx9020 - Hewlett-Packard nx9020 - Hewlett-Packard - - - - - hp6000 - Hewlett-Packard Omnibook 6000/6100 - Hewlett-Packard - - - - - honeywell_euroboard - Honeywell Euroboard - Hewlett-Packard - - - - - hpmini110 - Hewlett-Packard Mini 110 Notebook - Hewlett-Packard - - - - - rapidaccess - IBM Rapid Access - Lenovo (previously IBM) - - - - - rapidaccess2 - IBM Rapid Access II - Lenovo (previously IBM) - - - - - thinkpad - IBM ThinkPad 560Z/600/600E/A22E - Lenovo (previously IBM) - - - - - thinkpad60 - IBM ThinkPad R60/T60/R61/T61 - Lenovo (previously IBM) - - - - - thinkpadz60 - IBM ThinkPad Z60m/Z60t/Z61m/Z61t - Lenovo (previously IBM) - - - - - ibm_spacesaver - IBM Space Saver - Lenovo (previously IBM) - - - - - logiaccess - Logitech Access Keyboard - Logitech - - - - - logiclx300 - Logitech Cordless Desktop LX-300 - Logitech - - - - - logii350 - Logitech Internet 350 Keyboard - Logitech - 046d:c313 - - - - - logimel - Logitech Media Elite Keyboard - Logitech - - - - - logicd - Logitech Cordless Desktop - Logitech - - - - - logicd_it - Logitech Cordless Desktop iTouch - Logitech - - - - - logicd_nav - Logitech Cordless Desktop Navigator - Logitech - - - - - logicd_opt - Logitech Cordless Desktop Optical - Logitech - - - - - logicda - Logitech Cordless Desktop (alternate option) - Logitech - - - - - logicdpa2 - Logitech Cordless Desktop Pro (alternate option 2) - Logitech - - - - - logicfn - Logitech Cordless Freedom/Desktop Navigator - Logitech - - - - - logicdn - Logitech Cordless Desktop Navigator - Logitech - - - - - logiitc - Logitech iTouch Cordless Keyboard (model Y-RB6) - Logitech - - - - - logiik - Logitech Internet Keyboard - Logitech - - - - - itouch - Logitech iTouch - Logitech - - - - - logicink - Logitech Internet Navigator Keyboard - Logitech - - - - - logiex110 - Logitech Cordless Desktop EX110 - Logitech - - - - - logiinkse - Logitech iTouch Internet Navigator Keyboard SE - Logitech - - - - - logiinkseusb - Logitech iTouch Internet Navigator Keyboard SE (USB) - Logitech - - - - - logiultrax - Logitech Ultra-X Keyboard - Logitech - - - - - logiultraxc - Logitech Ultra-X Cordless Media Desktop Keyboard - Logitech - - - - - logidinovo - Logitech diNovo Keyboard - Logitech - - - - - logidinovoedge - Logitech diNovo Edge Keyboard - Logitech - - - - - mx1998 - Memorex MX1998 - Memorex - - - - - mx2500 - Memorex MX2500 EZ-Access Keyboard - Memorex - - - - - mx2750 - Memorex MX2750 - Memorex - - - - - microsoft4000 - Microsoft Natural Wireless Ergonomic Keyboard 4000 - Microsoft Inc. - - - - - microsoft7000 - Microsoft Natural Wireless Ergonomic Keyboard 7000 - Microsoft Inc. - - - - - microsoftinet - Microsoft Internet Keyboard - Microsoft Inc. - - - - - microsoftpro - Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro - Microsoft Inc. - - - - - microsoftprousb - Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro - Microsoft Inc. - - - - - microsoftprooem - Microsoft Natural Keyboard Pro OEM - Microsoft Inc. - - - - - vsonku306 - ViewSonic KU-306 Internet Keyboard - ViewSonic - - - - - microsoftprose - Microsoft Internet Keyboard Pro, Swedish - Microsoft Inc. - - - - - microsoftoffice - Microsoft Office Keyboard - Microsoft Inc. - - - - - microsoftmult - Microsoft Wireless Multimedia Keyboard 1.0A - Microsoft Inc. - - - - - microsoftelite - Microsoft Natural Keyboard Elite - Microsoft Inc. - - - - - microsoftccurve2k - Microsoft Comfort Curve Keyboard 2000 - Microsoft Inc. - - - - - oretec - Ortek MCK-800 MM/Internet keyboard - Ortek - - - - - propeller - Propeller Voyager (KTEZ-1000) - KeyTronic - - - - - qtronix - QTronix Scorpius 98N+ - QTronix - - - - - samsung4500 - Samsung SDM 4500P - Samsung - - - - - samsung4510 - Samsung SDM 4510P - Samsung - - - - - sanwaskbkg3 - Sanwa Supply SKB-KG3 - Sanwa Supply Inc. - - - - - sk1300 - SK-1300 - NEC - - - - - sk2500 - SK-2500 - NEC - - - - - sk6200 - SK-6200 - NEC - - - - - sk7100 - SK-7100 - NEC - - - - - sp_inet - Super Power Multimedia Keyboard - Generic - - - - - sven - SVEN Ergonomic 2500 - SVEN - - - - - sven303 - SVEN Slim 303 - SVEN - - - - - symplon - Symplon PaceBook (tablet PC) - Symplon - - - - - toshiba_s3000 - Toshiba Satellite S3000 - Toshiba - - - - - trust - Trust Wireless Keyboard Classic - Trust - - - - - trustda - Trust Direct Access Keyboard - Trust - - - - - trust_slimline - Trust Slimline - Trust - - - - - tm2020 - TypeMatrix EZ-Reach 2020 - TypeMatrix - - - - - tm2030PS2 - TypeMatrix EZ-Reach 2030 PS2 - TypeMatrix - - - - - tm2030USB - TypeMatrix EZ-Reach 2030 USB - TypeMatrix - - - - - tm2030USB-102 - TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) - TypeMatrix - - - - - tm2030USB-106 - TypeMatrix EZ-Reach 2030 USB (106:JP mode) - TypeMatrix - - - - - yahoo - Yahoo! Internet Keyboard - Yahoo! - - - - - macbook78 - MacBook/MacBook Pro - Apple - - - - - macbook79 - MacBook/MacBook Pro (Intl) - Apple - - - - - macintosh - Macintosh - Apple - - - - - macintosh_old - Macintosh Old - Apple - - - - - macintosh_hhk - Happy Hacking Keyboard for Mac - Fujitsu - - - - - acer_c300 - Acer C300 - Acer - - - - - acer_ferrari4k - Acer Ferrari 4000 - Acer - - - - - acer_laptop - Acer Laptop - Acer - - - - - asus_laptop - Asus Laptop - Asus - - - - - apple - Apple - Apple - - - - - apple_laptop - Apple Laptop - Apple - - - - - applealu_ansi - Apple Aluminium Keyboard (ANSI) - Apple - - - - - applealu_iso - Apple Aluminium Keyboard (ISO) - Apple - - - - - applealu_jis - Apple Aluminium Keyboard (JIS) - Apple - - - - - silvercrest - SILVERCREST Multimedia Wireless Keyboard - Silvercrest - - - - - emachines - Laptop/notebook eMachines m68xx - eMachines - - - - - benqx - BenQ X-Touch - BenQ - - - - - benqx730 - BenQ X-Touch 730 - BenQ - - - - - benqx800 - BenQ X-Touch 800 - BenQ - - - - - hhk - Happy Hacking Keyboard - Fujitsu - - - - - classmate - Classmate PC - Intel - - - - - olpc - OLPC - OLPC - - - - - sun_type7_usb - Sun Type 7 USB - Sun Microsystems - - - - - sun_type7_euro_usb - Sun Type 7 USB (European layout) - Sun Microsystems - - - - - sun_type7_unix_usb - Sun Type 7 USB (Unix layout) - Sun Microsystems - - - - - sun_type7_jp_usb - Sun Type 7 USB (Japanese layout) / Japanese 106-key - Sun Microsystems - - - - - sun_type6_usb - Sun Type 6/7 USB - Sun Microsystems - - - - - sun_type6_euro_usb - Sun Type 6/7 USB (European layout) - Sun Microsystems - - - - - sun_type6_unix_usb - Sun Type 6 USB (Unix layout) - Sun Microsystems - - - - - sun_type6_jp_usb - Sun Type 6 USB (Japanese layout) - Sun Microsystems - - - - - sun_type6_jp - Sun Type 6 (Japanese layout) - Sun Microsystems - - - - - targa_v811 - Targa Visionary 811 - Targa - - - - - unitekkb1925 - Unitek KB-1925 - Unitek Group - - - - - compalfl90 - FL90 - Compal Electronics Inc. - - - - - creativedw7000 - Creative Desktop Wireless 7000 - Creative - - - - - htcdream - Htc Dream phone - htc - - - - - - - us - - en - English (US) - - eng - - - - - - chr - - chr - Cherokee - - chr - - - - - - euro - English (US, with euro on 5) - - - - - intl - English (US, international with dead keys) - - - - - alt-intl - English (US, alternative international) - - - - - colemak - English (Colemak) - - - - - cmk_ed_us - English (Colemak[eD]) - - - - - tarmak1_e - English (Tarmak1 - Colemak transitional) - - - - - tarmak2_et - English (Tarmak2 - Colemak transitional) - - - - - tarmak3_etr - English (Tarmak3 - Colemak transitional) - - - - - tarmak4_etro - English (Tarmak4 - Colemak transitional) - - - - - cmk_ed_dvbghm - English (Colemak[eD], Curl-Dvbg/Hm ergo) - - - - - cmk_ed_dbghk - English (Colemak[eD], Curl-Dbg/Hk ergo) - - - - - cmk_ed_mirror - English (Colemak[eD], mirrored) - - - - - dvorak - English (Dvorak) - - - - - dvorak-intl - English (Dvorak, international with dead keys) - - - - - dvorak-alt-intl - English (Dvorak alternative international no dead keys) - - - - - dvorak-l - English (left handed Dvorak) - - - - - dvorak-r - English (right handed Dvorak) - - - - - dvorak-classic - English (classic Dvorak) - - - - - dvp - English (programmer Dvorak) - - - - - rus - - ru - Russian (US, phonetic) - - rus - - - - - - mac - English (Macintosh) - - - - - altgr-intl - English (international AltGr dead keys) - eng - fra - ger - - - - - olpc2 - English (the divide/multiply keys toggle the layout) - - - - - hbs - Serbo-Croatian (US) - eng - bos - hbs - hrv - srp - - - - - workman - English (Workman) - - - - - workman-intl - English (Workman, international with dead keys) - - - - - - - af - - fa - Afghani - - - - - ps - - ps - Pashto - - pus - - - - - - uz - - uz - Uzbek (Afghanistan) - - uzb - - - - - - olpc-ps - - ps - Pashto (Afghanistan, OLPC) - - pus - - - - - - fa-olpc - - fa - Persian (Afghanistan, Dari OLPC) - - - - - uz-olpc - - uz - Uzbek (Afghanistan, OLPC) - - uzb - - - - - - - - ara - - ar - Arabic - - AE - BH - DZ - EG - EH - JO - KW - LB - LY - MA - MR - OM - PS - QA - SA - SD - SY - TN - YE - - - ara - - - - - - azerty - Arabic (azerty) - - - - - azerty_digits - Arabic (azerty/digits) - - - - - digits - Arabic (digits) - - - - - qwerty - Arabic (qwerty) - - - - - qwerty_digits - Arabic (qwerty/digits) - - - - - buckwalter - Arabic (Buckwalter) - - - - - - - al - - sq - Albanian - - alb - - - - - - plisi-d1 - Albanian (Plisi D1) - - - - - cmk_ed_ks - Albanian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Albanian (Colemak[eD], unified symbols) - - - - - - - am - - hy - Armenian - - hye - - - - - - phonetic - Armenian (phonetic) - - - - - phonetic-alt - Armenian (alternative phonetic) - - - - - eastern - Armenian (eastern) - - - - - western - Armenian (western) - - - - - eastern-alt - Armenian (alternative eastern) - - - - - - - at - - de - German (Austria) - - ger - - - - - - nodeadkeys - German (Austria, eliminate dead keys) - - - - - sundeadkeys - German (Austria, Sun dead keys) - - - - - mac - German (Austria, Macintosh) - - - - - cmk_ed_ks - German (Austria, Colemak[eD], keep local symbols) - - - - - cmk_ed_us - German (Austria, Colemak[eD], unified symbols) - - - - - - - az - - az - Azerbaijani - - aze - - - - - - cyrillic - Azerbaijani (Cyrillic) - - - - - - - by - - by - Belarusian - - bel - - - - - - legacy - Belarusian (legacy) - - - - - latin - Belarusian (Latin) - - - - - - - be - - be - Belgian - ger - nld - fra - - - - - oss - Belgian (alternative) - - - - - oss_latin9 - Belgian (alternative, Latin-9 only) - - - - - oss_sundeadkeys - Belgian (alternative, Sun dead keys) - - - - - iso-alternate - Belgian (ISO alternate) - - - - - nodeadkeys - Belgian (eliminate dead keys) - - - - - sundeadkeys - Belgian (Sun dead keys) - - - - - wang - Belgian (Wang model 724 azerty) - - - - - cmk_ed_ks - Belgian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Belgian (Colemak[eD], unified symbols) - - - - - - - bd - - bn - Bangla - - ben - - - - - - probhat - Bangla (Probhat) - - - - - - - in - - in - Indian - - - - - ben - - bn - Bangla (India) - - ben - - - - - - ben_probhat - - bn - Bangla (India, Probhat) - - ben - - - - - - ben_baishakhi - Bangla (India, Baishakhi) - ben - - - - - ben_bornona - Bangla (India, Bornona) - ben - - - - - ben_gitanjali - Bangla (India, Uni Gitanjali) - ben - - - - - ben_inscript - Bangla (India, Baishakhi Inscript) - ben - - - - - eeyek - Manipuri (Eeyek) - mni - - - - - guj - - gu - Gujarati - - guj - - - - - - guru - - pa - Punjabi (Gurmukhi) - - pan - - - - - - jhelum - - pa - Punjabi (Gurmukhi Jhelum) - - pan - - - - - - kan - - kn - Kannada - - kan - - - - - - kan-kagapa - - kn - Kannada (KaGaPa phonetic) - - kan - - - - - - mal - - ml - Malayalam - - mal - - - - - - mal_lalitha - - ml - Malayalam (Lalitha) - - mal - - - - - - mal_enhanced - - ml - Malayalam (enhanced Inscript, with rupee sign) - mal - - - - - ori - - or - Oriya - - ori - - - - - - tam_unicode - - ta - Tamil (Unicode) - - tam - - - - - - tam_keyboard_with_numerals - - ta - Tamil (keyboard with numerals) - - tam - - - - - - tam_TAB - - ta - Tamil (TAB typewriter) - - tam - - - - - - tam_TSCII - - ta - Tamil (TSCII typewriter) - - tam - - - - - - tam - - ta - Tamil - - tam - - - - - - tel - - te - Telugu - - tel - - - - - - tel-kagapa - - te - Telugu (KaGaPa phonetic) - - tel - - - - - - urd-phonetic - - ur - Urdu (phonetic) - - urd - - - - - - urd-phonetic3 - - ur - Urdu (alternative phonetic) - - urd - - - - - - urd-winkeys - - ur - Urdu (WinKeys) - - urd - - - - - - bolnagri - - hi - Hindi (Bolnagri) - - hin - - - - - - hin-wx - - hi - Hindi (Wx) - - hin - - - - - - hin-kagapa - - hi - Hindi (KaGaPa phonetic) - - hin - - - - - - san-kagapa - - sa - Sanskrit (KaGaPa phonetic) - - san - - - - - - mar-kagapa - - mr - Marathi (KaGaPa phonetic) - - mar - - - - - - eng - - en - English (India, with rupee sign) - - eng - - - - - - - - ba - - bs - Bosnian - - bos - - - - - - alternatequotes - Bosnian (with guillemets for quotes) - - - - - unicode - Bosnian (with Bosnian digraphs) - - - - - unicodeus - Bosnian (US keyboard with Bosnian digraphs) - - - - - us - Bosnian (US keyboard with Bosnian letters) - - - - - cmk_ed_ks - Bosnian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Bosnian (Colemak[eD], unified symbols) - - - - - - - br - - pt - Portuguese (Brazil) - - por - - - - - - nodeadkeys - Portuguese (Brazil, eliminate dead keys) - - - - - dvorak - Portuguese (Brazil, Dvorak) - - - - - nativo - Portuguese (Brazil, Nativo) - - - - - nativo-us - Portuguese (Brazil, Nativo for US keyboards) - - - - - nativo-epo - Esperanto (Brazil, Nativo) - - epo - - - - - - cmk_ed_ks - Portuguese (Brazil, Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Portuguese (Brazil, Colemak[eD], unified symbols) - - - - - - - bg - - bg - Bulgarian - - bul - - - - - - phonetic - Bulgarian (traditional phonetic) - - - - - bas_phonetic - Bulgarian (new phonetic) - - - - - colemak - Bulgarian (Colemak, phonetic) - - - - - - - ma - - ar - Arabic (Morocco) - - - - - french - - fr - French (Morocco) - - fra - - - - - - tifinagh - - ber - Berber (Morocco, Tifinagh) - - ber - - - - - - tifinagh-alt - - ber - Berber (Morocco, Tifinagh alternative) - - ber - - - - - - tifinagh-alt-phonetic - - ber - Berber (Morocco, Tifinagh alternative phonetic) - - ber - - - - - - tifinagh-extended - - ber - Berber (Morocco, Tifinagh extended) - - ber - - - - - - tifinagh-phonetic - - ber - Berber (Morocco, Tifinagh phonetic) - - ber - - - - - - tifinagh-extended-phonetic - - ber - Berber (Morocco, Tifinagh extended phonetic) - - ber - - - - - - - - cm - - cm - English (Cameroon) - eng - - - - - french - French (Cameroon) - fra - - - - - qwerty - Cameroon Multilingual (qwerty) - - eng - bas - nmg - fub - ewo - xmd - mfh - bkm - ozm - lns - sox - pny - wes - lem - nyj - mfk - mcp - ass - xed - dua - anv - bum - btb - bfd - azo - ken - yam - yat - yas - - - - - - azerty - Cameroon Multilingual (azerty) - - fra - bas - nmg - fub - ewo - xmd - mfh - bkm - ozm - lns - sox - pny - wes - lem - nyj - mfk - mcp - ass - xed - dua - anv - bum - btb - bfd - azo - ken - yam - yat - yas - - - - - - dvorak - Cameroon Multilingual (Dvorak) - - - - - - - mm - - my - Burmese - - mya - - - - - - - ca - - fr - French (Canada) - - fra - - - - - - fr-dvorak - - fr - French (Canada, Dvorak) - - - - - fr-legacy - - fr - French (Canada, legacy) - - - - - multix - Canadian Multilingual - - - - - multi - Canadian Multilingual (first part) - - - - - multi-2gr - Canadian Multilingual (second part) - - - - - cmk_ed_ks - Canadian multilingual (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Canadian multilingual (Colemak[eD], unified symbols) - - - - - ike - - ike - Inuktitut - - iku - - - - - - eng - - en - English (Canada) - - eng - - - - - - - - cd - - fr - French (Democratic Republic of the Congo) - - fra - - - - - - - cn - - zh - Chinese - - chi - - - - - - tib - Tibetan - - tib - - - - - - tib_asciinum - Tibetan (with ASCII numerals) - - tib - - - - - - ug - ug - Uyghur - - ug - - - - - - - - hr - - hr - Croatian - - hrv - - - - - - alternatequotes - Croatian (with guillemets for quotes) - - - - - unicode - Croatian (with Croatian digraphs) - - - - - unicodeus - Croatian (US keyboard with Croatian digraphs) - - - - - us - Croatian (US keyboard with Croatian letters) - - - - - cmk_ed_ks - Croatian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Croatian (Colemak[eD], unified symbols) - - - - - - - cz - - cs - Czech - - cze - - - - - - bksl - Czech (with <\|> key) - - - - - qwerty - Czech (qwerty) - - - - - qwerty_bksl - Czech (qwerty, extended Backslash) - - - - - ucw - Czech (UCW layout, accented letters only) - - - - - dvorak-ucw - Czech (US Dvorak with CZ UCW support) - - - - - cmk_ed_ks - Czech (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Czech (Colemak[eD], unified symbols) - - - - - - - dk - - da - Danish - - dan - - - - - - nodeadkeys - Danish (eliminate dead keys) - - - - - winkeys - Danish (Winkeys) - - - - - mac - Danish (Macintosh) - - - - - mac_nodeadkeys - Danish (Macintosh, eliminate dead keys) - - - - - dvorak - Danish (Dvorak) - - - - - cmk_ed_ks - Danish (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Danish (Colemak[eD], unified symbols) - - - - - - - nl - - nl - Dutch - - nld - - - - - - sundeadkeys - Dutch (Sun dead keys) - - - - - mac - Dutch (Macintosh) - - - - - std - Dutch (standard) - - - - - cmk_ed_ks - Dutch (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Dutch (Colemak[eD], unified symbols) - - - - - - - bt - - dz - Dzongkha - - dzo - - - - - - ee - - et - Estonian - - est - - - - - - nodeadkeys - Estonian (eliminate dead keys) - - - - - dvorak - Estonian (Dvorak) - - - - - us - Estonian (US keyboard with Estonian letters) - - - - - - - ir - - fa - Persian - - per - - - - - - pes_keypad - Persian (with Persian keypad) - - - - - ku - - ku - Kurdish (Iran, Latin Q) - - kur - - - - - - ku_f - - ku - Kurdish (Iran, F) - - kur - - - - - - ku_alt - - ku - Kurdish (Iran, Latin Alt-Q) - - kur - - - - - - ku_ara - - ku - Kurdish (Iran, Arabic-Latin) - - kur - - - - - - - - iq - - ar - Iraqi - ara - kur - - - - - ku - - ku - Kurdish (Iraq, Latin Q) - - kur - - - - - - ku_f - - ku - Kurdish (Iraq, F) - - kur - - - - - - ku_alt - - ku - Kurdish (Iraq, Latin Alt-Q) - - kur - - - - - - ku_ara - - ku - Kurdish (Iraq, Arabic-Latin) - - kur - - - - - - - - fo - - fo - Faroese - - fao - - - - - - nodeadkeys - Faroese (eliminate dead keys) - - - - - - - fi - - fi - Finnish - - fin - - - - - - classic - Finnish (classic) - - - - - nodeadkeys - Finnish (classic, eliminate dead keys) - - - - - winkeys - Finnish (Winkeys) - - - - - smi - Northern Saami (Finland) - sme - - - - - mac - Finnish (Macintosh) - - - - - cmk_ed_ks - Finnish (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Finnish (Colemak[eD], unified symbols) - - - - - - - fr - - fr - French - - fra - - - - - - nodeadkeys - French (eliminate dead keys) - - - - - sundeadkeys - French (Sun dead keys) - - - - - oss - French (alternative) - - - - - oss_latin9 - French (alternative, Latin-9 only) - - - - - oss_nodeadkeys - French (alternative, eliminate dead keys) - - - - - oss_sundeadkeys - French (alternative, Sun dead keys) - - - - - latin9 - French (legacy, alternative) - - - - - latin9_nodeadkeys - French (legacy, alternative, eliminate dead keys) - - - - - latin9_sundeadkeys - French (legacy, alternative, Sun dead keys) - - - - - bepo - French (Bepo, ergonomic, Dvorak way) - - - - - bepo_latin9 - French (Bepo, ergonomic, Dvorak way, Latin-9 only) - - - - - dvorak - French (Dvorak) - - - - - mac - French (Macintosh) - - - - - bre - French (Breton) - - - - - cmk_ed_ks - French (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - French (Colemak[eD], unified symbols) - - - - - oci - Occitan - - oci - - - - - - geo - Georgian (France, AZERTY Tskapo) - - geo - - - - - - - - gh - - en - English (Ghana) - - eng - - - - - - generic - English (Ghana, multilingual) - - - - - akan - - ak - Akan - - aka - - - - - - ewe - - ee - Ewe - - ewe - - - - - - fula - - ff - Fula - - ful - - - - - - ga - - gaa - Ga - - gaa - - - - - - hausa - - ha - Hausa - - hau - - - - - - avn - - avn - Avatime - - avn - - - - - - gillbt - English (Ghana, GILLBT) - - - - - - - gn - - fr - French (Guinea) - - fra - - - - - - - ge - - ka - Georgian - - geo - - - - - - ergonomic - Georgian (ergonomic) - - - - - mess - Georgian (MESS) - - - - - ru - - ru - Russian (Georgia) - - rus - - - - - - os - Ossetian (Georgia) - - oss - - - - - - - - de - - de - German - - ger - - - - - - deadacute - German (dead acute) - - - - - deadgraveacute - German (dead grave acute) - - - - - nodeadkeys - German (eliminate dead keys) - - - - - T3 - German (T3) - - - - - ro - Romanian (Germany) - rum - - - - - ro_nodeadkeys - Romanian (Germany, eliminate dead keys) - rum - - - - - dvorak - German (Dvorak) - - - - - sundeadkeys - German (Sun dead keys) - - - - - neo - German (Neo 2) - - - - - mac - German (Macintosh) - - - - - mac_nodeadkeys - German (Macintosh, eliminate dead keys) - - - - - cmk_ed_ks - German (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - German (Colemak[eD], unified symbols) - - - - - dsb - Lower Sorbian - - dsb - - - - - - dsb_qwertz - Lower Sorbian (qwertz) - - dsb - - - - - - qwerty - German (qwerty) - - - - - tr - Turkish (Germany) - - tr - - - - - - ru - - ru - Russian (Germany, phonetic) - - rus - - - - - - legacy - German (legacy) - - - - - - - gr - - gr - Greek - - gre - - - - - - simple - Greek (simple) - - - - - extended - Greek (extended) - - - - - nodeadkeys - Greek (eliminate dead keys) - - - - - polytonic - Greek (polytonic) - - - - - colemak - Greek (Colemak, phonetic) - - - - - - - hu - - hu - Hungarian - - hun - - - - - - standard - Hungarian (standard) - - - - - nodeadkeys - Hungarian (eliminate dead keys) - - - - - qwerty - Hungarian (qwerty) - - - - - cmk_ed_ks - Hungarian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Hungarian (Colemak[eD], unified symbols) - - - - - 101_qwertz_comma_dead - Hungarian (101/qwertz/comma/dead keys) - - - - - 101_qwertz_comma_nodead - Hungarian (101/qwertz/comma/eliminate dead keys) - - - - - 101_qwertz_dot_dead - Hungarian (101/qwertz/dot/dead keys) - - - - - 101_qwertz_dot_nodead - Hungarian (101/qwertz/dot/eliminate dead keys) - - - - - 101_qwerty_comma_dead - Hungarian (101/qwerty/comma/dead keys) - - - - - 101_qwerty_comma_nodead - Hungarian (101/qwerty/comma/eliminate dead keys) - - - - - 101_qwerty_dot_dead - Hungarian (101/qwerty/dot/dead keys) - - - - - 101_qwerty_dot_nodead - Hungarian (101/qwerty/dot/eliminate dead keys) - - - - - 102_qwertz_comma_dead - Hungarian (102/qwertz/comma/dead keys) - - - - - 102_qwertz_comma_nodead - Hungarian (102/qwertz/comma/eliminate dead keys) - - - - - 102_qwertz_dot_dead - Hungarian (102/qwertz/dot/dead keys) - - - - - 102_qwertz_dot_nodead - Hungarian (102/qwertz/dot/eliminate dead keys) - - - - - 102_qwerty_comma_dead - Hungarian (102/qwerty/comma/dead keys) - - - - - 102_qwerty_comma_nodead - Hungarian (102/qwerty/comma/eliminate dead keys) - - - - - 102_qwerty_dot_dead - Hungarian (102/qwerty/dot/dead keys) - - - - - 102_qwerty_dot_nodead - Hungarian (102/qwerty/dot/eliminate dead keys) - - - - - - - is - - is - Icelandic - - ice - - - - - - Sundeadkeys - Icelandic (Sun dead keys) - - - - - nodeadkeys - Icelandic (eliminate dead keys) - - - - - mac - Icelandic (Macintosh) - - - - - dvorak - Icelandic (Dvorak) - - - - - cmk_ed_ks - Icelandic (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Icelandic (Colemak[eD], unified symbols) - - - - - - - il - - he - Hebrew - - heb - - - - - - lyx - Hebrew (lyx) - - - - - phonetic - Hebrew (phonetic) - - - - - biblical - Hebrew (Biblical, Tiro) - - - - - colemak - Hebrew (Colemak, phonetic) - - - - - - - it - - it - Italian - - ita - - - - - - nodeadkeys - Italian (eliminate dead keys) - - - - - winkeys - Italian (Winkeys) - - - - - mac - Italian (Macintosh) - - - - - cmk_ed_ks - Italian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Italian (Colemak[eD], unified symbols) - - - - - us - Italian (US keyboard with Italian letters) - - - - - geo - Georgian (Italy) - - geo - - - - - - ibm - Italian (IBM 142) - - - - - - - jp - - ja - Japanese - - jpn - - - - - - kana - Japanese (Kana) - - - - - kana86 - Japanese (Kana 86) - - - - - OADG109A - Japanese (OADG 109A) - - - - - mac - Japanese (Macintosh) - - - - - dvorak - Japanese (Dvorak) - - - - - - - kg - - ki - Kyrgyz - - kir - - - - - - phonetic - Kyrgyz (phonetic) - - - - - - - kh - - km - Khmer (Cambodia) - - khm - - - - - - - kz - - kk - Kazakh - - kaz - - - - - - ruskaz - - ru - Russian (Kazakhstan, with Kazakh) - kaz - rus - - - - - kazrus - Kazakh (with Russian) - kaz - rus - - - - - - - la - - lo - Lao - - lao - - - - - - stea - Lao (STEA proposed standard layout) - lao - - - - - - - - latam - - es - Spanish (Latin American) - - AR - BO - CL - CO - CR - CU - DO - EC - GT - HN - HT - MX - NI - PA - PE - PR - PY - SV - US - UY - VE - - - spa - - - - - - nodeadkeys - Spanish (Latin American, eliminate dead keys) - - - - - deadtilde - Spanish (Latin American, include dead tilde) - - - - - sundeadkeys - Spanish (Latin American, Sun dead keys) - - - - - cmk_ed_ks - Spanish (Latin American, Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Spanish (Latin American, Colemak[eD], unified symbols) - - - - - - - lt - - lt - Lithuanian - - lit - - - - - - std - Lithuanian (standard) - - - - - us - Lithuanian (US keyboard with Lithuanian letters) - - - - - ibm - Lithuanian (IBM LST 1205-92) - - - - - lekp - Lithuanian (LEKP) - - - - - lekpa - Lithuanian (LEKPa) - - - - - - - lv - - lv - Latvian - - lav - - - - - - apostrophe - Latvian (apostrophe variant) - - - - - tilde - Latvian (tilde variant) - - - - - fkey - Latvian (F variant) - - - - - modern - Latvian (modern) - - - - - ergonomic - Latvian (ergonomic, ナェGJRMV) - - - - - adapted - Latvian (adapted) - - - - - - - mao - - mi - Maori - - mao - - - - - - - me - - sr - Montenegrin - - srp - - - - - - cyrillic - Montenegrin (Cyrillic) - - - - - cyrillicyz - Montenegrin (Cyrillic, ZE and ZHE swapped) - - - - - latinunicode - Montenegrin (Latin Unicode) - - - - - latinyz - Montenegrin (Latin qwerty) - - - - - latinunicodeyz - Montenegrin (Latin Unicode qwerty) - - - - - cyrillicalternatequotes - Montenegrin (Cyrillic with guillemets) - - - - - latinalternatequotes - Montenegrin (Latin with guillemets) - - - - - - - mk - - mk - Macedonian - - mkd - - - - - - nodeadkeys - Macedonian (eliminate dead keys) - - - - - - - mt - - mt - Maltese - - mlt - - - - - - us - Maltese (with US layout) - - - - - - - mn - - mn - Mongolian - - mon - - - - - - - no - - no - Norwegian - - nor - nob - nno - - - - - - nodeadkeys - Norwegian (eliminate dead keys) - - - - - winkeys - Norwegian (Winkeys) - - - - - dvorak - Norwegian (Dvorak) - - - - - cmk_ed_ks - Norwegian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Norwegian (Colemak[eD], unified symbols) - - - - - smi - Northern Saami (Norway) - - sme - - - - - - smi_nodeadkeys - Northern Saami (Norway, eliminate dead keys) - - sme - - - - - - mac - Norwegian (Macintosh) - - - - - mac_nodeadkeys - Norwegian (Macintosh, eliminate dead keys) - - - - - colemak - Norwegian (Colemak) - - - - - - - pl - - pl - Polish - - pol - - - - - - legacy - Polish (legacy) - - - - - qwertz - Polish (qwertz) - - - - - dvorak - Polish (Dvorak) - - - - - dvorak_quotes - Polish (Dvorak, Polish quotes on quotemark key) - - - - - dvorak_altquotes - Polish (Dvorak, Polish quotes on key 1) - - - - - cmk_ed_ks - Polish (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Polish (Colemak[eD], unified symbols) - - - - - csb - Kashubian - - csb - - - - - - szl - Silesian - szl - - - - - ru_phonetic_dvorak - - ru - Russian (Poland, phonetic Dvorak) - - rus - - - - - - dvp - Polish (programmer Dvorak) - - - - - - - pt - - pt - Portuguese - - por - - - - - - nodeadkeys - Portuguese (eliminate dead keys) - - - - - sundeadkeys - Portuguese (Sun dead keys) - - - - - mac - Portuguese (Macintosh) - - - - - mac_nodeadkeys - Portuguese (Macintosh, eliminate dead keys) - - - - - mac_sundeadkeys - Portuguese (Macintosh, Sun dead keys) - - - - - cmk_ed_ks - Portuguese (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Portuguese (Colemak[eD], unified symbols) - - - - - nativo - Portuguese (Nativo) - - - - - nativo-us - Portuguese (Nativo for US keyboards) - - - - - nativo-epo - Esperanto (Portugal, Nativo) - - epo - - - - - - - - ro - - ro - Romanian - - rum - - - - - - cedilla - Romanian (cedilla) - - - - - std - Romanian (standard) - - - - - std_cedilla - Romanian (standard cedilla) - - - - - winkeys - Romanian (WinKeys) - - - - - cmk_ed_ks - Romanian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Romanian (Colemak[eD], unified symbols) - - - - - - - ru - - ru - Russian - - rus - - - - - - phonetic - Russian (phonetic) - - - - - phonetic_winkeys - Russian (phonetic WinKeys) - - - - - colemak - Russian (Colemak, phonetic Rulemak) - - - - - typewriter - Russian (typewriter) - - - - - legacy - Russian (legacy) - - - - - typewriter-legacy - Russian (typewriter, legacy) - - - - - tt - Tatar - - tat - - - - - - os_legacy - Ossetian (legacy) - - oss - - - - - - os_winkeys - Ossetian (WinKeys) - - oss - - - - - - cv - Chuvash - - chv - - - - - - cv_latin - Chuvash (Latin) - - chv - - - - - - udm - Udmurt - - udm - - - - - - kom - Komi - - kom - - - - - - sah - Yakut - - sah - - - - - - xal - Kalmyk - - xal - - - - - - dos - Russian (DOS) - - - - - mac - Russian (Macintosh) - - - - - srp - Serbian (Russia) - rus - srp - - - - - bak - Bashkirian - - bak - - - - - - chm - Mari - - chm - - - - - - - - rs - - sr - Serbian - - srp - - - - - - yz - Serbian (Cyrillic, ZE and ZHE swapped) - - - - - latin - Serbian (Latin) - - - - - latinunicode - Serbian (Latin Unicode) - - - - - latinyz - Serbian (Latin qwerty) - - - - - latinunicodeyz - Serbian (Latin Unicode qwerty) - - - - - alternatequotes - Serbian (Cyrillic with guillemets) - - - - - latinalternatequotes - Serbian (Latin with guillemets) - - - - - cmk_ed_ks - Serbian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Serbian (Colemak[eD], unified symbols) - - - - - rue - Pannonian Rusyn - - rue - - - - - - - - si - - sl - Slovenian - - slv - - - - - - alternatequotes - Slovenian (with guillemets for quotes) - - - - - us - Slovenian (US keyboard with Slovenian letters) - - - - - cmk_ed_ks - Slovenian (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Slovenian (Colemak[eD], unified symbols) - - - - - - - sk - - sk - Slovak - - slo - - - - - - bksl - Slovak (extended Backslash) - - - - - qwerty - Slovak (qwerty) - - - - - qwerty_bksl - Slovak (qwerty, extended Backslash) - - - - - - - es - - es - Spanish - - spa - - - - - - nodeadkeys - Spanish (eliminate dead keys) - - - - - winkeys - Spanish (Winkeys) - - - - - deadtilde - Spanish (include dead tilde) - - - - - sundeadkeys - Spanish (Sun dead keys) - - - - - dvorak - Spanish (Dvorak) - - - - - cmk_ed_ks - Spanish (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Spanish (Colemak[eD], unified symbols) - - - - - ast - Asturian (Spain, with bottom-dot H and bottom-dot L) - - ast - - - - - - cat - Catalan (Spain, with middle-dot L) - - cat - - - - - - mac - Spanish (Macintosh) - - - - - - - se - - sv - Swedish - - swe - - - - - - nodeadkeys - Swedish (eliminate dead keys) - - - - - dvorak - Swedish (Dvorak) - - - - - cmk_ed_ks - Swedish (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Swedish (Colemak[eD], unified symbols) - - - - - rus - - ru - Russian (Sweden, phonetic) - - rus - - - - - - rus_nodeadkeys - - ru - Russian (Sweden, phonetic, eliminate dead keys) - - rus - - - - - - smi - Northern Saami (Sweden) - - sme - - - - - - mac - Swedish (Macintosh) - - - - - svdvorak - Swedish (Svdvorak) - - - - - swl - Swedish Sign Language - swl - - - - - - - ch - - de - German (Switzerland) - ger - gsw - - - - - legacy - German (Switzerland, legacy) - - - - - de_nodeadkeys - - de - German (Switzerland, eliminate dead keys) - - - - - de_sundeadkeys - - de - German (Switzerland, Sun dead keys) - - - - - fr - - fr - French (Switzerland) - - fra - - - - - - fr_nodeadkeys - - fr - French (Switzerland, eliminate dead keys) - - fra - - - - - - fr_sundeadkeys - - fr - French (Switzerland, Sun dead keys) - - fra - - - - - - fr_mac - - fr - French (Switzerland, Macintosh) - - fra - - - - - - de_mac - - de - German (Switzerland, Macintosh) - - - - - - - sy - - ar - Arabic (Syria) - - syr - - - - - - syc - - syc - Syriac - - - - - syc_phonetic - - syc - Syriac (phonetic) - - - - - ku - - ku - Kurdish (Syria, Latin Q) - - kur - - - - - - ku_f - - ku - Kurdish (Syria, F) - - kur - - - - - - ku_alt - - ku - Kurdish (Syria, Latin Alt-Q) - - kur - - - - - - - - tj - - tg - Tajik - - tgk - - - - - - legacy - Tajik (legacy) - - - - - - - lk - - si - Sinhala (phonetic) - - sin - - - - - - tam_unicode - - ta - Tamil (Sri Lanka, Unicode) - - tam - - - - - - tam_TAB - Tamil (Sri Lanka, TAB Typewriter) - - tam - - - - - - - - th - - th - Thai - - tha - - - - - - tis - Thai (TIS-820.2538) - - - - - pat - Thai (Pattachote) - - - - - - - tr - - tr - Turkish - - tur - - - - - - f - Turkish (F) - - - - - alt - Turkish (Alt-Q) - - - - - sundeadkeys - Turkish (Sun dead keys) - - - - - ku - - ku - Kurdish (Turkey, Latin Q) - - kur - - - - - - ku_f - - ku - Kurdish (Turkey, F) - - kur - - - - - - ku_alt - - ku - Kurdish (Turkey, Latin Alt-Q) - - kur - - - - - - intl - Turkish (international with dead keys) - - - - - cmk_ed_ks - Turkish (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - Turkish (Colemak[eD], unified symbols) - - - - - crh - - crh - Crimean Tatar (Turkish Q) - - crh - - - - - - crh_f - - crh - Crimean Tatar (Turkish F) - - crh - - - - - - crh_alt - - crh - Crimean Tatar (Turkish Alt-Q) - - crh - - - - - - - - tw - - zh - Taiwanese - - fox - - - - - - indigenous - Taiwanese (indigenous) - - ami - tay - bnn - ckv - pwn - pyu - dru - ais - ssf - tao - tsu - trv - xnb - sxr - uun - fos - - - - - - saisiyat - - xsy - Saisiyat (Taiwan) - - xsy - - - - - - - - ua - - uk - Ukrainian - - ukr - - - - - - phonetic - Ukrainian (phonetic) - - - - - typewriter - Ukrainian (typewriter) - - - - - winkeys - Ukrainian (WinKeys) - - - - - legacy - Ukrainian (legacy) - - - - - rstu - Ukrainian (standard RSTU) - - - - - rstu_ru - Russian (Ukraine, standard RSTU) - - - - - homophonic - Ukrainian (homophonic) - - - - - - - gb - - en - English (UK) - - eng - - - - - - extd - English (UK, extended WinKeys) - - - - - intl - English (UK, international with dead keys) - - - - - dvorak - English (UK, Dvorak) - - - - - dvorakukp - English (UK, Dvorak with UK punctuation) - - - - - mac - English (UK, Macintosh) - - - - - mac_intl - English (UK, Macintosh international) - - - - - colemak - English (UK, Colemak) - - - - - cmk_ed_ks - English (UK, Colemak[eD], keep local symbols) - - - - - cmk_ed_us - English (UK, Colemak[eD], unified symbols) - - - - - - - uz - - uz - Uzbek - - uzb - - - - - - latin - Uzbek (Latin) - - - - - - - vn - - vi - Vietnamese - - vie - - - - - - - kr - - ko - Korean - - kor - - - - - - kr104 - Korean (101/104 key compatible) - - - - - - - nec_vndr/jp - - ja - Japanese (PC-98xx Series) - - JP - - - jpn - - - - - - - ie - - ie - Irish - - eng - - - - - - CloGaelach - CloGaelach - - gle - - - - - - UnicodeExpert - Irish (UnicodeExpert) - - - - - ogam - Ogham - - sga - - - - - - ogam_is434 - Ogham (IS434) - - sga - - - - - - - - pk - - ur - Urdu (Pakistan) - - urd - - - - - - urd-crulp - Urdu (Pakistan, CRULP) - - - - - urd-nla - Urdu (Pakistan, NLA) - - - - - ara - ar - Arabic (Pakistan) - - ara - - - - - - snd - - sd - Sindhi - - snd - - - - - - - - mv - - dv - Dhivehi - - div - - - - - - - za - - en - English (South Africa) - - eng - - - - - - epo - - eo - Esperanto - - epo - - - - - - legacy - Esperanto (displaced semicolon and quote, obsolete) - - - - - - - np - - ne - Nepali - - nep - - - - - - ng - - en - English (Nigeria) - - eng - - - - - - igbo - - ig - Igbo - - ibo - - - - - - yoruba - - yo - Yoruba - - yor - - - - - - hausa - - ha - Hausa - - hau - - - - - - - - et - - am - Amharic - - amh - - - - - - - sn - - wo - Wolof - - wol - - - - - - - brai - - brl - Braille - - - - - left_hand - Braille (left hand) - - - - - right_hand - Braille (right hand) - - - - - - - tm - - tk - Turkmen - - tuk - - - - - - alt - Turkmen (Alt-Q) - - - - - - - ml - - bm - Bambara - - bam - - - - - - fr-oss - - fr - French (Mali, alternative) - - fra - - - - - - us-mac - - en - English (Mali, US Macintosh) - - eng - - - - - - us-intl - - en - English (Mali, US international) - - eng - - - - - - - - tz - - sw - Swahili (Tanzania) - - swa - - - - - - ke - - sw - Swahili (Kenya) - - swa - - - - - - kik - - ki - Kikuyu - - kik - - - - - - - - bw - - tn - Tswana - - tsn - - - - - - ph - - ph - Filipino - eng - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war - - - - - qwerty-bay - Filipino (QWERTY Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war - - - - - capewell-dvorak - Filipino (Capewell-Dvorak Latin) - - - - - capewell-dvorak-bay - Filipino (Capewell-Dvorak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war - - - - - capewell-qwerf2k6 - Filipino (Capewell-QWERF 2006 Latin) - - - - - capewell-qwerf2k6-bay - Filipino (Capewell-QWERF 2006 Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war - - - - - colemak - Filipino (Colemak Latin) - - - - - colemak-bay - Filipino (Colemak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war - - - - - dvorak - Filipino (Dvorak Latin) - - - - - dvorak-bay - Filipino (Dvorak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war - - - - - - - md - md - Moldavian - rum - - - - - gag - gag - Moldavian (Gagauz) - gag - - - - - - - - - - grp - Switching to another layout - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - lv3 - Key to choose 3rd level - - - - - - - - - - - - - - - - - - - - - - - ctrl - Ctrl key position - - - - - - - - - - - - - - - - - grp_led - Use keyboard LED to show alternative layout - - - - - - - - - keypad - Layout of numeric keypad - - - - - - - - - - - - - - - kpdl - Numeric keypad delete key behaviour - - - - - - - - - - - - - - caps - Caps Lock key behavior - - - - - - - - - - - - - - - - - - - - altwin - Alt/Win key behavior - - - - - - - - - - - - - - - - Compose key - Position of Compose key - - - - - - - - - - - - - - - - - - - - - - - compat - Miscellaneous compatibility options - - - - - - - - - - - - - - - - - - - - - currencysign - Adding currency signs to certain keys - - - - - - - - - - lv5 - Key to choose 5th level - - - - - - - - - - - nbsp - Using space key to input non-breakable space character - - - - - - - - - - - - - - - - - - - - - japan - Japanese keyboard options - - - - - - - - esperanto - Adding Esperanto supersigned letters - - - - - - - - solaris - Maintain key compatibility with old Solaris keycodes - - - - - - terminate - Key sequence to kill the X server - - - - - diff --git a/x-mod_v2-12-1_2015-01-18/xkb/geometry/pc b/x-mod_v2-17-1ub1_2016-06-06/xkb/geometry/pc similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/geometry/pc rename to x-mod_v2-17-1ub1_2016-06-06/xkb/geometry/pc diff --git a/x-mod_v2-12-1_2015-01-18/xkb/keycodes/aliases b/x-mod_v2-17-1ub1_2016-06-06/xkb/keycodes/aliases similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/keycodes/aliases rename to x-mod_v2-17-1ub1_2016-06-06/xkb/keycodes/aliases diff --git a/x-mod_v2-12-1_2015-01-18/xkb/keycodes/evdev b/x-mod_v2-17-1ub1_2016-06-06/xkb/keycodes/evdev similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/keycodes/evdev rename to x-mod_v2-17-1ub1_2016-06-06/xkb/keycodes/evdev diff --git a/x-mod_v2-12-1_2015-01-18/xkb/keycodes/xfree86 b/x-mod_v2-17-1ub1_2016-06-06/xkb/keycodes/xfree86 similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/keycodes/xfree86 rename to x-mod_v2-17-1ub1_2016-06-06/xkb/keycodes/xfree86 diff --git a/x-mod_v2-12-1_2015-01-18/xkb/rules/evdev b/x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev similarity index 95% rename from x-mod_v2-12-1_2015-01-18/xkb/rules/evdev rename to x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev index ea83709..7f2299f 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/rules/evdev +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev @@ -9,12 +9,15 @@ // If you want non-latin layouts implicitly include the en_US layout // uncomment lines below //! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ -// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \ -// ru scc sy syr tel th tj tam ua uz +// in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \ +// ori pk ru scc sy syr tel th tj tam ua uz // PC models ! $pcmodels = pc101 pc102 pc104 pc105 pc104angle-z pc104wide-qu pc104awide-zqu pc104aframe pc105angle-lg pc105awide-sl +// Jolla devices and keyboards +! $jollamodels = jollasbj + // Microsoft models (using MS geometry) ! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose @@ -92,6 +95,7 @@ ! model = keycodes pc98 = evdev(pc98) applealu_jis = evdev+macintosh(jisevdev) + $jollamodels = evdev+jolla(jolla) olpc = evdev+olpc(olpc) olpcm = evdev+olpc(olpcm) pc104angle-z = evdev(pc104angle-z) @@ -304,6 +308,8 @@ classmate us = pc+%l(classmate) empty * = empty(basic) * empty = empty(basic) + jollasbj $nonlatin = jolla_vndr/sbj(common)+us+%l%(v):2 + jollasbj * = jolla_vndr/sbj(common)+%l%(v) $sun $sun_custom = pc+sun_vndr/%l%(v) pc98 nec_vndr/jp = nec_vndr/jp(pc98) macintosh_old us = macintosh_vndr/us(oldmac) @@ -413,6 +419,7 @@ * yu(unicodeyz) = pc+srp(latinunicodeyz) ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) + jollasbj * = jolla_vndr/sbj(common)+%l[1]%(v[1]) $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) macintosh_old us = macintosh_vndr/us(oldmac) macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) @@ -875,6 +882,7 @@ ! model = symbols $evdevkbds = +inet(evdev)+inet(%m) + chromebook = +inet(evdev)+inet(chromebook) applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys) * = +inet(evdev) @@ -883,26 +891,31 @@ ! layout variant = compat de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) ! layout[1] variant[1] = compat de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) ! layout[2] variant[2] = compat de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de koy = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 jp $sun_compat = +complete+japan(kana_lock):2 ! layout[3] variant[3] = compat de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de koy = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 jp $sun_compat = +complete+japan(kana_lock):3 ! layout[4] variant[4] = compat de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de koy = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 jp $sun_compat = +complete+japan(kana_lock):4 ! model layout = compat @@ -925,26 +938,36 @@ $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) * misc:typo = +typo(base) * misc:extend = +extend(basic) + * misc:cmk_curl_dbghk = +colemak(cmk_dbg-hk_ed) + * misc:cmk_curl_dvbghm = +colemak(cmk_dvbg-hm_ed) ! layout[1] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 * misc:typo = +typo(base):1 * misc:extend = +extend(basic):1 + * misc:cmk_curl_dbghk = +colemak(cmk_dbg-hk_ed):1 + * misc:cmk_curl_dvbghm = +colemak(cmk_dvbg-hm_ed):1 ! layout[2] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 * misc:typo = +typo(base):2 * misc:extend = +extend(basic):2 +// * misc:cmk_curl_dbghk = +colemak(cmk_dbg-hk_ed):2 +// * misc:cmk_curl_dvbghm = +colemak(cmk_dvbg-hm_ed):2 ! layout[3] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 * misc:typo = +typo(base):3 * misc:extend = +extend(basic):3 +// * misc:cmk_curl_dbghk = +colemak(cmk_dbg-hk_ed):3 +// * misc:cmk_curl_dvbghm = +colemak(cmk_dvbg-hm_ed):3 ! layout[4] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 * misc:typo = +typo(base):4 * misc:extend = +extend(basic):4 +// * misc:cmk_curl_dbghk = +colemak(cmk_dbg-hk_ed):4 +// * misc:cmk_curl_dvbghm = +colemak(cmk_dvbg-hm_ed):4 ! option = symbols grp:shift_toggle = +group(shifts_toggle) @@ -957,7 +980,9 @@ altwin:left_meta_win = +altwin(left_meta_win) altwin:hyper_win = +altwin(hyper_win) altwin:alt_super_win = +altwin(alt_super_win) + altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin) altwin:swap_alt_win = +altwin(swap_alt_win) + altwin:prtsc_rwin = +altwin(prtsc_rwin) grab:debug = +srvr_ctrl(grab_debug) grp:switch = +group(switch) grp:lswitch = +group(lswitch) @@ -1021,6 +1046,7 @@ caps:backspace = +capslock(backspace) caps:super = +capslock(super) caps:hyper = +capslock(hyper) + caps:menu = +capslock(menu) caps:none = +capslock(none) caps:ctrl_modifier = +capslock(ctrl_modifier) ctrl:nocaps = +ctrl(nocaps) @@ -1031,6 +1057,10 @@ ctrl:rctrl_ralt = +ctrl(rctrl_ralt) ctrl:menu_rctrl = +ctrl(menu_rctrl) ctrl:ralt_rctrl = +ctrl(ralt_rctrl) + ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl) + ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl) + ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl) + ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin) compose:ralt = +compose(ralt) compose:lwin = +compose(lwin) compose:lwin-altgr = +compose(lwin-altgr) @@ -1073,6 +1103,8 @@ nbsp:level4nl = +nbsp(level4nl) japan:nicola_f_bs = +jp(nicola_f_bs) japan:hztg_escape = +jp(hztg_escape) + korean:ralt_rctrl = +kr(ralt_hangul)+kr(rctrl_hanja) + korean:rctrl_ralt = +kr(rctrl_hangul)+kr(ralt_hanja) kpdl:dot = +kpdl(dot) kpdl:comma = +kpdl(comma) kpdl:dotoss = +kpdl(dotoss) @@ -1109,11 +1141,13 @@ lv5:lwin_switch_lock = +level5(lwin_switch_lock) lv5:rwin_switch_lock = +level5(rwin_switch_lock) lv5:caps_switch_lock = +level5(caps_switch_lock) + lv5:lctl_switch_lock = +level5(lctl_switch_lock) lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) lv5:caps_switch_lock_cancel = +level5(caps_switch_lock_cancel) + lv5:lctl_switch_lock_cancel = +level5(lctl_switch_lock_cancel) diff --git a/x-mod_v2-12-1_2015-01-18/xkb/rules/evdev.lst b/x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev.lst similarity index 94% rename from x-mod_v2-12-1_2015-01-18/xkb/rules/evdev.lst rename to x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev.lst index 8753b30..e78ee92 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/rules/evdev.lst +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev.lst @@ -6,7 +6,7 @@ pc104angle-z Generic 104-key PC Angle(Z)Ergo pc104wide-qu Generic 104-key PC Wide(Quote)Ergo pc104awide-zqu Generic 104-key PC Angle(Z)Wide(Quote)Ergo - pc104aframe Generic 104-key PC AngleFrame(Quote)Ergo + pc104aframe Generic 104-key PC AngleWing(Quote)Ergo pc105angle-lg Generic 105-key (Intl) PC Angle(LSGT)Ergo pc105awide-sl Generic 105-key (Intl) PC AngleWide(/)Ergo dell101 Dell 101-key PC @@ -118,7 +118,7 @@ mx1998 Memorex MX1998 mx2500 Memorex MX2500 EZ-Access Keyboard mx2750 Memorex MX2750 - microsoft4000 Microsoft Natural Wireless Ergonomic Keyboard 4000 + microsoft4000 Microsoft Natural Ergonomic Keyboard 4000 microsoft7000 Microsoft Natural Wireless Ergonomic Keyboard 7000 microsoftinet Microsoft Internet Keyboard microsoftpro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro @@ -190,6 +190,8 @@ compalfl90 FL90 creativedw7000 Creative Desktop Wireless 7000 htcdream Htc Dream phone + teck227 Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) + teck229 Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) ! layout us English (US) @@ -281,6 +283,7 @@ tm Turkmen ml Bambara tz Swahili (Tanzania) + tg French (Togo) ke Swahili (Kenya) bw Tswana ph Filipino @@ -292,13 +295,16 @@ intl us: English (US, international with dead keys) alt-intl us: English (US, alternative international) colemak us: English (Colemak) - cmk_ed_us us: English (Colemak, edition DreymaR) - tarmak1_e us: English (Tarmak1 - Colemak transitional) - tarmak2_et us: English (Tarmak2 - Colemak transitional) - tarmak3_etr us: English (Tarmak3 - Colemak transitional) - tarmak4_etro us: English (Tarmak4 - Colemak transitional) - cmk_ed_dvbghm us: English (Colemak[eD], Curl-Dvbg/Hm ergo) - cmk_ed_dbghk us: English (Colemak[eD], Curl-Dbg/Hk ergo) + cmk_ed_us us: English (Colemak[eD] - edition DreymaR) + tarmak1_e us: English (Tarmak1 - Colemak[eD] transitional) + tarmak1k_e us: English (Tarmak1k - Colemak[eD] transit. w/ Curl-Hk mod) + tarmak2_et us: English (Tarmak2 - Colemak[eD] transitional) + tarmak2bk_et us: English (Tarmak2bk - Colemak[eD] transit. w/ Curl-DbgHk mod) + tarmak2vm_et us: English (Tarmak2vm - Colemak[eD] transit. w/ Curl-DvbgHm mod) + tarmak3_etr us: English (Tarmak3 - Colemak[eD] transitional) + tarmak4_etro us: English (Tarmak4 - Colemak[eD] transitional) + cmk_ed_dvbghm us: English (Colemak[eD], Curl-DvbgHm ergo) + cmk_ed_dbghk us: English (Colemak[eD], Curl-DbgHk ergo) cmk_ed_mirror us: English (Colemak[eD], mirrored) dvorak us: English (Dvorak) dvorak-intl us: English (Dvorak, international with dead keys) @@ -306,7 +312,7 @@ dvorak-l us: English (left handed Dvorak) dvorak-r us: English (right handed Dvorak) dvorak-classic us: English (classic Dvorak) - dvp us: English (programmer Dvorak) + dvp us: English (Programmer Dvorak) rus us: Russian (US, phonetic) mac us: English (Macintosh) altgr-intl us: English (international AltGr dead keys) @@ -325,6 +331,7 @@ qwerty ara: Arabic (qwerty) qwerty_digits ara: Arabic (qwerty/digits) buckwalter ara: Arabic (Buckwalter) + mac ara: Arabic (Macintosh) plisi-d1 al: Albanian (Plisi D1) cmk_ed_ks al: Albanian (Colemak[eD], keep local symbols) cmk_ed_us al: Albanian (Colemak[eD], unified symbols) @@ -335,9 +342,9 @@ eastern-alt am: Armenian (alternative eastern) nodeadkeys at: German (Austria, eliminate dead keys) sundeadkeys at: German (Austria, Sun dead keys) - mac at: German (Austria, Macintosh) cmk_ed_ks at: German (Austria, Colemak[eD], keep local symbols) cmk_ed_us at: German (Austria, Colemak[eD], unified symbols) + mac at: German (Austria, Macintosh) cyrillic az: Azerbaijani (Cyrillic) legacy by: Belarusian (legacy) latin by: Belarusian (Latin) @@ -367,6 +374,7 @@ mal_lalitha in: Malayalam (Lalitha) mal_enhanced in: Malayalam (enhanced Inscript, with rupee sign) ori in: Oriya + olck in: Ol Chiki tam_unicode in: Tamil (Unicode) tam_keyboard_with_numerals in: Tamil (keyboard with numerals) tam_TAB in: Tamil (TAB typewriter) @@ -396,9 +404,10 @@ nativo-epo br: Esperanto (Brazil, Nativo) cmk_ed_ks br: Portuguese (Brazil, Colemak[eD], keep local symbols) cmk_ed_us br: Portuguese (Brazil, Colemak[eD], unified symbols) + thinkpad br: Portuguese (Brazil, IBM/Lenovo ThinkPad) phonetic bg: Bulgarian (traditional phonetic) bas_phonetic bg: Bulgarian (new phonetic) - colemak bg: Bulgarian (Colemak, phonetic) + colemak bg: Bulgarian (Colemak, phonetic S-Slavic) french ma: French (Morocco) tifinagh ma: Berber (Morocco, Tifinagh) tifinagh-alt ma: Berber (Morocco, Tifinagh alternative) @@ -435,6 +444,7 @@ dvorak-ucw cz: Czech (US Dvorak with CZ UCW support) cmk_ed_ks cz: Czech (Colemak[eD], keep local symbols) cmk_ed_us cz: Czech (Colemak[eD], unified symbols) + rus cz: Russian (Czech, phonetic) nodeadkeys dk: Danish (eliminate dead keys) winkeys dk: Danish (Winkeys) mac dk: Danish (Macintosh) @@ -465,6 +475,7 @@ winkeys fi: Finnish (Winkeys) smi fi: Northern Saami (Finland) mac fi: Finnish (Macintosh) + das fi: Finnish (DAS) cmk_ed_ks fi: Finnish (Colemak[eD], keep local symbols) cmk_ed_us fi: Finnish (Colemak[eD], unified symbols) nodeadkeys fr: French (eliminate dead keys) @@ -479,10 +490,11 @@ bepo fr: French (Bepo, ergonomic, Dvorak way) bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only) dvorak fr: French (Dvorak) - mac fr: French (Macintosh) - bre fr: French (Breton) cmk_ed_ks fr: French (Colemak[eD], keep local symbols) cmk_ed_us fr: French (Colemak[eD], unified symbols) + mac fr: French (Macintosh) + azerty fr: French (Azerty) + bre fr: French (Breton) oci fr: Occitan geo fr: Georgian (France, AZERTY Tskapo) generic gh: English (Ghana, multilingual) @@ -504,12 +516,12 @@ ro de: Romanian (Germany) ro_nodeadkeys de: Romanian (Germany, eliminate dead keys) dvorak de: German (Dvorak) + cmk_ed_ks de: German (Colemak[eD], keep local symbols) + cmk_ed_us de: German (Colemak[eD], unified symbols) sundeadkeys de: German (Sun dead keys) neo de: German (Neo 2) mac de: German (Macintosh) mac_nodeadkeys de: German (Macintosh, eliminate dead keys) - cmk_ed_ks de: German (Colemak[eD], keep local symbols) - cmk_ed_us de: German (Colemak[eD], unified symbols) dsb de: Lower Sorbian dsb_qwertz de: Lower Sorbian (qwertz) qwerty de: German (qwerty) @@ -544,6 +556,7 @@ 102_qwerty_dot_nodead hu: Hungarian (102/qwerty/dot/eliminate dead keys) Sundeadkeys is: Icelandic (Sun dead keys) nodeadkeys is: Icelandic (eliminate dead keys) + mac_legacy is: Icelandic (Macintosh, legacy) mac is: Icelandic (Macintosh) dvorak is: Icelandic (Dvorak) cmk_ed_ks is: Icelandic (Colemak[eD], keep local symbols) @@ -572,6 +585,7 @@ nodeadkeys latam: Spanish (Latin American, eliminate dead keys) deadtilde latam: Spanish (Latin American, include dead tilde) sundeadkeys latam: Spanish (Latin American, Sun dead keys) + dvorak latam: Spanish (Latin American, Dvorak) cmk_ed_ks latam: Spanish (Latin American, Colemak[eD], keep local symbols) cmk_ed_us latam: Spanish (Latin American, Colemak[eD], unified symbols) std lt: Lithuanian (standard) @@ -633,7 +647,7 @@ cmk_ed_us ro: Romanian (Colemak[eD], unified symbols) phonetic ru: Russian (phonetic) phonetic_winkeys ru: Russian (phonetic WinKeys) - colemak ru: Russian (Colemak, phonetic Rulemak) + colemak ru: Russian (Colemak, phonetic E-Slavic) typewriter ru: Russian (typewriter) legacy ru: Russian (legacy) typewriter-legacy ru: Russian (typewriter, legacy) @@ -651,6 +665,8 @@ srp ru: Serbian (Russia) bak ru: Bashkirian chm ru: Mari + phonetic_azerty ru: Russian (phonetic azerty) + phonetic_fr ru: Russian (phonetic French) yz rs: Serbian (Cyrillic, ZE and ZHE swapped) latin rs: Serbian (Latin) latinunicode rs: Serbian (Latin Unicode) @@ -704,6 +720,7 @@ legacy tj: Tajik (legacy) tam_unicode lk: Tamil (Sri Lanka, Unicode) tam_TAB lk: Tamil (Sri Lanka, TAB Typewriter) + us lk: Sinhala (US keyboard with Sinhala letters) tis th: Thai (TIS-820.2538) pat th: Thai (Pattachote) f tr: Turkish (F) @@ -836,6 +853,7 @@ ctrl:ctrl_ralt Right Alt as Right Ctrl ctrl:swap_lalt_lctl Swap Left Alt key with Left Ctrl key ctrl:swap_lwin_lctl Swap Left Win key with Left Ctrl key + ctrl:swap_rwin_rctl Swap Right Win key with Right Ctrl key ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt grp_led Use keyboard LED to show alternative layout grp_led:num Num Lock @@ -871,6 +889,7 @@ caps:backspace Make Caps Lock an additional Backspace caps:super Make Caps Lock an additional Super caps:hyper Make Caps Lock an additional Hyper + caps:menu Make Caps Lock an additional Menu key caps:shiftlock Caps Lock toggles ShiftLock (affects all keys) caps:none Caps Lock is disabled caps:ctrl_modifier Make Caps Lock an additional Ctrl @@ -884,7 +903,9 @@ altwin:left_meta_win Meta is mapped to Left Win altwin:hyper_win Hyper is mapped to Win keys altwin:alt_super_win Alt is mapped to Right Win, Super to Menu + altwin:swap_lalt_lwin Left Alt is swapped with Left Win altwin:swap_alt_win Alt is swapped with Win + altwin:prtsc_rwin Win is mapped to PrtSc (and the usual Win key) Compose key Position of Compose key compose:ralt Right Alt compose:lwin Left Win @@ -907,13 +928,15 @@ compat Miscellaneous compatibility options numpad:pc Default numeric keypad keys numpad:mac Numeric keypad keys always enter digits (as in Mac OS) - numpad:microsoft Shift with numeric keypad keys works as in MS Windows + numpad:microsoft NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows) numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead srvrkeys:none Special keys (Ctrl+Alt+<key>) handled in a server apple:alupckeys Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock) shift:breaks_caps Shift cancels Caps Lock misc:typo Enable extra typographic characters misc:extend Enable level5 Extend mappings (home position arrows etc) + misc:cmk_curl_dbghk Colemak Curl ergo mod (DbgHk variant) + misc:cmk_curl_dvbghm Colemak Curl ergo mod (DvbgHm variant) shift:both_capslock Both Shift keys together toggle Caps Lock shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates shift:both_shiftlock Both Shift keys together toggle ShiftLock @@ -932,6 +955,7 @@ lv5:lwin_switch_lock Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser lv5:rwin_switch_lock Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser lv5:caps_switch_lock Caps Lock chooses 5th level, locks when pressed together with another 5th-level-chooser + lv5:lctl_switch_lock Left Ctrl chooses 5th level, locks when pressed together with another 5th-level-chooser nbsp Using space key to input non-breakable space character nbsp:none Usual space at any level nbsp:level2 Non-breakable space character at second level @@ -953,6 +977,10 @@ japan:kana_lock Kana Lock key is locking japan:nicola_f_bs NICOLA-F style Backspace japan:hztg_escape Make Zenkaku Hankaku an additional ESC + korean Korean Hangul/Hanja keys + korean:hw_keys Hardware Hangul/Hanja keys + korean:ralt_rctrl Right Alt as Hangul, right Ctrl as Hanja + korean:rctrl_ralt Right Ctrl as Hangul, right Alt as Hanja esperanto Adding Esperanto supersigned letters esperanto:qwerty To the corresponding key in a Qwerty layout esperanto:dvorak To the corresponding key in a Dvorak layout diff --git a/x-mod_v2-12-1_2015-01-18/xkb/rules/evdev.xml b/x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev.xml similarity index 94% rename from x-mod_v2-12-1_2015-01-18/xkb/rules/evdev.xml rename to x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev.xml index 582a0a1..c814818 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/rules/evdev.xml +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/rules/evdev.xml @@ -54,7 +54,7 @@ pc104aframe - Generic 104-key PC (AngleFrame(Quote)Ergo mod) + Generic 104-key PC (AngleWing(Quote)Ergo mod) Generic @@ -836,7 +836,7 @@ microsoft4000 - Microsoft Natural Wireless Ergonomic Keyboard 4000 + Microsoft Natural Ergonomic Keyboard 4000 Microsoft Inc. @@ -898,21 +898,21 @@ - microsoftmult + microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A Microsoft Inc. - microsoftelite + microsoftelite Microsoft Natural Keyboard Elite Microsoft Inc. - microsoftccurve2k + microsoftccurve2k Microsoft Comfort Curve Keyboard 2000 Microsoft Inc. @@ -1337,6 +1337,20 @@ htc + + + teck227 + Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) + Megawin Technology + + + + + teck229 + Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) + Megawin Technology + + @@ -1388,43 +1402,61 @@ cmk_ed_us - English (Colemak[eD]) + English (Colemak[eD] - edition DreymaR) tarmak1_e - English (Tarmak1 - Colemak transitional) + English (Tarmak1 - Colemak[eD] transitional) + + + + + tarmak1k_e + English (Tarmak1k - Colemak[eD] transit. w/ Curl-Hk mod) tarmak2_et - English (Tarmak2 - Colemak transitional) + English (Tarmak2 - Colemak[eD] transitional) + + + + + tarmak2bk_et + English (Tarmak2bk - Colemak[eD] transit. w/ Curl-DbgHk mod) + + + + + tarmak2vm_et + English (Tarmak2vm - Colemak[eD] transit. w/ Curl-DvbgHm mod) tarmak3_etr - English (Tarmak3 - Colemak transitional) + English (Tarmak3 - Colemak[eD] transitional) tarmak4_etro - English (Tarmak4 - Colemak transitional) + English (Tarmak4 - Colemak[eD] transitional) cmk_ed_dvbghm - English (Colemak[eD], Curl-Dvbg/Hm ergo) + English (Colemak[eD], Curl-DvbgHm ergo) cmk_ed_dbghk - English (Colemak[eD], Curl-Dbg/Hk ergo) + English (Colemak[eD], Curl-DbgHk ergo) @@ -1472,7 +1504,7 @@ dvp - English (programmer Dvorak) + English (Programmer Dvorak) @@ -1496,9 +1528,11 @@ altgr-intl English (international AltGr dead keys) - eng - fra - ger + + eng + fra + ger + @@ -1511,11 +1545,13 @@ hbs Serbo-Croatian (US) - eng - bos - hbs - hrv - srp + + eng + bos + hbs + hrv + srp + @@ -1662,6 +1698,12 @@ Arabic (Buckwalter) + + + mac + Arabic (Macintosh) + + @@ -1831,9 +1873,11 @@ be Belgian - ger - nld - fra + + ger + nld + fra + @@ -1900,6 +1944,8 @@ Bangla ben + + sat @@ -1927,6 +1973,8 @@ Bangla (India) ben + + sat @@ -1938,6 +1986,8 @@ Bangla (India, Probhat) ben + + sat @@ -1945,35 +1995,53 @@ ben_baishakhi Bangla (India, Baishakhi) - ben + + ben + + sat + ben_bornona Bangla (India, Bornona) - ben - + + ben + + sat + + ben_gitanjali Bangla (India, Uni Gitanjali) - ben + + ben + + sat + ben_inscript Bangla (India, Baishakhi Inscript) - ben + + ben + + sat + eeyek Manipuri (Eeyek) - mni + + mni + @@ -2059,7 +2127,9 @@ ml Malayalam (enhanced Inscript, with rupee sign) - mal + + mal + @@ -2070,6 +2140,20 @@ Oriya ori + + sat + + + + + + olck + + sat + Ol Chiki + + + sat @@ -2356,6 +2440,12 @@ Portuguese (Brazil, Colemak[eD], unified symbols) + + + thinkpad + Portuguese (Brazil, IBM/Lenovo ThinkPad) + + @@ -2384,7 +2474,7 @@ colemak - Bulgarian (Colemak, phonetic) + Bulgarian (Colemak, phonetic S-Slavic) @@ -2482,14 +2572,18 @@ cm English (Cameroon) - eng + + eng + french French (Cameroon) - fra + + fra + @@ -2714,7 +2808,7 @@ ug Uyghur - ug + uig @@ -2822,6 +2916,17 @@ Czech (Colemak[eD], unified symbols) + + + rus + + ru + Russian (Czech, phonetic) + + rus + + + @@ -3033,8 +3138,10 @@ ar Iraqi - ara - kur + + ara + kur + @@ -3135,7 +3242,9 @@ smi Northern Saami (Finland) - sme + + sme + @@ -3144,6 +3253,12 @@ Finnish (Macintosh) + + + das + Finnish (DAS) + + cmk_ed_ks @@ -3241,18 +3356,6 @@ French (Dvorak) - - - mac - French (Macintosh) - - - - - bre - French (Breton) - - cmk_ed_ks @@ -3265,6 +3368,24 @@ French (Colemak[eD], unified symbols) + + + mac + French (Macintosh) + + + + + azerty + French (Azerty) + + + + + bre + French (Breton) + + oci @@ -3472,14 +3593,18 @@ ro Romanian (Germany) - rum + + rum + ro_nodeadkeys Romanian (Germany, eliminate dead keys) - rum + + rum + @@ -3488,6 +3613,18 @@ German (Dvorak) + + + cmk_ed_ks + German (Colemak[eD], keep local symbols) + + + + + cmk_ed_us + German (Colemak[eD], unified symbols) + + sundeadkeys @@ -3512,18 +3649,6 @@ German (Macintosh, eliminate dead keys) - - - cmk_ed_ks - German (Colemak[eD], keep local symbols) - - - - - cmk_ed_us - German (Colemak[eD], unified symbols) - - dsb @@ -3781,6 +3906,12 @@ Icelandic (eliminate dead keys) + + + mac_legacy + Icelandic (Macintosh, legacy) + + mac @@ -3999,16 +4130,20 @@ ru Russian (Kazakhstan, with Kazakh) - kaz - rus + + kaz + rus + kazrus Kazakh (with Russian) - kaz - rus + + kaz + rus + @@ -4028,7 +4163,8 @@ stea Lao (STEA proposed standard layout) - lao + + lao @@ -4086,6 +4222,12 @@ Spanish (Latin American, Sun dead keys) + + + dvorak + Spanish (Latin American, Dvorak) + + cmk_ed_ks @@ -4382,7 +4524,7 @@ Norwegian (Macintosh, eliminate dead keys) - + colemak Norwegian (Colemak) @@ -4456,7 +4598,9 @@ szl Silesian - szl + + szl + @@ -4629,7 +4773,7 @@ colemak - Russian (Colemak, phonetic Rulemak) + Russian (Colemak, phonetic E-Slavic) @@ -4747,8 +4891,10 @@ srp Serbian (Russia) - rus - srp + + rus + srp + @@ -4769,6 +4915,18 @@ + + + phonetic_azerty + Russian (phonetic azerty) + + + + + phonetic_fr + Russian (phonetic French) + + @@ -5076,7 +5234,9 @@ swl Swedish Sign Language - swl + + swl + @@ -5087,8 +5247,10 @@ de German (Switzerland) - ger - gsw + + ger + gsw + @@ -5279,6 +5441,13 @@ + + + us + us + Sinhala (US keyboard with Sinhala letters) + + @@ -5798,6 +5967,8 @@ Nepali nep + + sat @@ -5969,6 +6140,16 @@ + + + tg + fr-tg + French (Togo) + + fra + + + ke @@ -6010,33 +6191,37 @@ ph Filipino - eng - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + eng + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + qwerty-bay Filipino (QWERTY Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -6049,16 +6234,18 @@ capewell-dvorak-bay Filipino (Capewell-Dvorak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -6071,16 +6258,18 @@ capewell-qwerf2k6-bay Filipino (Capewell-QWERF 2006 Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -6093,16 +6282,18 @@ colemak-bay Filipino (Colemak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -6115,16 +6306,18 @@ dvorak-bay Filipino (Dvorak Baybayin) - bik - ceb - fil - hil - ilo - pam - pag - phi - tgl - war + + bik + ceb + fil + hil + ilo + pam + pag + phi + tgl + war + @@ -6134,7 +6327,9 @@ md md Moldavian - rum + + rum + @@ -6142,7 +6337,9 @@ gag gag Moldavian (Gagauz) - gag + + gag + @@ -6286,7 +6483,7 @@ grp:rctrl_rshift_toggle Right Ctrl+Right Shift - + + + + @@ -6992,7 +7212,7 @@ + + + + @@ -7268,6 +7507,30 @@ + + + korean + Korean Hangul/Hanja keys + + + + + esperanto @@ -7317,4 +7580,4 @@ - + \ No newline at end of file diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/al b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/al similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/al rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/al diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/at b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/at similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/at rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/at diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/ba b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ba similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/ba rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ba diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/be b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/be similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/be rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/be diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/bg b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/bg similarity index 92% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/bg rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/bg index 2abc142..6ecee67 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/bg +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/bg @@ -190,7 +190,7 @@ xkb_symbols "bas_phonetic" { // This is an extended variant of the standard Latin QWERTY layout with // additional symbols in levels 3 and 4. -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "latin" { key {[ grave, asciitilde, U2248, U2245 ]}; @@ -250,63 +250,66 @@ xkb_symbols "latin" { key { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]}; }; -// --> OEystein Bech "DreymaR" Gadmar, 2012-01: Additions to xkb/symbols/bg +// --> OEystein Bech "DreymaR" Gadmar, 2016-04: Additions to xkb/symbols/bg // "Bulmak[eD]" (Phonetic Colemak variant for Bulgarian Cyrillic script) // 2006-01-01 Shai Coleman, http://colemak.com/ +// Bulmak: 2009-2016 Ivan "Ghoul" Haralamov, using transliteration and "common sense". // See the Colemak forum topic on Cmk[eD] locales: http://forum.colemak.com/viewtopic.php?id=1458 +// Also, the Colemak forum topic on Kyrillic layouts: http://forum.colemak.com/viewtopic.php?id=519 partial alphanumeric_keys xkb_symbols "colemak" { include "colemak(cmk_ed_symbols)" - name[Group1]= "Bulgarian (Colemak, phonetic)"; + name[Group1]= "Bulgarian (Colemak, phonetic S-Slavic)"; - key { [ Cyrillic_yu, Cyrillic_YU, dead_tilde, asciitilde ] }; // U0300 Comb. grave -// key { [ 1, exclam, U0301 ] }; // U0301 Comb. acute -// key { [ 2, at, U030B ] }; // U030B Comb. doubleacute + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, dead_tilde, asciitilde ] }; // Bulmak. (U0300 Comb. grave) +// key { [ 1, exclam, U0301 ] }; // (U0301 Comb. acute) +// key { [ 2, at, U030B ] }; // (U030B Comb. doubleacute) key { [ 3, numerosign, dead_horn, numbersign ] }; // key { [ 4, dollar, dead_currency, cent ] }; // key { [ 5, percent, EuroSign ] }; -// key { [ 6, asciicircum, U0306 ] }; // U0306 Comb. breve -// key { [ 7, ampersand, U0307 ] }; // U0307 Comb. dot above -// key { [ 8, asterisk, U0308 ] }; // U0308 Comb. diaeresis +// key { [ 6, asciicircum, U0306 ] }; // (U0306 Comb. breve) +// key { [ 7, ampersand, U0307 ] }; // (U0307 Comb. dot above) +// key { [ 8, asterisk, U0308 ] }; // (U0308 Comb. diaeresis) // key { [ 9, parenleft, dead_breve, guillemotleft ] }; // key { [ 0, parenright, dead_abovering, guillemotright ] }; - key { [ minus, underscore, endash, emdash ] }; -// key { [ Cyrillic_io, Cyrillic_IO, equal, plus ] }; // Cyrillic_io/IO + key { [ minus, underscore, endash, emdash ] }; // Added dashes +// key { [ Cyrillic_io, Cyrillic_IO, equal, plus ] }; // key { [ Cyrillic_ya, Cyrillic_YA, q, Q ] }; - key { [ Cyrillic_ve, Cyrillic_VE, w, W ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, w, W ] }; // Bulmak/Rulemak-2016 key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] }; key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; key { [ Cyrillic_u, Cyrillic_U, u, U ] }; - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, y, Y ] }; - key { [ semicolon, colon, Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, y, Y ] }; // Bulmak + key { [ semicolon, colon, Cyrillic_yeru, Cyrillic_YERU ] }; // Bulmak[eD]-2016 key { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] }; - key { [ backslash, bar, Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_yu, Cyrillic_YU, backslash, bar ] }; // Bulmak-2016 +// key { [ backslash, bar, Cyrillic_e, Cyrillic_E ] }; // Bulmak[eD]-2014 key { [ Cyrillic_a, Cyrillic_A, a, A ] }; key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; -// key { [ Cyrillic_che, Cyrillic_CHE, h, H ] }; // Ghen's Rulemak - key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; // Trad. Bulgarian +// key { [ Cyrillic_che, Cyrillic_CHE, h, H ] }; // Rulemak-2016 + key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; // Bulmak, Trad. Bulg. key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; key { [ Cyrillic_i, Cyrillic_I, i, I ] }; key { [ Cyrillic_o, Cyrillic_O, o, O ] }; - key { [ apostrophe, quotedbl, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ apostrophe, quotedbl, Cyrillic_e, Cyrillic_E ] }; // Bulmak[eD]-2016 key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; -// key { [ Cyrillic_ha, Cyrillic_HA, x, X ] }; // Ghen's Rulemak - key { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; // DreymaR +// key { [ Cyrillic_ha, Cyrillic_HA, x, X ] }; // Rulemak-2016 + key { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; // Bulmak-2016 key { [ Cyrillic_tse, Cyrillic_TSE, c, C ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE, v, V ] }; + key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; // Bulmak/Rulemak-2016 key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; @@ -314,12 +317,10 @@ xkb_symbols "colemak" { // key { [ period, colon, greater,greaterthanequal ] }; // key { [ slash, question ] }; -// NOTE: In Linux, CapsLock is tweaked in the Keyboard settings (for freedom of choice etc.) +// NOTE: In Linux, CapsLock is tweaked in the Keyboard settings (freedom of choice) // key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; -// key { [ U0301, asciitilde, grave ] }; // U0301 Comb. acute - key { [ U0300, dead_diaeresis, dead_acute, dead_grave ] }; // U0300 Comb. grave + key { [ U0300, dead_diaeresis, dead_acute, dead_grave ] }; // (U0300 Comb. grave) // key { [ space, space, space, nobreakspace ] }; -// key { [ Mode_switch, Multi_key ] }; include "level3(ralt_switch)" }; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/br b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/br similarity index 99% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/br rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/br index decaf2e..b42425a 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/br +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/br @@ -64,7 +64,7 @@ partial alphanumeric_keys xkb_symbols "thinkpad" { include "br(abnt2)" - name[Group1]="Portuguese (Brazil)"; + name[Group1]="Portuguese (Brazil, IBM/Lenovo ThinkPad)"; key { [ slash, question, degree, questiondown ] }; }; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/ca b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ca similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/ca rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ca diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/colemak b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak similarity index 89% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/colemak rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak index 40c823d..7d0e0ea 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/colemak +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak @@ -151,13 +151,10 @@ xkb_symbols "cmk_ed_letters" { key { [ m, M, multiply, downarrow ] }; // QWE/Cmk M // U0292/01B7 ezh/EZH -//// NOTE: Including the line(s) below will enable the Curl-Dvbg/Hm mod by Stevep99; see below. -// include "colemak(cmk-dvbg_ed)" -// include "colemak(cmk-hm_ed)" -//// NOTE: These are the lighter Curl-Dbg/Hk Colemak ergo mods, keeping V and M in place. - include "colemak(cmk-dbg_ed)" - include "colemak(cmk-hk_ed)" -// TODO: Move Curl to keyboard models instead?!? Modularity would be mostly restored, and locale compatibility. +//// NOTE: Activating the line below will "hard" enable the Curl-Dvbg/Hm mod by Stevep99; see below. +// include "colemak(cmk_dvbg-hm_ed)" +//// NOTE: This is my lighter Curl-Dbg/Hk Colemak ergo mod, keeping V and M in place. +// include "colemak(cmk_dbg-hk_ed)" }; hidden partial alphanumeric_keys @@ -227,20 +224,35 @@ xkb_symbols "cmk_ed_symbols" { // ***** DreymaR/Stevep99: Curl-DH ergonomic mods ***** // ****************************************************** -// This is the Colemak "Curl-D/H" ergo mods by colemak forum users stevep99 and myself. -// See http://colemakmods.github.io/mod-dh/ and http://forum.colemak.com/viewtopic.php?id=1942 -// 窶「 Stevep99's Dvbg left-hand mod gives the D a good bottom-row place () at the cost of V and B -// 窶「 DreymaR's Dbg left-hand variant is lighter and avoids moving V as D replaces B directly -// Both left-hand mods put the G back in its QWERTY place at the minor cost of the less frequent B. -// For the D(v)bg mod to work, an Angle mod (such as the pc105awide-sl model) is necessary! -// 窶「 Stevep99's Hm right-hand mod gives the H a good bottom-row position at the cost of M -// 窶「 DreymaR's Hk right-hand variant avoids moving the M, bringing the H to K instead -// The Dbg/Hk mods are only intended for normal-staggered keyboards; Dvbg/Hm should work on matrix boards too. -// The Hk/Hm switches will cause trouble with Cmk[eD] locales that remap H (and in rare cases, D/G w/ DBG). -// In the Hk/Hm mods, any H in symbols/locale 'cmk_ed_us' sections must change from to / +// Here are the Colemak "Curl-D/H" ergo mods by colemak forum users stevep99 and myself. +// See http://colemakmods.github.io/mod-dh/ and http://forum.colemak.com/viewtopic.php?id=1942 for more info. +// 窶「 Stevep99's Dvbg left-hand mod gives the D a good bottom-row place () at the cost of V and B. +// 窶「 DreymaR's Dbg left-hand variant is lighter and avoids separating V by replacing B with D directly. +// Both left-hand mods put the G back in its QWERTY place at the lesser cost of the less frequent B. +// For the D(v)bg mod to work as intended, an Angle mod (such as the pc105awide-sl model) is necessary! +// 窶「 Stevep99's Hm right-hand mod gives H a good bottom-row position at the cost of M. +// 窶「 DreymaR's Hk right-hand variant avoids moving M, swapping H and K instead. +// The Dbg/Hk mods are intended for normal-staggered keyboards; Dvbg/Hm works on matrix boards too. +// The Hk/Hm switches cause lv3-4 trouble with Cmk[eD] locales that remap H (and in rare cases, D(v)bg w/ D/G). +// In the Hk/Hm mods, any H in symbols/locale 'cmk_ed_us' sections must change from to /. +// NOTE: The Curl-DH mod are implemented both as US English layouts and as options (e.g., misc:cmk_curl_dbghk). hidden partial alphanumeric_keys -xkb_symbols "cmk-dvbg_ed" { +xkb_symbols "cmk_dvbg-hm_ed" { + // This is the Curl-DvbgHm ergo mod for Colemak, by stevep99. + include "colemak(cmk_dvbg_ed)" + include "colemak(cmk_hm_ed)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "cmk_dbg-hk_ed" { + // This is the Curl-DbgHk ergo mod for Colemak, by DreymaR, keeping V and M in place. + include "colemak(cmk_dbg_ed)" + include "colemak(cmk_hk_ed)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "cmk_dvbg_ed" { // This is the 'Dvbg' loop for the Colemak Curl-D/H ergo mod by stevep99. key { [ b, B, enfilledcircbullet, Greek_beta ] }; // QWE T Cmk G key { [ g, G, eng, ENG ] }; // QWE G Cmk D @@ -249,7 +261,7 @@ xkb_symbols "cmk-dvbg_ed" { }; hidden partial alphanumeric_keys -xkb_symbols "cmk-dbg_ed" { +xkb_symbols "cmk_dbg_ed" { // This is the 'Dbg' loop for the Colemak Curl-D/H ergo mod, leaving the V in place. key { [ b, B, enfilledcircbullet, Greek_beta ] }; // QWE T Cmk G key { [ g, G, eng, ENG ] }; // QWE G Cmk D @@ -257,7 +269,7 @@ xkb_symbols "cmk-dbg_ed" { }; hidden partial alphanumeric_keys -xkb_symbols "cmk-hm_ed" { +xkb_symbols "cmk_hm_ed" { // This is the 'Hm' switch for the Colemak Curl-D/H ergo mod by stevep99. // N isn't changed in this mod, but the Cmk[eD] arrow symbols are rearranged into a Vim-like line! key { [ m, M, multiply, leftarrow ] }; // QWE/Cmk H @@ -266,7 +278,7 @@ xkb_symbols "cmk-hm_ed" { }; hidden partial alphanumeric_keys -xkb_symbols "cmk-hk_ed" { +xkb_symbols "cmk_hk_ed" { // This is the 'Hk' switch for the Colemak Curl-D/H ergo mod, leaving the M in place. key { [ k, K, ccedilla, Ccedilla ] }; // QWE/Cmk H key { [ h, H, hstroke, Hstroke ] }; // QWE N Cmk K @@ -286,20 +298,32 @@ xkb_symbols "cmk-hk_ed" { partial alphanumeric_keys xkb_symbols "tarmak1_e" { include "colemak(cmk_ed)" - // To exclude the partial (F)EKNJ loop in this step, include its mask below - // Also, comment out the F-J line below + // To exclude the partial (F)EKNJ loop in this step, include its mask and comment out the F-J line below // (This would only be useful if you want to learn the LUI loop as a warmup; if so, comment out that too) //include "colemak(tarmak_mask_fekn_to_eknj)" include "colemak(tarmak_mask_dgt_to_gtf)" include "colemak(tarmak_mask_prs_to_rsd)" include "colemak(tarmak_mask_jyoc_to_yocp)" - // To include the standalone LUI loop in this step, comment out its mask below include "colemak(tarmak_mask_lui_to_uil)" key { [ j, J, U0283, U01A9 ] }; // Cmk F - stray J - // NOTE: Re-enforcing of the V and B keys as below is only necessary when running a DBG/DVBG mod (above) + name[Group1]= "English/Intl (Tarmak1_E - Colemak transitional)"; +}; + +// This is the first Tarmak step for those who want to learn the Curl-DbgHk mod; it includes the Curl-Hk mod. +// There is no step for the Curl-Hm mod, as it doesn't affect the first Tarmak step. It can be learnt independently. +partial alphanumeric_keys +xkb_symbols "tarmak1k_e" { + include "colemak(cmk_ed)" + include "colemak(tarmak_mask_dgt_to_gtf)" + include "colemak(tarmak_mask_prs_to_rsd)" + include "colemak(tarmak_mask_jyoc_to_yocp)" + include "colemak(tarmak_mask_lui_to_uil)" + include "colemak(cmk_hk_ed)" + key { [ j, J, U0283, U01A9 ] }; // Cmk F - stray J + // NOTE: Re-enforcing of the V and B keys as below is only necessary when running a DBG/DVBG mod (see above) key { [ v, V, division, Greek_gamma ] }; // QWE/Cmk V key { [ b, B, enfilledcircbullet, Greek_beta ] }; // QWE/Cmk B - name[Group1]= "English/Intl (Tarmak1_E - Colemak transitional)"; + name[Group1]= "English/Intl (Tarmak1k_E - Colemak transitional w/ Curl-Hk)"; }; // Tarmak symbols for xkb on X.Org Server 7.x @@ -310,15 +334,42 @@ xkb_symbols "tarmak2_et" { include "colemak(cmk_ed)" include "colemak(tarmak_mask_prs_to_rsd)" include "colemak(tarmak_mask_jyoc_to_yocp)" - // To include the standalone LUI loop in this step, comment out its mask below include "colemak(tarmak_mask_lui_to_uil)" key { [ j, J, U0283, U01A9 ] }; // Cmk D - stray J -//// NOTE: The below is for DBG/DVBG mods (VJ/JV on / respectively) -// key { [ v, V, division, Greek_gamma ] }; // QWE/Cmk V -// key { [ j, J, U0283, U01A9 ] }; // QWE/Cmk B - stray J name[Group1]= "English/Intl (Tarmak2_ET - Colemak transitional)"; }; +// The Tarmak2bk(ET) step moves the B>T>F keys to their Colemak-Curl(DbgHk) positions, leaving the J at QWERTY 'B'. +partial alphanumeric_keys +xkb_symbols "tarmak2bk_et" { + include "colemak(cmk_ed)" + include "colemak(tarmak_mask_prs_to_rsd)" + include "colemak(tarmak_mask_jyoc_to_yocp)" + include "colemak(tarmak_mask_lui_to_uil)" +//// NOTE: The below is for DBG/DVBG mods (VJ/JV on / respectively) +//// For the Curl-DbgHk mod, both sides are activated at this point forward. (Activate it normally for step 3窶4.) + include "colemak(cmk_dbg-hk_ed)" + key { [ v, V, division, Greek_gamma ] }; // QWE/Cmk V + key { [ j, J, U0283, U01A9 ] }; // QWE/Cmk B - stray J + name[Group1]= "English/Intl (Tarmak2bk_ET - Colemak transitional w/ Curl-DbgHk)"; +}; + +// The Tarmak2vm(ET) step moves the B>T>F keys to their Colemak-Curl(DvbgHm) positions, leaving the J at QWERTY 'B'. +partial alphanumeric_keys +xkb_symbols "tarmak2vm_et" { + include "colemak(cmk_ed)" + include "colemak(tarmak_mask_prs_to_rsd)" + include "colemak(tarmak_mask_jyoc_to_yocp)" + include "colemak(tarmak_mask_lui_to_uil)" +//// NOTE: The below is for DBG/DVBG mods (VJ/JV on / respectively) +//// For the Curl-DvbgHm mod, activating the right-hand HM switch is still optional. + include "colemak(cmk_dvbg_ed)" +// include "colemak(cmk_dvbg-hm_ed)" + key { [ j, J, U0283, U01A9 ] }; // QWE/Cmk V - stray J + key { [ v, V, division, Greek_gamma ] }; // QWE/Cmk B + name[Group1]= "English/Intl (Tarmak2vm_ET - Colemak transitional w/ Curl-DvbgHm)"; +}; + // Tarmak symbols for xkb on X.Org Server 7.x // See the first Tarmak layout above for more info. This is a QWERTY mask for one Tarmak step. // The Tarmak3(ETR) step moves the R>S>D keys to their Colemak positions, leaving the J at QWERTY 'R'. @@ -326,7 +377,7 @@ partial alphanumeric_keys xkb_symbols "tarmak3_etr" { include "colemak(cmk_ed)" include "colemak(tarmak_mask_jyoc_to_yocp)" - // To include the standalone LUI loop in this step, comment out its mask below + // To include the standalone LUI loop in this or any step, comment out its mask (below) include "colemak(tarmak_mask_lui_to_uil)" key { [ j, J, U0283, U01A9 ] }; // Cmk P - stray J name[Group1]= "English/Intl (Tarmak3_ETR - Colemak transitional)"; diff --git a/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak_eD_epo b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak_eD_epo new file mode 100644 index 0000000..963da9f --- /dev/null +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak_eD_epo @@ -0,0 +1,89 @@ +// $XKeyboardConfig$ + +// ***************************************************************************************** +// ****** ****** +// ***** Colemak layouts - adding locale variants in a consistent fashion ***** +// ***** by OEystein Bech "DreymaR" Gadmar, 2012- ***** +// ***** (copy this template to a new file then find/replace 'Esperanto'/'epo') ***** +// ***** ('' is usually the ISO-3166 two-letter country code) ***** +// ****** ****** +// ***************************************************************************************** + +// *********************************************** +// *** In the symbols file for Esperanto *** +// *** (its filename is 'epo') *** +// *********************************************** + +// --> OEystein Bech "DreymaR" Gadmar, 2014-01: Additions to xkb/symbols/epo +// Colemak[eD]: National/locale Colemak "edition DreymaR" variants for Esperanto. +// 2006-01-01 Shai Coleman, http://colemak.com/ +// See the Colemak forum topic on Cmk[eD] locales: http://forum.colemak.com/viewtopic.php?id=1458 + +// The 'keep local symbols' variant keeps the national symbol and special letter setup. +partial alphanumeric_keys +xkb_symbols "cmk_ed_ks" { + include "colemak(cmk_ed_letters)" + include "colemak(cmk_ed_symbols)" + include "level3(ralt_switch)" + include "epo(colemak)" // remaps only AltGr mappings for Colemak C/G/H/J/S/U + name[Group1]= "Esperanto (Colemak[eD], keep local symbols)"; +}; + +// The 'us' variant uses the US-type symbol key setup (recommended!) as it is nearly an intl. standard. +// For Esperanto, necessary local letters are added to designated flexible spots in the layout. +// For "writing" and "coding" subvariants, move the brackets between lv1-2 and lv3-4 as shown. +partial alphanumeric_keys +xkb_symbols "cmk_ed_us" { + include "colemak(cmk_ed_letters)" + include "colemak(cmk_ed_symbols)" + include "level3(ralt_switch)" + name[Group1]= "Esperanto (Colemak[eD], unified symbols)"; + +// NEEDED: ト案夏愼敍、ト・トエトオナ愬, ナャナュ +// Esperanto letter frequencies: The accented letters add up, so allegedly 6% for the above 6 letters together +// NOTE: Added dead_circumflex to both shifted and unshifted LBracket, so it's easy to use with shifted letters + +// key { [ bracketleft, braceleft, dead_circumflex, dead_circumflex ] }; +// key { [ bracketright, braceright, ubreve, Ubreve ] }; + key { [ dead_circumflex, dead_circumflex, bracketleft, braceleft ] }; // common accent + key { [ ubreve, Ubreve, bracketright, braceright ] }; // from + key { [ h, H, dstroke, Greek_alpha ] }; // keep ト/ホア +}; +// <-- DreymaR: Additions to xkb/symbols/epo + +// *********************************************** +// *** In the rules/evdev(+base).xml file *** +// *** Under the epo layout variantList *** +// *********************************************** + + + + cmk_ed_ks + Esperanto (Colemak[eD], keep local symbols) + + + + + cmk_ed_us + Esperanto (Colemak[eD], unified symbols) + + + +// *********************************************** +// *** In the rules/evdev(+base).lst file *** +// *** Under '! variant' (norm. epo) *** +// *********************************************** + + cmk_ed_ks epo: Esperanto (Colemak[eD], keep local symbols) + cmk_ed_us epo: Esperanto (Colemak[eD], unified symbols) + +// *********************************************** +// *** (In the main rules/evdev(+base) file *** +// *** no changes should be necessary.) *** +// *********************************************** + +// ***************************************************************************************** +// ****** ****** +// ***** END of DreymaR's Colemak additions (Cmk[eD], National var.) ***** +// ****** ****** +// ***************************************************************************************** diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/colemak_eD_template b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak_eD_template similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/colemak_eD_template rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/colemak_eD_template diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/cz b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/cz similarity index 69% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/cz rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/cz index da25b53..85284aa 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/cz +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/cz @@ -177,6 +177,76 @@ xkb_symbols "dvorak-ucw" { include "level3(ralt_switch)" }; +// phonetic layout for Russian letters on an CZ (QWERTY) keyboard +// originaly created by Pavel Sorejs + +partial alphanumeric_keys +xkb_symbols "rus" { + + include "cz(qwerty)" + name[Group1]= "Russian (Czech, phonetic)"; + + key { [ plus, ampersand, 1 , 1 ] }; + key { [ Cyrillic_hardsign, 2, 2 , 2 ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, 3 , 3 ] }; + key { [ Cyrillic_che, Cyrillic_CHE, 4 , 4 ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, 5 , 5 ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, 6 , 6 ] }; + key { [ quotedbl, 4, 7 , 7 ] }; + key { [ section, 5, 8 , 8 ] }; + key { [ dollar, 6, 9 , 9 ] }; + key { [ equal, 7, 0 , 0 ] }; + key { [ percent, 8 ] }; + key { [ apostrophe, 9 ] }; + + key { [ comma, question ] }; + key { [ period, exclam ] }; + key { [ minus, slash ] }; + + key { [ semicolon, colon ] }; + + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + + + key { [ numerosign, 1, q, Q ] }; + key { [ Cyrillic_yu, Cyrillic_YU, w, W ] }; + key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; + key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; + key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; + key { [ Cyrillic_u, Cyrillic_U, u, U ] }; + key { [ Cyrillic_i, Cyrillic_I, i, I ] }; + key { [ Cyrillic_o, Cyrillic_O, o, O ] }; + key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; + key { [ Cyrillic_e, Cyrillic_E, bracketleft, division ] }; + key { [ parenright, parenleft, bracketright, multiply ] }; + + key { [ Cyrillic_a, Cyrillic_A, a, A ] }; + key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; + key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; + key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; + key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] }; + key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; + key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, less, greater ] }; + + key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; + key { [ Cyrillic_ya, Cyrillic_YA, x, X ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, c, C ] }; + key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; + key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; + key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; + key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; + + key { [ backslash, brokenbar ] }; + + include "level3(ralt_switch)" +}; + // EXTRAS: partial alphanumeric_keys diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/de b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/de similarity index 85% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/de rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/de index fecb456..5252c8a 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/de +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/de @@ -43,6 +43,7 @@ xkb_symbols "basic" { key { [ comma, semicolon, periodcentered, multiply ] }; key { [ period, colon, U2026, division ] }; key { [ minus, underscore, endash, emdash ] }; + key { [ less, greater, bar, NoSymbol ] }; include "kpdl(comma)" @@ -338,7 +339,7 @@ xkb_symbols "neo_base" { // Alphanumeric-keys // =============== - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; // Tab as Multi_key (Compose) // -------------------------------------------------------------- @@ -366,7 +367,7 @@ xkb_symbols "neo_base" { // Top row // -------------------------------------------------------------- - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] }; key { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] }; key { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] }; @@ -381,12 +382,12 @@ xkb_symbols "neo_base" { key { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ dead_acute, dead_tilde, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] }; // Middle row // -------------------------------------------------------------- - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] }; key { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] }; key { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] }; @@ -411,12 +412,12 @@ xkb_symbols "neo_base" { key { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] }; key { [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] }; key { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; // Space key // -------------------------------------------------------------- @@ -472,8 +473,8 @@ xkb_symbols "neo" { include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" - include "level5(lsgt_switch)" - include "level5(ralt_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" }; // Copied from macintosh_vndr/de @@ -636,6 +637,40 @@ xkb_symbols "ru" { include "level3(ralt_switch)" }; +partial alphanumeric_keys +xkb_symbols "pl" { + + // Combined layout for entering both German and Polish symbols on a German physical + // keyboard. Based on German (eliminate dead keys) and Polish (basic). Polish diacritics + // on AltGr+"acelnosxz". EuroSign moved to AE04 (AltGr+dollar key) to avoid conflict + // with Polish eogonek. + // + // https://github.com/kontextify/xkeyboard-config + + include "latin(type4)" + + name[Group1]= "Polish (Germany, eliminate dead keys)"; + + include "de(nodeadkeys)" + key { [ 4, dollar, EuroSign, currency ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ f, F ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + partial alphanumeric_keys xkb_symbols "htcdream" { include "inet(htcdream)" @@ -753,11 +788,11 @@ partial alphanumeric_keys xkb_symbols "adnw_base" { include "de(neo_base)" - key.type[Group1] = "EIGHT_LEVEL"; + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; - key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; @@ -781,7 +816,7 @@ xkb_symbols "adnw_base" { key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; - key { [ odiaeresis, odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; @@ -800,8 +835,63 @@ xkb_symbols "adnw" { include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" - include "level5(lsgt_switch)" - include "level5(ralt_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" +}; + +partial alphanumeric_keys +xkb_symbols "koy_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "koy" { + + include "de(koy_base)" + + name[Group1]= "German (KOY)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch_lock)" + include "level5(ralt_switch_lock)" }; // --> OEystein Bech "DreymaR" Gadmar, 2012-01: Additions to xkb/symbols/de diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/dk b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/dk similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/dk rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/dk diff --git a/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/epo b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/epo new file mode 100644 index 0000000..1d40009 --- /dev/null +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/epo @@ -0,0 +1,150 @@ +// Esperanto keyboard maps -- "Ekverto" +// +// Ekverto A ("legacy") (2004-01-10) +// Chusslove Illich (トaslavo Iliト頴) +// +// Ekverto B ("basic") (2006-12-02) +// Benno Schulenberg (Beno Sト・ilenberト・) +// Chusslove Illich (トaslavo Iliト頴) + +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "us(basic)" + name[Group1]= "Esperanto"; + + key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ scircumflex, Scircumflex, q, Q ] }; + key { [ gcircumflex, Gcircumflex, w, W ] }; + key { [ ccircumflex, Ccircumflex, x, X ] }; + key { [ ubreve, Ubreve, y, Y ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] }; + key { [ hcircumflex, Hcircumflex, bracketright, braceright ] }; + + key { [ o, O, braceleft, braceleft ] }; + key { [ p, P, braceright, braceright ] }; + + key { [ a, A, leftsinglequotemark, NoSymbol ] }; + key { [ s, S, rightsinglequotemark, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + + key { [ n, N, endash, endash ] }; + key { [ m, M, emdash, emdash ] }; + + key.type[Group1] = "FOUR_LEVEL"; + + key { [ 5, percent, EuroSign, EuroSign ] }; + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "legacy" { + + name[Group1]= "Esperanto (displaced semicolon and quote, obsolete)"; + + key.type[Group1] = "FOUR_LEVEL"; + + key { [ grave, asciitilde, NoSymbol, NoSymbol ] }; + key { [ 1, exclam, NoSymbol, NoSymbol ] }; + key { [ 2, quotedbl, NoSymbol, NoSymbol ] }; + key { [ 3, numbersign, NoSymbol, NoSymbol ] }; + key { [ 4, dollar, NoSymbol, NoSymbol ] }; + key { [ 5, percent, NoSymbol, NoSymbol ] }; + key { [ 6, apostrophe, NoSymbol, NoSymbol ] }; + key { [ 7, ampersand, NoSymbol, NoSymbol ] }; + key { [ 8, asterisk, NoSymbol, NoSymbol ] }; + key { [ 9, parenleft, NoSymbol, NoSymbol ] }; + key { [ 0, parenright, NoSymbol, NoSymbol ] }; + key { [ minus, underscore, NoSymbol, NoSymbol ] }; + key { [ equal, plus, NoSymbol, NoSymbol ] }; + + key { [ comma, semicolon, NoSymbol, NoSymbol ] }; + key { [ period, colon, NoSymbol, NoSymbol ] }; + key { [ slash, question, NoSymbol, NoSymbol ] }; + + key { [ bracketleft, braceleft, NoSymbol, NoSymbol ] }; + key { [ bracketright, braceright, NoSymbol, NoSymbol ] }; + + key { [ backslash, bar, NoSymbol, NoSymbol ] }; + key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ scircumflex, Scircumflex, at, NoSymbol ] }; + key { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, emdash, NoSymbol ] }; + key { [ t, T, endash, NoSymbol ] }; + key { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ a, A, less, NoSymbol ] }; + key { [ s, S, greater, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + key { [ g, G, NoSymbol, NoSymbol ] }; + key { [ h, H, NoSymbol, NoSymbol ] }; + key { [ j, J, NoSymbol, NoSymbol ] }; + key { [ k, K, NoSymbol, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol ] }; + key { [ ubreve, Ubreve, NoSymbol, NoSymbol ] }; + key { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] }; + + key { [ z, Z, leftsinglequotemark, NoSymbol ] }; + key { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol ] }; + key { [ b, B, NoSymbol, NoSymbol ] }; + key { [ n, N, NoSymbol, NoSymbol ] }; + key { [ m, M, NoSymbol, NoSymbol ] }; + + include "level3(ralt_switch)" +}; + +// Add the Esperanto supersigned letters to their related keys on a Qwerty keyboard. +// This is a generic "component" that is not used by the other layouts in this file, +// but is meant to be applied to any Qwerty layout. If you have any questions, ask +// J. Pablo Fernテ。ndez . +partial +xkb_symbols "qwerty" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; + +// Add the Esperanto supersigned letters to their related keys in a +// Dvorak layout. Similar comment as above applies. +partial +xkb_symbols "dvorak" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; + +// Add the Esperanto supersigned letters to their related keys in a +// Colemak layout. Similar comment as above applies. +partial +xkb_symbols "colemak" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; +}; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/es b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/es similarity index 98% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/es rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/es index c703f69..f32e464 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/es +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/es @@ -86,8 +86,8 @@ xkb_symbols "dvorak" { key {[ apostrophe, question, dead_macron, dead_ogonek ]}; key {[ exclamdown, questiondown, dead_breve, dead_abovedot ]}; - key {[ period, colon, less ]}; - key {[ comma, semicolon, greater ]}; + key {[ period, colon, less, guillemotleft ]}; + key {[ comma, semicolon, greater, guillemotright ]}; key {[ ntilde, Ntilde, lstroke, Lstroke ]}; key {[ p, P, paragraph ]}; key {[ y, Y, yen ]}; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/extend b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/extend similarity index 92% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/extend rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/extend index 9bb2043..0ed5bc9 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/extend +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/extend @@ -8,11 +8,11 @@ // 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+ | MyCmp| WWW | Mail | App1 | App2 | +// | | Pause| Rew | Fwd | Eject| Refr | Bri- | Bri+ | Sleep| WWW | Mail | App1 | App2 | // | Caps | Play | Prev | Next | Stop | Mute | Vol- | Vol+ | Media| Home | Srch | File | Calc | // +======+======+======+======+======+======+======+======+======+======+======+======+======+ // |` 竄ャ竄ャ竄ャ |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= | -// | Del | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +// | Cust | 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 | @@ -21,28 +21,30 @@ // | ++++ | Alt | *WhDn| Shift| Ctrl | *MDn | PgDn | Left | Down | Right| Back | Menu | BrFav| // +------+------+------+------+------+------+------+------+------+------+------+------+------+ // |_ *** |Z 竄ャ竄ャ竄ャ |X === |C === |V === |B *** |K *** |M *** |, *** |. *** |/ 竄ャ竄ャ竄ャ |Spc 竄ャ |Entr竄ャ | -// | *MOn | Undo | Cut | Copy | Paste| *Bt1 | *Bt2 | *Bt3 | *MLe | *MRi | Multi| Enter| Break| +// | *MOn | Undo | Cut | Copy | Paste| *Bt1 | *Bt2 | *Bt3 | *MLe | *MRi | Multi| Enter| PrtSc| // +------+------+------+------+------+------+------+------+------+------+------+-------------+ // Legend: # Movement; + Modifiers; = GUI edit; * Mouse; <> MultiMedia; 竄ャ Various commands. // // KeyPad overlay with nav block to the left (lv7-8): // +------+------+------+------+------+------+------+------+------+------+------+------+------+ // |` 竄ャ竄ャ竄ャ |1 |2 |3 |4 ツ」 |5 竄ャ |6 |7 |8 |9 |0 |- |= | -// | Del | ! | @ | # | $ | % | ^ | KP_7 | KP_8 | KP_9 | KP_* | KP_- | KP_= | +// | Cust | ! | @ | # | $ | % | ^ | KP_7 | KP_8 | KP_9 | KP_* | KP_- | KP_= | // +------+------+------+------+------+------+------+------+------+------+------+------+------+ // |Tab |Q ### |W ### |F ### |P 竄ャ竄ャ竄ャ |G 竄ャ竄ャ竄ャ |J ### |L |U |Y |; |[ { |] } | // | | Home | Up | End | Del | Esc | PgUp | KP_4 | KP_5 | KP_6 | KP_+ | ( | ) | // +------+------+------+------+------+------+------+------+------+------+------+------+------+ // |Caps+ |A ### |R ### |S ### |T 竄ャ竄ャ竄ャ |D |H ### |N |E |I |O |' " |\ | | -// | ++++ | Left | Down | Right| Back | K_Bgn| PgDn | KP_1 | KP_2 | KP_3 | K_Ent| ' | \ | +// | ++++ | Left | Down | Right| Back | K_Lck| PgDn | KP_1 | KP_2 | KP_3 | K_Ent| ' | \ | // +------+------+------+------+------+------+------+------+------+------+------+------+------+ -// |_ *** |Z 竄ャ竄ャ竄ャ |X === |C === |V === |B *** |K |M |, ; |. : |/ |Spc |Entr | -// | *MOn | Undo | Cut | Copy | Paste| *Bt1 | K_Lck| KP_0 | , | KP_. | KP_/ | Spc | K_Ent| +// |_ *** |Z 竄ャ竄ャ竄ャ |X === |C === |V === |B *** |K ; |M |, |. |/ |Spc |Entr | +// | *MOn | Undo | Cut | Copy | Paste| *Bt1 | , | KP_0 | KP_0 | KP_. | KP_/ | Spc | K_Ent| // +------+------+------+------+------+------+------+------+------+------+------+------+------+ // // NOTE: A lv7 (Level5+Level3) modifier might be necessary to use the KeyPad level sensibly // One idea is to use AltGr+Caps as a lv7_lock (Caps+AltGr is already lv7_switch) -// NOTE: If a hex pad is needed, the lv7+KBHDJG -> ABCDEF mappings are one solution +// NOTE: If a hex pad is needed, the lv7(8?)+KBHDJG -> ABCDEF mappings are one solution +// NOTE: There's a KP key named KP_BEGIN; it seems like a hack? Ignored for now. +// NOTE: I've duplicated KP_0 to make it easy to hit. Maybe KP_Enter should've been helped too...? default partial xkb_symbols "basic" { @@ -57,20 +59,24 @@ xkb_symbols "lv5" { // key.type[group1]="EIGHT_LEVEL"; // (Caps)Lock state not used on these keys key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; // Lock affects lv1/5 but not lv3/7 - a bit inflexible but OK I guess -// TODO: If I set lv5-6 of Esc to Caps_Lock, lv1-4 are CapsLock PLUS Esc! Try a LockMods action? -// key { [ Escape , Escape , Escape , Escape , Caps_Lock , Caps_Lock ] }; - key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , - Caps_Lock , Caps_Lock , // CapsLock - Caps_Lock , Caps_Lock ], // CapsLock +// NOTE: Earlier, if I set lv5-6 of Esc to Caps_Lock, lv1-4 would be CapsLock PLUS Esc! Is this fixed now? +// If not, I might not have to send the Caps_Lock keysymbol as long as the LockMods action is there? + key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , + Caps_Lock , Caps_Lock , // Caps_Lock + Caps_Lock , Caps_Lock ], // Caps_Lock actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), - SetMods(mods=Lock) , SetMods(mods=Lock) , // Lock mod for - NoAction() , NoAction() ] - }; // ScrollLock + LockMods(mods=Lock) , LockMods(mods=Lock) , // Lock mod for + LockMods(mods=Lock) , LockMods(mods=Lock) ] // Lock mod for + }; // ; Esc (one could also use aka ScrollLock for Caps, if desired) - key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioPlay , XF86AudioPause ], +// NOTE: Many are used to Ctrl+Alt+ being XF86_Switch_VT_## keys! This is lost with Extend. Use Ext+AltGr+ now. + key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , + XF86AudioPlay , XF86AudioPause , // Play/Pause + XF86_Switch_VT_1 , XF86_Switch_VT_1 ], // Virtual Terminal +// key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioPlay , XF86AudioPause ], actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) - NoAction() , NoAction() ] + SwitchScreen(screen=1,!same) , SwitchScreen(screen=1,!same) ] }; // F01 key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioPrev , XF86AudioRewind ], actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), @@ -87,9 +93,9 @@ xkb_symbols "lv5" { Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) NoAction() , NoAction() ] }; // F04 - key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioMute , XF86Sleep ], + key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioMute , XF86Reload ], actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), - Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) + Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) NoAction() , NoAction() ] }; // F05 key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioLowerVolume , XF86MonBrightnessDown ], @@ -102,10 +108,10 @@ xkb_symbols "lv5" { Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) NoAction() , NoAction() ] }; // F07 - key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioMedia , XF86MyComputer ], + key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86AudioMedia , XF86Sleep ], actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), - Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) - NoAction() , NoAction() ] // What about XF86Terminal? Not in evdev + Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) + NoAction() , NoAction() ] }; // F08 key { symbols[Group1]=[ NoSymbol,NoSymbol,NoSymbol,NoSymbol, XF86HomePage , XF86WWW ], actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), @@ -206,6 +212,7 @@ xkb_symbols "lv5" { Redirect(key=,clearmods=LevelFive), Redirect(key=,clearmods=LevelFive), NoAction() , NoAction() ] }; // = + +// key {}; // BackSpace key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , Escape , Escape , // Esc @@ -292,10 +299,10 @@ xkb_symbols "lv5" { NoAction() , NoAction() ] }; // ] } key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , - XF86Favorites , XF86Favorites , // BrFav + XF86Favorites , XF86MyComputer , // BrFav backslash , bar ], // BKSL actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), - Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // (窶。窶。) + Redirect(key=,clearmods=all), Redirect(key=,clearmods=all), // /(窶。窶。) NoAction() , NoAction() ] }; // \ | @@ -329,7 +336,7 @@ xkb_symbols "lv5" { }; // Cmk T key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , Pointer_Down , Pointer_Down , // PtrDn(窶窶) - KP_Begin , KP_Begin ], // KP_Begin?!? + Num_Lock , Num_Lock ], // NumLock actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), MovePtr(x=+0,y=+8) , MovePtr(x=+0,y=+8) , // PtrDn(窶窶) NoAction() , NoAction() ] @@ -423,7 +430,7 @@ xkb_symbols "lv5" { }; // B key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , Pointer_Button2 , Pointer_Button2 , // MBt(窶窶) - Num_Lock , Num_Lock ], // NumLock + comma , semicolon ], // , ; actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), PtrBtn(button=2) , PtrBtn(button=2) , // PtrMBt NoAction() , NoAction() ] @@ -437,7 +444,7 @@ xkb_symbols "lv5" { }; // M key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , Pointer_Left , Pointer_Left , // PtrLe(窶窶) - comma , semicolon ], // , ; + KP_0 , U21D5 ], // KP_0 竊 竍 actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), MovePtr(x=-8,y=+0) , MovePtr(x=-8,y=+0) , // PtrLe(窶窶) NoAction() , NoAction() ] @@ -454,16 +461,18 @@ xkb_symbols "lv5" { KP_Divide , KP_Divide ] // KP_/ }; // / ? - key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , +// NOTE: The Space key should preserve the Shift state; it's special because both levels have the same symbol. +// One might use a key type that has the 'preserve[Shift] = Shift;' property. However, I fix it directly. + key { symbols[Group1]=[ NoSymbol , NoSymbol , NoSymbol , NoSymbol , Return , Return , // Enter space , nobreakspace ], // Space - actions[Group1]=[NoAction(),NoAction(),NoAction(),NoAction(), + actions[Group1]=[NoAction(),SetMods(modifiers=Shift),NoAction(),SetMods(modifiers=Shift), Redirect(key=) , Redirect(key=) , // NoAction() , NoAction() ] }; // // key { [ NoSymbol,NoSymbol,NoSymbol,NoSymbol ] }; // CapsLock -// ツァツァ: XCV Cut/Copy/Paste seem OK in Firefox but not Gedit!? This is a GTK weakness +// ツァツァ: XCV Cut/Copy/Paste seem OK in Firefox but not Gedit!? This is a GTK weakness I think. // Some bind fiddling in ~/.gtkrc-2.0 and ~/.config/gtk-3.0/gtk.css can get this working // 窶窶: 'Pointer_'mousing needs enabling! Real KP_ keys work but not the Pointer_ mousing symbols // (In the Settings GUI there's a Shift+NumLock option for this, but Pointer_EnableKeys works too) @@ -502,6 +511,7 @@ xkb_symbols "lv5" { // But: The 4 groups are really meant for different locales/scripts/layouts that some people (me!) need. +// ========================================================================================================== //// An attempt at using the Overlay functionality for modifier Extend mappings. //// If the Extend key could both switch lv5 AND Overlay1, maybe the A/S/T modifiers would work? //// The idea would be to map only these as overlay keys, and the rest as lv5+ @@ -597,4 +607,3 @@ xkb_symbols "lv5" { // key { overlay1 = }; //Entr // key { [ Overlay1_Enable ], overlay1 = }; //}; - diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/fi b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/fi similarity index 73% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/fi rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/fi index b80377d..66e7f01 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/fi +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/fi @@ -79,7 +79,6 @@ xkb_symbols "kotoistus" { include "nbsp(level3)" include "kpdl(comma)" include "level3(ralt_switch)" - include "compose(rwin)" }; partial alphanumeric_keys @@ -98,7 +97,7 @@ xkb_symbols "classic" { name[Group1]="Finnish (classic)"; }; -partial alphanumeric_keys hidden +hidden partial alphanumeric_keys xkb_symbols "fi" { // Classic Finnish keyboard layout with dead keys @@ -212,6 +211,76 @@ xkb_symbols "sun_type6" { include "sun_vndr/fi(sun_type6)" }; +partial +xkb_symbols "das" { + + // This is DAS layout for typing Finnish. It is originally designed by + // Cristian Seres (cseres at iki.fi). + // More information about DAS: http://c.seres.fi/DAS_en.html + // This xkeyboard layout is originally made by Joel Lehtonen, + // (joel.lehtonen at iki.fi) on 2008-01-14. He released it under Public + // domain. + + name[Group1]="Finnish (DAS)"; + + key { [ 1, exclam, section ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, at, sterling ] }; + key { [ 4, EuroSign, dollar ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, ampersand ] }; + key { [ 7, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, braceright, degree ] }; + key { [ plus, question, currency ] }; + key { [ equal, numbersign ] }; + + key { [ p, P, Greek_pi ] }; + key { [ h, H ] }; + key { [ r, R, dead_circumflex ] }; + key { [ k, K, dead_caron ] }; + key { [ less, greater ] }; + key { [ apostrophe, bar ] }; + key { [ w, W ] }; + key { [ u, U ] }; + key { [ y, Y ] }; + key { [ b, B ] }; + key { [ q, Q ] }; + key { [ z, Z, zcaron, Zcaron ] }; + + key { [ s, S, scaron, Scaron ] }; + key { [ l, L, dead_acute ] }; + key { [ n, N, dead_grave ] }; + key { [ t, T, dead_diaeresis ] }; + key { [ v, V ] }; + key { [ g, G ] }; + key { [ a, A ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ e, E ] }; + key { [ c, C ] }; + key { [ backslash, dead_tilde ] }; + + key { [ asterisk, slash ] }; + key { [ f, F ] }; + key { [ x, X ] }; + key { [ d, D ] }; + key { [ m, M, mu ] }; + key { [ j, J ] }; + key { [ aring, Aring ] }; + key { [ odiaeresis, Odiaeresis, oe, OE ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore, U2013, dead_macron ] }; + key { [ space, space, space, nobreakspace ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" + include "compose(rwin)" +}; + // --> OEystein Bech "DreymaR" Gadmar, 2012-01: Additions to xkb/symbols/fi // Colemak[eD]: National/locale Colemak "edition DreymaR" variants for Finnish. // 2006-01-01 Shai Coleman, http://colemak.com/ diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/fr b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/fr similarity index 95% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/fr rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/fr index dd0129a..2128d19 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/fr +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/fr @@ -127,7 +127,7 @@ xkb_symbols "oss" { include "latin" include "level3(ralt_switch)" - include "nbsp(level4nl)" + include "nbsp(level4n)" include "keypad(oss)" name[Group1]="French (alternative)"; @@ -986,6 +986,92 @@ partial alphanumeric_keys include "sun_vndr/fr(sun_type6)" }; + +partial alphanumeric_keys +xkb_symbols "azerty" { + name[Group1]="French (Azerty)"; + + include "level3(ralt_switch)" + +// French AZERTY-Keyboard layout +// Author : 2015, Mats Blakstad +// Based on the layout at https://en.wikipedia.org/wiki/File:KB_France.svg + +// LAYOUT OVERVIEW +// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ +// | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ツー | + | <-- | +// | ツイ | & | テゥ ~| " #| ' {| ( [| - || ティ `| _ \| テァ ^| テ @| ) ]| = }| | +// ======================================================================== +// | |<- | A | Z | E | R | T | Y | U | I | O | P | ツィ | $ | , | +// | ->| | a | z | e 竄ャ| r | t | y | u | i | o | p | ^ | ツ」 ツ、| <-' | +// ===================================================================ツャ | +// | | Q | S | D | F | G | H | J | K | L | M | % | ツオ | | +// | MAJ | q | s | d | f | g | h | j | k | l | m | テケ | * | | +// ======================================================================== +// | ^ | > | W | X | C | V | B | N | ? | . | / | ツァ | ^ | +// | | | < | w | x | c | v | b | n | , | ; | : | ! | | | +// ======================================================================== +// | | | | | | | | | +// | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | +// ツッツッツッツッツッツッ ツッツッツッツッツッツッ ツッツッツッツッツッツッ ツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッツッ ツッツッツッツッツッツッツッ ツッツッツッツッツッツッ ツッツッツッツッツッ ツッツッツッツッツッツッ + + // First row + key { [ twosuperior ] }; + key { [ ampersand, 1 ] }; + key { [ eacute, 2, asciitilde ] }; + key { [ quotedbl, 3, numbersign ] }; + key { [ apostrophe, 4, braceleft ] }; + key { [ parenleft, 5, bracketleft ] }; + key { [ minus, 6, bar ] }; + key { [ egrave, 7, grave ] }; + key { [ underscore, 8, backslash ] }; + key { [ ccedilla, 9, asciicircum ] }; + key { [ agrave, 0, at ] }; + key { [ parenright, degree, bracketright ] }; + key { [ equal, plus, braceright ] }; + + // Second row + key { [ a, A ] }; + key { [ z, Z ] }; + key { [ e, E, EuroSign ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ dead_circumflex,dead_diaeresis ] }; + key { [ dollar, sterling, currency ] }; + + // Third row + key { [ q, Q ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ m, M ] }; + key { [ ugrave, percent ] }; + key { [ asterisk, mu ] }; + + // Fourth row + key { [ less, greater ] }; + key { [ w, W ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ comma, question ] }; + key { [ semicolon, period ] }; + key { [ colon, slash ] }; + key { [ exclam, section ] }; +}; + // --> OEystein Bech "DreymaR" Gadmar, 2012-01: Additions to xkb/symbols/fr // Colemak[eD]: National/locale Colemak "edition DreymaR" variants for French. // 2006-01-01 Shai Coleman, http://colemak.com/ diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/gb b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/gb similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/gb rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/gb diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/gr b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/gr similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/gr rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/gr diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/group b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/group similarity index 98% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/group rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/group index d33bfde..309cd88 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/group +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/group @@ -322,12 +322,12 @@ partial modifier_keys xkb_symbols "ctrls_toggle" { virtual_modifiers LControl, RControl; key { - type[Group1]="PC_RCONTROL_LEVEL2", + type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= LControl }; key { - type[Group1]="PC_LCONTROL_LEVEL2", + type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= RControl }; @@ -410,7 +410,7 @@ xkb_symbols "alt_caps_toggle" { }; }; -partial hidden modifier_keys +hidden partial modifier_keys xkb_symbols "olpc" { key { [ ISO_Next_Group, ISO_Prev_Group ] }; }; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/hr b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/hr similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/hr rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/hr diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/hu b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/hu similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/hu rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/hu diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/il b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/il similarity index 99% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/il rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/il index 2043e98..72afc15 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/il +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/il @@ -205,7 +205,7 @@ xkb_symbols "biblical" { key { [ 2, U0599, VoidSymbol, at ] }; key { [ 3, U0592, VoidSymbol, numbersign ] }; key { [ 4, U05AF, NewSheqelSign, dollar ] }; - key { [ 5, VoidSymbol, U200D, percent ] }; + key { [ 5, U05BA, U200D, percent ] }; key { [ 6, U05B9, U200C, asciicircum ] }; key { [ 7, U05BF, U034F, ampersand ] }; key { [ 8, U05C2, U200E, asterisk ] }; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/is b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/is similarity index 52% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/is rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/is index f57dba4..22e2649 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/is +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/is @@ -23,6 +23,7 @@ xkb_symbols "basic" { key { [ eth, ETH, dead_diaeresis, dead_abovering ] }; key { [apostrophe, question, asciitilde, dead_macron ] }; + key { [ d, D, U201e, U201c ] }; key { [ ae, AE, asciicircum, dead_doubleacute ] }; key { [dead_acute, dead_acute, dead_circumflex, dead_caron ] }; key { [dead_abovering, dead_diaeresis, notsign, hyphen ] }; @@ -87,6 +88,12 @@ xkb_symbols "nodeadkeys" { // * 2006-01-14: // Revised the comments in the file // +// * 2013-05-30: +// Renamed the old keyboard layout and created a new one that conforms with the later +// model Apple Laptop and Aluminium USB/Bluetooth keyboards (A1243/A1255 and later) +// that are used with the more recent versions of OS X. Also replaced some Unicode +// codes with proper symbol names. +// // = NOTES // * 20 characters in this keymap have no named character defined in // include/keysymdef.h and as a result their Unicode code points in @@ -106,68 +113,134 @@ xkb_symbols "nodeadkeys" { // you're able to get it running with such a keyboard // Copied from macintosh_vndr/is + +xkb_symbols "mac_legacy" { + name[Group1]= "Icelandic (Macintosh, legacy)"; + + //-- Row 5 (E) --// + key { [ sterling, section, UF8FF, apostrophe ] }; + key { [ 1, exclam, exclamdown, VoidSymbol ] }; + key { [ 2, quotedbl, at, VoidSymbol ] }; + key { [ 3, numbersign, U2122, sterling ] }; + key { [ 4, dollar, U00A2, EuroSign ] }; + key { [ 5, percent, U2030, infinity ] }; + key { [ 6, ampersand, asciicircum, U2044 ] }; + key { [ 7, slash, backslash, U00F7 ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, U2260, U2248 ] }; + key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [ minus, underscore, endash, emdash ] }; + + + //-- Row 4 (D) --// + key { [ q, Q, paragraph, VoidSymbol ] }; + key { [ w, W, U2211, VoidSymbol ] }; + key { [ e, E, dead_grave, VoidSymbol ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ t, T, degree, VoidSymbol ] }; + key { [ y, Y, yen, VoidSymbol ] }; + key { [ u, U, dead_diaeresis, VoidSymbol ] }; + key { [ i, I, U0131, U00AA ] }; + key { [ o, O, dead_circumflex, U00BA ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ eth, Eth, U201e, U201c ] }; + key { [ apostrophe, question, questiondown, U00B7 ] }; + + + //-- Row 3 (C) --// + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, abovedot ] }; + key { [ d, D, U2202, U2DA ] }; + key { [ f, F, U192, macron ] }; + key { [ g, G, copyright, breve ] }; + key { [ h, H, bar, VoidSymbol ] }; + key { [ j, J, U2206, U2dd ] }; + key { [ k, K, U00AC, VoidSymbol ] }; + key { [ l, L, U2026, caron ] }; + key { [ ae, AE, oe, OE ] }; + key { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; + key { [ plus, asterisk, U2022, plusminus ] }; + + + //-- Row 2 (B) --// + key { [ less, greater, section, UF8FF ] }; + key { [ z, Z, U3A9, VoidSymbol ] }; + key { [ x, X, asciitilde, VoidSymbol ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, U221A, U25CA ] }; + key { [ b, B, U222B, VoidSymbol ] }; + key { [ n, N, dead_tilde, VoidSymbol ] }; + key { [ m, M, U00B5, VoidSymbol ] }; + key { [ comma, semicolon, lessthanequal, guillemotleft ] }; + key { [ period, colon, greaterthanequal, guillemotright ] }; + key { [ thorn, Thorn, U2019, U201d ] }; + + include "level3(ralt_switch)" +}; + partial alphanumeric_keys xkb_symbols "mac" { name[Group1]= "Icelandic (Macintosh)"; - //-- Row 5 (E) --// - key { [ sterling, section, UF8FF, apostrophe ] }; - key { [ 1, exclam, exclamdown, VoidSymbol ] }; - key { [ 2, quotedbl, at, VoidSymbol ] }; - key { [ 3, numbersign, U2122, sterling ] }; - key { [ 4, dollar, U00A2, EuroSign ] }; - key { [ 5, percent, U2030, infinity ] }; - key { [ 6, ampersand, asciicircum, U2044 ] }; - key { [ 7, slash, backslash, U00F7 ] }; - key { [ 8, parenleft, bracketleft, braceleft ] }; - key { [ 9, parenright, bracketright, braceright ] }; - key { [ 0, equal, U2260, U2248 ] }; - key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; - key { [ minus, underscore, endash, emdash ] }; + //-- Row 5 (E) --// + key { [ less, greater, bar, UF8FF ] }; + key { [ 1, exclam, exclamdown, VoidSymbol ] }; + key { [ 2, quotedbl, at, VoidSymbol ] }; + key { [ 3, numbersign, trademark, sterling ] }; + key { [ 4, dollar, cent, EuroSign ] }; + key { [ 5, percent, U2030, infinity ] }; + key { [ 6, ampersand, asciicircum, U2044 ] }; + key { [ 7, slash, braceleft, division ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, braceright, approxeq ] }; + key { [ odiaeresis, Odiaeresis, backslash, U2260 ] }; + key { [ minus, underscore, endash, emdash ] }; - //-- Row 4 (D) --// - key { [ q, Q, paragraph, VoidSymbol ] }; - key { [ w, W, U2211, VoidSymbol ] }; - key { [ e, E, dead_grave, VoidSymbol ] }; - key { [ r, R, registered, VoidSymbol ] }; - key { [ t, T, degree, VoidSymbol ] }; - key { [ y, Y, yen, VoidSymbol ] }; - key { [ u, U, dead_diaeresis, VoidSymbol ] }; - key { [ i, I, U0131, U00AA ] }; - key { [ o, O, dead_circumflex,U00BA ] }; - key { [ p, P, Greek_pi, Greek_PI ] }; - key { [ eth, Eth, U201e, U201c ] }; - key { [ apostrophe, question, questiondown, U00B7 ] }; + //-- Row 4 (D) --// + key { [ q, Q, U0040, paragraph ] }; + key { [ w, W, U2211, U00A7 ] }; + key { [ e, E, U20AC, U00BF ] }; + key { [ r, R, registered, VoidSymbol ] }; + key { [ t, T, degree, U2022 ] }; + key { [ y, Y, yen, VoidSymbol ] }; + key { [ u, U, dead_diaeresis, VoidSymbol ] }; + key { [ i, I, idotless, ordfeminine ] }; + key { [ o, O, dead_circumflex, U00BA ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ eth, Eth, doublelowquotemark, leftdoublequotemark ] }; + key { [ apostrophe, question, asciitilde, periodcentered ] }; - //-- Row 3 (C) --// - key { [ a, A, aring, Aring ] }; - key { [ s, S, ssharp, abovedot ] }; - key { [ d, D, U2202, U2DA ] }; - key { [ f, F, U192, macron ] }; - key { [ g, G, copyright, breve ] }; - key { [ h, H, bar, VoidSymbol ] }; - key { [ j, J, U2206, U2dd ] }; - key { [ k, K, U00AC, VoidSymbol ] }; - key { [ l, L, U2026, caron ] }; - key { [ ae, AE, oe, OE ] }; - key { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; - key { [ plus, asterisk, U2022, plusminus ] }; + //-- Row 3 (C) --// + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, abovedot ] }; + key { [ d, D, partialderivative, U02DA ] }; + key { [ f, F, function, macron ] }; + key { [ g, G, copyright, breve ] }; + key { [ h, H, bar, U00B8 ] }; + key { [ j, J, U2206, doubleacute ] }; + key { [ k, K, notsign, U2DB ] }; + key { [ l, L, ellipsis, caron ] }; + key { [ ae, AE, oe, OE ] }; + key { [ dead_acute, dead_acute, asciicircum, leftsinglequotemark ] }; + key { [ plus, asterisk, grave, plusminus ] }; - //-- Row 2 (B) --// - key { [ less, greater, section, UF8FF ] }; - key { [ z, Z, U3A9, VoidSymbol ] }; - key { [ x, X, asciitilde, VoidSymbol ] }; - key { [ c, C, ccedilla, Ccedilla ] }; - key { [ v, V, U221A, U25CA ] }; - key { [ b, B, U222B, VoidSymbol ] }; - key { [ n, N, dead_tilde, VoidSymbol ] }; - key { [ m, M, U00B5, VoidSymbol ] }; - key { [ comma, semicolon, lessthanequal, guillemotleft ] }; - key { [ period, colon, greaterthanequal,guillemotright ] }; - key { [ thorn, Thorn, U2019, U201d ] }; + //-- Row 2 (B) --// + key { [ degree, dead_diaeresis, oslash, Ooblique ] }; + key { [ z, Z, Greek_OMEGA, VoidSymbol ] }; + key { [ x, X, asciitilde, VoidSymbol ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, radical, U25CA ] }; + key { [ b, B, integral, VoidSymbol ] }; + key { [ n, N, dead_tilde, VoidSymbol ] }; + key { [ m, M, mu, VoidSymbol ] }; + key { [ comma, semicolon, lessthanequal, guillemotleft ] }; + key { [ period, colon, greaterthanequal, guillemotright ] }; + key { [ thorn, Thorn, rightsinglequotemark, rightdoublequotemark ] }; include "level3(ralt_switch)" }; @@ -200,6 +273,7 @@ xkb_symbols "dvorak" { name[Group1]= "Icelandic (Dvorak)"; key { [ slash, question, U201e, U201c ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ d, D, eth, ETH ] }; key { [ s, S, ae, AE ] }; key { [ minus, underscore, endash, emdash ] }; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/it b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/it similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/it rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/it diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/latam b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/latam similarity index 54% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/latam rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/latam index 5f6b5ce..3ff24cd 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/latam +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/latam @@ -67,6 +67,67 @@ xkb_symbols "deadtilde" { key { [ plus, asterisk, dead_tilde, dead_macron ] }; }; +// Latin American Spanish Dvorak mapping (note R-H exchange) +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]="Spanish (Latin American, Dvorak)"; + + key {[ bar, degree, notsign, notsign ]}; + key {[ 1, exclam, bar, exclamdown ]}; + key {[ 2, quotedbl, at, oneeighth ]}; + key {[ 3, numbersign, periodcentered, sterling ]}; + key {[ 4, dollar, asciitilde, dollar ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, ampersand, notsign, fiveeighths ]}; + key {[ 7, slash, braceleft, seveneighths ]}; + key {[ 8, parenleft, bracketleft, trademark ]}; + key {[ 9, parenright, bracketright, plusminus ]}; + key {[ 0, equal, braceright, degree ]}; + key {[ apostrophe, question, backslash, questiondown ]}; + key {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]}; + + key {[ period, colon, at ]}; + key {[ comma, semicolon ]}; + key {[ ntilde, Ntilde, lstroke, Lstroke ]}; + key {[ p, P, paragraph ]}; + key {[ y, Y, yen ]}; + key {[ f, F, tslash, Tslash ]}; + key {[ g, G, dstroke, Dstroke ]}; + key {[ c, C, cent, copyright ]}; + key {[ h, H, hstroke, Hstroke ]}; + key {[ l, L, sterling ]}; + key {[ dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ]}; + key {[ plus, asterisk, asciitilde, dead_macron ]}; + + key {[ a, A, ae, AE ]}; + key {[ o, O, oslash, Oslash ]}; + key {[ e, E, EuroSign ]}; + key {[ u, U, aring, Aring ]}; + key {[ i, I, oe, OE ]}; + key {[ d, D, eth, ETH ]}; + key {[ r, R, registered, trademark ]}; + key {[ t, T, thorn, THORN ]}; + key {[ n, N, eng, ENG ]}; + key {[ s, S, ssharp, section ]}; + key {[ braceleft, bracketleft, dead_circumflex, braceleft ]}; + key {[ braceright, bracketright, dead_grave, braceright ]}; + + key {[ less, greater, guillemotleft, guillemotright ]}; + key {[ minus, underscore, hyphen, macron ]}; + key {[ q, Q, currency ]}; + key {[ j, J ]}; + key {[ k, K, kra ]}; + key {[ x, X, multiply, division ]}; + key {[ b, B ]}; + key {[ m, M, mu ]}; + key {[ w, W ]}; + key {[ v, V ]}; + key {[ z, Z ]}; + + include "level3(ralt_switch)" +}; + // --> OEystein Bech "DreymaR" Gadmar, 2012-01: Additions to xkb/symbols/latam // Colemak[eD]: National/locale Colemak "edition DreymaR" variants for Spanish (Latin American). // 2006-01-01 Shai Coleman, http://colemak.com/ diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/level5 b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/level5 similarity index 80% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/level5 rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/level5 index 89e548b..e3fcbaf 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/level5 +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/level5 @@ -142,7 +142,8 @@ xkb_symbols "rwin_switch_lock_cancel" { }; // --> OEystein Bech "DreymaR" Gadmar, 2011-05: Additions to xkb/symbols/level5 -// The CapsLock Level5 switches are useful for Extend overlay mappings using Caps as an Extend modifier +// The CapsLock Level5 switches are good for Extend overlay mappings using Caps as an Extend modifier +// The Left Ctrl Level5 switches are good for Extend overlay mappings if you're using Caps as Left Ctrl // See "DreymaR's Big Bag of Keyboard Tricks": http://forum.colemak.com/viewtopic.php?pid=9918 // The CapsLock key (while pressed) chooses the fifth shift level. @@ -166,7 +167,7 @@ xkb_symbols "caps_switch_lock" { }; }; -// CapsLock chooses 5th level, latches (acts as one-time lock) when pressed together with another 5th-level-chooser +// CapsLock chooses 5th level, latches (temp lock) when pressed with another 5th-level-chooser partial modifier_keys xkb_symbols "caps_switch_lock_cancel" { include "level5(lock)" @@ -176,4 +177,36 @@ xkb_symbols "caps_switch_lock_cancel" { ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; + +// The Left Ctrl key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "lctl_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// Left Ctrl chooses 5th level, locks when pressed together with another 5th-level-chooser +partial modifier_keys +xkb_symbols "lctl_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +// Left Ctrl chooses 5th level, latches (temp lock) when pressed with another 5th-level-chooser +partial modifier_keys +xkb_symbols "lctl_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; // <-- DreymaR: Additions to xkb/symbols/level5 diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/nl b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/nl similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/nl rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/nl diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/no b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/no similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/no rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/no diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/pl b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/pl similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/pl rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/pl diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/pt b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/pt similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/pt rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/pt diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/ro b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ro similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/ro rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ro diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/rs b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/rs similarity index 98% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/rs rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/rs index 32087b6..44f0e56 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/rs +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/rs @@ -45,7 +45,7 @@ xkb_symbols "yz" { key { [ Cyrillic_ze, Cyrillic_ZE, any, any ] }; // z }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "common" { // "Common" keys: keys that are the same // for both latin and cyrillic keyboards. @@ -73,7 +73,7 @@ xkb_symbols "common" { include "kpdl(comma)" }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "cyralpha" { key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; @@ -114,7 +114,7 @@ xkb_symbols "cyralpha" { }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "latalpha" { key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; @@ -127,7 +127,7 @@ xkb_symbols "latalpha" { key { [ zcaron, Zcaron, any, any ] }; // \ | }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "twoletter" { // Letters which are written in latin transcription with two characters. @@ -142,7 +142,7 @@ xkb_symbols "twoletter" { key { [ zcaron, Zcaron, any, any ] }; // z }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "latlevel3" { key { [ any, any, notsign, notsign ] }; // ` ~ key { [ any, any, dead_tilde, asciitilde ] }; // 1 ! @@ -196,7 +196,7 @@ xkb_symbols "latlevel3" { key { [ any, any, emdash, endash ] }; // / ? }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "cyrlevel3" { key { [ any, any, degree, notsign ] }; // ` ~ key { [ any, any, dead_circumflex, NoSymbol ] }; // 3 # diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/ru b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ru similarity index 86% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/ru rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ru index 0e64868..dce67f3 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/ru +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/ru @@ -21,7 +21,7 @@ xkb_symbols "winkeys" { key { [ backslash, slash ] }; }; -partial hidden alphanumeric_keys +hidden partial alphanumeric_keys xkb_symbols "common" { key { [ 1, exclam ] }; @@ -478,11 +478,12 @@ xkb_symbols "srp" { }; // Mari language layout -// http://www.marlamuter.ru/ +// http://www.marlamuter.com/ +// Last edit by Viatcheslav Kileev (slavakileev@yandex.ru) partial alphanumeric_keys xkb_symbols "chm" { - include "ru(common)" + include "ru(winkeys)" name[Group1]= "Mari"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; @@ -491,13 +492,82 @@ xkb_symbols "chm" { key { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] }; key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; - key { [ Cyrillic_e, Cyrillic_E, U04E9, U04E8 ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE, U04EB, U04EA ] }; - key { [ Cyrillic_ef, Cyrillic_EF, UF537, UF536 ] }; + key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; include "level3(ralt_switch)" }; +partial alphanumeric_keys +xkb_symbols "phonetic_azerty" { + + include "level3(ralt_switch)" + + name[Group1]= "Russian (phonetic azerty)"; + + key { [ ampersand, 1, onesuperior, exclamdown ] }; + key { [ eacute, 2, asciitilde, oneeighth ] }; + key { [ quotedbl, 3, numbersign, sterling ] }; + key { [apostrophe, 4, braceleft, dollar ] }; + key { [ parenleft, 5, bracketleft, threeeighths ] }; + key { [ minus, 6, bar, fiveeighths ] }; + key { [ egrave, 7, grave, seveneighths ] }; + key { [underscore, 8, backslash, trademark ] }; + key { [ ccedilla, 9, asciicircum, plusminus ] }; + key { [ agrave, 0, at, degree ] }; + key { [parenright, degree, bracketright, questiondown ] }; + key { [ equal, plus, braceright, dead_ogonek ] }; + + key { [ comma, question, acute, doubleacute ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, dead_belowdot, dead_abovedot ] }; + + key { [ ugrave, percent, asciicircum, caron ] }; + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; // Q + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // Z + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; // W + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; // M + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic_fr" { + + include "fr" + include "ru(phonetic_azerty)" + + name[Group1]= "Russian (phonetic French)"; +}; + // EXTRAS: // Church Slavonic language layout @@ -650,12 +720,12 @@ xkb_symbols "mac" { key { [ Cyrillic_io, Cyrillic_IO ] }; }; -// --> OEystein Bech "DreymaR" Gadmar, 2014-01: Additions to xkb/symbols/ru +// --> OEystein Bech "DreymaR" Gadmar, 2016-01: Additions to xkb/symbols/ru // Rulemak (Phonetic Colemak variant for Russian Cyrillic script) // 2006-01-01 Shai Coleman, http://colemak.com/ -// Rulemak: 2009 Geert Hendrickx, . -// Based on KOI8-R and some "common sense": CHE/HA on H/X, IO close to E/O, soft/hard on '/`. +// Rulemak: 2009-2016 Geert Hendrickx, , using transliteration and "common sense". // See the Colemak forum topic on Cmk[eD] locales: http://forum.colemak.com/viewtopic.php?id=1458 +// Also, the Colemak forum topic on Kyrillic layouts: http://forum.colemak.com/viewtopic.php?id=519 partial alphanumeric_keys xkb_symbols "colemak" { //xkb_symbols "rulemak" { @@ -663,54 +733,58 @@ xkb_symbols "colemak" { include "colemak(cmk_ed_symbols)" // name[Group1]= "Colemak(cyrillic)"; - name[Group1]= "Russian (Colemak, phonetic Rulemak)"; + name[Group1]= "Russian (Colemak, phonetic E-Slavic)"; - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, dead_tilde, asciitilde ] }; // U0300 Comb. grave -// key { [ 1, exclam, U0301 ] }; // U0301 Comb. acute -// key { [ 2, at, U030B ] }; // U030B Comb. doubleacute + key { [ Cyrillic_io, Cyrillic_IO, dead_tilde, asciitilde ] }; // Rulemak-2016. (U0300 Comb. grave) +// key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, dead_tilde, asciitilde ] }; // Rulemak-2013. (U0300 Comb. grave) +// key { [ 1, exclam, U0301 ] }; // (U0301 Comb. acute) +// key { [ 2, at, U030B ] }; // (U030B Comb. doubleacute) key { [ 3, numerosign, dead_horn, numbersign ] }; // key { [ 4, dollar, dead_currency, cent ] }; // key { [ 5, percent, EuroSign ] }; -// key { [ 6, asciicircum, U0306 ] }; // U0306 Comb. breve -// key { [ 7, ampersand, U0307 ] }; // U0307 Comb. dot above -// key { [ 8, asterisk, U0308 ] }; // U0308 Comb. diaeresis +// key { [ 6, asciicircum, U0306 ] }; // (U0306 Comb. breve) +// key { [ 7, ampersand, U0307 ] }; // (U0307 Comb. dot above) +// key { [ 8, asterisk, U0308 ] }; // (U0308 Comb. diaeresis) key { [ 9, parenleft, dead_breve, guillemotleft ] }; key { [ 0, parenright, dead_abovering, guillemotright ] }; key { [ minus, underscore, endash, emdash ] }; - key { [ Cyrillic_io, Cyrillic_IO, equal, plus ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] }; // Rulemak-2016 +// key { [ Cyrillic_io, Cyrillic_IO, equal, plus ] }; // Rulemak-2013 key { [ Cyrillic_ya, Cyrillic_YA, q, Q ] }; - key { [ Cyrillic_ve, Cyrillic_VE, w, W ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, w, W ] }; // Rulemak-2016 +// key { [ Cyrillic_ve, Cyrillic_VE, w, W ] }; // Rulemak-2013 key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] }; key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; key { [ Cyrillic_u, Cyrillic_U, u, U ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; - key { [ Cyrillic_yu, Cyrillic_YU, semicolon, colon ] }; - key { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] }; - key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; // Rulemak + key { [ Cyrillic_yu, Cyrillic_YU, semicolon, colon ] }; // Rulemak + key { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft ] }; // Rulemak + key { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] }; // Rulemak + key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; // Rulemak key { [ Cyrillic_a, Cyrillic_A, a, A ] }; key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; - key { [ Cyrillic_che, Cyrillic_CHE, h, H ] }; // Ghen's solution -// key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; // KOI-8/transliteration + key { [ Cyrillic_che, Cyrillic_CHE, h, H ] }; // Rulemak-2013/2016 +// key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; // KOI-8/translit. key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; key { [ Cyrillic_i, Cyrillic_I, i, I ] }; key { [ Cyrillic_o, Cyrillic_O, o, O ] }; - key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, quotedbl ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, quotedbl ] }; // Rulemak key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; - key { [ Cyrillic_ha, Cyrillic_HA, x, X ] }; // Ghen's solution + key { [ Cyrillic_ha, Cyrillic_HA, x, X ] }; // Rulemak-2013/2016 // key { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; // Trad./Bulgarian key { [ Cyrillic_tse, Cyrillic_TSE, c, C ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE, v, V ] }; + key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; // Rulemak-2016 +// key { [ Cyrillic_zhe, Cyrillic_ZHE, v, V ] }; // Rulemak-2013 key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; @@ -718,12 +792,10 @@ xkb_symbols "colemak" { key { [ period, colon, greater,greaterthanequal ] }; // key { [ slash, question ] }; -// NOTE: In Linux, CapsLock is tweaked in the Keyboard settings (for freedom of choice etc.) +// NOTE: In Linux, CapsLock is tweaked in the Keyboard settings (freedom of choice) // key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; -// key { [ U0301, asciitilde, grave ] }; // U0301 Comb. acute - key { [ U0301, dead_diaeresis, dead_acute, dead_grave ] }; // U0301 Comb. acute + key { [ U0301, dead_diaeresis, dead_acute, dead_grave ] }; // (U0301 Comb. acute) // key { [ space, space, space, nobreakspace ] }; -// key { [ Mode_switch, Multi_key ] }; include "level3(ralt_switch)" }; diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/se b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/se similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/se rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/se diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/si b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/si similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/si rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/si diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/sk b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/sk similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/sk rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/sk diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/tr b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/tr similarity index 100% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/tr rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/tr diff --git a/x-mod_v2-12-1_2015-01-18/xkb/symbols/us b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/us similarity index 98% rename from x-mod_v2-12-1_2015-01-18/xkb/symbols/us rename to x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/us index b8c94e7..e269d7f 100644 --- a/x-mod_v2-12-1_2015-01-18/xkb/symbols/us +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/symbols/us @@ -541,11 +541,12 @@ xkb_symbols "dvorak-classic" { // Main features: Numbers are in shift position (like French), symbols have been // placed in locations that give good hand-alternation and finger rolling with // symbols that usually follows, accented characters are possible for I18N. +// Patch suggestions should be sent upstream. partial alphanumeric_keys xkb_symbols "dvp" { include "us(dvorak)" - name[Group1] = "English (programmer Dvorak)"; + name[Group1] = "English (Programmer Dvorak)"; // Unmodified Shift AltGr Shift+AltGr // symbols row, left side @@ -568,8 +569,8 @@ xkb_symbols "dvp" { // upper row, left side key { [ semicolon, colon, dead_diaeresis ] }; - key { [ comma, less, guillemotleft, ellipsis ] }; - key { [ period, greater, guillemotright ] }; + key { [ comma, less, guillemotleft, U201C ] }; + key { [ period, greater, guillemotright, U201D ] }; key { [ p, P, paragraph, section ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; @@ -596,9 +597,9 @@ xkb_symbols "dvp" { // lower row, left side key { [ apostrophe, quotedbl, dead_acute ] }; - key { [ m, M, mu ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - include "level3(ralt_switch)" + // do NOT hardcode this switch; use lv3:ralt_switch option instead! + //include "level3(ralt_switch)" }; // phonetic layout for Russian letters on an US keyboard @@ -822,12 +823,30 @@ xkb_symbols "tarmak1_e" { name[Group1]= "English/Intl (Tarmak1_E - Colemak transitional)"; }; +partial alphanumeric_keys +xkb_symbols "tarmak1k_e" { + include "colemak(tarmak1k_e)" + name[Group1]= "English/Intl (Tarmak1k_E - Colemak transit. w/ Curl-Hk mod)"; +}; + partial alphanumeric_keys xkb_symbols "tarmak2_et" { include "colemak(tarmak2_et)" name[Group1]= "English/Intl (Tarmak2_ET - Colemak transitional)"; }; +partial alphanumeric_keys +xkb_symbols "tarmak2bk_et" { + include "colemak(tarmak2bk_et)" + name[Group1]= "English/Intl (Tarmak2bk_ET - Colemak transit. w/ Curl-DbgHk mod)"; +}; + +partial alphanumeric_keys +xkb_symbols "tarmak2vm_et" { + include "colemak(tarmak2vm_et)" + name[Group1]= "English/Intl (Tarmak2vm_ET - Colemak transit. w/ Curl-DvbgHm mod)"; +}; + partial alphanumeric_keys xkb_symbols "tarmak3_etr" { include "colemak(tarmak3_etr)" @@ -859,8 +878,7 @@ xkb_symbols "tarmak4_etro" { partial alphanumeric_keys xkb_symbols "cmk_ed_dvbghm" { include "colemak(cmk_ed)" - include "colemak(cmk-dvbg_ed)" - include "colemak(cmk-hm_ed)" + include "colemak(cmk_dvbg-hm_ed)" name[Group1]= "English/Intl (Colemak[eD], Curl-DvbgHm ergo)"; }; @@ -868,8 +886,7 @@ xkb_symbols "cmk_ed_dvbghm" { partial alphanumeric_keys xkb_symbols "cmk_ed_dbghk" { include "colemak(cmk_ed)" - include "colemak(cmk-dbg_ed)" - include "colemak(cmk-hk_ed)" + include "colemak(cmk_dbg-hk_ed)" name[Group1]= "English/Intl (Colemak[eD], Curl-DbgHk ergo)"; }; diff --git a/x-mod_v2-17-1ub1_2016-06-06/xkb/types/level5 b/x-mod_v2-17-1ub1_2016-06-06/xkb/types/level5 new file mode 100644 index 0000000..c553e5c --- /dev/null +++ b/x-mod_v2-17-1ub1_2016-06-06/xkb/types/level5 @@ -0,0 +1,220 @@ +partial default xkb_types "default" { + + // Defines a type with an eight-level shift, similar to the three-level + // type used for iso9995, but it lets the Shift key behave "normally". + + virtual_modifiers LevelThree,ScrollLock,LevelFive; + + type "EIGHT_LEVEL" { + modifiers = Shift+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level8; + map[Lock+Shift+LevelThree+LevelFive] = Level7; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { + // Level5-Lock is implemented by using NumLock, because a real modifier + // is required. + + modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[LevelThree+Shift] = Level4; + + map[LevelFive] = Level5; + map[LevelFive+Shift] = Level6; + map[LevelFive+LevelThree] = Level7; + map[LevelFive+LevelThree+Shift] = Level8; + + map[NumLock] = Level5; + map[NumLock+Shift] = Level6; + map[NumLock+LevelThree] = Level7; + map[NumLock+LevelThree+Shift] = Level8; + + map[NumLock+LevelFive] = Level1; + map[NumLock+LevelFive+Shift] = Level2; + map[NumLock+LevelFive+LevelThree] = Level3; + map[NumLock+LevelFive+LevelThree+Shift] = Level4; + + // Lock has no effect + map[Lock] = Level1; + map[Lock+Shift] = Level2; + map[Lock+LevelThree] = Level3; + map[Lock+LevelThree+Shift] = Level4; + + map[Lock+LevelFive] = Level5; + map[Lock+LevelFive+Shift] = Level6; + map[Lock+LevelFive+LevelThree] = Level7; + map[Lock+LevelFive+LevelThree+Shift] = Level8; + + map[Lock+NumLock] = Level5; + map[Lock+NumLock+Shift] = Level6; + map[Lock+NumLock+LevelThree] = Level7; + map[Lock+NumLock+LevelThree+Shift] = Level8; + + map[Lock+NumLock+LevelFive] = Level1; + map[Lock+NumLock+LevelFive+Shift] = Level2; + map[Lock+NumLock+LevelFive+LevelThree] = Level3; + map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; + + preserve[LevelFive+Shift] = Shift; + preserve[NumLock+Shift] = Shift; + preserve[Lock+LevelFive+Shift] = Shift; + preserve[Lock+NumLock+Shift] = Shift; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { + // Level5-Lock is implemented by using NumLock, because a real modifier + // is required. + + modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; + + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[LevelThree+Shift] = Level4; + + map[LevelFive] = Level5; + map[LevelFive+Shift] = Level6; + map[LevelFive+LevelThree] = Level7; + map[LevelFive+LevelThree+Shift] = Level8; + + map[NumLock] = Level5; + map[NumLock+Shift] = Level6; + map[NumLock+LevelThree] = Level7; + map[NumLock+LevelThree+Shift] = Level8; + + map[NumLock+LevelFive] = Level1; + map[NumLock+LevelFive+Shift] = Level2; + map[NumLock+LevelFive+LevelThree] = Level3; + map[NumLock+LevelFive+LevelThree+Shift] = Level4; + + // Lock interchanges Level1 and Level2 + map[Lock] = Level2; + map[Lock+Shift] = Level1; + map[Lock+LevelThree] = Level3; + map[Lock+LevelThree+Shift] = Level4; + + map[Lock+LevelFive] = Level5; + map[Lock+LevelFive+Shift] = Level6; + map[Lock+LevelFive+LevelThree] = Level7; + map[Lock+LevelFive+LevelThree+Shift] = Level8; + + map[Lock+NumLock] = Level5; + map[Lock+NumLock+Shift] = Level6; + map[Lock+NumLock+LevelThree] = Level7; + map[Lock+NumLock+LevelThree+Shift] = Level8; + + map[Lock+NumLock+LevelFive] = Level2; + map[Lock+NumLock+LevelFive+Shift] = Level1; + map[Lock+NumLock+LevelFive+LevelThree] = Level4; + map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; + + preserve[LevelFive+Shift] = Shift; + preserve[NumLock+Shift] = Shift; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[Lock+Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level7; + map[Lock+Shift+LevelThree+LevelFive] = Level8; + +// --> OEystein Bech "DreymaR" Gadmar, 2015-09: Additions to xkb/types/level5 +// Space+Shift would consume the Shift which is bad for hotkeys; added a preserve[Shift] line +// See "DreymaR's Big Bag of Keyboard Tricks": http://forum.colemak.com/viewtopic.php?pid=9918 + preserve[Shift] = Shift; + preserve[Shift+LevelFive] = Shift; +// <-- DreymaR: Additions to xkb/types/level5 + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + preserve[Lock+LevelFive] = Lock; + preserve[Lock+Shift+LevelFive] = Lock; + preserve[Lock+LevelThree+LevelFive] = Lock; + preserve[Lock+Shift+LevelThree+LevelFive] = Lock; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +};