Como persistentemente remapear chaves no Ubuntu 16.04?

20

Isso está funcionando para a sessão atual:

costales@dev:~/Desktop$ xmodmap -e "keycode 166 = less"
costales@dev:~/Desktop$ xmodmap -e "keycode 167 = greater"

Então eu criei este arquivo de configuração:

costales@dev:~/Desktop$ cat ~/.Xmodmap 
keycode 166 = less
keycode 167 = greater
costales@dev:~/Desktop$ 

Mas não está funcionando depois de uma reinicialização. Como eu poderia forçar a configuração do remapeamento após uma reinicialização?

    
por costales 24.03.2016 / 12:12

6 respostas

13

Eu tenho usado o 16.04 por um tempo e ele parece usar o sddm como seu gerenciador de desktop. Ela costumava ser LightDM e GDM antes disso. Ambos os predacessors estão documentados para carregar ~/.Xmodmap automaticamente, mas não consigo encontrar nada explicitamente dizendo que o sddm faz.

Portanto, pode ser aconselhável apenas forçá-lo a carregar com um novo script. Você só precisa executar xmodmap ~/.Xmodmap e pode fazer isso de várias maneiras:

Existem provavelmente algumas dezenas de outras maneiras de gerenciar isso, essencialmente fazendo a mesma coisa.

    
por Oli 24.03.2016 / 12:23
6

Eu adicionei um arquivo /etc/X11/Xsession.d/80_xmodmap com estes conteúdos:

#!/bin/sh
# Set custom keycodes
#
# This file is sourced by Xsession(5), not executed.
# The "|| true" is to ensure that the Xsession script does not terminate on error

USRMODMAP="$HOME/.Xmodmap"

if [ -x /usr/bin/xmodmap ]; then
        if [ -f "$USRMODMAP" ]; then
                /usr/bin/xmodmap "$USRMODMAP" || true
        fi
fi

Isso funciona sempre.

    
por Stuart K. Smith 24.07.2016 / 23:51
4

abra o gnome-session-properties. adicione o comando e o nome. O arquivo da área de trabalho será criado em ~ / .config / autostart.

remenber: use caminho absoluto , por exemplo, /home/xxx/.Xmodmap. nunca use '~' como seu diretório home.

    
por utopic eexpress 08.11.2016 / 15:43
1

Navegue até

/usr/share/X11/xkb/symbols

Com privilégios de sudo, em um editor, abra o layout que você deseja editar. Substitua os valores.

Após a reinicialização, as alterações serão aplicadas.

Aqui está um exemplo que uso para remapear meu teclado por causa de problemas de hardware de teclado.

exemplo de remapeamento de teclado

    
por quaeched 26.11.2017 / 14:12
0

Como arquivos .Xmodmap são muito mais fáceis de editar do que xkb, eu uso .Xmodmap como um arquivo 'source', então converto para xkb (o padrão atual) e auto-load na inicialização usando o método .bashrc.

São alguns passos simples publicados aqui .

Funciona perfeitamente, e usando xkb future-proofs contra quando o suporte para .Xmodmap é descartado.

    
por u2n 09.12.2016 / 17:48
0

Depois de pesquisar no Google, consegui resolver o remapeamento das minhas chaves com defeito no laptop. Todas as chaves com defeito no meu Thinkpad T400 estão funcionando bem após o remapeamento. Além disso, é permanente sem uma carga extra no núcleo da CPU.

  • Primeiro, encontre seu layout de teclado ou código de tecla usando o comando abaixo.

    xevv -event keyboard 
    
  • Por exemplo, no meu keycode Thinkpad T400 encontrado da seguinte forma:

    Keycode of "z" key is 52
    Keycode of "x" key is 53
    Keycode of "c" key is 54
    Keycode of "v" key is 55
    Keycode of "F6" key is 72
    Keycode of "F10" key is 76
    Keycode of "F11" key is 95
    Keycode of "F12" key is 96 
    
  • Remapeando as teclas dos caracteres "z" "x" "c" "v" atribuindo as teclas de função "F6" "F10" "F11" "F12".

  • Modifique as linhas conforme abaixo (arquivo de backup antes de fazer qualquer alteração na reversão facilmente se as coisas derem errado).

    sudo vi /usr/share/X11/xkb/keycodes/evdev
    
  • Encontre as linhas e altere o valor conforme abaixo:

    <AB01> = 72;
    <AB02> = 76;
    <AB03> = 95;
    <AB04> = 96;
    
  • Comente estas linhas ou remova as linhas:

    //  <FK06> = 72;
    //  <FK10> = 76;
    //  <FK11> = 95;
    //  <FK12> = 96;
    
  • Salve e saia.

  • Remapeando chaves especiais.

  • Faça o backup do arquivo antes de fazer alterações na reversão se algo der errado.

    cd /usr/share/X11/xkb/symbols/
    
    sudo vi pc
    
  • Adicione ou modifique as linhas abaixo na função "xkb_symbols" editando "{"

    key [SCLK] {    [  Prior        ]   };
    key [PAUS] {    [  Next         ]   };
    
  • Salve e saia.

  • Limpar cache.

    sudo rm -rf /var/lib/xkb/*
    
  • Reinicie.

por John Rambo 31.08.2018 / 15:48