"Nezbytným krokem k tomu, abyste od života získali věci, po kterých toužíte, je rozhodnout se, co vlastně chcete."
Linux Mint umožňuje vlastní definici klávesových zkratek, ale jen přes GUI. Já si chtěl udělat globální klávesové na práci s okny a přemapovat hjkl na kurzorové klávesy (po vzoru Vimu), abych je měl globálně v systému.
Na to se hodí xmodmaps (soubor ~/.Xmodmap - musí se načítat po startu):
! soubor pro namapovani kurzorovych klaves na hjkl ! prepinac: capslock (muzes vyzkouset pomoci prikazu xev) ! za rovna se: key, shift+key, mode_switch+key, mode_switch+shift+key, altgr+key, altgr+shift+key ! google: List of Keysyms Recognised by Xmodmap keycode 66 = Mode_switch keysym h = h H Left keysym l = l L Right keysym k = k K Up keysym j = j J Down keysym x = x X Delete keysym zcaron = zcaron 6 Home keysym uring = uring quotedbl End keysym f = f F Prior keysym b = b B Next
Potíž ale nastala v Matlabu, tam to prostě nefunguje.
Proto jsem hledal dál a našel jsem xbindkeys. Tam zase nastala potíž v tom, že spojení s CapsLockem nefunguje moc dobře - k emulaci klávesy (xte, nutno případně doinstalovat) se musí přidat krátký sleep, asi na rozpoznání toho, že je CapsLock aktivován, jinak to nefunguje (~/.xbindkeysrc):
keystate_capslock = enable
"sleep 0.1; xte key Up"
m:0x12 + k
"sleep 0.1; xte 'key Down'"
m:0x12 + j
"sleep 0.1; xte 'key Left'"
m:0x12 + h
"sleep 0.1; xte 'key Right'"
m:0x12 + l
Nakonec jsem se tedy rozhodl, že si zkratky udělám na levou a pravou klávesu Win. Jenže Linux Mint přes GUI nastaví jen obě najednou, takže jsem si vytahal nastavení (názvy akcí jsem našel v "/usr/lib/cinnamon-settings/modules/cs_keyboard.py", respektive https://github.com/GNOME/gsettings-desktop-schemas/blob/master/schemas/wm-schemas.convert; názvy kláves v /usr/include/X11/keysymdef.h - píší se bez XK_) a vytvořil si skript, kterým si nastavuji veškeré mapování a globální zkratky ručně (je to i rychlejší a lépe přenosné:) ).
Z terminálu se globální nastavení například uloží jako:
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
Zde ale nejde používat rozlišení pravé a levé klávesy. Já chtěl namapovat klávesy systému jen na pravý Win, proto se ještě musí editovat soubor:
sudo gedit /usr/share/X11/xkb/symbols/pc
(dle http://askubuntu.com/questions/401884/mapping-left-ctrlright-ctrl-to-switch-windows), přidat (upravit):
//modifier_map Control{ Super_L, Super_R };
modifier_map Control{ Super_R };
U mě ale ani tohle nepomohlo.
Reference Keybindings - Ubuntu Wiki.
.