A maneira mais fácil é sair depois que você terminar. Suas alterações pessoais duram apenas até você sair. Dito isto, intervir na conta de alguém é um caso de uso comum.
Digite / cole isso no seu terminal (executando bash ou zsh):
xkb=$(xkbcomp :0 -); trap 'xkbcomp - :0 <<<"$xkb"' 0 1 2 15; setxkbmap dvorak
Se você sair do shell normalmente ( exit
, Ctrl + D ) ou fechar o terminal normalmente (que enviará um SIGHUP), ou seja, sob condições normais para sair da sessão de shell, o trap recuperará o mapa de teclado original.
Não faça isso em vários terminais ao mesmo tempo: o primeiro a sair restauraria a configuração original e o último a sair restauraria a configuração que estava em vigor quando você executou esse comando.
Se você sabe que mapa de teclado restaurar e deseja apenas lidar com o encerramento normal do terminal, simplifique isso para, por exemplo,
trap 'setxkbmap us' 0 1; setxkbmap dvorak
Tenha em atenção que isto não restaura as personalizações que as pessoas possam ter feito através de um configurador GUI de definições de teclado típico! (Que é essencialmente opções presentes em mapas XKB padrão.) Se você deseja restaurar as personalizações do usuário, é necessário salvar o mapa de teclado original com xkbcomp :0 -
como acima.
Como alternativa, use uma interface que forneça layout de comutação por janela e atenha-se à janela de um terminal (lembre-se de não iniciar nenhum aplicativo de GUI). Alguns ambientes de desktop fornecem esse recurso (por exemplo, XFCE ), assim como kbdd . É improvável que o Kbdd esteja disponível, e muito menos configurado, em uma instalação padrão, mas talvez seu ambiente de área de trabalho padrão tenha esse recurso.
Algumas observações que não se aplicam ao seu caso de uso, mas se aplicam ao caso de uso de intervenção na máquina de um usuário enquanto você faz login em sua conta:
- Isso pode introduzir diferenças sutis nos layouts que foram originalmente definidos por
xmodmap
, mas as pessoas que dependem dessas sutilezas saberiam como restaurar seu mapa de teclado criado a partir de um layout no qual o básico funciona. - Não tenho certeza se o nível ativo atual é restaurado corretamente na configuração de vários níveis (ou seja, vários idiomas), mas, novamente, as pessoas que alternam rotineiramente entre os layouts usariam o método usual para alternar os layouts.
- Isso pode interferir negativamente na comutação de layout fornecida por meio de um aplicativo em segundo plano que altera o layout do XKB (em vez de alterar os níveis). Nesse caso, você deve pedir a eles que mudem para Dvorak através do método de mudança de layout.