Skip to content

Latest commit

 

History

History
191 lines (126 loc) · 6.73 KB

KeyboardLayouts.md

File metadata and controls

191 lines (126 loc) · 6.73 KB

Keyboard Layouts

Beware that the documentation pages for most Experimental repos have little or no content, and that documentation for other keyboards probably is out-of-date. Writing documentation is an ongoing effort, and part of the development process. Automatically generated SVG layouts is presently not working.

The languages are grouped in three different ways, according to maturity, geography and language family. Private repositories are not listed.

Grouped according to maturity of the keyboards

Being in the Production group does not necessarily mean it is in production for both mobile and desktop, it can be only one of them. We don't differentiate between the two categories, as soon as a keyboard is released for the general audience for at least one platform, it is in the Production category. See the documentation for each keyboard for further details.

{% assign keyb_repos = site.github.public_repositories|jsonify %}

Production keyboard layouts Maturity: Production

Beta keyboard layouts Maturity: Beta

Alpha keyboard layouts Maturity: Alpha

Experimental keyboard layouts Maturity: Experiment

Initial experiments and student exercises.

Keyboard layouts of undefined maturity Maturity: Undefined

Grouped according to geography

Languages of the Nordic countries

Languages of Russia

Other European languages

Languages in North America

Languages in Africa

Languages in other parts of the world

Languages without geography tag

Grouped according to language family

Uralic Languages

Eskimo-Aleut Languages

Algic Languages

Indoeuropean languages

Niger-Congo Languages

Languages of other language families, isolates, artificial languages

Languages with no language family tag

<script src="/assets/js/langtable.js"></script> <script> const domProdLangs = document.querySelector('#prod_keyboards'); domProdLangs.appendChild(addRepoTable({{keyb_repos}}, 'keyboard-', ['maturity-prod'])) </script> <script> const domBetaLangs = document.querySelector('#beta_keyboards'); domBetaLangs.appendChild(addRepoTable({{keyb_repos}}, 'keyboard-', ['maturity-beta'])) </script> <script> const domAlphaLangs = document.querySelector('#alpha_keyboards'); domAlphaLangs.appendChild(addRepoTable({{keyb_repos}}, 'keyboard-', ['maturity-alpha'])) </script> <script> const domExperLangs = document.querySelector('#exper_keyboards'); domExperLangs.appendChild(addRepoTable({{keyb_repos}}, 'keyboard-', ['maturity-exper'])) </script> <script> const domUndefLangs = document.querySelector('#undef_keyboards'); domUndefLangs.appendChild(addNegUnorderedList({{keyb_repos}}, 'keyboard-', ['maturity-exper', 'maturity-beta', 'maturity-alpha', 'maturity-prod'])) </script> <script> const domNordLangs = document.querySelector('#geo_nordic'); domNordLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['geo-nordic'])) </script> <script> const domEuroLangs = document.querySelector('#geo_europe'); domEuroLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['geo-europe'])) </script> <script> const domRussLangs = document.querySelector('#geo_russia'); domRussLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['geo-russia'])) </script> <script> const domNorALangs = document.querySelector('#geo_northamerica'); domNorALangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['geo-northamerica'])) </script> <script> const domAfricaLangs = document.querySelector('#geo_africa'); domAfricaLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['geo-africa'])) </script> <script> const domOthrLangs = document.querySelector('#geo_other'); domOthrLangs.appendChild(addNegUnorderedList({{keyb_repos}}, 'keyboard-', ['geo-nordic', 'geo-europe', 'geo-russia', 'geo-northamerica', 'geo-africa'])) </script> <script> const domUndefGeoLangs = document.querySelector('#geo_undef'); domUndefGeoLangs.appendChild(addNegUnorderedList({{keyb_repos}}, 'keyboard-', ['geo-'])) </script> <script> const domUralicLangs = document.querySelector('#fam_uralic'); domUralicLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['langfam-uralic'])) </script> <script> const domIndEurLangs = document.querySelector('#fam_indoeuropean'); domIndEurLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['langfam-indoeuropean'])) </script> <script> const domAlgicLangs = document.querySelector('#fam_algic'); domAlgicLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['langfam-algic'])) </script> <script> const domEskAleutLangs = document.querySelector('#fam_eskimo_aleut'); domEskAleutLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['langfam-eskimo-aleut'])) </script> <script> const domNigerCongoLangs = document.querySelector('#fam_niger_congo'); domNigerCongoLangs.appendChild(addUnorderedList({{keyb_repos}}, 'keyboard-', ['langfam-niger-congo'])) </script> <script> const domOthrFamLangs = document.querySelector('#fam_other'); domOthrFamLangs.appendChild(addNegUnorderedList({{keyb_repos}}, 'keyboard-', ['langfam-uralic', 'langfam-indoeuropean', 'langfam-algic', 'langfam-eskimo-aleut', 'langfam-turkic', 'langfam-niger-congo'])) </script> <script> const domUndefFamLangs = document.querySelector('#fam_undef'); domUndefFamLangs.appendChild(addNegUnorderedList({{keyb_repos}}, 'keyboard-', ['langfam-'])) </script>