Como limpo as configurações do xmodmap?

42

Exatamente o que o título pede. Como limpo as configurações do xmodmap?

Eu tenho um modelo IBM M e, de alguma forma, o xkeycaps entendeu que minha Endchave não era nenhuma. xevrelata pressionamentos de tecla quando o uso, para que eu saiba que o evento está sendo gerado pelo teclado. Além disso, o xkeycaps acha que minhas teclas de seta estão todas vacilantes e, aparentemente, a barra de rolagem está quebrada e rola apenas para baixo - então não consigo rolar para cima para encontrar um teclado IBM que talvez esteja perto do meu mapa para que eu possa consertar minhas teclas .

Portanto, estou tentando redefinir meu teclado para as configurações padrão, mas a página de manual do xmodmap é lamentavelmente desprovida de "redefinir tudo" ou "limpar tudo" ou qualquer coisa dessa natureza (que eu consegui encontrar).

Wayne Werner
fonte

Respostas:

65

xmodmapnão tem noção de estado; portanto, não há como redefinir o estado diretamente. Você pode simular-lo usando xmodmap -pke >.xmodmap.origantes de fazer quaisquer alterações (embora não salvar o mapa modificador, que você teria que salvar e restaurar manualmente) - mas é um pouco tarde demais para isso.

Os sistemas modernos geralmente não usam xmodmappara configurar o teclado. setxkbmapé a maneira moderna de fazer isso; e que faz ligações de reset quando executado. Então você pode usar setxkbmap -layout uspara redefinir as coisas ao normal. Mais completo seria verificar a configuração padrão em /etc/X11/xorg.conf. Por exemplo, no meu sistema

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

O comando correspondente é

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

Se houvesse uma XkbVariantentrada na saída, você passaria seu valor com -variant. Uma coisa a observar é que as opções são tratadas especialmente: você só pode definir uma opção por -optionparâmetro e precisa usar -option ''para redefinir os parâmetros primeiro. Então, para redefinir completamente quando houver algo como XkbOptions "grp:alt_shift_toggle,grp:ctrls_toggle"você precisaria

setxkbmap -model pc105 -layout us -option '' -option grp:alt_shift_toggle -option grp:ctrls_toggle
geekosaur
fonte
30
setxkbmap -layout usredefiniu minhas chaves, obrigado!
Dan
8
Outra opção muito útil que descobri é setxkbmap -queryimprimir as configurações atuais no formato xkb, o que me ajudou a configurar meu teclado Apple conforme desejado no terminal.
00003
1
cuidado com esse comando, setxkbmap -layout uspois ele restaurará o uslayout de todos os idiomas suportados. Por exemplo meu layout chave francês juntamente com o meu inglês voltas chave de layout para ser QWERTY insteady de azerty ..
vdegenne
Esta pergunta é sobre xmodmap e não xkb. Estas aplicações são conflitantes, e se o sistema faz uso xmodmap (como faz Ubuntu moderna) você pode ficar confuso depois de usar o comando reset xkb e, em seguida, tentar modificar atalhos de teclado no xmodmap (como eu fiz)
Michael Fulton
12

setxkbmap -option redefine as meta chaves para o padrão.

Mitar
fonte
1
Funcionou para mim.
Adrian Lopez
1

Experimentando xmodmap, eu estraguei minhas configurações principais usando xmodmap -en "keysym BackSpace = Delete". Achei que a -nbandeira não faria nenhuma ação ser tomada porque a man xmodmappágina afirmava que

-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.

No entanto, o comando fez com que minha Deletechave fosse inútil.

Depois de ler o texto acima, eu apenas digitei setxkbmap, esperando que ele me mostrasse as opções, enquanto na verdade ele retornou imediatamente sem saída e, em seguida, minha Deletechave estava milagrosamente funcionando novamente!

Então parece que

setxkbmap

sozinho vai fazer o trabalho ...

John
fonte
simples e perfeitamente trabalhado! :)
Stéphane Hesse