xmodmap
jest przestarzały; tak więc należy to zrobić za pomocą xkb
narzędzi.
Wydaje się, że pożądana zamiana nie jest domyślnie dołączona do plików X11; więc musisz to napisać sam.
Strona http://madduck.net/docs/extending-xkb/ pomogła mi zrozumieć i znaleźć sposób na zrobienie tego.
Utwórz plik, w ~/.xkb/keymap/mykbd
którym umieścisz wyjście setxkbmap
, będzie to podstawowa definicja klawiatury; na przykład:
setxkbmap -print > ~/.xkb/keymap/mykbd
następnie utwórz plik symboli, aby zdefiniować zamianę klawiszy, umieść go na przykład w ~/.xkb/symbols/myswap
tam, wstaw następujące linie:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
następnie edytuj ~/.xkb/keymap/mykbd
plik i zmień xkb_symbols
wiersz, aby dodać
+myswap(swap_l_shift_ctrl)
wreszcie możesz go załadować xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
(nie możesz użyć „~” dla -I
parametru). Prawdopodobnie wypluje wiele ostrzeżeń o niezdefiniowanych symbolach niektórych rzadkich kluczy, ale możesz je zignorować (np. Błąd przekierowania do dave:) 2> /dev/null
.
Jeśli chcesz mieć możliwość łatwego przełączania między normalnym a odwróconym klawiszem Ctrl / Shift; po prostu utwórz pod ~/.xkb/keymap/
innym plikiem, bez dodatkowej opcji „myswap” i załaduj go xkbcomp
. Możesz utworzyć dwa małe skrypty, aby je załadować.
xkbcomp $DISPLAY some.dump
po i przed wywołaniem IBus i wykonaj różnicę między dwoma zrzutami (są to kompletne definicje klawiatury); prawdopodobnie zobaczysz różnice.setxkbmap -option caps:escape
działa. IBus zapamiętał zamienione klawisze Esc i Caps_Lock, ale nie działa to na zamienione lewe klawisze Shift i lewe klawisze Control.Natknąłem się na pewne problemy związane
LALT
zControl_L
korzystaniem z rozwiązania Pablo , wygląda na to, że musisz również ustawićmodifier_map
opcje.Skopiowałem szablon z
/usr/share/X11/xkb/symbols/altwin
- poszukajxkb_symbols "ctrl_alt_win"
- i zmodyfikowałem go, aby wprowadzić następujące zmiany:Ostateczny
~/.xkb/symbols/myswap
plik to:Dodałem również
-w0
doxkbcomp
polecenia, aby uniknąć jakichkolwiek ostrzeżeń podczas otwierania nowej powłoki.** Często przełączając się między komputerami Mac i Linux, lubię mieć dwa klawisze sterujące w systemie Linux, aby zbliżyć klawiaturę Mac do pamięci mięśni.
źródło