Jak wyczyścić ustawienia xmodmap?

42

Dokładnie o co prosi tytuł. Jak wyczyścić ustawienia xmodmap?

Mam model IBM M i jakoś xkeycaps uświadomił sobie, że mój Endklucz wcale nie był żadnym kluczem. xevzgłasza naciśnięcia klawiszy, gdy z niego korzystam, więc wiem, że zdarzenie jest generowane przez klawiaturę. Ponadto xkeycaps uważa, że ​​wszystkie moje klawisze strzałek są nieporadne i najwyraźniej pasek przewijania jest uszkodzony, więc przewija się tylko w dół - więc nie mogę przewinąć w górę, aby znaleźć klawiaturę IBM, która może być blisko mojej mapy, więc mogę naprawić moje klucze .

Próbuję zresetować klawiaturę do ustawień domyślnych, ale strona podręcznika xmodmap jest żałośnie pozbawiona opcji „zresetuj wszystko” lub „wyczyść wszystko” lub czegokolwiek tego rodzaju (co udało mi się znaleźć).

Wayne Werner
źródło

Odpowiedzi:

65

xmodmapnie ma pojęcia stanu, więc nie ma możliwości bezpośredniego zresetowania stanu. Możesz to zasymulować, używając xmodmap -pke >.xmodmap.origprzed dokonaniem jakichkolwiek zmian (chociaż nie zapisuje mapy modyfikatora, którą musiałbyś zapisać i przywrócić ręcznie) - ale jest na to trochę za późno.

xmodmapJednak nowoczesne systemy zazwyczaj nie używają do konfigurowania klawiatury. setxkbmapjest nowoczesnym sposobem na to; i to resetuje wiązania po uruchomieniu. Możesz więc użyć przycisku setxkbmap -layout usdo przywrócenia normalnego stanu. Bardziej kompletne byłoby sprawdzenie domyślnej konfiguracji w /etc/X11/xorg.conf. Na przykład w moim systemie

jinx:718 Z$ sed -n '/Identifier.*Keyboard/,/EndSection/p' /etc/X11/xorg.conf
        Identifier      "Generic Keyboard"
        Driver  "kbd"
        Option  "XkbModel"      "pc105"
        Option  "XkbLayout"     "us"
        Option  "XkbOptions"    "grp:alt_shift_toggle"
EndSection

Odpowiednie polecenie to

setxkbmap -model pc105 -layout us -option grp:alt_shift_toggle

Gdyby w wyniku był XkbVariantwpis, przekazałeś jego wartość za pomocą -variant. Jedną rzeczą, na którą należy zwrócić uwagę, jest to, że opcje są obsługiwane specjalnie: możesz ustawić tylko jedną opcję dla każdego -optionparametru i musisz -option ''najpierw zresetować parametry. Aby w pełni zresetować, gdy XkbOptions "grp:alt_shift_toggle,grp:ctrls_toggle"potrzebujesz czegoś takiego

setxkbmap -model pc105 -layout us -option '' -option grp:alt_shift_toggle -option grp:ctrls_toggle
geekozaur
źródło
30
setxkbmap -layout uszresetował moje klucze, dziękuję!
Dan
8
Inną bardzo przydatną opcją, którą odkryłem, jest setxkbmap -querywydrukowanie bieżących ustawień w formacie xkb, co pomogło mi skonfigurować klawiaturę Apple zgodnie z życzeniem z terminala.
metakermit
1
Ostrożnie z tym poleceniem, setxkbmap -layout usponieważ spowoduje to przywrócenie usukładu dla każdego obsługiwanego języka. Na przykład mój francuski układ klawiszy wraz z moim angielskim układem klawiszy okazuje się być qwerty insteady azerty ..
vdegenne
To pytanie dotyczy xmodmap, a nie xkb. Te aplikacje są w konflikcie, a jeśli twój system używa xmodmap (podobnie jak współczesne Ubuntu), możesz się pomylić po użyciu polecenia reset xkb, a następnie spróbować zmodyfikować powiązania klawiszy w xmodmap (tak jak ja)
Michael Fulton
12

setxkbmap -option resetuje klawisze meta do domyślnych.

Mitar
źródło
1
To zadziałało dla mnie.
Adrian Lopez
1

Eksperymentując xmodmap, pomieszałem moje kluczowe ustawienia, używając xmodmap -en "keysym BackSpace = Delete". Myślałem, że -nflaga nie spowoduje podjęcia żadnych działań, ponieważ man xmodmapstrona stwierdziła, że

-n      This  option indicates that xmodmap should not change the mappings, but should display what it would
               do, like make(1) does when given this option.

Jednak polecenie sprawiło, że mój Deleteklucz był bezużyteczny.

Po przeczytaniu powyższego po prostu napisałem setxkbmap, mając nadzieję, że pokaże mi opcje, podczas gdy w rzeczywistości natychmiast powrócił bez wyjścia, a następnie mój Deleteklucz cudownie znów zaczął działać!

Wygląda to tak, jakby

setxkbmap

sam zrobi robotę ...

Jan
źródło
proste i doskonale działające! :)
Stéphane Hesse