Myš je pro kočku: Klávesnice – Klávesy pod klávesnicí

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, EnterReturn … – 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

🎭 Klávesnici budeme dočasně měnit pomocí rychlého xmodmap; když se něco zvrtne, stačí na chvíli změnit jazyk klávesnice nebo restart. Program xmodmap vám bude zřejmě fungovat, pouze pokud v Linuxu stále používáte protokol kompozitoru X11, a nikoli ještě Wayland. (Wayland je věčně nový asi tolik let jako IPv6…)

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.

♗Asi jako když máme na třetím políčku šachovnice střelce, Rusové loďku a Anglosasové biskupa – a všechny tyto figury dělají to samé. Tak my si v Čechách místo pravého střelce můžeme dát loďku a udat jí jiné pokyny než levému.

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):

  1. normální stisk
  2. Shift
  3. Mode_switch
  4. Shift + Mode_switch
  5. AltGr
  6. Shift + AltGr
🪆 Další pozice kupodivu nejsou kombinací Shift, AltGr a Mode_switch dostupné, navzdory matematické zkušenosti kombinatoriky. Já vím, mělo by být 8 pozic na jedné klávese… na Internetu říkali, že místo xmodmap mám k mapování používat xkb. V tuto chvíli je CapsLocktotiž jenom jednoúrovňová klávesa, která se “vypaří”, když je zmáčknuta v kombinaci s jiným modifikátorem. Ano, modifikátory se mohou vzájemně požírat. Ano, může záležet na pořadí, v jakém je zmáčknete. Ano, můžete křičet nahlas.
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

  1. Poprvé zmáčknu klávesy ‘a’, ‘s’, vypíše se: a a
  2. Stisknu ISO_Next_Group. Zmáčknu klávesy ‘a’, ‘s’, vypíše se: c c
  3. 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.
  4. 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’.
  5. 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

👻 Ve světě x.org, kam patří Linux, klávesou nazýváme přibližně 4 různé věci – scancode, keycode, keysym a modifikátor. Tlačítko vyšle elektrickým impulsem scancode, který se přeloží do číselného keycode – počítač zjistí, že jste zmáčkli <AC01>, neboli “tlačítko s písmenkem a”. Všechny alfanumerické znaky mají na pozicích jednotlivé keysym (první pozice prosté “a”, druhá pozice s Shiftem “A”). Modifikátory mají ještě něco, co ve své neznalosti nevím, jak nazvat, aby se to nepletlo; říkám prostě modifikátor. Těch existuje 8 a jsou nesystematicky pojmenovány shift, lock, control a mod1..5.
Například klávesa Shiftkeycode (čí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.

🍏 Já se omlouvám za flame, ale fakt nechápu odlišnou filozofii Macu. Co jsem se s nimi potkal poprvé, ještě neměly ani dvě tlačítka na myši! Přece když už myš, tak ať se z ní vytřískne nějaká funkcionalita, ne? Ale hlavně jim chybí další speciální klávesy. To málo případů, kdy jsem na systémech Apple pracoval, na mě dělá dojem, že co do klávesnice, jejich inženýrům vůbec zbyly jenom oči pro ohryzek… Hlavně aby všechno hezky graficky svištělo a neobtěžovat uživatele s možností někam růst nebo si dělat věci po svém.

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.

Autor:

Komentáře (2)

  1. Pavel říká:

    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.

    • Edvard Rejthar říká:

      Dobrý den, to rád slyším a děkuji Vám za doplnění :)

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..