Je možné zaměnit levý Shift a levým CTRL pomocí setxkbmap
místo xmodmap
?
UPRAVIT
Přešel jsem na Fcitx, který s mým rozložením klávesnice a přizpůsobenou mapou kláves funguje mnohem lépe než IBus v každém ohledu. Vřele doporučuji.
Přijatá odpověď:
xmodmap
je zastaralý; takže by to skutečně mělo být provedeno pomocí xkb
nástroje.
Zdá se, že požadovaný swap není standardně součástí souborů X11; takže to musíte napsat sami.
Stránka https://web.archive.org/web/20170825051821/http://madduck.net/docs/extending-xkb/ mi pomohla pochopit a najít způsob, jak to udělat.
Vytvořte soubor ~/.xkb/keymap/mykbd
kam umístíte výstup setxkbmap
, bude to vaše základní definice klávesnice; např.:
setxkbmap -print > ~/.xkb/keymap/mykbd
poté vytvořte soubor se symboly pro definování výměny klíčů, vložte jej například do ~/.xkb/symbols/myswap
tam vložte následující řádky:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
poté upravte ~/.xkb/keymap/mykbd
a změňte xkb_symbols
řádek k přidání
+myswap(swap_l_shift_ctrl)
nakonec jej můžete načíst pomocí xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
(pro -I
nelze použít „~“. parametr).
Pravděpodobně to bude plivat spoustu varování o nedefinovaných symbolech pro některé vzácné klíče, ale můžete je ignorovat (např. chyba přesměrování na dave:2> /dev/null
).
Pokud chcete mít možnost snadno přepínat mezi normálním a vaším obráceným ctrl/shift; stačí vytvořit pod ~/.xkb/keymap/
jiný soubor bez další možnosti „myswap“ a načtěte jej pomocí xkbcomp
. Pro jejich načtení můžete vytvořit dva malé skripty.