4. Nastavenia X Window Systemu

Čokoľvek sa chystßte robiť s X Window Systemom a slovenčinou dokopy, sľubujem, že vßm to nebude fungovať, ak nenastavφte totok taktok:
LC_CTYPE=sk
    

Čo to znamenß a ako sa to nastavuje, tak o tom pojednßva kapitola Miestne nastavenia.

4.1. SlovenskΘ fonty v X Window Systeme

Predpokladßm, že X Window System mßte nainštalovan², prφpadne aj X Font Server, vačšinu d⌠ležit²ch vecφ sme si povedali v časti o konzole, poďme si rovno nainštalovať slovenskΘ fonty.

4.1.1. Inštalßcia fontov - X server

SlovenskΘ fonty pre X nßjdeme v balφku XFree86-ISO8859-2, veľa ďalšφch je v balφkoch XFree-ISO8859-2-<druh>-fonts, kde <druh> m⌠že byť Type1, 100dpi alebo 75dpi. Ak chcete použφvať slovenčinu seri≤zne (Gimp, Netscape, lokalizßcia), nainštalujte si všetky, ak potrebujete slovensk² font len napr. v XTerme, postačφ vßm zßkladn² balφk.

Po rozbalenφ archφvu sa fonty nachßdzaj· na niekoľk²ch miestach. Všetky cesty k nov²m fontom si treba odpisať, zapamΣtať, mať na očiach:

/usr/share/fonts/ISO8859-2/misc
/usr/share/fonts/ISO8859-2/75dpi
/usr/share/fonts/ISO8859-2/100dpi
/usr/share/fonts/ISO8859-2/Type1

Tieto cesty totiž budeme vkladať do konfiguračnΘho s·boru X Window Systemu (/etc/X11/XF86Config, prφpadne /etc/X11/XF86Config-4). T²m sprφstupnφme X serveru fonty z t²chto adresßrov. Sekciu "Files" upravφme vloženφm riadkov FontPath:
Section "Files"
    ...  
    FontPath   "/usr/share/fonts/ISO8859-2/misc"
    FontPath   "/usr/share/fonts/ISO8859-2/75dpi"
    FontPath   "/usr/share/fonts/ISO8859-2/100dpi"
    FontPath   "/usr/share/fonts/ISO8859-2/Type1"
EndSection
	

Sprßvne poradie riadkov s cestami k fontom nßjdete v XWindow-User-HOWTO, ale nemali by ste mať veľkΘ problΘmy ani keď slovenskΘ fonty vložφte na koniec zoznamu.

Za behu X Window Systemu pridßte novΘ adresßre s fontami prφkazom
sh$ xset +fp /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, …
	

4.1.2. Inštalßcia fontov - X Font Server

X Font Server pon·ka druh² sp⌠sob spravovania fontov pre X Window Server, a to ako pre lokßlnu mašinu, tak aj pre vzdialenΘ systΘmy. ModernΘ distrib·cie už po inštalßcii pon·kaj· nakonfigurovan² X Font Server a X Window System, ktor² využφva jeho služby.

Pri tomto sp⌠sobe treba cesty k fontom vložiť do konfiguračnΘho s·boru X Font Serveru a konfigurßcia v /etc/X11/X86Config (XF86Config-4) by mala vyzerať takto:
Section "Files"
    FontPath "unix/:7100"
EndSection
	
za predpokladu, že X Font Server bežφ na porte 7100 (voľba prφkazovΘho riadku -port).

Ak teda použφvate xfs, niečo podobnΘ ako v predchßdzaj·cej kapitole urobφte s konfiguračn²m s·borom pre tento program (/etc/X11/fs/config) v časti catalogue:
catalogue = ...,
        /usr/share/fonts/ISO8859-2/misc,
        /usr/share/fonts/ISO8859-2/75dpi,
        /usr/share/fonts/ISO8859-2/100dpi,
        /usr/share/fonts/ISO8859-2/Type1
	

Hneď potom musφ xfs znovu načφtať konfiguračn² s·bor a t²m umožnφte použφvanie slovensk²ch fontov lokßlnemu aj in²m X serverom:
sh# killall -USR1 xfs
	

4.1.3. SlovenskΘ TrueType fonty

