JanKoWeb: Produktivita - Linux Mint: konfigurace klávesových zkratek pomocí skriptu a s tím spojené potíže

Linux Mint: konfigurace klávesových zkratek pomocí skriptu a s tím spojené potíže

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.

Xmodmaps

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.

Xbindkeys

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

Vlasní skript s xbindkeys

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.

Rubrika Produktivita | Tagy Zkratky, Linux | Po 10.03.2014 | 1540x

Náhodné články

Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.

Aktuální věci publikuji kvůli úspoře času na Twitter.

Honza

"K tomu, abychom mohli empatii dávat, potřebujeme ji sami dostávat."

M. Rosenberg