Não consigo executar o xmodmap no login no Ubuntu 13.04. Eu pesquisei, inclusive no askubuntu e todas as respostas que encontrei não funcionam.
Eu tenho um arquivo chamado .Xmodmap na minha pasta pessoal que contém os mapeamentos desejados. Se eu executá-lo manualmente, ele funciona bem, então não há erro lá. Para executá-lo na inicialização, tentei:
Usando vários
.xinitrc
contendo um dos seguintes comandos:xmodmap .Xmodmap
xmodmap ~/.Xmodmap
/usr/bin/xmodmap /home/NAME/.Xmodmap
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
Usando em
.Xresources
vez de.xinitrc
com as mesmas variações.Configurando-o como um aplicativo de inicialização.
Nenhuma das opções acima funciona no Ubuntu 13.04 (64 bits). Também vi algumas idéias sobre como alterar globalmente os mapeamentos de teclado, mas a maioria não era aplicável no Ubuntu 13.04 (ou seja, os arquivos correspondentes não existiam onde especificado) e prefiro não tocar nas configurações globais de qualquer maneira.
unmodified
shift
altgr*
shift+altgr
. Masleft alt
e quantosuper key
?xkb
. Além de enigmático, há o problema de que seus mapas personalizados sejam excluídos quandoxkb
atualizados.Para mim, a configuração do xkb é muito complicada se você deseja remapear 1 ou 2 chaves de uma maneira que não está disponível nas Configurações do sistema. Além disso, a solução deve permanecer do lado do usuário, sem editar '/ usr / share / X11 / xkb / symbols /' etc. Forçar o carregamento 'xmodmap ~ / .Xmodmap' usando os Aplicativos de Inicialização só funciona até você suspender, alterar usuários ou altere o layout do teclado. Portanto, como sugere o holocronweaver, com os trechos de código que encontrei, criei um script python para ser carregado na inicialização da sessão, que recarrega o '~ / .Xmodmap' quando necessário.
Verifique o relatório de bug # 1243642 (comentário # 6) e faça o download aqui .
fonte
Eu tive esse problema no Ubuntu 14.04 e encontrei a solução aqui . Aparentemente, o Ubuntu não é capaz de configurar o teclado imediatamente após o login, mas é um pouco mais tarde. Então, se você adicionar um comando
para
~/.bash_profile
então deve funcionar (funciona para mim).EDIT: Isso parece funcionar somente após o login, não após a inicialização. Vou ter que investigar isso mais tarde.
fonte
xmodmap ~/.Xmodmap
:(Converter Caps Lockem Escpara
vim
usoAqui está minha variante de um script de inicialização de mapeamento de chaves. Ele se converte Caps Lockem Escqualquer teclado para uso com
vi
,vim
ougvim
.Diferente da resposta de q4w56 , essa resposta não usa nenhum
while; do
loop infinito . Caso contrário, um núcleo da minha CPU dual core atingiria 42% a cada 5 segundos, reduzindo severamente a carga da bateria do meu laptop.Salve-o como um script. Torne o arquivo executável com
chmod +x
. Adicione o nome e o local do script emSession and Startup → Application Autostart
(no Xubuntu).O comportamento do teclado para esse usuário permanecerá persistente durante a reinicialização e o logout, mas não a suspensão. A persistência através da suspensão pode ser alcançada , mas infelizmente apenas no nível do sistema, não prontamente no nível do usuário.
Justificativa para este remapeamento do teclado
No mundo da computação de hoje, resta muito pouco uso para a Caps Lockchave. Em geral, deve-se evitar o uso de ALL CAPS em virtude da netiqueta e da separação da apresentação e do conteúdo . Além disso, pressionar a Caps Locktecla acidentalmente durante a edição de texto
vim
nem sempre é notado imediatamente, mas invariavelmente resulta em um comportamento bastante irritantevim
mais adiante. Desabilitar a Caps Lockchave e reutilizá-la como um fácil de alcançar Escresulta em uma vitória dupla paravim
uso.fonte
Caps Lock
chave pode salvar a vida real dosvim
usuários nos Apple MacBooks sem umaEsc
chave .capslock
paractrl
. Isso resolve muitos outros problemas e, no Vim, você pode usarcapslock
+[
paraEsc
Desculpe por se intrometer, mas me senti obrigado a sugerir isso.How do you use vim after you close the lid on your laptop?
Ao abrir a tampa, é claro!Eu também tive o problema no Ubuntu 16.04 com o fcitx e tinha a solução no wiki do fcitx , mas ele precisa do fcitx 4.2.7 ou posterior
touch ~/.Xmodmap
Também há algumas explicações para o motivo.
fonte
A resposta de @ Daniel me apontou o caminho certo, mas eu gostaria de estendê-lo.
Funciona para mim no Linux Mint 17.2 e Ubuntu 16.04.
Tentei todas as reviravoltas que consegui continuar usando
xmodmap
, mas todas falham quando o sistema entra no modo de suspensão. O mesmo vale para scripts de inicialização de aplicativos que são usadossetxkbmap
nos casos em que o * settings-daemon (para mim é xfce4) é executado mais tarde que o script - e a ordem não pode realmente ser influenciada.O que eu finalmente criei tem os seguintes ingredientes:
1) Escreva um arquivo de mapeamento de teclado mínimo para
/usr/share/X11/xkb/symbols
. Vamos chamar o arquivomylayout
. Pode ser tão simples quantobasic
é apenas um nome, vamos encontrá-lo mais tarde novamente.name[Group1]
mesma forma, é apenas um nome que parece, mas não desempenhará nenhum papel mais tarde.include "us"
inclui o teclado simples dos EUA. Na verdade,us
é outro arquivo no mesmo diretório. Este é o layout do teclado que estamos adaptando. Escolha um diferente, conforme necessário. Nota: sem ponto e vírgula para finalizar esta linha.key
linha é uma adaptação do teclado, mais pode seguir. O<AE03>
pode ser encontrado nos arquivos em/usr/share/X11/xkb/keycodes
. Use oxev
programa para descobrir que a tecla "3" possui o código 12 e no arquivo de códigos para oXfree86
qual é mapeado<AE03>
.include
diretiva para ativar outra opção de teclado, neste caso, quero que a tecla Alt correta seja a tecla shift de nível 3, ou seja, a tecla que dá acesso aosterling
sinal que eu defini acima.level3
é apenas um nome de arquivo na mesma pasta comralt_switch
uma seção. Dê uma olhada e escolha o que você precisa incluir.2) Não coloquei o
mylayout
arquivo na pasta do sistema. Em vez disso, criei apenas um link virtual da pasta do sistema para uma pasta do meu agrado para ver imediatamente que esse não é o software padrão.3) Além disso, eu não consertei
evdev.xml
, novamente para evitar problemas de atualização. Mas isso seria necessário para encontrar o mylayout no editor de configuração do teclado (para o xfce4xfce4-keyboard-settings
). Em vez disso, useixfce4-settings-editor
e mudeikeyboard-layout->XkbLayout
paramylayout
(o nome do arquivo) eXkbVariant
parabasic
(veja acima). Depois, tambémmylayout/basic
é exibido no editor de configurações do teclado. Uma entrada emevdev.xml
parece ser necessária apenas para poder selecionar o layout.Dessa forma, as configurações do teclado agora sobrevivem ao modo de suspensão e reiniciam.
Mais informações podem ser encontradas aqui: http://www.charvolant.org/~doug/xkb/html/node5.html .
Outra abordagem para corrigir o problema do modo de suspensão (não tentei por mim mesmo) pode ser encontrada aqui: https://www.vinc17.net/unix/xkb.en.html .
UPDATE: trabalhei com o Mint 18.3 no mesmo momento em que alterei as configurações no xfce4-settings-editor como descrito acima.
ATUALIZAÇÃO: Com 18.04, gdm3 como gerenciador de exibição e XFCE4 como gerenciador de janelas, parece que ~ / .Xmodmap é lido novamente e as configurações parecem sobreviver a uma suspensão. (Eu raramente uso suspend e nunca tenho certeza de qual modo o laptop está realmente).
fonte
REVISÃO
Uma atualização no início de 2018 quebrou a persistência - recarregamento automático do mapa de teclas após a suspensão ou hibernação. Como os métodos que usam scripts /etc/pm/sleep.d pararam de funcionar (descontinuados?), Isso deixou apenas o caminho mais recente, usando / lib / systemd / system-sleep e scripts ligeiramente diferentes (que começaram a trabalhar nos mapas de teclas!).
Portanto, esta postagem é atualizada para o método mais recente de persistência e para incluir o carregamento inicial normal do mapa de teclas, que também começou a funcionar. A rotina para converter um arquivo .Xmodmap em .xkbmap permanece inalterada.
Observe que esta é uma solução por usuário. Para obter uma resposta por dispositivo, veja como aplicar um mapa de teclas a um único dispositivo . Este método pode ser adaptado para uso aqui.
Primeiro modifique o arquivo .Xmodmap conforme desejado. É mais fácil editar diretamente do que arquivos .xkbmap. Quando está carregado:
depois converta para um arquivo .xkb:
Para carregar automaticamente na inicialização, abra Aplicativos de Inicialização, clique em Adicionar e, na linha de Comando, digite:
("usuário" é substituído pelo nome de usuário real.) Para Nome, talvez insira Carregar mapa do teclado. Adicione um comentário, se desejar, e clique em Salvar.
O mapa de teclas agora será carregado toda vez que o sistema inicializar, mas não sobreviverá a uma suspensão ou hibernação. Para isso, crie um novo arquivo em / lib / systemd / system-sleep, talvez chamado 60_xkbmap, que contenha:
( Ref. ) Como acima, substitua "usuário" pelo nome de usuário real.
O mapa de teclas agora deve carregar automaticamente e permanecer persistente. Nota:
fonte
Isso também me fez tropeçar quando atualizei do Ubuntu 12.04 para 13.04.
Felizmente, essa configuração está agora (ou talvez sempre tenha sido) facilmente acessível nas preferências do teclado e pode ser alterada com apenas alguns cliques do mouse.
Aí está: o controle esquerdo e o Caps Lock mudaram de posição.
Não se esqueça de excluir
~/.Xmodmap
depois de fazer a alteração.fonte
XKBOPTIONS="ctrl:swapcaps"
no/etc/default/keyboard
.Acho que a adição desse script à inicialização é satisfatória:
Eu tentei usar
xmodmap ./Xmodmap
, mas toda vez que é executado, um atraso perceptível ocorrerá.fonte
while; do
loop infinito deve ser evitado. Isso fez com que um núcleo da minha CPU dual core atingisse 42% a cada 5 segundos, reduzindo severamente a carga da bateria do meu laptop!