From 73096cb5624e2fc9bb7bef17f4ce5aeb6fee45b0 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Thu, 21 Apr 2011 16:09:39 +0300 Subject: [PATCH] Introduce --disable-non-free configure option. Some layouts having non-free licenses which might prevent distribution within commrecial purposes. This commit introduces a --disbale-non-free configure option, that, when enabled, will cause those non-free layouts to not be installed. Files symbols/{fr,lt} where renamed to symbols/{fr.in,lt.in}. Marker comments BEGIN_NON_FREE and END_NON_FREE where added around non-free layouts so that an awk script can easily remove them. --- configure.in | 7 + symbols/Makefile.am | 37 ++- symbols/fr | 1021 -------------------------------------------------- symbols/fr.in | 1023 +++++++++++++++++++++++++++++++++++++++++++++++++++ symbols/lt | 318 ---------------- symbols/lt.in | 320 ++++++++++++++++ 6 files changed, 1383 insertions(+), 1343 deletions(-) delete mode 100644 symbols/fr create mode 100644 symbols/fr.in delete mode 100644 symbols/lt create mode 100644 symbols/lt.in diff --git a/configure.in b/configure.in index d045efd..89710c4 100644 --- a/configure.in +++ b/configure.in @@ -24,6 +24,11 @@ AC_ARG_ENABLE( compat_rules, enable_compat_rules="$enableval", enable_compat_rules="yes" ) +AC_ARG_ENABLE( non_free, + [ --disable-non-free do not install layouts with non-free licenses], + disable_non_free="yes", + disable_non_free="no" ) + # xkeyboard-config does not have build-time dependencies. However, it does # have run-time dependencies and keyboard layouts may not work without the # right libX11 or xproto installed. @@ -56,6 +61,8 @@ AM_CONDITIONAL(CREATE_RULES_SYMLINK, test "x$xkb_rules_symlink" != "x") AM_CONDITIONAL(USE_COMPAT_RULES, test "x$enable_compat_rules" = "xyes") +AM_CONDITIONAL(DISABLE_NON_FREE, test "x$disable_non_free" = "xyes") + # **** # i18n # **** diff --git a/symbols/Makefile.am b/symbols/Makefile.am index 67bb0fb..f69d4f6 100644 --- a/symbols/Makefile.am +++ b/symbols/Makefile.am @@ -1,7 +1,31 @@ SUBDIRS = digital_vndr fujitsu_vndr hp_vndr macintosh_vndr nec_vndr nokia_vndr sgi_vndr sony_vndr sun_vndr xfree68_vndr +if DISABLE_NON_FREE +AWK_CMD=" \ + BEGIN { p = 1 }; \ + /BEGIN_NON_FREE/, /END_NON_FREE/ { \ + p = 0 \ + }; \ + { \ + if (p) \ + print; \ + p = 1; \ + };" +else +AWK_CMD="\ + ! /BEGIN_NON_FREE/ && ! /END_NON_FREE/ { \ + print; \ + }" +endif + +fr: fr.in $(top_builddir)/config.status + awk -- $(AWK_CMD) $< > $@ + +lt: lt.in $(top_builddir)/config.status + awk -- $(AWK_CMD) $< > $@ + symbolsdir = $(xkb_base)/symbols -dist_symbols_DATA = \ +symbols_files = \ ad af al \ am apl ara \ at az \ @@ -12,7 +36,7 @@ ca cd \ ch cn cz \ de dk \ ee es et epo \ -fi fo fr \ +fi fo fr.in \ gb ge gh gn \ gr hr hu \ ie il in iq \ @@ -20,7 +44,7 @@ ir is it jp \ ke kg kh \ kr kz \ la latam latin \ -lk lt lv \ +lk lt.in lv \ ma mao me \ mk ml mm \ mn mt mv \ @@ -36,6 +60,11 @@ za \ altwin capslock compose ctrl empty eurosign rupeesign group inet \ keypad kpdl level3 level5 nbsp olpc shift srvr_ctrl typo -dir_data = $(dist_symbols_DATA) +symbols_DATA = $(symbols_files:.in=) +EXTRA_DIST = $(symbols_files) + +dir_data = $(symbols_DATA) include $(top_srcdir)/xkbrules.am + +CLEANFILES += fr lt diff --git a/symbols/fr b/symbols/fr deleted file mode 100644 index 8bb7213..0000000 --- a/symbols/fr +++ /dev/null @@ -1,1021 +0,0 @@ -// based on a keyboard map from an 'xkb/symbols/fr' file - -partial default alphanumeric_keys -xkb_symbols "basic" { - - include "latin" - - name[Group1]="French"; - - 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 { [ a, A, ae, AE ] }; - key { [ z, Z, guillemotleft, less ] }; - key { [ e, E, EuroSign, cent ] }; - key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; - key { [ dollar, sterling, currency, dead_macron ] }; - - key { [ q, Q, at, Greek_OMEGA ] }; - key { [ m, M, mu, masculine ] }; - key { [ ugrave, percent, dead_circumflex, dead_caron] }; - key { [twosuperior, asciitilde, notsign, notsign ] }; - - key { [ asterisk, mu, dead_grave, dead_breve ] }; - key { [ w, W, lstroke, Lstroke ] }; - key { [ comma, question, dead_acute, dead_doubleacute ] }; - key { [ semicolon, period, horizconnector, multiply ] }; - key { [ colon, slash, periodcentered, division ] }; - key { [ exclam, section, dead_belowdot, dead_abovedot ] }; - - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "olpc" { - // Contact: Sayamindu Dasgupta - include "fr(basic)" - - name[Group1]="French"; - - key { [ z, Z, VoidSymbol, guillemotleft ] }; - - key { [ s, S, VoidSymbol, ssharp ] }; - - key { [ x, X, VoidSymbol, guillemotright ] }; - - key { [ less, greater ] }; -}; - -partial alphanumeric_keys -xkb_symbols "Sundeadkeys" { - - // Modifies the basic French layout to use the Sun dead keys - - include "fr(basic)" - - key { [dead_circumflex, dead_diaeresis ] }; - key { [comma, question, dead_acute, dead_doubleacute ] }; -}; - -partial alphanumeric_keys -xkb_symbols "sundeadkeys" { - include "fr(Sundeadkeys)" - - name[Group1]="French (Sun dead keys)"; -}; - -partial alphanumeric_keys -xkb_symbols "nodeadkeys" { - - // Modifies the basic French layout to eliminate all dead keys - - include "fr(basic)" - - name[Group1]="French (eliminate dead keys)"; - - key { [ equal, plus, braceright, ogonek ] }; - key { [asciicircum, diaeresis ] }; - key { [ dollar, sterling, currency, macron ] }; - key { [ ugrave, percent, asciicircum, caron ] }; - key { [ asterisk, mu, grave, breve ] }; - key { [ comma, question, acute, doubleacute ] }; - key { [ exclam, section, dead_belowdot, abovedot ] }; -}; - - -// Unicode French derivative -// Loose refactoring of the historic Linux French keyboard layout -// -// Copyright © 2006-2008 Nicolas Mailhot -// -// Credits (fr-latin1, fr-latin0, fr-latin9) -// © 199x-1996 René Cougnenc ✝ -// © 1997-2002 Guylhem Aznar -// © 2003-2006 Nicolas Mailhot -// -// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ -// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ -// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ -// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ -// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ -// ┃Tab ↹ ┃ 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 → │ ? … │ . . │ / ∕ │ § − ┃ ┃ -// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ -// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ -// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ -// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ -// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ -partial alphanumeric_keys -xkb_symbols "oss" { - - include "latin" - include "level3(ralt_switch)" - include "nbsp(level4nl)" - include "keypad(oss)" - - name[Group1]="French (alternative)"; - - // First row - key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ - key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ - key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É - key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ - key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) - key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) - key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) - key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È - key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ - key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç - key { [ agrave, 0, at, Agrave ] }; // à 0 @ À - key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ - key { [ equal, plus, braceright, plusminus ] }; // = + } ± - - // Second row - key { [ a, A, ae, AE ] }; // a A æ Æ - key { [ z, Z, acircumflex, Acircumflex ] }; // z Z â  - key { [ e, E, EuroSign, cent ] }; // e E € ¢ - key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê - key { [ t, T, thorn, THORN ] }; // t T þ Þ - key { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ - key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û - key { [ i, I, icircumflex, Icircumflex ] }; // i I î Î - key { [ o, O, oe, OE ] }; // o O œ Œ - key { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô - key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ - key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø - - // Third row - key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä - key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ - key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë - key { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ - key { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ - key { [ h, H, eth, ETH ] }; // h H ð Ð - key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü - key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï - key { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ - key { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö - key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù - key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ - - // Fourth row - key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ - key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ - key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” - key { [ c, C, copyright, registered ] }; // c C © ® - key { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable) - key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ - key { [ n, N, notsign, rightarrow ] }; // n N ¬ → - key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … - key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ - key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ - key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − -}; - -partial alphanumeric_keys -xkb_symbols "oss_latin9" { - - // Restricts the fr(oss) layout to latin9 symbols - - include "fr(oss)" - include "keypad(oss_latin9)" - - name[Group1]="French (alternative, latin-9 only)"; - - // First row - key { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1 ˇ ¸ - key { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~ - key { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _ - key { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ - - key { [ minus, 6, bar, minus ] }; // - 6 | - - key { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \ - key { [ parenright, degree, bracketright, equal ] }; // ) ° ] = - - // Third row - key { [ s, S, ssharp, guillemotleft ] }; // s S ß « - key { [ f, F, apostrophe, apostrophe ] }; // f F ' ' - key { [ g, G, apostrophe, yen ] }; // g G ' ¥ - key { [ l, L, periodcentered, periodcentered ] }; // l L · · - key { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^ - - // Fourth row - key { [ less, greater, less, greater ] }; // < > < > - key { [ w, W, guillemotleft, guillemotleft ] }; // w W « « - key { [ x, X, guillemotright, guillemotright ] }; // x X » » - key { [ v, V, nobreakspace, less ] }; // v V ⍽ < (espace insécable) - key { [ b, B, minus, asciicircum ] }; // b B - ^ - key { [ n, N, notsign, greater ] }; // n N ¬ > - key { [ comma, question, questiondown, period ] }; // , ? ¿ . - key { [ semicolon, period, multiply, periodcentered ] }; // ; . × · - key { [ colon, slash, division, slash ] }; // : / ÷ / - key { [ exclam, section, exclamdown, minus ] }; // ! § ¡ - -}; - -partial alphanumeric_keys -xkb_symbols "oss_Sundeadkeys" { - - // Modifies the basic fr(oss) layout to use the Sun dead keys - - include "fr(oss)" - - // First row - key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ¹ ² ³ ¸ - - // Second row - key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ - - //Third row - key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù - key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ -}; - -partial alphanumeric_keys -xkb_symbols "oss_sundeadkeys" { - - include "fr(oss_Sundeadkeys)" - - name[Group1]="French (alternative, Sun dead keys)"; -}; - -partial alphanumeric_keys -xkb_symbols "oss_nodeadkeys" { - - // Modifies the basic fr(oss) layout to eliminate all dead keys - - include "fr(oss)" - - name[Group1]="French (alternative, eliminate dead keys)"; - - key { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸ - key { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨ - key { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘ - - // Second row - key { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å - key { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù - key { [ asterisk, mu, grave, macron ] }; // * µ ` ̄ -}; - - -// Historic Linux French keyboard layout (fr-latin9) -// Copyright (c) 199x, 2002 Rene Cougnenc (original work) -// Guylhem Aznar (maintainer) -// Nicolas Mailhot -// (XFree86 submission) -// -// This layout has long been distributed and refined outside official channels. -// To this day it remains more feature-rich and popular than the 'fr' layout. -// -// This file is derived from an original version by Guylhem Aznar. The -// original version is always available from: -// http://en.tldp.org/HOWTO/Francophones-HOWTO.html -// and is distributed under a GPL license. -// -// The author has given permission for this derived version to be distributed -// under the standard XFree86 license. He would like all changes to this -// version be send to him at so he can sync the -// identically named linux console map (kbd, linux-console) and this -// fileout-of-tree GPL version. -// -// Now follows the keyboard design description in French. -// (If you can't read it you probably have no business changing this file anyway:) -// -// Les accents circonflexes des principales voyelles sont obtenus avec -// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. -// -// ____ _________ _____________ _______ -// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | -// | s a| s = normal, a = AltGr | Exec | | Halte | -// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ -// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ -// | œ "| 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 | -// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ -// -// -// Si les touches mortes fonctionnent, utiliser les accents dits -// « morts », i.e. fonctionnant comme l'accent circonflexe & le -// tréma des machines à écrire ; sont disponibles : -// -// (^) : accent circonflexe, -// Shift+(^) : tréma, -// Shift+AltGr (^) : tilde, -// AltGr (1) : accent aigu, -// AltGr (7) : accent grave -// -// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma -// sur les vielles machines à écrire : -// -// AltGr (1) puis e : é -// Shift+AltGr (1) puis e : É ... -partial alphanumeric_keys - -xkb_symbols "latin9" { - - include "latin" - include "nbsp(level3)" - - name[Group1]="French (legacy, alternative)"; - - key { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] }; - key { [ ampersand, 1, dead_acute, periodcentered ] }; - key { [ eacute, 2, asciitilde, Eacute ] }; - key { [ quotedbl, 3, numbersign, cedilla ] }; - key { [ apostrophe, 4, braceleft, acute ] }; - key { [ parenleft, 5, bracketleft, diaeresis ] }; - key { [ minus, 6, bar, brokenbar ] }; - key { [ egrave, 7, dead_grave, Egrave ] }; - key { [ underscore, 8, backslash, macron ] }; - key { [ ccedilla, 9, asciicircum, Ccedilla ] }; - key { [ agrave, 0, at, Agrave ] }; - key { [ parenright, degree, bracketright, ydiaeresis ] }; - key { [ equal, plus, braceright, dead_abovering ] }; - - key { [ a, A, acircumflex, adiaeresis ] }; - key { [ z, Z, aring, Aring ] }; - key { [ e, E, EuroSign, cent ] }; - key { [ r, R, ccedilla, Ccedilla ] }; - key { [ t, T, thorn, THORN ] }; - key { [ y, Y, yacute, Yacute ] }; - key { [ u, U, ucircumflex, udiaeresis ] }; - key { [ i, I, icircumflex, idiaeresis ] }; - key { [ o, O, ocircumflex, odiaeresis ] }; - key { [ p, P, paragraph, quoteleft ] }; - key { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] }; - key { [ dollar, sterling, ecircumflex, ediaeresis ] }; - - key { [ q, Q, Acircumflex, Adiaeresis ] }; - key { [ s, S, oslash, Ooblique ] }; - key { [ d, D, Ecircumflex, Ediaeresis ] }; - key { [ f, F, plusminus, ordfeminine ] }; - key { [ g, G, ae, AE ] }; - key { [ h, H, eth, ETH ] }; - key { [ j, J, Ucircumflex, Udiaeresis ] }; - key { [ k, K, Icircumflex, Idiaeresis ] }; - key { [ l, L, Ocircumflex, Odiaeresis ] }; - key { [ m, M, onesuperior, masculine ] }; - key { [ ugrave, percent, twosuperior, Ugrave ] }; - key { [ asterisk, mu, threesuperior, yen ] }; - - key { [ less, greater, bar ] }; - key { [ w, W, guillemotleft ] }; - key { [ x, X, guillemotright ] }; - key { [ c, C, copyright ] }; - key { [ v, V, registered ] }; - key { [ b, B, ssharp ] }; - key { [ n, N, notsign ] }; - key { [ comma, question, questiondown ] }; - key { [ semicolon, period, multiply ] }; - key { [ colon, slash, division ] }; - key { [ exclam, section, exclamdown ] }; - - // French uses a comma as decimal separator, but keyboards are labeled with a period - // Will take effect when KP_Decimal is mapped to the locale decimal separator - key { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] }; - - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "latin9_Sundeadkeys" { - - // Modifies the basic fr-latin9 layout to use the Sun dead keys - - include "fr(latin9)" - - key { [ ampersand, 1, dead_acute, periodcentered ] }; - key { [ egrave, 7, dead_grave, Egrave ] }; - key { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] }; - -}; - -partial alphanumeric_keys -xkb_symbols "latin9_sundeadkeys" { - - include "fr(latin9_Sundeadkeys)" - - name[Group1]="French (legacy, alternative, Sun dead keys)"; -}; - -partial alphanumeric_keys -xkb_symbols "latin9_nodeadkeys" { - - // Modifies the basic fr-latin9 layout to eliminate all dead keys - - include "fr(latin9)" - - name[Group1]="French (legacy, alternative, eliminate dead keys)"; - - key { [ ampersand, 1, apostrophe, periodcentered ] }; - key { [ egrave, 7, grave, Egrave ] }; - key { [ equal, plus, braceright ] }; - key { [ asciicircum, diaeresis, asciitilde, quoteright ] }; -}; - -// Bépo : Improved ergonomic french keymap using Dvorak method. -// Built by community on 'Dvorak Fr / Bépo' : -// see http://www.clavier-dvorak.org/wiki/ to join and help. -// XOrg integration (1.0rc2 version) in 2008 -// by Frédéric Boiteux -// -// Bépo layout (1.0rc2 version) for a pc105 keyboard (french) : -// ┌────┐ -// │ S A│ S = Shift, A = AltGr + Shift -// │ s a│ s = normal, a = AltGr -// └────┘ -// -// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ -// │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6 │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃ -// │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃ arrière┃ -// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ -// ┃ ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ ! │ V │ D Ð │ L │ J IJ │ Z Ə │ W ┃Entrée ┃ -// ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃ -// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ -// ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃ -// ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃ -// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ -// ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃ -// ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧ ┃ -// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ -// ┃ ┃ ┃ ┃ Espace inséc. Espace inséc. fin ┃ ┃ ┃ ┃ -// ┃Ctrl ┃Meta ┃Alt ┃ ␣ (Espace) _ ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ -// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ -partial alphanumeric_keys -xkb_symbols "bepo" { - - include "level3(ralt_switch)" - include "keypad(oss)" - - name[Group1]= "French (Bepo, ergonomic, Dvorak way)"; - - // First row - key { [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ - key { [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ - key { [ percent, grave, U2030, seconds ] }; // % ` ‰ ″ - - // Second row - key { [ b, B, bar, brokenbar ] }; // b B | ¦ - key { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ˊ ˝ - key { [ p, P, ampersand, section ] }; // p P & § - key { [ o, O, oe, OE ] }; // o O œ Œ - key { [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` - key { [ dead_circumflex, exclam, exclamdown ] }; // ^ ! ¡ - key { [ v, V, dead_caron ] }; // v V ˇ - key { [ d, D, eth, ETH ] }; // d D ð Ð - key { [ l, L, dead_stroke ] }; // l L / - key { [ j, J, U0133, U0132 ] }; // j J ij IJ - key { [ z, Z, schwa, SCHWA ] }; // z Z ə Ə - key { [ w, W, dead_breve ] }; // w W ̆ - - // Third row - key { [ a, A, ae, AE ] }; // a A æ Æ - key { [ u, U, ugrave, Ugrave ] }; // u U ù Ù - key { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ̈ ˙ - key { [ e, E, EuroSign, dead_currency ] }; // e E € ¤ - key { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛ - key { [ c, C, copyright, U017F ] }; // c C © ſ - key { [ t, T, thorn, THORN ] }; // t T þ Þ - key { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ - key { [ r, R, registered, trademark ] }; // r R ® ™ - key { [ n, N, dead_tilde ] }; // n N ~ - key { [ m, M, dead_macron, masculine ] }; // m M ̄ º - key { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ç Ç ¸ , - - // Fourth row - key { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê / - key { [ agrave, Agrave, backslash ] }; // à À \ - key { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ - key { [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ - key { [ period, colon, ellipsis, periodcentered ] }; // . : … · - key { [ k, K, asciitilde ] }; // k K ~ - key { [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉ - key { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣ - key { [ g, G, mu ] }; // g G µ - key { [ h, H, dagger, doubledagger ] }; // h H † ‡ - key { [ f, F, dead_ogonek, ordfeminine ] }; // f F ̨ ª - - key { [ space, nobreakspace, underscore, U202F ] }; // ␣ (espace insécable) _ (espace insécable fin) -}; - -partial alphanumeric_keys -xkb_symbols "bepo_latin9" { - - // Restricts the fr(bepo) layout to latin9 symbols - - include "fr(bepo)" - include "keypad(oss_latin9)" - - name[Group1]="French (Bepo, ergonomic, Dvorak way, latin-9 only)"; - - key { [ dollar, numbersign, dollar, paragraph ] }; // $ # $ ¶ - - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1 - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // « 2 < - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // » 3 > - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [ - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ] - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 - ¼ - key { [ equal, degree ] }; // = ° - key { [ percent, grave ] }; // % ` - - key { [ b, B, bar ] }; // b B | - key { [ eacute, Eacute, dead_acute ] }; // é É ˊ - key { [ j, J ] }; // j J - key { [ z, Z ] }; // z Z - key { [ w, W ] }; // w W - - key { [ i, I, dead_diaeresis ] }; // i I ̈ - key { [ comma, semicolon, comma, dead_horn ] }; // , ; , ̛ - key { [ c, C, copyright ] }; // c C © - key { [ s, S, ssharp ] }; // s S ß - key { [ r, R, registered ] }; // r R ® - key { [ m, M, macron, masculine ] }; // m M ̄ º - - key { [ y, Y, braceleft ] }; // y Y { - key { [ x, X, braceright ] }; // x X } - key { [ period, colon ] }; // . : - key { [ h, H ] }; // h H - key { [ f, F, f, ordfeminine ] }; // f F ª - - // Note : on a besoin de redéfinir les niveaux 3 et 4, - // donc nbsp(level2) ne suffit pas ! - key { [ space, nobreakspace, underscore, nobreakspace ] }; // ␣ (espace insécable) _ (espace insécable) -}; - -// Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html -// thanks to Fabien Cazenave for his help -// Licence : X11 (the layout itself is released under CC-NC-ND licence) -// Version : 0.3 - -// Base layer + dead AltGr key (`): -// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ -// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ -// │ _ │ = │ / ± │ - ¼ │ è ½ │ \ ¾ │ ^ │ ( │ ` ` │ ) │ " │ [ │ ] ┃ ⌫ ┃ -// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ -// ┃ ┃ ? Æ │ < │ > │ G │ ! │ H │ V │ C Ç │ M │ K │ Z │ & ┃ ┃ -// ┃ ↹ ┃ : æ │ ' $ │ é É │ g € │ . ° │ h │ v │ c ç │ m µ │ k │ z │ ¨ ┃ ┃ -// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ -// ┃ ┃ O Ò │ A À │ U Ù │ E È │ B │ F │ S │ T │ N │ D │ W │ # ┃ ┃ -// ┃ ⇬ ┃ o ò │ a à │ u ù │ e è │ b │ f │ s « │ t │ n » │ d │ w │ ~ ┃ ┃ -// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ -// ┃ ┃ ç Ç │ | Œ │ Q │ @ │ I Ì │ Y │ X │ R │ L │ P │ J ┃ ┃ -// ┃ ⇧ ┃ à À │ ; œ │ q { │ , } │ i ì │ y £ │ x │ r º │ l │ p § │ j ┃ ⇧ ┃ -// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ -// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ -// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ -// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ - -// Notice the specific Caps_Lock layer: -// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ -// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ -// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ ┃ -// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ -// ┃ ┃ │ < │ > │ │ │ │ │ │ │ │ │ ┃ ┃ -// ┃ ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ -// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ -// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ -// ┃ ⇬ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ -// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ -// ┃ ┃ / │ - │ │ │ │ │ │ │ │ │ ┃ ┃ -// ┃ ⇧ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⇧ ┃ -// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ -// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ -// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ -// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ - -partial alphanumeric_keys modifier_keys -xkb_symbols "dvorak" { - name[Group1]="French (Dvorak)"; - - // First row - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] }; - - // Second row - key { [ colon, question, ae, AE ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] }; - key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] }; - key { [ g, G, EuroSign ] }; - key { [ period, exclam, degree ] }; - key { [ h, H ] }; - key { [ v, V ] }; - key { [ c, C, ccedilla, Ccedilla ] }; - key { [ m, M, mu ] }; - key { [ k, K ] }; - key { [ z, Z ] }; - key { [ dead_diaeresis, ampersand ] }; - - // Third row - key { [ o, O, ograve, Ograve ] }; - key { [ a, A, agrave, Agrave ] }; - key { [ u, U, ugrave, Ugrave ] }; - key { [ e, E, egrave, Egrave ] }; - key { [ b, B ] }; - key { [ f, F ] }; - key { [ s, S, guillemotleft ] }; - key { [ t, T ] }; - key { [ n, N, guillemotright ] }; - key { [ d, D ] }; - key { [ w, W ] }; - key { [ asciitilde, numbersign ] }; - - // Fourth row - key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] }; - key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] }; - key { [ q, Q, braceleft ] }; - key { [ comma, at, braceright ] }; - key { [ i, I, igrave, Igrave ] }; - key { [ y, Y, sterling ] }; - key { [ x, X ] }; - key { [ r, R, masculine ] }; - key { [ l, L ] }; - key { [ p, P, section ] }; - key { [ j, J ] }; - - key { [ space, space, nobreakspace, nobreakspace ] }; -}; - -// C'WHERTY: Breton keyboard. Ar c'hlavier brezhoneg. -// Copyright © 2009 Dominique Pellé -// Version: 0.1 -// -// ┌────┐ -// │ S A│ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift -// │ s a│ s = normal, a = AltGr -// └────┘ -// -// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ -// │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃ -// │ ² ˙ │ & ¯ │ é ´ │ " # │ ' { │ ( [ │ - | │ è ` │ - \ │ ç ± │ à @ │ ) ] │ = } ┃ ┃ -// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ -// ┃Toalenn┃ C'h │ W ω │ E ε │ R ρ │ T τ │ Y ψ │ U υ │ I ι │ O OE│ P π │ ¨ ¥ │ * £ ┃Enankañ┃ -// ┃ ↹ ┃ c'h │ w │ e € │ r │ t │ y │ u │ i ı │ o oe│ p │ ^ « │ / » ┃ ⏎ ┃ -// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ -// ┃Prenn ┃ A Æ │ S σ │ D δ │ F φ │ G γ │ H η │ J ς │ K κ │ L λ │ M μ │ Ù ® │ ! ¡ ┃ ┃ -// ┃Pennli ⇬┃ a æ │ s │ d $ │ f │ g │ h │ j │ k │ l │ m │ ù ŭ │ ? ¿ ┃ ┃ -// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ -// ┃ ┃ Q θ │ Z ζ │ X ξ │ C χ │ V │ B β │ N ν │ CH │ Ñ │ : © │ ; ┃ ┃ -// ┃Shift ⇧┃ q < │ z > │ x │ c ¢ │ v │ b │ n │ ch │ ñ │ . │ , ┃Shift ⇧ ┃ -// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ -// ┃ ┃ ┃ ┃ ⍽ Espace insécable ␣ ┃ ┃ ┃ ┃ -// ┃Reol ┃Meta ┃Erl ┃ ␣ Espace ␣ ┃ArErl ⇮┃Menu ┃Reol ┃ -// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ -partial alphanumeric_keys -xkb_symbols "bre" { - - include "keypad(oss)" - - name[Group1]= "French (Breton)"; - - // First row - key { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] }; - key { [ ampersand, 1, dead_macron, Greek_DELTA ] }; - key { [ eacute, 2, dead_acute, Greek_THETA ] }; - key { [ quotedbl, 3, numbersign, Greek_LAMDA ] }; - key { [ apostrophe, 4, braceleft, Greek_XI ] }; - key { [ parenleft, 5, bracketleft, Greek_PI ] }; - key { [ minus, 6, bar, Greek_SIGMA ] }; - key { [ egrave, 7, dead_grave, Greek_PHI ] }; - key { [ underscore, 8, backslash, Greek_PSI ] }; - key { [ ccedilla, 9, plusminus, Ccedilla ] }; - key { [ agrave, 0, at, Greek_OMEGA ] }; - key { [ parenright, dead_abovering, bracketright, ssharp ] }; - key { [ equal, plus, braceright, notsign ] }; - - // Second row - // Handling the C'H key correctly requires an inputmethod (XIM) - // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 - // key { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] }; - key { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] }; - key { [ w, W, Greek_omega, Greek_omega ] }; - key { [ e, E, EuroSign, Greek_epsilon ] }; - key { [ r, R, Greek_rho, Greek_rho ] }; - key { [ t, T, Greek_tau, Greek_tau ] }; - key { [ y, Y, Greek_psi, Greek_psi ] }; - key { [ u, U, Greek_upsilon, Greek_upsilon ] }; - key { [ i, I, idotless, Greek_iota ] }; - key { [ o, O, oe, OE ] }; - key { [ p, P, Greek_pi, Greek_pi ] }; - key { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] }; - key { [ slash, asterisk, guillemotright, sterling ] }; - - // Third row - key { [ a, A, ae, AE ] }; - key { [ s, S, Greek_sigma, Greek_sigma ] }; - key { [ d, D, dollar, Greek_delta ] }; - key { [ f, F, Greek_phi, Greek_phi ] }; - key { [ g, G, Greek_gamma, Greek_gamma ] }; - key { [ h, H, Greek_eta, Greek_eta ] }; - key { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] }; - key { [ k, K, Greek_kappa, Greek_kappa ] }; - key { [ l, L, Greek_lamda, Greek_lambda ] }; - key { [ m, M, Greek_mu, Greek_mu ] }; - key { [ ugrave, Ugrave, ubreve, registered ] }; - key { [ question, exclam, questiondown, exclamdown ] }; - - // Fourth row - key { [ q, Q, less, Greek_theta ] }; - key { [ z, Z, greater, Greek_zeta ] }; - key { [ x, X, Greek_xi, Greek_xi ] }; - key { [ c, C, cent, Greek_chi ] }; - key { [ v, V ] }; - key { [ b, B, Greek_beta, Greek_beta ] }; - key { [ n, N, Greek_nu, Greek_nu ] }; - // Handling the CH key correctly requires an inputmethod (XIM) - // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 - // key { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] }; - key { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] }; - key { [ ntilde, Ntilde ] }; - key { [ period, colon, section, copyright ] }; - key { [ comma, semicolon, percent ] }; - - key { [ space, nobreakspace, space, nobreakspace ] }; - - include "level3(ralt_switch)" -}; - -// Occitan layout -// Author : 2009 Thomas Metz -// Derivated from the layout defined at http://www.panoccitan.org -// Version: 0.1 -// From OSS french keyboard : -// - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ -// - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë -// -// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ -// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ -// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ -// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ -// ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃ -// ┃Tab ↹ ┃ 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 Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃ -// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v → │ b ↓ │ n ñ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ -// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ -// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ -// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ -// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ -partial alphanumeric_keys -xkb_symbols "oci" { - - include "keypad(oss)" - - name[Group1]= "Occitan"; - - // First row - key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ - key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ - key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É - key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ - key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) - key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) - key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) - key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È - key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ - key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç - key { [ agrave, 0, at, Agrave ] }; // à 0 @ À - key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ - key { [ equal, plus, braceright, plusminus ] }; // = + } ± - - // Second row - key { [ a, A, aacute, Aacute ] }; // a A á Á - key { [ z, Z, ae, AE ] }; // z Z æ Æ - key { [ e, E, EuroSign, cent ] }; // e E € ¢ - key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê - key { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë - key { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û - key { [ u, U, uacute, Uacute ] }; // u U ú Ú - key { [ i, I, iacute, Iacute ] }; // i I í Í - key { [ o, O, oacute, Oacute ] }; // o O ó Ó - key { [ p, P, ograve, Ograve ] }; // p P ò Ò - key { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ - key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø - - // Third row - key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä - key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ - key { [ d, D, acircumflex, Acircumflex ] }; // d D â  - key { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ - key { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ - key { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü - key { [ j, J, icircumflex, Icircumflex] }; // j J î Î - key { [ k, K, idiaeresis, Idiaeresis] }; // k K ï Ï - key { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô - key { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö - key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù - key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ - - // Fourth row - key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ - key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ - key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” - key { [ c, C, copyright, registered ] }; // c C © ® - key { [ v, V, rightarrow, leftarrow ] }; // v V → ← - key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ - key { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ - key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … - key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ - key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ - key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − -}; - -// Marc.Shapiro@inria.fr 19-sep-1998 -// modifications : Etienne Herlent june 2000 -// adapted to the new input layer : -// Martin Costabel 3-jan-2001 -// adapted for Latin9 alphabet (ISO-8859-15): -// Etienne Herlent march 2005 - -// This map is an almost-complete mapping of the standard French -// MacIntosh keyboard under Xwindows. I tried to remain as faithful -// as possible to the Mac meaning of each key. I did this entirely by -// hand and by intuition, relying on the Clavier (Keyboard?) Desktop -// Accessory for the Mac meaning of keys, and on reading keysymdef.h -// to intuit the corresponding X names. Lacking proper documentation, -// I may have made some mistakes. - -// Entries marked CHECK are particularly uncertain - -// Entries marked MISSING mark Mac characters for which I was unable -// to find a corresponding keysym. (Some for sure don't: e.g. the -// Apple mark and the oe/OE character; others I may have simply not -// found.) - -// Copied from macintosh_vndr/fr -partial alphanumeric_keys -xkb_symbols "mac" { - - name[Group1]= "French (Macintosh)"; - - // Alphanumeric section - key { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 - key { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple - key { [ eacute, 2, ediaeresis, Eacute ] }; - key { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks - key { [ apostrophe, 4, VoidSymbol, VoidSymbol ] }; - key { [ parenleft, 5, braceleft, bracketleft ] }; - // CHECK section - key { [ section, 6, paragraph, aring ] }; - key { [ egrave, 7, guillemotleft, guillemotright ] }; - key { [ exclam, 8, exclamdown, Ucircumflex ] }; - key { [ ccedilla, 9, Ccedilla, Aacute ] }; - key { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash - key { [ parenright, degree, braceright, bracketright ] }; - key { [ minus, underscore, emdash, endash ] }; // CHECK dashes - - key { [ a, A, ae, AE ] }; - key { [ z, Z, Acircumflex, Aring ] }; - key { [ e, E, ecircumflex, Ecircumflex ] }; - key { [ r, R, registered, currency ] }; - key { [ t, T, VoidSymbol, VoidSymbol ] }; - key { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 - key { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine? - key { [ i, I, icircumflex, idiaeresis ] }; - key { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9 - key { [ p, P, VoidSymbol, VoidSymbol ] }; - key { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] }; - key { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9 - - key { [ q, Q, acircumflex, Agrave ] }; - key { [ s, S, Ograve, VoidSymbol ] }; - key { [ d, D, VoidSymbol, VoidSymbol ] }; - key { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f?? - key { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl - key { [ h, H, Igrave, Icircumflex ] }; - key { [ j, J, Idiaeresis, Iacute ] }; - key { [ k, K, Egrave, Ediaeresis ] }; - key { [ l, L, notsign, bar ] }; - key { [ m, M, mu, Oacute ] }; - key { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille - key { [ dead_grave, sterling, at, numbersign ] }; - - key { [ less, greater, VoidSymbol, VoidSymbol ] }; - key { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket) - key { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash - key { [ c, C, copyright, cent ] }; - key { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical - key { [ b, B, ssharp, VoidSymbol ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s - key { [ n, N, dead_tilde, asciitilde ] }; - key { [ comma, question, VoidSymbol, questiondown ] }; - key { [ semicolon, period, VoidSymbol, periodcentered ] }; - key { [ colon, slash, division, backslash ] }; - key { [ equal, plus, VoidSymbol, plusminus ] }; - - key { [ space, space, nobreakspace, nobreakspace ] }; - // End alphanumeric section - - key { [ comma,KP_Decimal ] }; - - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "geo" { - include "ge(basic)" - - name[Group1]= "Georgian (France, AZERTY Tskapo)"; - - key { [ exclam, noSymbol ] }; - key { [ 0x0100201e, 1 ] }; - key { [ 0x01002116, 2 ] }; - key { [ percent, 3 ] }; - key { [ parenleft, 4 ] }; - key { [ colon, 5 ] }; - key { [ semicolon, 6 ] }; - key { [ question, 7 ] }; - key { [ 0x01002116, 8 ] }; - key { [ degree, 9 ] }; - key { [ parenright, 0 ] }; - key { [ minus, underscore, 0x01002014 ] }; - key { [ less, greater ] }; - - key { [ 0x010010d0, 0x010010fa ] }; - key { [ 0x010010d6, Z ] }; - key { [ 0x010010d4, E, 0x010010f1 ] }; - key { [ 0x010010e0, 0x010000ae ] }; - key { [ 0x010010e2, T ] }; - key { [ 0x010010e7, 0x010010f8 ] }; - key { [ 0x010010e3, U ] }; - key { [ 0x010010d8, 0x010010f2 ] }; - key { [ 0x010010dd, O ] }; - key { [ 0x010010de, P ] }; - key { [ 0x010010d7, T ] }; - key { [ 0x010010eb, Z ] }; - - key { [ 0x010010e5, Q ] }; - key { [ 0x010010e1, S ] }; - key { [ 0x010010d3, D ] }; - key { [ 0x010010e4, 0x010010f6 ] }; - key { [ 0x010010d2, 0x010010f9 ] }; - key { [ 0x010010f0, 0x010010f5 ] }; - key { [ 0x010010ef, 0x010010f7 ] }; - key { [ 0x010010d9, K ] }; - key { [ 0x010010da, L ] }; - key { [ 0x010010db, M ] }; - key { [ 0x010010df, J ] }; - key { [ 0x010010e9, 0x010000a9 ] }; - - key { [ guillemotleft,guillemotright ] }; - key { [ 0x010010ec, W ] }; - key { [ 0x010010ee, 0x010010f4 ] }; - key { [ 0x010010ea, 0x010000a9 ] }; - key { [ 0x010010d5, 0x010010f3 ] }; - key { [ 0x010010d1, B ] }; - key { [ 0x010010dc, 0x010010fc ] }; - key { [ comma, 0x01002014 ] }; - key { [ 0x010010e8, S ] }; - key { [ 0x010010e6, noSymbol ] }; - key { [ 0x010010ed, noSymbol ] }; - -}; diff --git a/symbols/fr.in b/symbols/fr.in new file mode 100644 index 0000000..cc3326a --- /dev/null +++ b/symbols/fr.in @@ -0,0 +1,1023 @@ +// based on a keyboard map from an 'xkb/symbols/fr' file + +partial default alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + name[Group1]="French"; + + 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 { [ a, A, ae, AE ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ e, E, EuroSign, cent ] }; + key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; + key { [ dollar, sterling, currency, dead_macron ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ m, M, mu, masculine ] }; + key { [ ugrave, percent, dead_circumflex, dead_caron] }; + key { [twosuperior, asciitilde, notsign, notsign ] }; + + key { [ asterisk, mu, dead_grave, dead_breve ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ comma, question, dead_acute, dead_doubleacute ] }; + key { [ semicolon, period, horizconnector, multiply ] }; + key { [ colon, slash, periodcentered, division ] }; + key { [ exclam, section, dead_belowdot, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + // Contact: Sayamindu Dasgupta + include "fr(basic)" + + name[Group1]="French"; + + key { [ z, Z, VoidSymbol, guillemotleft ] }; + + key { [ s, S, VoidSymbol, ssharp ] }; + + key { [ x, X, VoidSymbol, guillemotright ] }; + + key { [ less, greater ] }; +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // Modifies the basic French layout to use the Sun dead keys + + include "fr(basic)" + + key { [dead_circumflex, dead_diaeresis ] }; + key { [comma, question, dead_acute, dead_doubleacute ] }; +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "fr(Sundeadkeys)" + + name[Group1]="French (Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // Modifies the basic French layout to eliminate all dead keys + + include "fr(basic)" + + name[Group1]="French (eliminate dead keys)"; + + key { [ equal, plus, braceright, ogonek ] }; + key { [asciicircum, diaeresis ] }; + key { [ dollar, sterling, currency, macron ] }; + key { [ ugrave, percent, asciicircum, caron ] }; + key { [ asterisk, mu, grave, breve ] }; + key { [ comma, question, acute, doubleacute ] }; + key { [ exclam, section, dead_belowdot, abovedot ] }; +}; + + +// Unicode French derivative +// Loose refactoring of the historic Linux French keyboard layout +// +// Copyright © 2006-2008 Nicolas Mailhot +// +// Credits (fr-latin1, fr-latin0, fr-latin9) +// © 199x-1996 René Cougnenc ✝ +// © 1997-2002 Guylhem Aznar +// © 2003-2006 Nicolas Mailhot +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ +// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ +// ┃Tab ↹ ┃ 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 → │ ? … │ . . │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "oss" { + + include "latin" + include "level3(ralt_switch)" + include "nbsp(level4nl)" + include "keypad(oss)" + + name[Group1]="French (alternative)"; + + // First row + key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ + key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ + key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É + key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ + key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) + key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) + key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) + key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È + key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç + key { [ agrave, 0, at, Agrave ] }; // à 0 @ À + key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ + key { [ equal, plus, braceright, plusminus ] }; // = + } ± + + // Second row + key { [ a, A, ae, AE ] }; // a A æ Æ + key { [ z, Z, acircumflex, Acircumflex ] }; // z Z â  + key { [ e, E, EuroSign, cent ] }; // e E € ¢ + key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê + key { [ t, T, thorn, THORN ] }; // t T þ Þ + key { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ + key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û + key { [ i, I, icircumflex, Icircumflex ] }; // i I î Î + key { [ o, O, oe, OE ] }; // o O œ Œ + key { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô + key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ + key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø + + // Third row + key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä + key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ + key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë + key { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ + key { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ + key { [ h, H, eth, ETH ] }; // h H ð Ð + key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü + key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï + key { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ + key { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö + key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ + + // Fourth row + key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ + key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ + key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” + key { [ c, C, copyright, registered ] }; // c C © ® + key { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable) + key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ + key { [ n, N, notsign, rightarrow ] }; // n N ¬ → + key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … + key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ + key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ + key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − +}; + +partial alphanumeric_keys +xkb_symbols "oss_latin9" { + + // Restricts the fr(oss) layout to latin9 symbols + + include "fr(oss)" + include "keypad(oss_latin9)" + + name[Group1]="French (alternative, latin-9 only)"; + + // First row + key { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1 ˇ ¸ + key { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~ + key { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _ + key { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ - + key { [ minus, 6, bar, minus ] }; // - 6 | - + key { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \ + key { [ parenright, degree, bracketright, equal ] }; // ) ° ] = + + // Third row + key { [ s, S, ssharp, guillemotleft ] }; // s S ß « + key { [ f, F, apostrophe, apostrophe ] }; // f F ' ' + key { [ g, G, apostrophe, yen ] }; // g G ' ¥ + key { [ l, L, periodcentered, periodcentered ] }; // l L · · + key { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^ + + // Fourth row + key { [ less, greater, less, greater ] }; // < > < > + key { [ w, W, guillemotleft, guillemotleft ] }; // w W « « + key { [ x, X, guillemotright, guillemotright ] }; // x X » » + key { [ v, V, nobreakspace, less ] }; // v V ⍽ < (espace insécable) + key { [ b, B, minus, asciicircum ] }; // b B - ^ + key { [ n, N, notsign, greater ] }; // n N ¬ > + key { [ comma, question, questiondown, period ] }; // , ? ¿ . + key { [ semicolon, period, multiply, periodcentered ] }; // ; . × · + key { [ colon, slash, division, slash ] }; // : / ÷ / + key { [ exclam, section, exclamdown, minus ] }; // ! § ¡ - +}; + +partial alphanumeric_keys +xkb_symbols "oss_Sundeadkeys" { + + // Modifies the basic fr(oss) layout to use the Sun dead keys + + include "fr(oss)" + + // First row + key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ¹ ² ³ ¸ + + // Second row + key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ + + //Third row + key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ +}; + +partial alphanumeric_keys +xkb_symbols "oss_sundeadkeys" { + + include "fr(oss_Sundeadkeys)" + + name[Group1]="French (alternative, Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "oss_nodeadkeys" { + + // Modifies the basic fr(oss) layout to eliminate all dead keys + + include "fr(oss)" + + name[Group1]="French (alternative, eliminate dead keys)"; + + key { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸ + key { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨ + key { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘ + + // Second row + key { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å + key { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, grave, macron ] }; // * µ ` ̄ +}; + + +// Historic Linux French keyboard layout (fr-latin9) +// Copyright (c) 199x, 2002 Rene Cougnenc (original work) +// Guylhem Aznar (maintainer) +// Nicolas Mailhot +// (XFree86 submission) +// +// This layout has long been distributed and refined outside official channels. +// To this day it remains more feature-rich and popular than the 'fr' layout. +// +// This file is derived from an original version by Guylhem Aznar. The +// original version is always available from: +// http://en.tldp.org/HOWTO/Francophones-HOWTO.html +// and is distributed under a GPL license. +// +// The author has given permission for this derived version to be distributed +// under the standard XFree86 license. He would like all changes to this +// version be send to him at so he can sync the +// identically named linux console map (kbd, linux-console) and this +// fileout-of-tree GPL version. +// +// Now follows the keyboard design description in French. +// (If you can't read it you probably have no business changing this file anyway:) +// +// Les accents circonflexes des principales voyelles sont obtenus avec +// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. +// +// ____ _________ _____________ _______ +// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | +// | s a| s = normal, a = AltGr | Exec | | Halte | +// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ +// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ +// | œ "| 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 | +// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ +// +// +// Si les touches mortes fonctionnent, utiliser les accents dits +// « morts », i.e. fonctionnant comme l'accent circonflexe & le +// tréma des machines à écrire ; sont disponibles : +// +// (^) : accent circonflexe, +// Shift+(^) : tréma, +// Shift+AltGr (^) : tilde, +// AltGr (1) : accent aigu, +// AltGr (7) : accent grave +// +// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma +// sur les vielles machines à écrire : +// +// AltGr (1) puis e : é +// Shift+AltGr (1) puis e : É ... +partial alphanumeric_keys + +xkb_symbols "latin9" { + + include "latin" + include "nbsp(level3)" + + name[Group1]="French (legacy, alternative)"; + + key { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] }; + key { [ ampersand, 1, dead_acute, periodcentered ] }; + key { [ eacute, 2, asciitilde, Eacute ] }; + key { [ quotedbl, 3, numbersign, cedilla ] }; + key { [ apostrophe, 4, braceleft, acute ] }; + key { [ parenleft, 5, bracketleft, diaeresis ] }; + key { [ minus, 6, bar, brokenbar ] }; + key { [ egrave, 7, dead_grave, Egrave ] }; + key { [ underscore, 8, backslash, macron ] }; + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; + key { [ agrave, 0, at, Agrave ] }; + key { [ parenright, degree, bracketright, ydiaeresis ] }; + key { [ equal, plus, braceright, dead_abovering ] }; + + key { [ a, A, acircumflex, adiaeresis ] }; + key { [ z, Z, aring, Aring ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ r, R, ccedilla, Ccedilla ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, ucircumflex, udiaeresis ] }; + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O, ocircumflex, odiaeresis ] }; + key { [ p, P, paragraph, quoteleft ] }; + key { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] }; + key { [ dollar, sterling, ecircumflex, ediaeresis ] }; + + key { [ q, Q, Acircumflex, Adiaeresis ] }; + key { [ s, S, oslash, Ooblique ] }; + key { [ d, D, Ecircumflex, Ediaeresis ] }; + key { [ f, F, plusminus, ordfeminine ] }; + key { [ g, G, ae, AE ] }; + key { [ h, H, eth, ETH ] }; + key { [ j, J, Ucircumflex, Udiaeresis ] }; + key { [ k, K, Icircumflex, Idiaeresis ] }; + key { [ l, L, Ocircumflex, Odiaeresis ] }; + key { [ m, M, onesuperior, masculine ] }; + key { [ ugrave, percent, twosuperior, Ugrave ] }; + key { [ asterisk, mu, threesuperior, yen ] }; + + key { [ less, greater, bar ] }; + key { [ w, W, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, copyright ] }; + key { [ v, V, registered ] }; + key { [ b, B, ssharp ] }; + key { [ n, N, notsign ] }; + key { [ comma, question, questiondown ] }; + key { [ semicolon, period, multiply ] }; + key { [ colon, slash, division ] }; + key { [ exclam, section, exclamdown ] }; + + // French uses a comma as decimal separator, but keyboards are labeled with a period + // Will take effect when KP_Decimal is mapped to the locale decimal separator + key { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "latin9_Sundeadkeys" { + + // Modifies the basic fr-latin9 layout to use the Sun dead keys + + include "fr(latin9)" + + key { [ ampersand, 1, dead_acute, periodcentered ] }; + key { [ egrave, 7, dead_grave, Egrave ] }; + key { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "latin9_sundeadkeys" { + + include "fr(latin9_Sundeadkeys)" + + name[Group1]="French (legacy, alternative, Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "latin9_nodeadkeys" { + + // Modifies the basic fr-latin9 layout to eliminate all dead keys + + include "fr(latin9)" + + name[Group1]="French (legacy, alternative, eliminate dead keys)"; + + key { [ ampersand, 1, apostrophe, periodcentered ] }; + key { [ egrave, 7, grave, Egrave ] }; + key { [ equal, plus, braceright ] }; + key { [ asciicircum, diaeresis, asciitilde, quoteright ] }; +}; + +// Bépo : Improved ergonomic french keymap using Dvorak method. +// Built by community on 'Dvorak Fr / Bépo' : +// see http://www.clavier-dvorak.org/wiki/ to join and help. +// XOrg integration (1.0rc2 version) in 2008 +// by Frédéric Boiteux +// +// Bépo layout (1.0rc2 version) for a pc105 keyboard (french) : +// ┌────┐ +// │ S A│ S = Shift, A = AltGr + Shift +// │ s a│ s = normal, a = AltGr +// └────┘ +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6 │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃ +// │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ ! │ V │ D Ð │ L │ J IJ │ Z Ə │ W ┃Entrée ┃ +// ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃ +// ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃ +// ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ Espace inséc. Espace inséc. fin ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ (Espace) _ ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "bepo" { + + include "level3(ralt_switch)" + include "keypad(oss)" + + name[Group1]= "French (Bepo, ergonomic, Dvorak way)"; + + // First row + key { [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ + key { [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ + key { [ percent, grave, U2030, seconds ] }; // % ` ‰ ″ + + // Second row + key { [ b, B, bar, brokenbar ] }; // b B | ¦ + key { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ˊ ˝ + key { [ p, P, ampersand, section ] }; // p P & § + key { [ o, O, oe, OE ] }; // o O œ Œ + key { [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` + key { [ dead_circumflex, exclam, exclamdown ] }; // ^ ! ¡ + key { [ v, V, dead_caron ] }; // v V ˇ + key { [ d, D, eth, ETH ] }; // d D ð Ð + key { [ l, L, dead_stroke ] }; // l L / + key { [ j, J, U0133, U0132 ] }; // j J ij IJ + key { [ z, Z, schwa, SCHWA ] }; // z Z ə Ə + key { [ w, W, dead_breve ] }; // w W ̆ + + // Third row + key { [ a, A, ae, AE ] }; // a A æ Æ + key { [ u, U, ugrave, Ugrave ] }; // u U ù Ù + key { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ̈ ˙ + key { [ e, E, EuroSign, dead_currency ] }; // e E € ¤ + key { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛ + key { [ c, C, copyright, U017F ] }; // c C © ſ + key { [ t, T, thorn, THORN ] }; // t T þ Þ + key { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ + key { [ r, R, registered, trademark ] }; // r R ® ™ + key { [ n, N, dead_tilde ] }; // n N ~ + key { [ m, M, dead_macron, masculine ] }; // m M ̄ º + key { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ç Ç ¸ , + + // Fourth row + key { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê / + key { [ agrave, Agrave, backslash ] }; // à À \ + key { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ + key { [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ + key { [ period, colon, ellipsis, periodcentered ] }; // . : … · + key { [ k, K, asciitilde ] }; // k K ~ + key { [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉ + key { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣ + key { [ g, G, mu ] }; // g G µ + key { [ h, H, dagger, doubledagger ] }; // h H † ‡ + key { [ f, F, dead_ogonek, ordfeminine ] }; // f F ̨ ª + + key { [ space, nobreakspace, underscore, U202F ] }; // ␣ (espace insécable) _ (espace insécable fin) +}; + +partial alphanumeric_keys +xkb_symbols "bepo_latin9" { + + // Restricts the fr(bepo) layout to latin9 symbols + + include "fr(bepo)" + include "keypad(oss_latin9)" + + name[Group1]="French (Bepo, ergonomic, Dvorak way, latin-9 only)"; + + key { [ dollar, numbersign, dollar, paragraph ] }; // $ # $ ¶ + + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1 + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // « 2 < + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // » 3 > + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [ + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ] + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 - ¼ + key { [ equal, degree ] }; // = ° + key { [ percent, grave ] }; // % ` + + key { [ b, B, bar ] }; // b B | + key { [ eacute, Eacute, dead_acute ] }; // é É ˊ + key { [ j, J ] }; // j J + key { [ z, Z ] }; // z Z + key { [ w, W ] }; // w W + + key { [ i, I, dead_diaeresis ] }; // i I ̈ + key { [ comma, semicolon, comma, dead_horn ] }; // , ; , ̛ + key { [ c, C, copyright ] }; // c C © + key { [ s, S, ssharp ] }; // s S ß + key { [ r, R, registered ] }; // r R ® + key { [ m, M, macron, masculine ] }; // m M ̄ º + + key { [ y, Y, braceleft ] }; // y Y { + key { [ x, X, braceright ] }; // x X } + key { [ period, colon ] }; // . : + key { [ h, H ] }; // h H + key { [ f, F, f, ordfeminine ] }; // f F ª + + // Note : on a besoin de redéfinir les niveaux 3 et 4, + // donc nbsp(level2) ne suffit pas ! + key { [ space, nobreakspace, underscore, nobreakspace ] }; // ␣ (espace insécable) _ (espace insécable) +}; + +// BEGIN_NON_FREE +// Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html +// thanks to Fabien Cazenave for his help +// Licence : X11 (the layout itself is released under CC-NC-ND licence) +// Version : 0.3 + +// Base layer + dead AltGr key (`): +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ +// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ +// │ _ │ = │ / ± │ - ¼ │ è ½ │ \ ¾ │ ^ │ ( │ ` ` │ ) │ " │ [ │ ] ┃ ⌫ ┃ +// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ +// ┃ ┃ ? Æ │ < │ > │ G │ ! │ H │ V │ C Ç │ M │ K │ Z │ & ┃ ┃ +// ┃ ↹ ┃ : æ │ ' $ │ é É │ g € │ . ° │ h │ v │ c ç │ m µ │ k │ z │ ¨ ┃ ┃ +// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ +// ┃ ┃ O Ò │ A À │ U Ù │ E È │ B │ F │ S │ T │ N │ D │ W │ # ┃ ┃ +// ┃ ⇬ ┃ o ò │ a à │ u ù │ e è │ b │ f │ s « │ t │ n » │ d │ w │ ~ ┃ ┃ +// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ +// ┃ ┃ ç Ç │ | Œ │ Q │ @ │ I Ì │ Y │ X │ R │ L │ P │ J ┃ ┃ +// ┃ ⇧ ┃ à À │ ; œ │ q { │ , } │ i ì │ y £ │ x │ r º │ l │ p § │ j ┃ ⇧ ┃ +// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ +// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +// Notice the specific Caps_Lock layer: +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ +// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ +// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ ┃ +// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ +// ┃ ┃ │ < │ > │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ +// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ⇬ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ +// ┃ ┃ / │ - │ │ │ │ │ │ │ │ │ ┃ ┃ +// ┃ ⇧ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⇧ ┃ +// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ +// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial alphanumeric_keys modifier_keys +xkb_symbols "dvorak" { + name[Group1]="French (Dvorak)"; + + // First row + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] }; + + // Second row + key { [ colon, question, ae, AE ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] }; + key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] }; + key { [ g, G, EuroSign ] }; + key { [ period, exclam, degree ] }; + key { [ h, H ] }; + key { [ v, V ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ m, M, mu ] }; + key { [ k, K ] }; + key { [ z, Z ] }; + key { [ dead_diaeresis, ampersand ] }; + + // Third row + key { [ o, O, ograve, Ograve ] }; + key { [ a, A, agrave, Agrave ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ e, E, egrave, Egrave ] }; + key { [ b, B ] }; + key { [ f, F ] }; + key { [ s, S, guillemotleft ] }; + key { [ t, T ] }; + key { [ n, N, guillemotright ] }; + key { [ d, D ] }; + key { [ w, W ] }; + key { [ asciitilde, numbersign ] }; + + // Fourth row + key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] }; + key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] }; + key { [ q, Q, braceleft ] }; + key { [ comma, at, braceright ] }; + key { [ i, I, igrave, Igrave ] }; + key { [ y, Y, sterling ] }; + key { [ x, X ] }; + key { [ r, R, masculine ] }; + key { [ l, L ] }; + key { [ p, P, section ] }; + key { [ j, J ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; +}; +// END_NON_FREE + +// C'WHERTY: Breton keyboard. Ar c'hlavier brezhoneg. +// Copyright © 2009 Dominique Pellé +// Version: 0.1 +// +// ┌────┐ +// │ S A│ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift +// │ s a│ s = normal, a = AltGr +// └────┘ +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃ +// │ ² ˙ │ & ¯ │ é ´ │ " # │ ' { │ ( [ │ - | │ è ` │ - \ │ ç ± │ à @ │ ) ] │ = } ┃ ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃Toalenn┃ C'h │ W ω │ E ε │ R ρ │ T τ │ Y ψ │ U υ │ I ι │ O OE│ P π │ ¨ ¥ │ * £ ┃Enankañ┃ +// ┃ ↹ ┃ c'h │ w │ e € │ r │ t │ y │ u │ i ı │ o oe│ p │ ^ « │ / » ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃Prenn ┃ A Æ │ S σ │ D δ │ F φ │ G γ │ H η │ J ς │ K κ │ L λ │ M μ │ Ù ® │ ! ¡ ┃ ┃ +// ┃Pennli ⇬┃ a æ │ s │ d $ │ f │ g │ h │ j │ k │ l │ m │ ù ŭ │ ? ¿ ┃ ┃ +// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ ┃ Q θ │ Z ζ │ X ξ │ C χ │ V │ B β │ N ν │ CH │ Ñ │ : © │ ; ┃ ┃ +// ┃Shift ⇧┃ q < │ z > │ x │ c ¢ │ v │ b │ n │ ch │ ñ │ . │ , ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ⍽ Espace insécable ␣ ┃ ┃ ┃ ┃ +// ┃Reol ┃Meta ┃Erl ┃ ␣ Espace ␣ ┃ArErl ⇮┃Menu ┃Reol ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "bre" { + + include "keypad(oss)" + + name[Group1]= "French (Breton)"; + + // First row + key { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] }; + key { [ ampersand, 1, dead_macron, Greek_DELTA ] }; + key { [ eacute, 2, dead_acute, Greek_THETA ] }; + key { [ quotedbl, 3, numbersign, Greek_LAMDA ] }; + key { [ apostrophe, 4, braceleft, Greek_XI ] }; + key { [ parenleft, 5, bracketleft, Greek_PI ] }; + key { [ minus, 6, bar, Greek_SIGMA ] }; + key { [ egrave, 7, dead_grave, Greek_PHI ] }; + key { [ underscore, 8, backslash, Greek_PSI ] }; + key { [ ccedilla, 9, plusminus, Ccedilla ] }; + key { [ agrave, 0, at, Greek_OMEGA ] }; + key { [ parenright, dead_abovering, bracketright, ssharp ] }; + key { [ equal, plus, braceright, notsign ] }; + + // Second row + // Handling the C'H key correctly requires an inputmethod (XIM) + // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 + // key { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] }; + key { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] }; + key { [ w, W, Greek_omega, Greek_omega ] }; + key { [ e, E, EuroSign, Greek_epsilon ] }; + key { [ r, R, Greek_rho, Greek_rho ] }; + key { [ t, T, Greek_tau, Greek_tau ] }; + key { [ y, Y, Greek_psi, Greek_psi ] }; + key { [ u, U, Greek_upsilon, Greek_upsilon ] }; + key { [ i, I, idotless, Greek_iota ] }; + key { [ o, O, oe, OE ] }; + key { [ p, P, Greek_pi, Greek_pi ] }; + key { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] }; + key { [ slash, asterisk, guillemotright, sterling ] }; + + // Third row + key { [ a, A, ae, AE ] }; + key { [ s, S, Greek_sigma, Greek_sigma ] }; + key { [ d, D, dollar, Greek_delta ] }; + key { [ f, F, Greek_phi, Greek_phi ] }; + key { [ g, G, Greek_gamma, Greek_gamma ] }; + key { [ h, H, Greek_eta, Greek_eta ] }; + key { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] }; + key { [ k, K, Greek_kappa, Greek_kappa ] }; + key { [ l, L, Greek_lamda, Greek_lambda ] }; + key { [ m, M, Greek_mu, Greek_mu ] }; + key { [ ugrave, Ugrave, ubreve, registered ] }; + key { [ question, exclam, questiondown, exclamdown ] }; + + // Fourth row + key { [ q, Q, less, Greek_theta ] }; + key { [ z, Z, greater, Greek_zeta ] }; + key { [ x, X, Greek_xi, Greek_xi ] }; + key { [ c, C, cent, Greek_chi ] }; + key { [ v, V ] }; + key { [ b, B, Greek_beta, Greek_beta ] }; + key { [ n, N, Greek_nu, Greek_nu ] }; + // Handling the CH key correctly requires an inputmethod (XIM) + // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 + // key { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] }; + key { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] }; + key { [ ntilde, Ntilde ] }; + key { [ period, colon, section, copyright ] }; + key { [ comma, semicolon, percent ] }; + + key { [ space, nobreakspace, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +// Occitan layout +// Author : 2009 Thomas Metz +// Derivated from the layout defined at http://www.panoccitan.org +// Version: 0.1 +// From OSS french keyboard : +// - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ +// - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ +// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃ +// ┃Tab ↹ ┃ 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 Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃ +// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v → │ b ↓ │ n ñ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ +// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "oci" { + + include "keypad(oss)" + + name[Group1]= "Occitan"; + + // First row + key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ + key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ + key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É + key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ + key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) + key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) + key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) + key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È + key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ + key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç + key { [ agrave, 0, at, Agrave ] }; // à 0 @ À + key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ + key { [ equal, plus, braceright, plusminus ] }; // = + } ± + + // Second row + key { [ a, A, aacute, Aacute ] }; // a A á Á + key { [ z, Z, ae, AE ] }; // z Z æ Æ + key { [ e, E, EuroSign, cent ] }; // e E € ¢ + key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê + key { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë + key { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û + key { [ u, U, uacute, Uacute ] }; // u U ú Ú + key { [ i, I, iacute, Iacute ] }; // i I í Í + key { [ o, O, oacute, Oacute ] }; // o O ó Ó + key { [ p, P, ograve, Ograve ] }; // p P ò Ò + key { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ + key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø + + // Third row + key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä + key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ + key { [ d, D, acircumflex, Acircumflex ] }; // d D â  + key { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ + key { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ + key { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü + key { [ j, J, icircumflex, Icircumflex] }; // j J î Î + key { [ k, K, idiaeresis, Idiaeresis] }; // k K ï Ï + key { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô + key { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö + key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù + key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ + + // Fourth row + key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ + key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ + key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” + key { [ c, C, copyright, registered ] }; // c C © ® + key { [ v, V, rightarrow, leftarrow ] }; // v V → ← + key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ + key { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ + key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … + key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ + key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ + key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − +}; + +// Marc.Shapiro@inria.fr 19-sep-1998 +// modifications : Etienne Herlent june 2000 +// adapted to the new input layer : +// Martin Costabel 3-jan-2001 +// adapted for Latin9 alphabet (ISO-8859-15): +// Etienne Herlent march 2005 + +// This map is an almost-complete mapping of the standard French +// MacIntosh keyboard under Xwindows. I tried to remain as faithful +// as possible to the Mac meaning of each key. I did this entirely by +// hand and by intuition, relying on the Clavier (Keyboard?) Desktop +// Accessory for the Mac meaning of keys, and on reading keysymdef.h +// to intuit the corresponding X names. Lacking proper documentation, +// I may have made some mistakes. + +// Entries marked CHECK are particularly uncertain + +// Entries marked MISSING mark Mac characters for which I was unable +// to find a corresponding keysym. (Some for sure don't: e.g. the +// Apple mark and the oe/OE character; others I may have simply not +// found.) + +// Copied from macintosh_vndr/fr +partial alphanumeric_keys +xkb_symbols "mac" { + + name[Group1]= "French (Macintosh)"; + + // Alphanumeric section + key { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 + key { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple + key { [ eacute, 2, ediaeresis, Eacute ] }; + key { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks + key { [ apostrophe, 4, VoidSymbol, VoidSymbol ] }; + key { [ parenleft, 5, braceleft, bracketleft ] }; + // CHECK section + key { [ section, 6, paragraph, aring ] }; + key { [ egrave, 7, guillemotleft, guillemotright ] }; + key { [ exclam, 8, exclamdown, Ucircumflex ] }; + key { [ ccedilla, 9, Ccedilla, Aacute ] }; + key { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash + key { [ parenright, degree, braceright, bracketright ] }; + key { [ minus, underscore, emdash, endash ] }; // CHECK dashes + + key { [ a, A, ae, AE ] }; + key { [ z, Z, Acircumflex, Aring ] }; + key { [ e, E, ecircumflex, Ecircumflex ] }; + key { [ r, R, registered, currency ] }; + key { [ t, T, VoidSymbol, VoidSymbol ] }; + key { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 + key { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine? + key { [ i, I, icircumflex, idiaeresis ] }; + key { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9 + key { [ p, P, VoidSymbol, VoidSymbol ] }; + key { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] }; + key { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9 + + key { [ q, Q, acircumflex, Agrave ] }; + key { [ s, S, Ograve, VoidSymbol ] }; + key { [ d, D, VoidSymbol, VoidSymbol ] }; + key { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f?? + key { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl + key { [ h, H, Igrave, Icircumflex ] }; + key { [ j, J, Idiaeresis, Iacute ] }; + key { [ k, K, Egrave, Ediaeresis ] }; + key { [ l, L, notsign, bar ] }; + key { [ m, M, mu, Oacute ] }; + key { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille + key { [ dead_grave, sterling, at, numbersign ] }; + + key { [ less, greater, VoidSymbol, VoidSymbol ] }; + key { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket) + key { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash + key { [ c, C, copyright, cent ] }; + key { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical + key { [ b, B, ssharp, VoidSymbol ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s + key { [ n, N, dead_tilde, asciitilde ] }; + key { [ comma, question, VoidSymbol, questiondown ] }; + key { [ semicolon, period, VoidSymbol, periodcentered ] }; + key { [ colon, slash, division, backslash ] }; + key { [ equal, plus, VoidSymbol, plusminus ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + // End alphanumeric section + + key { [ comma,KP_Decimal ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "geo" { + include "ge(basic)" + + name[Group1]= "Georgian (France, AZERTY Tskapo)"; + + key { [ exclam, noSymbol ] }; + key { [ 0x0100201e, 1 ] }; + key { [ 0x01002116, 2 ] }; + key { [ percent, 3 ] }; + key { [ parenleft, 4 ] }; + key { [ colon, 5 ] }; + key { [ semicolon, 6 ] }; + key { [ question, 7 ] }; + key { [ 0x01002116, 8 ] }; + key { [ degree, 9 ] }; + key { [ parenright, 0 ] }; + key { [ minus, underscore, 0x01002014 ] }; + key { [ less, greater ] }; + + key { [ 0x010010d0, 0x010010fa ] }; + key { [ 0x010010d6, Z ] }; + key { [ 0x010010d4, E, 0x010010f1 ] }; + key { [ 0x010010e0, 0x010000ae ] }; + key { [ 0x010010e2, T ] }; + key { [ 0x010010e7, 0x010010f8 ] }; + key { [ 0x010010e3, U ] }; + key { [ 0x010010d8, 0x010010f2 ] }; + key { [ 0x010010dd, O ] }; + key { [ 0x010010de, P ] }; + key { [ 0x010010d7, T ] }; + key { [ 0x010010eb, Z ] }; + + key { [ 0x010010e5, Q ] }; + key { [ 0x010010e1, S ] }; + key { [ 0x010010d3, D ] }; + key { [ 0x010010e4, 0x010010f6 ] }; + key { [ 0x010010d2, 0x010010f9 ] }; + key { [ 0x010010f0, 0x010010f5 ] }; + key { [ 0x010010ef, 0x010010f7 ] }; + key { [ 0x010010d9, K ] }; + key { [ 0x010010da, L ] }; + key { [ 0x010010db, M ] }; + key { [ 0x010010df, J ] }; + key { [ 0x010010e9, 0x010000a9 ] }; + + key { [ guillemotleft,guillemotright ] }; + key { [ 0x010010ec, W ] }; + key { [ 0x010010ee, 0x010010f4 ] }; + key { [ 0x010010ea, 0x010000a9 ] }; + key { [ 0x010010d5, 0x010010f3 ] }; + key { [ 0x010010d1, B ] }; + key { [ 0x010010dc, 0x010010fc ] }; + key { [ comma, 0x01002014 ] }; + key { [ 0x010010e8, S ] }; + key { [ 0x010010e6, noSymbol ] }; + key { [ 0x010010ed, noSymbol ] }; + +}; diff --git a/symbols/lt b/symbols/lt deleted file mode 100644 index 8b243ed..0000000 --- a/symbols/lt +++ /dev/null @@ -1,318 +0,0 @@ -// Separate keymaps merged into one file by Nerijus Baliūnas, 2002 - -// Lithuanian Numeric layout - Lithuanian letters on the numeric row -// based on Lithuanian keyboard map by Ričardas Čepas -// 3rd and 4th levels added by Mantas Kriaučiūnas , 2004 -// Minor modifications and cleanup by Rimas Kudelis , 2010 -// -// If you want two layouts, use: -// Option "XkbLayout" "lt,lt(us)" -partial default alphanumeric_keys modifier_keys -xkb_symbols "basic" { - - include "latin" - include "eurosign(e)" - include "level3(ralt_switch)" - - name[Group1]="Lithuanian"; - - key {[ grave, asciitilde, acute ]}; - key {[ aogonek, Aogonek, 1, exclam ]}; - key {[ ccaron, Ccaron, 2, at ]}; - key {[ eogonek, Eogonek, 3, numbersign ]}; - key {[ eabovedot, Eabovedot, 4, dollar ]}; - key {[ iogonek, Iogonek, 5, percent ]}; - key {[ scaron, Scaron, 6, asciicircum ]}; - key {[ uogonek, Uogonek, 7, ampersand ]}; - key {[ umacron, Umacron, 8, asterisk ]}; - key {[ doublelowquotemark, parenleft, 9, parenleft ]}; - key {[ leftdoublequotemark, parenright, 0, parenright ]}; - key {[ minus, underscore, endash ]}; - key {[ zcaron, Zcaron, equal, plus ]}; - - key {[ endash, EuroSign ]}; -}; - -// Similar to the above, but uses 3rd and 4th levels in the numeric row -// for Lithuanian letters -partial alphanumeric_keys modifier_keys -xkb_symbols "us" { - - include "latin" - include "eurosign(e)" - include "level3(ralt_switch)" - - name[Group1]="Lithuanian (US keyboard with Lithuanian letters)"; - - key {[ grave, asciitilde, acute ]}; - key {[ 1, exclam, aogonek, Aogonek ]}; - key {[ 2, at, ccaron, Ccaron ]}; - key {[ 3, numbersign, eogonek, Eogonek ]}; - key {[ 4, dollar, eabovedot, Eabovedot ]}; - key {[ 5, percent, iogonek, Iogonek ]}; - key {[ 6, asciicircum, scaron, Scaron ]}; - key {[ 7, ampersand, uogonek, Uogonek ]}; - key {[ 8, asterisk, umacron, Umacron ]}; - key {[ 9, parenleft, doublelowquotemark, parenleft ]}; - key {[ 0, parenright, leftdoublequotemark, parenright ]}; - key {[ minus, underscore, endash ]}; - key {[ equal, plus, zcaron, Zcaron ]}; - - key {[ endash, EuroSign ]}; -}; - -// Lithuanian keymap LST 1582:2000 -// The standard is described at http://ims.mii.lt/klav/ -// Extensions: B01 L3 is "<" , B02 L3 is ">" and B03 L3 is endash to make this -// layout usable with pc101 and pc104 keyboards. -// -// Made by Gediminas Paulauskas -// Minor modifications by Ričardas Čepas and Rimas Kudelis - -partial alphanumeric_keys modifier_keys -xkb_symbols "std" { - - include "latin" - include "eurosign(e)" - include "nbsp(level3)" - include "kpdl(comma)" - include "level3(ralt_switch)" - - name[Group1]="Lithuanian (standard)"; - - key {[ grave, asciitilde, acute ]}; - key {[ exclam, 1, at ]}; - key {[ minus, 2, underscore ]}; - key {[ slash, 3, numbersign ]}; - key {[ semicolon, 4, dollar ]}; - key {[ colon, 5, section ]}; - key {[ comma, 6, asciicircum ]}; - key {[ period, 7, ampersand ]}; - key {[ equal, 8, asterisk ]}; - key {[ parenleft, 9, bracketleft ]}; - key {[ parenright, 0, bracketright ]}; - key {[ question, plus, apostrophe ]}; - key {[ x, X, percent ]}; - - key {[ aogonek, Aogonek ]}; - key {[ zcaron, Zcaron ]}; - key {[ iogonek, Iogonek, braceleft ]}; - key {[ w, W, braceright ]}; - - key {[ scaron, Scaron ]}; - key {[ uogonek, Uogonek ]}; - key {[ eabovedot, Eabovedot, quotedbl ]}; - key {[ q, Q, bar ]}; - - key {[ less, greater, endash ]}; - key {[ z, Z, less ]}; - key {[ umacron, Umacron, greater ]}; - key {[ c, C, endash ]}; - key {[ ccaron, Ccaron, doublelowquotemark ]}; - key {[ f, F, leftdoublequotemark ]}; - key {[ eogonek, Eogonek, backslash ]}; -}; - -// Lithuanian keymap LST 1205-92 -// This standard was made deprecated by LST 1582:2000 above. -// This keyboard is also know as IBM layout. -// We follow the map shown at: http://www.registrucentras.lt/litwin/kbdlta.gif -// and info from Edis Tamošauskas -// -// Made by Piter PUNK -// Minor modifications and cleanup by Rimas Kudelis, 2010 - -partial alphanumeric_keys modifier_keys -xkb_symbols "ibm" { - - include "latin" - include "eurosign(e)" - include "nbsp(level3)" - include "level3(ralt_switch)" - - name[Group1]="Lithuanian (IBM LST 1205-92)"; - - key {[ grave, asciitilde, acute ]}; - key {[ exclam, 1 ]}; - key {[ quotedbl, 2, at ]}; - key {[ slash, 3, numbersign ]}; - key {[ semicolon, 4, dollar ]}; - key {[ colon, 5, percent ]}; - key {[ comma, 6, asciicircum ]}; - key {[ period, 7, ampersand ]}; - key {[ question, 8, asterisk ]}; - key {[ parenleft, 9 ]}; - key {[ parenright, 0 ]}; - key {[ underscore, minus, endash ]}; - key {[ plus, equal ]}; - - key {[ aogonek, Aogonek, q, Q ]}; - key {[ zcaron, Zcaron, w, W ]}; - key {[ iogonek, Iogonek, bracketleft, braceleft ]}; - key {[ doublelowquotemark, leftdoublequotemark, bracketright, braceright ]}; - - key {[ uogonek, Uogonek, semicolon, colon ]}; - key {[ eabovedot, Eabovedot, apostrophe, quotedbl ]}; - - key {[ less, greater, endash ]}; - key {[ umacron, Umacron, x, X ]}; - key {[ ccaron, Ccaron, comma, less ]}; - key {[ scaron, Scaron, period, greater ]}; - key {[ eogonek, Eogonek, slash, question ]}; -}; - -// LEKP and LEKPa layouts 1.0 -// Copyright (c) 2007 Tautrimas Pajarskas -// For more info visit http://lekp.info -// -// LEKP and LEKPa layouts are licensed under the Creative Commons -// Attribution-Noncommercial-Share Alike 3.0 License. -// To view a copy of this license, visit -// http://creativecommons.org/licenses/by-nc-sa/3.0/ or send -// a letter to Creative Commons, 171 Second Street, Suite 300, -// San Francisco, California, 94105, USA. -// -// Minor cleanup by Rimas Kudelis, 2010 - -partial alphanumeric_keys modifier_keys -xkb_symbols "lekp" { - - include "capslock(backspace)" - include "level3(ralt_switch)" - - name[Group1]="Lithuanian (LEKP)"; - - key {[ grave, asciitilde, acute ]}; - key {[ slash, numbersign, bar ]}; - key {[ backslash, at, section ]}; - key {[ period, braceleft ]}; - key {[ comma, braceright ]}; - key {[ f, F ]}; - key {[ exclam, endash ]}; - key {[ w, W ]}; - key {[ uogonek, Uogonek ]}; - key {[ iogonek, Iogonek ]}; - key {[ parenleft, doublelowquotemark, registered ]}; - key {[ parenright, leftdoublequotemark, copyright ]}; - key {[ colon, ampersand, trademark ]}; - - key {[ q, Q, EuroSign ]}; - key {[ g, G, 7 ]}; - key {[ r, R, 8 ]}; - key {[ l, L, 9 ]}; - key {[ d, D, percent ]}; - key {[ ccaron, Ccaron ]}; - key {[ j, J ]}; - key {[ u, U, period ]}; - key {[ eabovedot, Eabovedot, minus ]}; - key {[ eogonek, Eogonek, slash ]}; - key {[ question, bracketleft, division ]}; - key {[ equal, bracketright ]}; - - key {[ a, A, 0 ]}; - key {[ k, K, 4 ]}; - key {[ s, S, 5 ]}; - key {[ t, T, 6 ]}; - key {[ m, M, dollar ]}; - key {[ p, P ]}; - key {[ n, N ]}; - key {[ e, E, comma ]}; - key {[ i, I, plus ]}; - key {[ o, O, asterisk ]}; - key {[ y, Y, multiply ]}; - key {[ apostrophe, underscore ]}; - - key {[ semicolon, quotedbl, sterling ]}; - key {[ z, Z, asciicircum ]}; - key {[ x, X, 1 ]}; - key {[ c, C, 2 ]}; - key {[ v, V, 3 ]}; - key {[ zcaron, Zcaron ]}; - key {[ scaron, Scaron ]}; - key {[ b, B, degree ]}; - key {[ umacron, Umacron, less ]}; - key {[ aogonek, Aogonek, greater ]}; - key {[ h, H ]}; -}; - -partial alphanumeric_keys modifier_keys -xkb_symbols "lekpa" { - - include "capslock(backspace)" - include "level3(ralt_switch)" - - name[Group1]="Lithuanian (LEKPa)"; - - key {[ grave, asciitilde, acute ]}; - key {[ slash, quotedbl, bar ]}; - key {[ backslash, at, section ]}; - key {[ period, braceleft, numbersign ]}; - key {[ comma, braceright, sterling ]}; - key {[ f, F, ampersand ]}; - key {[ exclam, endash ]}; - key {[ w, W ]}; - key {[ uogonek, Uogonek ]}; - key {[ iogonek, Iogonek ]}; - key {[ parenleft, doublelowquotemark, registered ]}; - key {[ parenright, leftdoublequotemark, copyright ]}; - key {[ colon, semicolon, trademark ]}; - - key {[ q, Q, EuroSign ]}; - key {[ g, G, 7 ]}; - key {[ r, R, 8 ]}; - key {[ l, L, 9 ]}; - key {[ d, D, percent ]}; - key {[ ccaron, Ccaron ]}; - key {[ j, J ]}; - key {[ u, U, period ]}; - key {[ eabovedot, Eabovedot, minus ]}; - key {[ eogonek, Eogonek, slash ]}; - key {[ question, bracketleft, division ]}; - key {[ equal, bracketright ]}; - - key {[ a, A, 0 ]}; - key {[ k, K, 4 ]}; - key {[ s, S, 5 ]}; - key {[ t, T, 6 ]}; - key {[ m, M, dollar ]}; - key {[ p, P ]}; - key {[ n, N ]}; - key {[ e, E, comma ]}; - key {[ i, I, plus ]}; - key {[ o, O, asterisk ]}; - key {[ y, Y, multiply ]}; - key {[ apostrophe, underscore ]}; - - key {[ z, Z, asciicircum ]}; - key {[ x, X, 1 ]}; - key {[ c, C, 2 ]}; - key {[ v, V, 3 ]}; - key {[ zcaron, Zcaron ]}; - key {[ scaron, Scaron ]}; - key {[ b, B, degree ]}; - key {[ umacron, Umacron, less ]}; - key {[ aogonek, Aogonek, greater ]}; - key {[ h, H ]}; -}; - -partial alphanumeric_keys modifier_keys -xkb_symbols "dvorak" { - - include "us(dvorak)" - - name[Group1]="Lithuanian (Dvorak)"; - - key { [ aogonek, Aogonek, 1, exclam ] }; - key { [ ccaron, Ccaron, 2, at ] }; - key { [ eogonek, Eogonek, 3, numbersign ] }; - key { [ eabovedot, Eabovedot, 4, dollar ] }; - key { [ iogonek, Iogonek, 5, percent ] }; - key { [ scaron, Scaron, 6, asciicircum ] }; - key { [ uogonek, Uogonek, 7, ampersand ] }; - key { [ umacron, Umacron, 8, asterisk ] }; - key { [doublelowquotemark, parenleft, 9, parenleft ] }; - key { [leftdoublequotemark,parenright, 0, parenright ] }; - key { [ zcaron, Zcaron, equal, plus ] }; - - include "level3(ralt_switch)" -}; diff --git a/symbols/lt.in b/symbols/lt.in new file mode 100644 index 0000000..dee0a3c --- /dev/null +++ b/symbols/lt.in @@ -0,0 +1,320 @@ +// Separate keymaps merged into one file by Nerijus Baliūnas, 2002 + +// Lithuanian Numeric layout - Lithuanian letters on the numeric row +// based on Lithuanian keyboard map by Ričardas Čepas +// 3rd and 4th levels added by Mantas Kriaučiūnas , 2004 +// Minor modifications and cleanup by Rimas Kudelis , 2010 +// +// If you want two layouts, use: +// Option "XkbLayout" "lt,lt(us)" +partial default alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + include "latin" + include "eurosign(e)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian"; + + key {[ grave, asciitilde, acute ]}; + key {[ aogonek, Aogonek, 1, exclam ]}; + key {[ ccaron, Ccaron, 2, at ]}; + key {[ eogonek, Eogonek, 3, numbersign ]}; + key {[ eabovedot, Eabovedot, 4, dollar ]}; + key {[ iogonek, Iogonek, 5, percent ]}; + key {[ scaron, Scaron, 6, asciicircum ]}; + key {[ uogonek, Uogonek, 7, ampersand ]}; + key {[ umacron, Umacron, 8, asterisk ]}; + key {[ doublelowquotemark, parenleft, 9, parenleft ]}; + key {[ leftdoublequotemark, parenright, 0, parenright ]}; + key {[ minus, underscore, endash ]}; + key {[ zcaron, Zcaron, equal, plus ]}; + + key {[ endash, EuroSign ]}; +}; + +// Similar to the above, but uses 3rd and 4th levels in the numeric row +// for Lithuanian letters +partial alphanumeric_keys modifier_keys +xkb_symbols "us" { + + include "latin" + include "eurosign(e)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (US keyboard with Lithuanian letters)"; + + key {[ grave, asciitilde, acute ]}; + key {[ 1, exclam, aogonek, Aogonek ]}; + key {[ 2, at, ccaron, Ccaron ]}; + key {[ 3, numbersign, eogonek, Eogonek ]}; + key {[ 4, dollar, eabovedot, Eabovedot ]}; + key {[ 5, percent, iogonek, Iogonek ]}; + key {[ 6, asciicircum, scaron, Scaron ]}; + key {[ 7, ampersand, uogonek, Uogonek ]}; + key {[ 8, asterisk, umacron, Umacron ]}; + key {[ 9, parenleft, doublelowquotemark, parenleft ]}; + key {[ 0, parenright, leftdoublequotemark, parenright ]}; + key {[ minus, underscore, endash ]}; + key {[ equal, plus, zcaron, Zcaron ]}; + + key {[ endash, EuroSign ]}; +}; + +// Lithuanian keymap LST 1582:2000 +// The standard is described at http://ims.mii.lt/klav/ +// Extensions: B01 L3 is "<" , B02 L3 is ">" and B03 L3 is endash to make this +// layout usable with pc101 and pc104 keyboards. +// +// Made by Gediminas Paulauskas +// Minor modifications by Ričardas Čepas and Rimas Kudelis + +partial alphanumeric_keys modifier_keys +xkb_symbols "std" { + + include "latin" + include "eurosign(e)" + include "nbsp(level3)" + include "kpdl(comma)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (standard)"; + + key {[ grave, asciitilde, acute ]}; + key {[ exclam, 1, at ]}; + key {[ minus, 2, underscore ]}; + key {[ slash, 3, numbersign ]}; + key {[ semicolon, 4, dollar ]}; + key {[ colon, 5, section ]}; + key {[ comma, 6, asciicircum ]}; + key {[ period, 7, ampersand ]}; + key {[ equal, 8, asterisk ]}; + key {[ parenleft, 9, bracketleft ]}; + key {[ parenright, 0, bracketright ]}; + key {[ question, plus, apostrophe ]}; + key {[ x, X, percent ]}; + + key {[ aogonek, Aogonek ]}; + key {[ zcaron, Zcaron ]}; + key {[ iogonek, Iogonek, braceleft ]}; + key {[ w, W, braceright ]}; + + key {[ scaron, Scaron ]}; + key {[ uogonek, Uogonek ]}; + key {[ eabovedot, Eabovedot, quotedbl ]}; + key {[ q, Q, bar ]}; + + key {[ less, greater, endash ]}; + key {[ z, Z, less ]}; + key {[ umacron, Umacron, greater ]}; + key {[ c, C, endash ]}; + key {[ ccaron, Ccaron, doublelowquotemark ]}; + key {[ f, F, leftdoublequotemark ]}; + key {[ eogonek, Eogonek, backslash ]}; +}; + +// Lithuanian keymap LST 1205-92 +// This standard was made deprecated by LST 1582:2000 above. +// This keyboard is also know as IBM layout. +// We follow the map shown at: http://www.registrucentras.lt/litwin/kbdlta.gif +// and info from Edis Tamošauskas +// +// Made by Piter PUNK +// Minor modifications and cleanup by Rimas Kudelis, 2010 + +partial alphanumeric_keys modifier_keys +xkb_symbols "ibm" { + + include "latin" + include "eurosign(e)" + include "nbsp(level3)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (IBM LST 1205-92)"; + + key {[ grave, asciitilde, acute ]}; + key {[ exclam, 1 ]}; + key {[ quotedbl, 2, at ]}; + key {[ slash, 3, numbersign ]}; + key {[ semicolon, 4, dollar ]}; + key {[ colon, 5, percent ]}; + key {[ comma, 6, asciicircum ]}; + key {[ period, 7, ampersand ]}; + key {[ question, 8, asterisk ]}; + key {[ parenleft, 9 ]}; + key {[ parenright, 0 ]}; + key {[ underscore, minus, endash ]}; + key {[ plus, equal ]}; + + key {[ aogonek, Aogonek, q, Q ]}; + key {[ zcaron, Zcaron, w, W ]}; + key {[ iogonek, Iogonek, bracketleft, braceleft ]}; + key {[ doublelowquotemark, leftdoublequotemark, bracketright, braceright ]}; + + key {[ uogonek, Uogonek, semicolon, colon ]}; + key {[ eabovedot, Eabovedot, apostrophe, quotedbl ]}; + + key {[ less, greater, endash ]}; + key {[ umacron, Umacron, x, X ]}; + key {[ ccaron, Ccaron, comma, less ]}; + key {[ scaron, Scaron, period, greater ]}; + key {[ eogonek, Eogonek, slash, question ]}; +}; + +// BEGIN_NON_FREE +// LEKP and LEKPa layouts 1.0 +// Copyright (c) 2007 Tautrimas Pajarskas +// For more info visit http://lekp.info +// +// LEKP and LEKPa layouts are licensed under the Creative Commons +// Attribution-Noncommercial-Share Alike 3.0 License. +// To view a copy of this license, visit +// http://creativecommons.org/licenses/by-nc-sa/3.0/ or send +// a letter to Creative Commons, 171 Second Street, Suite 300, +// San Francisco, California, 94105, USA. +// +// Minor cleanup by Rimas Kudelis, 2010 + +partial alphanumeric_keys modifier_keys +xkb_symbols "lekp" { + + include "capslock(backspace)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (LEKP)"; + + key {[ grave, asciitilde, acute ]}; + key {[ slash, numbersign, bar ]}; + key {[ backslash, at, section ]}; + key {[ period, braceleft ]}; + key {[ comma, braceright ]}; + key {[ f, F ]}; + key {[ exclam, endash ]}; + key {[ w, W ]}; + key {[ uogonek, Uogonek ]}; + key {[ iogonek, Iogonek ]}; + key {[ parenleft, doublelowquotemark, registered ]}; + key {[ parenright, leftdoublequotemark, copyright ]}; + key {[ colon, ampersand, trademark ]}; + + key {[ q, Q, EuroSign ]}; + key {[ g, G, 7 ]}; + key {[ r, R, 8 ]}; + key {[ l, L, 9 ]}; + key {[ d, D, percent ]}; + key {[ ccaron, Ccaron ]}; + key {[ j, J ]}; + key {[ u, U, period ]}; + key {[ eabovedot, Eabovedot, minus ]}; + key {[ eogonek, Eogonek, slash ]}; + key {[ question, bracketleft, division ]}; + key {[ equal, bracketright ]}; + + key {[ a, A, 0 ]}; + key {[ k, K, 4 ]}; + key {[ s, S, 5 ]}; + key {[ t, T, 6 ]}; + key {[ m, M, dollar ]}; + key {[ p, P ]}; + key {[ n, N ]}; + key {[ e, E, comma ]}; + key {[ i, I, plus ]}; + key {[ o, O, asterisk ]}; + key {[ y, Y, multiply ]}; + key {[ apostrophe, underscore ]}; + + key {[ semicolon, quotedbl, sterling ]}; + key {[ z, Z, asciicircum ]}; + key {[ x, X, 1 ]}; + key {[ c, C, 2 ]}; + key {[ v, V, 3 ]}; + key {[ zcaron, Zcaron ]}; + key {[ scaron, Scaron ]}; + key {[ b, B, degree ]}; + key {[ umacron, Umacron, less ]}; + key {[ aogonek, Aogonek, greater ]}; + key {[ h, H ]}; +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "lekpa" { + + include "capslock(backspace)" + include "level3(ralt_switch)" + + name[Group1]="Lithuanian (LEKPa)"; + + key {[ grave, asciitilde, acute ]}; + key {[ slash, quotedbl, bar ]}; + key {[ backslash, at, section ]}; + key {[ period, braceleft, numbersign ]}; + key {[ comma, braceright, sterling ]}; + key {[ f, F, ampersand ]}; + key {[ exclam, endash ]}; + key {[ w, W ]}; + key {[ uogonek, Uogonek ]}; + key {[ iogonek, Iogonek ]}; + key {[ parenleft, doublelowquotemark, registered ]}; + key {[ parenright, leftdoublequotemark, copyright ]}; + key {[ colon, semicolon, trademark ]}; + + key {[ q, Q, EuroSign ]}; + key {[ g, G, 7 ]}; + key {[ r, R, 8 ]}; + key {[ l, L, 9 ]}; + key {[ d, D, percent ]}; + key {[ ccaron, Ccaron ]}; + key {[ j, J ]}; + key {[ u, U, period ]}; + key {[ eabovedot, Eabovedot, minus ]}; + key {[ eogonek, Eogonek, slash ]}; + key {[ question, bracketleft, division ]}; + key {[ equal, bracketright ]}; + + key {[ a, A, 0 ]}; + key {[ k, K, 4 ]}; + key {[ s, S, 5 ]}; + key {[ t, T, 6 ]}; + key {[ m, M, dollar ]}; + key {[ p, P ]}; + key {[ n, N ]}; + key {[ e, E, comma ]}; + key {[ i, I, plus ]}; + key {[ o, O, asterisk ]}; + key {[ y, Y, multiply ]}; + key {[ apostrophe, underscore ]}; + + key {[ z, Z, asciicircum ]}; + key {[ x, X, 1 ]}; + key {[ c, C, 2 ]}; + key {[ v, V, 3 ]}; + key {[ zcaron, Zcaron ]}; + key {[ scaron, Scaron ]}; + key {[ b, B, degree ]}; + key {[ umacron, Umacron, less ]}; + key {[ aogonek, Aogonek, greater ]}; + key {[ h, H ]}; +}; +// END_NON_FREE + +partial alphanumeric_keys modifier_keys +xkb_symbols "dvorak" { + + include "us(dvorak)" + + name[Group1]="Lithuanian (Dvorak)"; + + key { [ aogonek, Aogonek, 1, exclam ] }; + key { [ ccaron, Ccaron, 2, at ] }; + key { [ eogonek, Eogonek, 3, numbersign ] }; + key { [ eabovedot, Eabovedot, 4, dollar ] }; + key { [ iogonek, Iogonek, 5, percent ] }; + key { [ scaron, Scaron, 6, asciicircum ] }; + key { [ uogonek, Uogonek, 7, ampersand ] }; + key { [ umacron, Umacron, 8, asterisk ] }; + key { [doublelowquotemark, parenleft, 9, parenleft ] }; + key { [leftdoublequotemark,parenright, 0, parenright ] }; + key { [ zcaron, Zcaron, equal, plus ] }; + + include "level3(ralt_switch)" +}; -- 1.7.0.4