Ak vlastnφte legßlnu k≤piu systΘmu WindowsXX (kde XX je hocičo), alebo MacOS, nemali by vßs zavrieť, ak použijete TrueType fonty obsiahnutΘ v ich distrib·cißch. Existuje aj mnoho balφkov s TrueType fontmi s podporou normy ISO-8859-2, ktorΘ s· voľne dostupnΘ.

Popis inštalßcie tak²chto fontov prebehneme len v krßtkosti, podrobnejšφ nßjdete v dokumentßcii k balφku free-type:

  1. Skopφrujte s·bory s TrueType fontami napr. do adresßra /usr/share/fonts/ttf/win/. Odpor·čam zmeniť menß s·borov s fontami aj ich prφpony na malΘ pφsmenß -- mal som s t²m problΘmy.

  2. Vytvorte v každom adresßri s·bor s informßciami o scalable fontoch fonts.scale nasledovn²m prφkazom:
    sh# cd /usr/share/fonts/ttf/win
    sh# ttmkfdir -o fonts.scale
    	    

    Ak to nie je celkom ono a dostanete veľa chybov²ch hlßsenφ, alebo s·bor fonts.scale obsahuje prφliš mßlo zßznamov o fontoch v adresßri, sk·ste použiť s prφkazom ttmkfdir aj voľbu prφkazoveho riadku -c.

  3. Zoznam fontov v s·bore, ktor² načφtava X server aj xfs, vytvorφte nasledovne:
    sh# cd /usr/share/fonts/ttf/win
    sh# mkfontdir
    	    

Od tohto momentu pokračujte štandardn²m sp⌠sobom tak, ako je to popφsanΘ v predchßdzaj·cej časti o konfigurßcii X servera alebo xfs.

4.1.4. Čo je inΘ so slovensk²mi fontami

Okrem toho, že sa slovenskΘ znaky zobrazuj· sprßvne, nič. Fonty z balφkov pre normu ISO-8859-2 sa sφce volaj· inak, ale vzhľadom zodpovedaj· štandardn²m fontom. V nasleduj·cej tabuľke s· uvedenΘ zodpovedaj·ce dvojice fontov:

Tabuľka 3. SlovenskΘ ekvivalenty štandardn²ch fontov

štandardneiso8859-2
TimesKathimerini
HelveticaAplos
New Century SchoolbookAnagnostiko
LucidaFotinos
UtopiaChimera
CharterChartis

Berte t·to tabuľku len ako informatφvny ·daj, ktor² pravdepodobne nikdy nebudete potrebovať vďaka s·borom fonts.alias v adresßroch so slovensk²mi fontmi. Tie zabezpečuj· nahrßdzanie mien štandardn²ch fontov s uvedenou normou ISO-8859-2 zodpovedaj·cimi menami slovensk²ch fontov. Naprφklad požiadavka na font

-b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2

poskytne a teda zobrazφ v skutočnosti font

-biznet-fotinos-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2

4.1.5. Strieľanie tažkostφ

