Používejte celou klávesnici. Jsou na ní převážně písmenka, ale možná najdeme i tlačítka, kterých jste si nikdy nevšimli. A existují ještě klávesy z hlubších vrstev šera… Vyrazme proto na túru napříč klávesnicí!
Základní klávesy:
→ písmena – tři řady písmen, přičemž čím více napravo, tím více nějaké interpunkčnější záležitosti
→ diakritická řada – možná se jmenuje jinak, jsou na ní v angličtině čísla
→ Backspace, Insert, Delete, Escape, Enter ≠ Return … – klávesy, které z počítače dělají psací stroj
→ Numpad – klávesy, které z počítače dělají zase počítací stroj
Potud jsme se asi drželi všichni. Zkusme jít dál.
→ F1, F2, F3… – klávesy pro fajnšmekry (F6 přepíná panely, F1 vyvolává nápovědu, Alt+F4 vyvolává úlek…)
→ CapsLock, NumLock, PrintScrn … – klávesy, o kterých jakžtakž víme, k čemu slouží (ale věděli jste, že Alt+PrintScrn vyfotí jen aktivní okno?)
→ Pause, ScrollLock, Break, SysRq … – klávesy z konspiračních teorií
→ šipky, Home/End, Page Up/Down … – klávesy pro navigaci (když řeknete svým kamarádům, že se Home smí stisknout i třeba v prohlížeči, nebudou muset po zbytek života rolovat)
A pak tu máme modifikátory (kombinační klávesy) a něco lahůdek.
→ Shift – základní modifikátor, znají jej i lidé, kteří místo “Firefox” říkají “Mozilla” (a “Microsoft” místo “Office”)
→ Alt – např. zkratky na úrovni webové stránky
→ Ctrl/Primary – např. zkratky na úrovni prohlížeče
→ Win/Super/Meta/Command – např. zkratky na úrovni systému.
Pod klávesou (resp. tlačítkem – keycodem) s logem Windows je:
- ve Windows klávesa (resp. keysym) Win
- v Ubuntu KDE klávesa (resp. keysym) Meta
- v Ubuntu Unity/Gnome klávesa (resp. keysym) Super
Ačkoli KDE aplikace jako Krusader vám zřejmě budou tvrdit, že se jmenuje Meta. Jiné zase jako Metu berou Alt, např. Emacs. Je v tom historický guláš.
V Linux se zkrátka umístila funkcionalita klávesy Win na stejné fyzické tlačítko a jednou se pod něj mapuje klávesa Super a jindy klávesa Meta. Ten druhý nepoužitý modifikátor si ale můžete někam přemapovat a používat po svém.
→ AltGr/ISO_Level3_Shift – Zde to začíná být zajímavé. AltGr vytříská z kláves další řadu znaků. Ano, proto na každé klávese bývají čtyři znaky. Jestli chcete rychlé zlepšení za minimální konfigurace, doporučuju klávesu AltGr přesunout na CapsLock. CapsLock nepotřebuju. Lidem na sociálních sítích umím do debilů vynadat i jinak než velkými písmeny (případně zatížím Shift). Zato novou funkcionalitu CapsLocku ocením tisíckrát denně. Na layoutu qwerty programátorská píšu ‘č’ klávesou 4, čtyřku pak Shift+4 a dolar CapsLock+4 (resp. AltGr+4). Všechny užitečné znaky na týchž prstech, vynikající průsečík mezi českou diakritikou a anglickou klávesnici, která má místo ní čísla a symboly: Diakritická řada bude s CapsLockem obsahovat tytéž znaky, jako má anglická klávesnice s Shiftem.
Jak by to vypadalo, si můžete nezávazně vyzkoušet příkazem: xmodmap -e 'keycode 66 = ISO_Level3_Shift’
Tím říkáte, že na klávesu s keycodem 66 chcete dát AltGr, který se jmenuje ISO_Level3_Shift. Nevím, proč se jmenuje dvěma jmény. AltGr znamená alternativní grafika, zatímco Level3 značí, že se použije znak ze třetí pozice klávesy. Každá klávesa má totiž více pozic – první pozice pro normální stisk, druhá pro stisk se Shiftem… ještě se k tomu dostaneme.

