My Big Bag Of Tricks topic mentions how I made locale variants for a bunch of countries. This topic lists and discusses them in more detail.
Note that for most of these you really should use an "Euro/World" 102/105-key (ISO) keyboard! The "US" 101/104-key (ANSI) boards lack the lower left-hand <LSGT> key next to LShift and that one's very useful for adding extra symbols to the standard layout in a sufficiently accessible way.
The basis for these layouts is 'Colemak [edition DreymaR]', using my own preferred AltGr mappings (modifier lv3-4 in Linux terminology) for the Colemak layout. This is also on display in the 'Big Bag' topic. It makes several letters sufficiently accessible as long as they're rarely used: ʒƷ, ß (German 'ss'), øØ, œŒ, æÆ, þÞ, ðÐ, ʃƩ, ŋŊ, åÅ. Also quote marks: ‚‘’ „“” ‹› «». All the common dead keys are on symbol keys with AltGr (i.e., lv3). Common accents like the umlaut are in good positions. For rarely used accented letters, this should prove sufficient.
The Colemak [edition DreymaR] layout, using different lv3-4 mappings from the standard Colemak.
Shown with the ZXCVB_ 'Angle' ergonomic mod (see below), dead key emphasis and color-coded proposed fingering.
The trick here is separating the main letter block from the symbol keys in the layout definitions. (The semicolon is an in-between key since it's a symbol key that sits in the letter block; QWERTY is to blame for this inconsistency.) Doing this, we can with relative ease substitute the standard symbols for the ones used on locale QWERTY keyboard layout variants. This produces a range of 'Keep Local Symbols' locale variants, that should be in correspondence with what people from those locales are used to and what's printed on their key caps.
Please note: The letter block keys have for the most part Colemak[eD] mappings in these layouts! This could lead to redundancies or lack of a lv3-4 symbol (if it's defined on a letter key in the default locale layout and not in Cmk[eD]). If that happens and it's a problem, let me know. For the most consistent and complete set of AltGr mappings, use the 'Unified Symbols' variants.
However, I've abandoned the way of the locale symbols for myself. I found that the locale QWERTY layout for Norway where I live was messy. Furthermore, it made some symbols hard to produce. For instance: For a tilde which is often used in coding and more in the computing world you would have to press AltGr and Right Bracket; then since that's a dead key you'd have to type an additional space to release the tilde. Moreover, that won't even always work in apps (especially Java or Flash). Ugh. Other locale layouts aren't much better. Not that the US layout is perfect or anything, but at least it's what many know and expect - symbols that are easily reachable like said tilde or the caret are often used in script languages for instance.
So I set out to make a simple and consistent way of providing the necessary locale symbols while keeping the main setup intact.
Here's what Shai has to say about making locale Colemak variants, on the Multilingual page of this site:
If you want to create a layout optimized variant for your language, you can remap the 102nd key (not shown in layout) and some of punctuation keys you don't use often.
I fully agree, and so that's what I've done!
- The LSGT and bracket keys may hold the most common locale-specific symbols.
• The œ/ø/å (oe/oslash/aring) special letters may well be replaced; these should also be on dead keys.
(The œ is rightly a ligature which fits the Compose method well for Linux users at least.)
- Furthermore, a set of keys with non-essential lv3-4 mappings (like h/j/k/l) are up for grabs if need be.
• The K key is quite easily reached with AltGr and in the Colemak[eD] it holds non-essential mappings.
• The H key, similarly, is well placed and holds nothing important for most.
• The L key, same but a bit less comfortable with AltGr in my opinion.
• The J key is a bit of a reach with the AltGr key held down so I hope it won't be necessary most of the time.
- If there are many letters using one accent, a well placed dead key (on lv1-2) may be preferable.
• The AltGr dead keys will still be available and some of these (like umlaut and acute) are quite easily reachable too
• Using a lv1 dead key may be preferable for speed typing (Sean Wrona, apparently, uses a sticky Shift for this reason!)
The 'unified' layouts presented herein will be shown with the AngleWide-Slash ('AWide-35') wide keyboard mod (again, see the 'Big Bag Of Tricks' topic). What this means is that the brackets are moved to the middle on the upper and home row, the VK_102/<LSGT> and Backslash/<BKSL> keys to the middle lower row, the += key to the middle upper row and finally the ?/ key to the upper right. I'm sorry if this confuses anyone, but the AngleWide mod brings the LSGT/102 key and brackets together right in the middle with the other moddable keys so they can all be shown in a partial keyboard image without everything else in between them! I'm now used to having all special letters in the middle of the keyboard and it feels good. :)
The standard "US English" Colemak [edition DreymaR] layout, shown with the 'AngleWide-35' ergonomic mod I use.
DISCLAIMER: If you study the layout images, don't pay too much heed to the grayed-out keys. The "edition DreymaR" mappings for AltGr (lv3-4) may have been tweaked slightly since they were created. The Colemak[eD] color image above should be correct.
Some topics on the forum regarding different locale Colemak variants (let me know if I missed any):
Bulgarian (Cyrillic) Colemak-like layout, by stassev
Czech Colemak, by davkol
Spanish Colemak discussion (Colemak en Español), by javix
Spanish Colemak, by martinrinconbotero
Greek Colemak, by dkun
Hungarian Colemak, by mr.schyte
Brazilian Colemak discussion, by krp
Danish Colemak, by erw
European multilingual Colemak, by Sprachprofi (including some interesting discussions!)
Lithuanian Colemak, by Tautrimas
Russian Colemak – 'Rulemak' – by ghen (mostly based on KOI-8R)
Russian Colemak by vilem (quite similar to Rulemak, mostly based on phonetics/intuition)
Discussion of Colemak for other languages, by SpeedMorph
Swedish/Finnish Colemak discussion, by Linus
Swedish/Finnish Colemak, by Turbulenz
French Colemak, by Endaka
Portuguese Colemak discussion, by Bee
German Colemak, by vilem
Polish Colemak, by moskit
Norwegian Colemak, by Padde and by Jovlang
Last edited by DreymaR (16-Nov-2015 15:26:07)
In the following I've described how to make a set of locale layouts for many languages, remapping for the most part the bracket keys (LBr/RBr) and the "lesser/greater" key (LSGT, also known as VK_102). If more keys than these are needed, the KHLJ keys with AltGr (lv3-4 mappings) are also available in my layout since they hold nonessential mappings beforehand and are placed together. This is what I call 'Universal Symbols' variants. I also provide 'Keep Local Symbols' variants where all the non-letter keys behave as locale users are used to – but at the cost of whatever nifty Colemak[eD] mappings were on those keys! This includes all dead keys as I've put those solely on symbol keys.
In the below, the 'keep local symbols'/'ks' variants are shown without any WideAngle ergonomic mods to avoid confusion to newcomers. The 'universal symbols'/'us' variants however, are shown as cutouts from a WideAngle modded keyboard as all the "fluid" keys are bunched together in the middle on such a board. Both variant types may of course be used with wide or non-wide setups at your leisure.
There's quite a bunch of these now! I can make more on request or whim. It'd be nice with feedback from local users as some design decisions are open to debate and depend on actual usage as well as personal preferences.
Here's what I've covered so far, providing both conservative 'keep local symbols' and my preferred 'unified symbols' variants
(On a side note, there are but 11 Dvorak layouts so now Colemak really has wind in its locale sails!):
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
Albanian is nice and simple, needing only Ëë and Çç.
Albanian 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for al:
• Çç, while also present at AltGr+Kk, can have the same key as in the local layout (LBr). I put Ëë next to it.
Albanian 'Unified Symbols' Colemak[eD]
The Bosnian/Serbocroatian/Slovenian layouts are almost identical, differing mostly in how they handle some dead keys (on ~/1/3/5/7/- ).
They need Đđ, Ćć, and the caron letters Čč/Šš/Žž. Some variants also include NJ, LJ and DŽ digraphs, but the default ones do not.
Bosnian/Serbian 'Keep Local Symbols' Colemak[eD]
Croatian (Hrvatska) 'Keep Local Symbols' Colemak[eD]
Slovenian 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for ba hr rs si:
• A caron dead key on LBr takes care of ČŠŽ.
• Stroke D could've replaced the Ðð on AltGr+Dd, but it's too common so it gets RBr.
• As options, instead of the LBr dead key the caron letters ČŽŠ may be placed on AltGr+KHL in addition to LBr.
• Another available option is putting the DŽ/NJ/LJ digraphs on AltGr+HJL for instance.
Bosnian/Croatian/Serbian/Slovenian 'Unified Symbols' Colemak[eD]
The Belgian, Canadian (international) and French default QWERTY layouts are similar enough that a harmonized 'unified' variant was made for these locales.
This variant should be good for all users of the French and similar languages. One layout to rule them all...
The needed letters for French-type locales are Éé, ÀàÈèÙù, Çç, Œœ. The LBr key has cirkumflex (âêîôû) and umlaut (ëï).
Some letter frequencies for French: é 1.90%; à 0.49%; àèù 0.82%; ê 0.23%; ç 0.09% (which is still more than k at 0.05%); œ 0.02%.
Belgian 'Keep Local Symbols' Colemak[eD]
Canadian(Intl) 'Keep Local Symbols' Colemak[eD]
French 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for be+ca+fr:
• Going by letter frequencies, é and grave merit their own keys; the other accents are of less critical importance.
• Éé gets its own key (LSGT) instead of an acute dead key since it's quite frequent and only one letter.
• A Çç key is preferable to the cedilla dead key since there's only one letter needed, but lv3-4 is acceptable since it's a rare letter.
• For the other accent needs, dead keys are the best option; some are common enough to merit a lv1-2 placement.
• LBr keeps its dead keys as in the default layout for easier access to the cirkumflex/umlaut letters even though these aren't very common.
• RBr gets the grave dead key on lv1 since àèù together are somewhat frequent.
• The numerosign (RBr lv2) is hardly in use generally (some use an N and the masculine ordinal to produce 'Nº') but in French locales it's used.
• The letter K is very rare in French, but lv1-2 mappings should not be changed unless absolutely necessary!
Belgian+Canadian(Intl)+French 'Unified Symbols' Colemak[eD]
Portuguese (Brazil) 'Keep Local Symbols' Colemak[eD]
Portuguese (Portugal) 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for br+pt:
• The two Portuguese locales' default layouts have the acute/grave key on different keys (br on LBr and pt on RBr); that's messy.
• I think that the acute is the more common accent? At any rate, it feels logical to place it on the LBr.
• Tilde is also important and used for more than just ñ in Portuguese (ã and õ at least), and circumflex is also provided.
• The Çç has a prominent placement in the default locale layouts so it gets its own key (not really sure if that's necessary though?).
• The Brazilian ABNT-2 keyboard's extra key gets the ordinal markers º/ª. These are also placed on AltGr+o/O.
Portuguese (Brazil and Portugal) 'Unified Symbols' Colemak[eD]
Czech 'Keep Local Symbols' Colemak[eD]
The Polish layout has special letters on AltGr+letter mappings; unfortunately, this messes up the Cmk[eD] consistency quite a bit. The 'Unified symbols' variant is recommended.
Polish 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for cz and pl:
• These two locales ended up very similar, with one acute key and one other accent (hacek for cz, ogonek for pl) for commonly accented letters.
• The ů in Czech is hardly ever capitalized in normal text but the Ů is sometimes needed for caps and letter referrals so it's provided (also for consistency).
• The ż in Polish is the only letter using the dot-above accent so it gets a key for itself. I think the AltGr+period dead key is quite easy to hit though...
• The ł in Polish is only available on lv3-4 but I think AltGr+L is an easy reach.
Czech (middle) and Polish (right) 'Unified Symbols' Colemak[eD]
German (Germany and Austria) 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for at de:
• The German layout conserves the Üü position from the default layout.
• Ää and Öö are harmonized with the Scandinavian layouts.
• For ß only AltGr+s is provided; I think that's very easy to hit though. The capitalized version is there as an option but I hear it's hardly ever used.
German (Germany and Austria) 'Unified Symbols' Colemak[eD]
The Scandinavian languages use the same special letters albeit written differently: Åå Ææ Øø for Danish and Norwegian, and Åå Ää Öö for Finnish and Swedish. Their default layouts are quite similar too, apart from some stupid differences in punctuation placement which fortunately won't cause us any trouble.
Danish 'Keep Local Symbols' Colemak[eD]
Norwegian 'Keep Local Symbols' Colemak[eD]
Finnish 'Keep Local Symbols' Colemak[eD]
Swedish 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for dk+no and fi+se:
• These locales use the same special letters. The Åå is kept in place; the same position for all the Scandinavian default layouts.
• The Ææ is somewhat more common in Danish and the Øø in Norwegian, but that shouldn't matter much here! Both positions are decent enough.
• The Ää and Öö are placed in harmony with the other Scandinavian (and German!) layouts.
Danish/Norwegian (middle) and Finnish/Swedish (right) 'Unified Symbols' Colemak[eD]
Spanish (Spain) 'Keep Local Symbols' Colemak[eD]
Spanish (Latin America) 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for es+latam:
• For writing Spanish, the tilde is important but only used for Ññ so that letter gets a key for itself.
• Both acute and grave are important accents so they get lv1 placement in a logical fashion on the brackets ("up then down").
• Unfortunately, the Spain and LatAm default layouts have different placement of the acute accent key. That's silly I think!
• The necessary but less common umlaut and circumflex accents are given lv2 placements.
• (One alternative idea from user javix for standard Spanish is to make a single dead key for acute and tilde on the <LSGT> key!)
Spanish (Spain and Latin America) 'Unified Symbols' Colemak[eD]
English (UK) 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for gb:
• There isn't really one! The US (English) layout serves the needs of all English-speaking locales to my knowledge (the £ sign is there).
• Using the 'Keep Local Symbols' layout, conservative Brits may find all symbols where they're accustomed to – at the cost of dead keys etc.
Iceland managed to stick with the Þþ and Ðð letters when for instance English lost them and stupidly started writing 'th' instead. ;)
Other than that, they need the Ææ and Öö letters like the other Nordic countries do, but make do without the Åå (as they use Áá instead).
Icelandic uses the acute accent far more than the other Nordic countries (nearly 6% of all letter strokes).
Some letter frequencies for Icelandic are: ð 5.01%; þ 1.59%; á 1.55%; í 1.34%.
Icelandic 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for is:
• As the letter frequencies show, the Þþ and especially Ðð are so common that they shouldn't be kept on lv3-4 mappings for this locale.
• Ææ and Öö however, are less common and hopefully AltGr+Aa and AltGr+Tt respectively are easy enough to hit.
• There are several accented letters (Áá Éé Íí Óó Úú Ýý) and some are quite frequent, so a good acute dead key is needed.
• Icelanders tend to write some Danish and Norwegian, so they'll want accessible Øø and Åå (on AltGr+Dd).
Icelandic 'Unified Symbols' Colemak[eD]
Some letter frequencies for Italian: àèìòù 0.89% (è 0.42%; à 0.15%; ù 0.12%; ò 0.11%; ì 0.09%); é 0.06%.
If this is accurate, the accented letters are quite rare all in all.
(Note that Wikipedia reported quite different frequencies with àèù far more common than ìò?)
Italian 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for it:
• For the Italian layout, several different accented letters are needed but capitalized letters weren't in the default layout.
• Thus, the letters were provided directly as in the default layout. The éè key was kept on LBr and the rest put together.
• The çłñ may be used (for Ligurian and Venetian script for instance) but they're rare so they're on lv3-4 mappings.
• As a good alternative to this direct approach, I'd recommend the Spanish/LatAm layout! It does the same using dead keys.
Italian 'Unified Symbols' Colemak[eD]
Dutch 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for nl:
• The Dutch layout is similar to Belgian and other French-type ones but has more use of the umlaut than the circumflex.
• Therefore I didn't harmonize it fully with the French-type layouts but kept the LBr key the way it is in the default layout.
• The acute letter Éé is somewhat common as is Óó; the acute dead key on RBr should be good enough for that.
• The IJ ligature isn't provided in the default layout so it isn't here either; I think it's falling into disuse. The Compose method has it.
Dutch 'Unified Symbols' Colemak[eD]
Hungarian 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for hu:
• The common acute and less common double-acute accents are provided as lv1-2 dead keys
• The Öö/Üü umlaut letters are provided directly on LSGT (and also an umlaut dead key on RBr)
Hungarian 'Unified Symbols' Colemak[eD]
The Romanian locale letters are on AltGr+letter mappings in the default layout.
Thus, some Colemak[eD] letter mappings (notably, π and typographic quotes) were lost for the "Keep Local Symbols" variant.
Romanian 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for ro:
• Proper comma-below Ss and Tt are provided on AltGr+Ss/Tt (cedilla versions are on the cedilla dead key as before)
• Circumflex A/I; breve A/I (I for Crimean Tatars) and stroke D are given separate, suitable positions
Romanian 'Unified Symbols' Colemak[eD]
The letters ıİ (3.9%) üÜ (1.8%) şŞ (1.6%) çÇ (1.4%) ğĞ (0.9%) öÖ (0.7%) are needed.
In both my variants, the Ii is changed to Iı (dotless i) as in the default Turkish layout.
Turkish 'Keep Local Symbols' Colemak[eD]
The '[eD] unified symbols' solution for tr:
• Turkish doesn't use QWX and J is rare, but they need to be kept in place because of English etc!
• The needed special letters are provided directly according to frequencies.
• An option for a more accessible circumflex dead key is an alternative variant.
• If you type much English, there's an option for putting İı on LBr so Ii may be left on the I key.
Turkish 'Unified Symbols' Colemak[eD]
[¡ DISCLAIMER: THE ABOVE MAY STILL BE SUBJECT TO (HOPEFULLY SMALL) CHANGES !]
Some variants aren't documented here yet even though they have been implemented in my xkb files
Some images are from older Colemak[eD] versions so the grayed-out keys will show strange mappings
Last edited by DreymaR (16-Nov-2015 15:29:01)
For the phonetic variants of Greek and Hebrew script I merely moved the keys of their default layouts to a Colemak setup, not changing anything else. This type of layout already exists in QWERTY form, so making Colemak versions isn't hard.
Ideally, I should be able to define phonetic names for the keys corresponding to Colemak so that other 'phonetic' layouts would work automatically, but I think the XKB way of doing that may be too QWERTY-centric for that to work right now.
For the Kyrillic layouts it's slightly more tricky since Kyrillic script has more letters; user ghen has made a nice solution named Rulemak. There are other proposals as well; see the topics linked to above.
The Colemak phonetic layout for Greek script, simply moving around the keys of the default (here xkb) Greek layout.
The Colemak phonetic layout for Hebrew script, simply moving around the keys of the default (here xkb) Israeli layout.
The Colemak phonetic layout for Russian Kyrillic script – 'Rulemak' by user Ghen.
Based on KOI-8R, with the notable exception of ч for H because it's quite common and used in existing phonetic Russian layouts.
[Note: Rulemak is implemented in xkb and PKL (Win) by ghen himself and ported to my implementations – see the post below!]
The Colemak phonetic layout for Bulgarian Kyrillic script.
This layout was discussed in the Rulemak topic. Notably, ы and ё aren't used but ъ is more common than ю.
NOTE: In Rulemak, the VK_102/LSGT key is combining acute; in Bulgarian Colemak it's combining grave. Makes some accented letters easy to type.
Last edited by DreymaR (27-Oct-2014 10:51:16)
[Note: Rulemak is not currently implemented in xkb, but there's a PKL layout available?]
But the one I actually use(d) most is a vim keymap implementation; I can switch between layouts using Ctrl-6 and it affects insert mode only (command mode remains ascii/colemak).
Last edited by ghen (26-Nov-2013 22:43:35)
Thanks ghen! I realize you've had those lying there since 2009; sorry I'm a bit dense. ;)
As a first step, I added your Rulemak pkl file to my PKL archive, and spiffed it up with an icon and your png images as help images for state0/1 (base) and state6/7 (AltGr). Works fine as far as I can see.
It's a bit bare-bones without dead keys, but if users are interested that can be remedied with some copy-pasting and fidgeting. The dead keys would be mostly for the latin script anyway. Same if anyone needs a Wide version; that'd be a little work but not a lot.
NOTE: I started a fight in your Rulemak topic! Any thoughts on that?
[Update 2014-01-12: Updated the xkb files with Rulemak!
• You can select it as 'Russian (Colemak, phonetic Rulemak)' which is a bit Russia-centric but that's the way xkb rolls.
• I added a few lv3-4 mappings, and I use the dead_accents as in Colemak[eD] because I don't think combining accents are fully workable yet.]
Last edited by DreymaR (12-Jan-2014 22:15:14)
Update: A quite big reworking of graphics and texts. Several locales were added, and hopefully more sensible mappings were used for some existing locales (notably Icelandic and Italian). Yay!
Last edited by DreymaR (12-Jan-2015 11:15:22)
A small request for the Czech layout: please, copy the letters with diacritic marks from localized DSK, because the QWERTY positions don't reflect letter frequency at all (in terms of keyboard/user compatibility; I suspect the placement is a consequence of Sholes' infrequency principle).
The principles I follow for the 'Keep Local Symbols' ('ks') layout variant are these:
• The 'ks' layout is based on the 'basic' Linux layout for each locale, as the most common ground
• If the symbols/locale file contains another layout that's popular and modern and makes much more sense, I consider that
• This layout is for recognition purposes only. Maybe as a stopgap solution before the user decides to learn the 'universal' one?
• Thus, it'll miss out on dead keys and some mappings, and the special characters will be as bad as in 'basic' (usually QWERTY)
For the 'us' layout, the brackets and <LSGT> are the prime targets. Anything in particular you wish I'd learn from the Localized DSK in that respect? From what I could see the 'CZD' layout uses the number row and that's not compatible with my philosophy.
With lv1 dead keys for acute and caron, I feel that Czech is well covered. Some people dislike dead keys but in this case they're very powerful since there are 5 acute and 5 caron letters!
//default // wtf is this? //hidden // wtf is this? //partial // wtf is this? (not necessary for include) //alphanumeric_keys // wtf is this? //modifier_keys // wtf is this? //xkb_compatibility "some_xkb_symbols_id" // wtf is this?
Haha @ this guy being confused by XKB! Well, who isn't (except maybe for Ivan Pascal himself)? :-D
Last edited by DreymaR (12-Jan-2015 10:53:13)