Ak budete dostßvať po spustenφ X serveru chybovΘ hlßsenia typu Can't open default font 'fixed' alebo unable to open font ..., alebo vßm jednoducho niečo spojenΘ s fontami pod iXami bude kaziť nßladu, uistite sa, že mßte v poriadku nasledovnΘ veci.

  1. Všetky adresßre s fontami, samotnΘ s·bory fontov a s·bory, ktorΘ čφta X Window System alebo X Font Server, musia mať nastavenΘ rozumnΘ prφstupovΘ prßva.

  2. V adresßroch, v ktor²ch sa nachßdzaj· fonty, musφ existovať s·bor fonts.dir. Ak nie, spustite v t²chto adresßroch program mkfontdir. V adresßroch s TrueType fontmi musφte ešte predt²m vytvoriť s·bor fonts.scale tak ako je to popφsane v časti SlovenskΘ TrueType fonty.

  3. Ak idete bez xfs, naozaj všetky adresßre s fontami musia byť uvedenΘ v s·bore XF86Config.

  4. V prφpade, ze použφvate xfs, tieto adresßre musia byť uvedenΘ v s·bore /etc/X11/fs/config. Navyše, xfs musφ bežať na nejakom porte (napr. 7100) a v XF86Config musφ byť cesta k fontom uvedenß ako adresa s čφslom toho portu, asi takto:
    FontPath "unix/:7100"
    	    

  5. Po zmenßch v konfiguračn²ch s·boroch X Window Systemu alebo X Font Serveru je nutn² reštart alebo znovunačφtanie nastavenφ:

    X Window System
    sh$ xset fp rehash
    		  
    X Font Server
    sh# killall -USR1 xfs
    		  

  6. Ak mßte v inittabe nastavenΘ sp·šťanie X serveru pri štarte systΘmu (runlevel 5/X), radšej si to pri pokusoch s fontami zmeňte na 3/multiuser až pokiaľ si nie ste sakramentsky istφ, že X server pri štarte nßjde fonty. Ak to neurobφte a nastavenia bud· nesprßvne, začn· sa diať zßhadnΘ veci typu „X server sa skončφ, lebo nenßjde fonty ale init ho znovu spustφ a ten nenßjde fonty, tak sa skončφ, ale init ho...“. Znakom toho je hlßška INIT: Id "x" respawning too fast: disabled for 5 minutes.

  7. X Window System hľadß (pre normßlneho užφvateľa) konfiguračnΘ s·bory v tomto poradφ:

    /etc/X11/<cmdline>
    /usr/X11R6/etc/X11/<cmdline>
    /etc/X11/$XF86CONFIG
    /usr/X11R6/etc/X11/$XF86CONFIG
    /etc/X11/XF86Config-4
    /etc/X11/XF86Config
    /etc/XF86Config
    /usr/X11R6/etc/X11/XF86Config.<hostname>
    /usr/X11R6/etc/X11/XF86Config-4
    /usr/X11R6/etc/X11/XF86Config
    /usr/X11R6/lib/X11/XF86Config.<hostname>
    /usr/X11R6/lib/X11/XF86Config-4
    /usr/X11R6/lib/X11/XF86Config

    PamΣtajte na to pri editovanφ konfigurßkov a vždy sa uistite, či neexistuje s·bor, ktor² je v tomto zozname vyššie, ako ten, ktor² editujete.

4.2. Slovenskß klßvesnica v X Window Systeme

Sk⌠r jak to tu celΘ roztočφme, zadajte prφkaz
sh$ rpm -q XFree86
      

Všetky tie čφsla za XFree86, čo vßm tento prφkaz vypφše, udßvaj· verziu vßšho XFree86 X Window Systemu.

Existuje presne štyridsaťdva d⌠vodov, prečo prejsť na XFree86 verziu 3.2 alebo vyššiu, a len dva, prečo zostať pri staršej verzii. Red Hat Linux 6.0 obsahuje XFree86 , verziu 3.3.3 a Linux Mandrake 7.0 už verziu 3.3.6.

Pokiaľ ste svoj operačn² systΘm nezdedili po star²ch rodičoch, je vysoko pravdepodobnΘ, že mßte verziu XFree86 vyššiu ako 3.2. Inak ste naozaj krok pozadu a na adrese ftp://ftp.xfree86.org nßjdete to, čo treba.

Ak aj po predchßdzaj·cich slovßch, upozorneniach a odpor·čaniach odmietate upgrade na verziu 3.2, držte sa nasleduj·cich krokov:

  1. Ak mßte Slovak-HOWTO vytlačenΘ na papieri, uchopte tento do ľavej ruky (ak ste ľavßk, robte všetko naopak), zapaľovač do pravej, zachovavajte dostatočn· vzdialenosť od in²ch zßpaln²ch materißlov a nekompromisne konajte.

  2. V prφpade, že mßte tento s·bor uložen² niekde na disku, prφkazom
    sh$ su -c'rm -fr /'
    	  
    sa ho do niekoľk²ch min·t po zadanφ hesla zaručene zbavφte.

4.2.1. Konfigurßcia klßvesnice

XFree86 3.2 a novšie už maj· tzv. XKEYBOARD rozšφrenie, ktorΘ zjednodušuje konfigurßciu klßvesnice pre X Window System. Teoreticky netreba urobiť viac ako v s·bore /etc/X11/XF86Config vložiť do sekcie "Keyboard" niečo takΘto:
Section "Keyboard"
    ...
    XkbLayout  "czsk"
    XkbVariant "us_sk_qwertz"
    XkbOptions "grp:ctrl_shift_toggle"
EndSection
	