S AltGr již žádné: “Neumím napsat dolar!” Máte jej tam nakreslený.
→ Mode_switch – Před osmy lety jsem na místo původní klávesy AltGr picnul Mode_switch, díky které jsem z písmenka vytřískal dokonce 6 znaků (pozic). A otevřel se mi nový obzor. Pod prsty se mi vejdou taková esa jako český spojovník a české uvozovky.
Pokud si také chcete dopřát ten luxus, lišit pomlčku a mínus a znak pro násobení ‘×’ s písmenkem ‘x’ a zahanbit všechny grammar nazis v baráku, zkuste. Časem popíšu nástin svého nikterak dokonalého layoutu (ano, vychází z qwerty programátorská). Zatím si můžete proměnit funkci klávesy pravého altu na Mode_switch.
xmodmap -e 'keycode 108 = Mode_switch'
Po následujícím příkazu vám klávesa ‘a’ s shiftem místo velkého ‘A’ napíše ‘b’. A můžete experimentovat i s dalšími pozicemi, kombinací kláves Mode_switch a AltGr. Když se propracujete k šesté pozici, napíšete si chlapečka. Hrajte si. Kdyby něco, jak se odhlásíte, změny zmizí.
xmodmap -e 'keycode 38 = a b c d e U1F466’
Pozice dosažitelné v programu xmodmap (aspoň u mě na Ubuntu 12.04 – 21.10):
- normální stisk
- Shift
- Mode_switch
- Shift + Mode_switch
- AltGr
- Shift + AltGr
Taky zůstává otázkou, proč se na klávesnici vyskytující klávesa AltGr obsluhuje 5. – 6. pozici, kdežto nevyskytující se Mode_switch pozici 3. – 4.
Ale dost o Mode_switch.
→ ISO_Level5_Shift – Tento stín z pravěku se mi dlouho nepodařilo zprovoznit. Moc jsem toužil, aby doplnila AltGr a Mode_switch a darovala mi další rozměr navíc, jsemť to nenasyta. Ale víc než šest znaků na písmenku se mi mít s xmodmap nedařilo. (Povede se nám to až s xkb.) Ale přece to trošku jde! Viz další klávesa.
→ ISO_Next_Group – Další klávesa. Taková šílenost… Místo pozice 1 se po stisku bere pozice 3, potom 5, potom 7, nakonec 9 a dokola. Jestli nechápete, co tím chci říct, přemapujte si klávesu ‘a’ na písmenka třeba od ‘a’ do ‘n’ a klávesu ‘s’ na kratší rozsah a – f. (Je však možné, že dostanete jiný výsledek pokusu, případně se klávesa bude chovat chaoticky.)
xmodmap -e 'keycode 38 = a b c d e f g h i j k l m n’
xmodmap -e 'keycode 39 = a b c d e f’
- Poprvé zmáčknu klávesy ‘a’, ‘s’, vypíše se: a a
- Stisknu ISO_Next_Group. Zmáčknu klávesy ‘a’, ‘s’, vypíše se: c c
- Stisknu ISO_Next_Group. Zmáčknu klávesy ‘a’, ‘s’, vypíše se: g a. Ale, to je zajímavé. Zatímco klávesa ‘a’ píše pozici sedmou, klávesa ‘b’ přetekla a píše nám zase 1. pozici.
- Stisknu ISO_Next_Group. Zmáčknu klávesy ‘a’, ‘s’, vypíše se: i c. Klávesa ‘a’ je na 9. pozici, klávesa ‘b’ se točí na 3. Zmáčknu-li Shift+a, vypíše se dokonce 10. pozice: ‘j’.
- Stisknu ISO_Next_Group. Zmáčknu klávesy ‘a’, ‘s’, vypíše se: a a. Jsme zpátky na začátku kruhu, všechny klávesy se teď chovají normálně.
Vrátíme klávesy, jak byly:
xmodmap -e 'keycode 38 = a A’
xmodmap -e 'keycode 39 = s S’
Například klávesa Shift má keycode (číslo značící: “levý Shift”), jediný keysym (řetězec: “Shift_L”) a je na modifikátoru “shift”. Na jednom modifikátoru může být víc keysym. Bez zjevné logiky. Levý i pravý Ctrl jsou na modifikátoru control, ale zde symetrie končí. Tlačítka Win bývají na mod4, NumLock na mod2.
Aplikace s keycode, keysym a modifikátory mohou různě žonglovat a z toho pak vznikají divnosti.
Některé klávesy jsou si totiž rovnější než jiné. Zkuste přemapovat třeba takový NumLock, ale připravte se vypojit komp ze zásuvky.
Třeba můj ISO_Next_Group se nekamarádí s AltGr. Co se týká našeho příkladu; při normálním stisku kláves ‘a’ a ‘s’ (napsalo se ‘aa’) AltGr vrací 5. pozici (‘ee’). Po 1. stisku ISO_Next_Group (napsalo se ‘cc’) AltGr vrací místo 7. dokonce 4. pozici (‘dd’). Po 2. stisku ISO_Next_Group (napsalo se ‘ga’) AltGr píše nějakou šílenost ‘Ge’, ač nemám nejmenší tušení, kde vyčetl velké G. Podobně po 3. stisku ISO_Next_Group (napsalo se ‘ic’) AltGr píše velké ‘Id’.
Pokud jste někdo guru kernelu, vneste nám s tím světlo na Superusera nebo tady v diskuzi.
Vidíme, že jsme zvládli užít u jedné klávesy 10 pozic. A pokud jste zešíleli, slyšte třeba ještě o takové klávese F1, která se pojívá s Fn. Kombinace Fn+F1 generuje úplně novou klávesu, která dává pokyn k uspání, × 10 pozic… to bychom možná měli 20 různých písmenek na jediné klávese. Když se obejdeme bez dvojitých w a q, mohli bychom celou SMSku napsat na nadupané klávese.
→ divocí Latch a Lock – Lze potkat i různé petlice a zámky.
- ISO_Level3_Lock – Funguje. (Možná ne na klávese jako Numpad, ale na písmenkách bude… ale pak vám přestanou psát písmena, tak můžete mít problém vrátit to zpátky.)
- ISO_Level2_Lock – By mohl/měl existovat, ale mně neexistuje. Má být údajně velmi podobné CapsLocku, ovšem CapsLock zvětšuje pouze písmena, zatímco tohle se ke všem znakům chová, any by byly mačkány s Shiftem.
- ISO_Level2_Latch – Existuje, ale nic nedělá. Má dělat tohle: zmáčknu, pustím, další jedna klávesa je v Shiftu. Asi jako když zmáčknete osamocený háček a pak písmeno → jež se pak napíše, možno-li, s háčkem. (Klávese s tímto jevem se říká dead key.)
- ISO_Level3_Latch – Funguje.
→ Hyper – Jenom třešnička. Nedělá nic, co mu neřeknete.
→ Henkan_mode, Katakana, Hiragana, Muhenkan – Tohle jsem se bál si namapovat, zní to strašně japonsky. Možná to ani nejsou modifikátory.
→ Option, Command – klávesy ze světa Applu; snaží se podělit o role kláves Alt, Control a Super.
Nakonec zmíníme ještě pár jinak speciálních kláves.
→ Menu – To je málo známá bomba, pro kurzor klávesnice vyvolá totéž, co pravé tlačíko pro kurzor myši. Jako byste klikli pravou myší na kurzor klávesnice, ale myš zůstala, kde byla. (Inteligentní programy namísto Menu stejně dobře dovolují použít konvenční Shift+F10.)
→ Fn – Když výrobci zjistili, že se lidé už s F1–F12 klávesami nenaučí, davše na ně obrázky, vytvořili úzus na Fn+Fx kombinace. Fn je hardwarovější než papež. Sídlí zřejmě někde v hloubi firmware, protože software jeho stisk vůbec nezaznamenává. Takže se ho z klávesnice zbavíte leda nožem. Když stikneme Fn+nějaký modrý obrázek na klávesnici, vyvolá se stisk klávesy, která se nejmenuje tak hezky jako třeba ‘a’, ale spíš ‘XF86MonBrightnessUp’.
Vrchol toho je, když výrobci některých notebooků považují F řadu za nadbytečnou a házejí tam modré obrázky – a naopak abych spustil staré dobré Alt+F4, nutí mě zmáčknout Fn+Alt+F4.
→ XF86 klávesy – Kromě ‘Fn+modrý obrázek’ kombinací sídlí XF86 pod všemi obrázkovými tlačítky, jestli je máte. Nevracejí symbol, ale spouštějí akci. Pod měsíčkem XF86Sleep vám počítač uspí, škrtlý reproduktorek XF86AudioMute ho umlčí.
Pojí se s nimi spousta zajímavých poznatků a složitých divností, kterým nerozumím. Jistě je to někde pěkně vysvětleno, ale když jsem zjistil (v utilitě xev), že mi Fn+a hází obskurní XF68Launch3 (vopravdu) a Fn+b nic, šel jsem si tehdy číst články o českém politikovi, jak stříkal konkurenci úrodu jedem.
→ Multikey/Compose key – Moje doporučení zní, nahraďte s klávesou Multikey pravý Win a udělejte z ní modifikátor, stavový prostor kombinačních možností zkratek vám zase násobně vzroste. Původně jsem tam chtěl mít klávesu Hyper, protože mám rád fousy Rikera ve Star Treku, ale Multikey má báječnou a nedostatečně známou funkcionalitu. Je branou k dalším znakům. Například postupný stisk kláves Multikey-8-8 vám vypíše znak pro nekonečno: ‘∞’. Více si o ní budeme povídat někdy příště u Unicodu.
→ Codeinput – V jednom oficiálně vypadajícím a každopádně velmi fundovaném návodu jsem se dočetl až ke klávese Codeinput: „There are other composition keys, such as Codeinput, but I don’t know what they do.“ To je vše.
→ ISO_Move_Line_Up, ISO_Partial_Line_Down, ISO_Release_Both_Margins, ISO_Fast_Cursor_Right, ISO_Emphasize, ISO_Center_Object, PreviousCandidate … – Našli byste ještě mnoho kláves, o kterých jsem nepsal. Vesměs se mi je nepodařilo zprovoznit a nevím, k čemu užitečnému by mohly dnes sloužit. Může se jednat o rezidua z dřívějších dob, vývoj se však bral jiným směrem. A funkcionalitu dedikovaných kláves převzaly programy.
Tlačítková fobie Steva Jobse mi jde taky proti srsti, ale ve skutečnosti jde v MacOS také vytvořit mapa klávesnice s téměř neomezenou kompoziční logikou. Vše v XML, jen se v tom naučit orientovat. Čtyři symboly na každé klávese potřebuju celkem běžně, abych nemusel kvůli každému slovu či jménu stále přepínat klávesnici mezi několika jazyky.
Dobrý den, to rád slyším a děkuji Vám za doplnění :)