Wiem, jak używać xmodmap do zmiany mapowania klawisza Caps Lock, aby działał on jak klawisz Control lub klawisz Escape. Chciałbym połączyć obie funkcje w następujący sposób:
Kiedy naciskam, a następnie zwalniam, klawisz Caps Lock, wysyła Escape. Kiedy przytrzymuję Caps Lock i nacisnę inny klawisz (powiedzmy A), wysyła Control-A.
Czy jest jakaś kombinacja xkb, xmodmap i czegoś innego, co może sprawić, że Caps Lock zachowuje się w ten sposób w X?
Używam Ubuntu Precise na Macbooku Air 3,1.
Mam tę konfigurację na komputerze Mac i próbowałem znaleźć sposób na Ubuntu bez powodzenia.
Cóż, teraz działa. Dzięki tungd za wysłanie mnie do Xcape . To, co zrobiłem, jest naprawdę proste.
W obszarze Preferencje systemowe> Układ klawiatury> Opcje ...> Klawisz Ctrl zaznaczyłem „Caps Lock as Ctrl”.
xcape -e 'Control_L = Escape'
Gotowe, Caps Lock działa jak Ctrl, gdy jest używany jako modyfikator, i jako Esc, gdy jest naciśnięty sam (istnieje niewielkie opóźnienie o kilkaset milisekund, jak zaznaczono w pliku README xcape, więc nadal nie jest tak optymalne, jak rozwiązanie Mac, które używa KeyRemap4MacBook.)
źródło
gnome-tweak-tool
do mapyCaps Lock
, abyCtrl
jak tam nie jestKeyboard layout
wSystem Settings
Ubuntu 14.04. Wtedyxcape -e 'Control_L=Escape'
nie działa, ale po użyciuxcape -d
Odkryłam, żeCaps Lock
generuje kod dostępu 66 i odwzorować je odpowiednio:xcape -e '#66=Escape'
.setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape'
Też tego szukam. Jeszcze tydzień temu znalazłem częściowe rozwiązanie, używając
xmodmap
:To oczywiście nie działa idealnie, skutecznie wysyła zarówno Escape, jak i Ctrl w tym samym czasie, gdy naciskam CapsLock, ale przez pewien czas byłem z tego zadowolony.
Wreszcie znalazłem to małe narzędzie https://github.com/alols/xcape . Teraz mogę po prostu ponownie przypisać CapsLock do Ctrl i pozwolić Xcape wykonać swoją pracę.
źródło
EDYCJA: Naprawiono to dla większości inteligentnych (nowszych) menedżerów wyświetlania.
Według komentarzy Louisa i Sergiya wymyśliłem to rozwiązanie, które działa dla mnie na Ubuntu 16.04 (Xenial) z LightDM i Unity.
Umieszczam następujący wiersz kodu w moim
.xprofile
pliku w katalogu domowym.Polecenie końcowe i umieszcza polecenie xcape w tle, aby nie blokowało sesji. Setxkbmap dokonuje natychmiastowej zmiany.
Sergij:
Louis:
źródło
zainstalować
xcape
Dodaj dwie linie w swoim
~/.bashrc
Zwróć uwagę na część
-t 100
, jeśli jej nie ustawisz, możesz zauważyć opóźnienie w Esc, jeśli używasz vima.źródło
sudo apt-get install xcape
(literówka)W tym celu zbudowałem narzędzie w C, które rozwiązuje wiele problemów związanych z rozwiązaniem xcape / xmodmap :
źródło