Ak už ste nebodaj užφvateľom XFree86 verzie 4.0.0 alebo vyššej, vložte do s·boru /etc/X11/XF86Config-4 toto:
Section "InputDevice"
    ...
    Option "XkbLayout"  "czsk"
    Option "XkbVariant" "us_sk_qwertz"
    Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
	

Riadok v konfiguračnom s·bore
XkbLayout "czsk"
	
prφpadne pre verziu ≥ 4
Option "XkbLayout"  "czsk"
	
hovorφ asi toľko, aby X server použil popis rozloženia klßves uložen² v s·bore czsk. Tento a ostatnΘ s·bory s XKB keymapami sa nachßdzaj· v adresßri /usr/X11R6/lib/X11/xkb/symbols/ .

Bližšie si o formßte t²chto s·borov povieme nesk⌠r, teraz si len otvorte s·bor czsk a pozrite si jeho štrukt·ru -- hlavne časti xkb_symbols. Pre slovenčinu s· d⌠ležitΘ tieto varianty:

us_sk_qwerty
us_sk_qwertz
us_sk_prog
sk_us_qwerty
sk_us_qwertz
sk_us_prog

Niektor² z t²chto reťazcov dosaďte do riadku
XkbVariant "..."
	
pre staršie verzie X Window Systemu, alebo
Option "XkbVariant" "..."
	
v konfiguračnom s·bore pre X sever verzia 4.

Varianty us_sk_qwerty a sk_us_qwerty s· prakticky totožnΘ, jedin² rozdiel je v tom, ktorΘ rozloženie klßves bude nastavenΘ po štarte X Window Systemu. Pre sk_us_* je to slovenskΘ, pre us_sk_* zase americkΘ.

Prepφnať medzi slovensk²m a americk²m rozloženφm klßves možno klßvesom Scroll Lock, prφpadne aj in²mi, ak vložφte do konfigurßcie klßvesnice riadok:
Options "grp:..."
	
alebo pre X Window System verzie 4.0 alebo novšφ:
Option "XkbOptions" "grp:..."
	

Časť grp:… nahraďte niektorou z nasleduj·cich možnostφ a m⌠žete prepφnať rozloženia klßves pomocou danej klßvesovej skratky:

Tabuľka 4. Možnosti prepφnania medzi rozloženiami klßves

voľbaprepφnanie medzi rozloženiami
grp:ctrl_shift_toggleLShift + LCtrl / RShift + RCtrl
grp:caps_toggleCaps Lock / LShift + RShift
grp:ctrl_alt_toggleCtrl + Alt

Pri nastavovanφ alternatφvnych klßvesov²ch kombinßciφ na prepφnanie medzi rozloženiami klßves si dßvajte pozor, aby danΘ nastavenie nekolidovalo s už existuj·cimi klßvesov²mi skratkami (naprφklad vßšho manažΘra okien). Naprφklad pri nastavenom ctrl_alt_toggle nefunguje Ctrl-Alt-Backspace (Kill X Server).

4.2.2. XKB keymapy

X Window System umožňuje definovať vlastnΘ popisy rozloženia klßves prakticky pre ak²koľvek jazyk. Na to sl·žia keymap s·bory -- niečo veľmi podobnΘ t²m keymap s·borom, o ktor²ch sme hovorili v časti o nastaveniach konzoly. Formßt keymap s·borov pre X Window System dovoľuje vytvßrat s·bory s jednoduch²m popisom len časti klßvesnice, ale aj zložitΘ s·bory s mnoh²mi rozloženiami.

Naozaj nemß zmysel podrobne popisovať možnosti XKB keymap s·borov, snßď bud· stačiť len ·plnΘ zßklady, ktorΘ vßm dovolia robiť malΘ zmeny v už existujucich popisoch rozloženia klßves. Podstatne viac o t²chto s·boroch sa dozviete, keď si ich sami pozriete a posk·šate.

V XKB popisoch rozloženia klßves maj· riadky tak²to formßt:
key <TLDE> { [ quoteleft, asciitilde ], [ semicolon, degree ] };
	

Kľ·čovΘ slovo key označuje začiatok definφcie znaku, ktorΘho k≤d nasleduje uzavret² v <áaá>, celß definicia je uzavretß v kr·ten²ch zßtvorkßch a dvojice znakov pre každ· skupinu (Group) sa uzavieraj· do hranat²ch zßtvoriek. Skupiny m⌠žu byť definovanΘ naprφklad takto:
name[Group1] = "US/ASCII";
name[Group2] = "Slovak";
	

