xmodmap – přemapovat rychle a nezávazně
Rychlý nástroj pro mapování klávesnice představuje xmodmap. Nepůjdeme do hloubky. Nebudeme si lámat hlavu, co přesně znamenají údaje, které vidíme spustivše příkaz xmodmap suše bez parametrů. Ani jak zábavnou a jak moc vedle paseku lze vysekat mezi jedlemi lesa své klávesnice, pokud tyto údaje začneme přehazovat. Použijeme xmodmap, abychom za minimální námahy klávesnici podojili. Sice se vám nemusí podařit vytřískat z klávesy více než 6 pozic, ale i to už je úspěch proti všemožným GUI přemapovačům, které vytřískají 4. S použitím xkb v dalším článku získáme 8 – i víc, co se vám na klávesnici vejde.
Ať je hned půl hotovo
Jak do přemapování? Jeden způsob za všechny. Způsob, který se neuloží v systému natvrdo a jde snadno vrátit. Jako že jsem v Ubuntu a umím si zapnout příkazovou řádku. Nejdřív se podívám, jak vypadá současné mapování klávesnice.
xmodmap -pke | less # program less umožní procházet výsledek šipkami, q ho ukončí
xmodmap -pke > xmodmap_zaloha.txt # dobrý nápad je vždy vše zálohovat
A teď můžu sázet jeden řádek za druhým, nemusíte použít vše, vyzkoušejte a vyberte si, které se líbí. Nebo lze řádky prostě dát do souboru. A ten spustit po přihlášení.
Říká se jí shebang a zaručuje, že váš soubor bude interpretovat programovací jazyk bash (respektive libovolný program, nalezený na cestě /bin/bash). Což je to, co chcete. Protože takových jazyků je plný hrnec, dash, sh, zsh… A když necháte na systému, aby za vás interpret vybral, přeji šťastné ladění.
Cílový stav
Hlavní věc je chytře si přesunout modifikátory. Jak vidíte na schématu, pod klávesou se středníkem máte Tab a zde celý náhrdelník modifikátorů začíná. CapsLock, pod ním šipkou dekorovaný, notoricky známý Shift, Control a obrázek okénka nebo tučňáčka značící klávesu Win vulgo Super. Za mezerou je pak grafický Alt, který se na něco chová jako Alt a na něco maličko jinak, pravý Super, klávesa pro vyvolání kontextového Menu na pozici karetu (kurzoru klávesnice) a pravá dvojice Control a Shift. Nad nimi vám jistě trůní ještě tlustý Return, jednovaječné dvojče Enteru, a poslední BackSpace, sourozenec klávesy Delete.
A nyní už samotné příkazy. Pokud vám nebudou sedět keycody, použijte program xev.
# na místo klávesy CapsLock přesunout klávesu AltGr xmodmap -e 'keycode 66 = ISO_Level3_Shift' # místo původní klávesy AltGr vložit keysym Mode_switch xmodmap -e 'keycode 108 = Mode_switch' # zážitky pro dobrodruhy # místo lomítka, máte-li mezi levým Shiftem a 'z', narvat hned dva extrabuřty (Multikey s Shiftem) xmodmap -e 'keycode 94 = ISO_Next_Group Multi_key' # místo Super_R (pravý Win) dát ještě jednu Multi_key – která ale bude jako modifikátor! # A pak zkusit v systémových zkratkách využít Multi_key buď v její původní funkci, nebo jako modifikátor. xmodmap -e "keycode 134 = Multi_key" xmodmap -e "remove mod4 = Multi_key" xmodmap -e "add mod3 = Multi_key" # mám nepodloženou zkušenost, že na mod3 se té klávese daří líp
Volný ring pro diakritickou řadu
# Francouzské znaky (někdo si dá německé) mohu psát na Mode_switch+8,9… bez změny layoutu. # Ještě si tam dávám interpunkci. Shift+AltGr+8,9…+o vypíše: ȯóőö. # Na nevyužité pozice jsem hodil ‘x’ a ‘y’ xmodmap -e ‘keycode 17 = aacute 8 agrave x asterisk dead_abovedot’ xmodmap -e ‘keycode 18 = iacute 9 icircumflex y z dead_acute’ xmodmap -e ‘keycode 19 = eacute 0 egrave x y dead_doubleacute’ xmodmap -e ‘keycode 20 = equal percent minus underscore backslash dead_diaeresis’ xmodmap -e ‘keycode 21 = dead_acute dead_caron dead_grave dead_circumflex dead_macron dead_cedilla’ # éěèêēȩ
Tanečky okolo Enteru
# hvězdička pro pravou ruku Mode_switch+l xmodmap -e 'keycode 46 = l L asterisk x lstroke Lstroke' # české uvozovky s (Shift)+Mode_switch xmodmap -e 'keycode 47 = uring quotedbl doublelowquotemark singlelowquotemark x y' # české uvozovky xmodmap -e 'keycode 48 = slash exclam leftdoublequotemark leftsinglequotemark apostrophe bar dead_diaeresis d' # klávesa mezi Tab a Escape píše středník xmodmap -e 'keycode 49 = semicolon dead_abovering grave asciitilde grave asciitilde' # vyšoupl jsem nepotřebný znak paragrafu, zde píšu znak pipe '|' xmodmap -e 'keycode 51 = backslash apostrophe backslash bar backslash bar' # levý zobáček nad Mode_switch xmodmap -e 'keycode 59 = comma question less a less multiply' # pravý zobáček nad Mode_switch xmodmap -e 'keycode 60 = period colon greater a greater division' # různě dlouhé uvozovky # hyphen mi tiskne někde neviditelný znak, někde maličkou pomlčku, která hned zmizí... nechávám pro zamyšlení xmodmap -e 'keycode 61 = minus underscore slash endash hyphen emdash'
Osídlení Numpadu
Získali jsme veliký stavový prostor, kam umístit naše oblíbené klávesy. Ale aby ho nebylo málo, napadlo mě, že na Numpadu zahnívá spousta klávesových pozic zcela nevyužita. Že Numpad2 s Shiftem produkuje šipku dolů, mi totiž přijde zhola zbytečné. Na Shift+Numpad2 si našinec může dát, já nevím, třeba latin letter two with stroke ‘ƻ’ a tvářit se jako paladin, a pořád mu zbudou čtyři další pozice pro kombinace Mode_switch a AltGr. (Ale Numpad klávesy se někdy chovají divně… někdy fungují jen 4 pozice, někdy mají první dvě pozice prohozeny, eventuálně se nedivte, a pšt.)
Uživatelé Windows?
Přijdou zkrátka. Úplně osiřelí však nezůstanou, doporučím jim geniální projekt AutoHotkey, bez kterého jsem se na Windows od roku 2008 neobešel. Jak co nejjednodušeji do toho? Když si spustíte stažený .exe soubor, ve složce My Documents se vám vytvoří soubor .ahk. Do něj přidáte řádek:
CapsLock::RAlt
Ten doslova říká: “Po stisknutí CapsLock proveď stisknutí RAlt”. Ano, zde se AltGr jmenuje RAlt. Klávesu Mode_switchaniISO_Level3_Shift jsem ve Windows žel zprovoznit nezvládl, přesto jsem měl radši AltGr místo CapsLocku, protože tak jsem levou rukou dosáhl klávesami 1, 2, 3, 4, 5, 6 na znaky !, @, #, $, %, ^. S dalším mapováním nepomohu, ale už používat AltGr místo CapsLocku zahrálo hodně muziky… nebo raději prozkoumáte projekt, který mapuje CapsLock na Esc či Ctrl v závislosti na tom, pokud ho použijete jako modifikátor či osamělou klávesu?
Komfortně lze pro Win mapovat klávesy pomocí aplikace Power Toys.
Děkuji za zkušenost!
„hyphen mi tiskne někde neviditelný znak, někde maličkou pomlčku, která hned zmizí“
To je správně. Hyphen je totiž „rozdělovník“ a určuje ve kterém místě se má případně slovo rozdělit na konci řádku. Takže pokud se nedělí, je neviditelný :-)
Děkuji velmi za vysvětlení, vyzkoušel jsem a konečně mi to dává smysl :)