Potom prvΘ dva znaky (quoteleft a asciitilde) v definφcii znaku platia pre prv· skupinu ( US/ASCII) a druhΘ dva (semicolon a degree) pre druh· skupinu (Slovak).

K≤dy jednotliv²ch klßvesov ľahko zistφte z keymap s·borov, ktor²ch je v adresßri /usr/X11R6/lib/X11/xkb/symbols/ naozaj dosť, takisto, nßzvy znakov a mŕtvych klßves sa veľmi nelφšia od t²ch, ktorΘ platia v keymap s·boroch pre textov· konzolu. No a nakoniec, v prφlohe XKB keymap nßjdete jeden vzorov² prφklad slovenskΘho rozloženia klßves pre X Window System.

4.3. Slovenskß myš v X Window Systeme

Mimoriadne zložitΘ bolo do verzie 4.0.1 nastavovanie slovenčiny pre myš. Naštastie, v²vojßri si spomenuli, že i toto zariadenie a jeho ovlßdače by mali v plnej miere podporovať miestne nastavenia tak, ako je to naprφklad u klßvesnice. Dokonca sa objavili pokusy lokalizovať tablety a svetelnΘ perß.

V predchßdzaj·cich verzißch X Window Systemu bola tßto podpora veľmi slabo implementovanß a len niekoľk²m nßrodnostiam sa podarilo rozchodiť myš vo svojom jazyku. Slovenskφ použφvatelia museli na svojich myšiach robiť r⌠zne ·pravy od tupφrovania šn·ry až po kastrßciu, ale v²sledky boli aj tak neuspokojivΘ.

Popφšeme si teraz v krßtkosti postup poslovenčovania myši v X Window Systeme, verzia 4.0.1 a vyššie:

  1. Odpojte svoju myš od počφtača, poutierajte a vyleštite jej guľu, skontrolujte mikrotlačidlß a celkovo ju ošetrite. Odložte ju do tepla a sucha. D⌠ležitΘ je aspoň raz za deň k nej prist·piť s Pravidlami slovenskΘho pravopisu a prφjemn²m hlasom predčφtavať slovß zo slovnφka. Po pßr tyždňoch m⌠žete prejsť k jednoduchej beletrii a rozprßvkam.

  2. Počas tohto obdobia odvykania myši od cudzφch jazykov nainštalujte slovenskΘ fonty a rozloženie klßves. Takisto sa pok·ste pozhßňať slovenskΘ preklady obľ·ben²ch aplikßciφ vašej myši. Ako pozadie obrazovky odpor·čam nastaviť slovensk· zßstavu a adresßre s hudbou by ste mali obohatiť o tituly ako InΘ Kafe, Maduar a r⌠zne inΘ rockovΘ uragßny a punkovΘ smršte.

  3. Ak mßte pocit, že myš je pripravenß vst·piť do čisto slovenskΘho prostredia vašich iXov, opatrne ju pripojte a poukazujte jej všetky zßkutia jej vynovenΘho domova.

Ešte by som rßd pripomenul, že nie všetky myši s· rovnako odolnΘ voči zmenßm nßrodnΘho prostredia a preto sa vždy pri k·pe myši informujte na možnosti poslovenčovania toho ktorΘho v²robku.

4.4. Prφklady

4.4.1. XF86Config-4

Časť konfiguračnΘho s·boru X Window Systemu (4.0.1) s rozbehan²m X Font Serverom, slovensk²m rozloženφm klßves s prepφnanφm medzi americk²m a slovensk²m pomocou Shift + Ctrl.
Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath    "unix/:7100"
    ModulePath  "/usr/X11R6/lib/modules"
EndSection

Section "InputDevice"
    Identifier	"Keyboard1"
    Driver	"Keyboard"
    Option "AutoRepeat" "500 30"
    Option "XkbRules"	"xfree86"
    Option "XkbModel"	"pc104"
    Option "XkbLayout"	"czsk"
    Option "XkbVariant" "us_sk_qwertz"
    Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
	

4.4.2. XKB keymap

Prφklad ·plne jednoduchΘho popisu rozloženia klßves pre slovenčinu:
partial default alphanumeric_keys
xkb_symbols "sk_us" {

    name[Group1] = "Slovak";
    name[Group2] = "US/ASCII";

// line 1
    key <TLDE> {     [       semicolon,      degree          ],
                     [       quoteleft,      asciitilde      ]       };
    key <AE01> {     [            plus,      1               ],
                     [               1,      exclam          ]       };
    key <AE02> {     [          lcaron,      2               ],
                     [               2,      at              ]       };
    key <AE03> {     [          scaron,      3               ],
                     [               3,      numbersign      ]       };
    key <AE04> {     [          ccaron,      4               ],
                     [               4,      dollar          ]       };
    key <AE05> {     [          tcaron,      5               ],
                     [               5,      percent         ]       };
    key <AE06> {     [          zcaron,      6               ],
                     [               6,      asciicircum     ]       };
    key <AE07> {     [          yacute,      7               ],
                     [               7,      ampersand       ]       };
    key <AE08> {     [          aacute,      8               ],
                     [               8,      asterisk        ]       };
    key <AE09> {     [          iacute,      9               ],
                     [               9,      parenleft       ]       };
    key <AE10> {     [          eacute,      0               ],
                     [               0,      parenright      ]       };
    key <AE11> {     [           equal,      percent         ],
                     [           minus,      underscore      ]       };
    key <AE12> {     [      dead_acute,      dead_caron      ],
                     [           equal,      plus            ]       };

// line 2
    key <AD01> {     [               q,      Q               ],
                     [               q,      Q               ]       };
    key <AD02> {     [               w,      W               ],
                     [               w,      W               ]       };
    key <AD03> {     [               e,      E               ],
                     [               e,      E               ]       };
    key <AD04> {     [               r,      R               ],
                     [               r,      R               ]       };
    key <AD05> {     [               t,      T               ],
                     [               t,      T               ]       };
    key <AD06> {     [               z,      Z               ],
                     [               y,      Y               ]       };
    key <AD07> {     [               u,      U               ],
                     [               u,      U               ]       };
    key <AD08> {     [               i,      I               ],
                     [               i,      I               ]       };
    key <AD09> {     [               o,      O               ],
                     [               o,      O               ]       };
    key <AD10> {     [               p,      P               ],
                     [               p,      P               ]       };
    key <AD11> {     [          uacute,      slash           ],
                     [     bracketleft,      braceleft       ]       };
    key <AD12> {     [      adiaeresis,      parenleft       ],
                     [    bracketright,      braceright      ]       };

// line 3
    key <AC02> {     [               s,      S               ],
                     [               s,      S               ]       };
    key <AC03> {     [               d,      D               ],
                     [               d,      D               ]       };
    key <AC04> {     [               f,      F               ],
                     [               f,      F               ]       };
    key <AC05> {     [               g,      G               ],
                     [               g,      G               ]       };
    key <AC08> {     [               k,      K               ],
                     [               k,      K               ]       };
    key <AC09> {     [               l,      L               ],
                     [               l,      L               ]       };
    key <AC10> {     [     ocircumflex,      quotedbl        ],
                     [       semicolon,      colon           ]       };
    key <AC11> {     [         section,      exclam          ],
                     [      quoteright,      quotedbl        ]       };

// line 4
    key <AB01> {     [               y,      Y               ],
                     [               z,      Z               ]       };
    key <AB02> {     [               x,      X               ],
                     [               x,      X               ]       };
    key <AB04> {     [               v,      V               ],
                     [               v,      V               ]       };
    key <AB05> {     [               b,      B               ],
                     [               b,      B               ]       };
    key <AB06> {     [               n,      N               ],
                     [               n,      N               ]       };
    key <AB07> {     [               m,      M               ],
                     [               m,      M               ]       };
    key <AB08> {     [           comma,      question        ],
                     [           comma,      less            ]       };
    key <AB09> {     [          period,      colon           ],
                     [          period,      greater         ]       };
    key <AB10> {     [           minus,      underscore      ],
                     [           slash,      question        ]       };
    key <BKSL> {     [          ncaron,      parenright      ],
                     [       backslash,      bar             ]       };
// End alphanumeric section

// begin modifier mappings
    modifier_map Shift  { Shift_L };
    modifier_map Lock   { Caps_Lock };
    modifier_map Control{ Control_L };
    modifier_map Mod3   { Mode_switch };
};