Eu tenho um teclado padrão com teclas numéricas no lado direito (acho que é chamado de teclado com 104 teclas). Eu quero usar as teclas numéricas apenas como teclas numéricas. Isso significa que não quero NumLockligar e desligar as teclas numéricas.
No entanto, às vezes acontece (não sei como, talvez pressionando acidentalmente a NumLocktecla) que o numlock está desativado e tenho que pressioná-lo novamente. Isso é extremamente irritante.
É possível desativar a desativação do numlock?
Em outras palavras: quero que minhas teclas numéricas sempre atuem como teclas numéricas e desative a chave numlock .
Estou usando o Debian e o LXDE (Openbox).
~/.config/openbox/autostart
e~/.config/openbox/rc.xml
?xmodmap
. A única questão que resta é como obter esse evento ......?Respostas:
Depois de ler todas as respostas aqui, fiquei bastante surpreso ao ver que você pode fazer o seguinte.
Então, toda vez que você pressiona Num, o que desativa o numlock. Será executado
numlockx on
, o que reativa o numlock.O nome vem da minha saída
xev
e me deu o código-chave 77 e o nomeNum_Lock
No caso do @MartinVegters, ele precisava esperar alguns segundos para que
numlockx on
definitivamente fosse executado após o evento de Numser tratado. Como existe uma condição de corrida entre o manuseio do numlock no kernel e a execuçãonumlockx
.Nesse caso, você pode escrever um pequeno script
denumlock.sh
comoe use-o na ligação de chave
Isso está sujo, mas funciona.
O que eu recomendo é o seguinte, que não pude testar. É melhor você seguir as primeiras respostas que sugerem usar
Mas para o LXDE, você precisa usar o mecanismo de inicialização automática do LXDE, que é diferente da maneira de editar o Openbox
~/.config/openbox/autostart
.Aparentemente, no LXDE, você precisa editar
~/.config/lxsession/LXDE/autostart
ou com o Lubuntu~/.config/lxsession/Lubuntu/autostart
, que contém os comandos para a inicialização. (Consulte Arch docs e LXDE docs ) Talvez seja necessário criar esse arquivo e adicionar esta linha.Infelizmente, como eu disse, não posso testar se isso funciona, pois só tenho uma VM executando com LXDE.
fonte
<keybind key="Num_Lock">
mas infelizmente ela não funciona. Enquanto o comandonumlockx on
é executado, o <kbd> NumLock </kbd> ainda retalha sua função como numlock. Para que eu ainda possa ligar / desligar o numlock.xmodmap
, quando tentei a solução sugerida por Risto Salminen, o comando funcionou, mas perdi todas as minhas associações de teclas.sleep 3; numlockx on
para ligar a chave. Para a segunda solução, você tentou com o arranque automático?sleep 3; /usr/bin/numlockx on
não funciona.NumLock
ainda atua como um botão liga / desliga./usr/bin/numlockx on
funciona no seu sistema?Se o teclado for seu (em vez do seu empregador, por exemplo), remova-o fisicamente do teclado .
Você ainda pode pressioná-lo com algo pontudo, se realmente precisar.
fonte
No teclado do meu laptop (Ubuntu 10.04), o bloqueio de teclado está ativado.
Voila! agora o numlock está desativado.
Coloca de volta. (Talvez torcer por Num_lock teria sido uma idéia melhor, mas você entendeu a essência).
Responda ao comentário de @Martin Vegter.
Ok , em resposta ao seu comentário, o xmodmap arruina suas ligações, entendido.
Acabei de verificar a documentação do Openbox
Dê uma olhada em ~ / .config / openbox / lxde-rc.xml
ls -l lxde-rc.xml
(você também tem um rc.xml ?, verifique).tire uma cópia dele como backup
(use um editor) procure por numlock (talvez nmlk).
Você vê algo assim?
Comente OU altere O valor-chave do atalho de teclas para uma alternativa, por exemplo, Alt-Numlock para alternar
Por exemplo
Para comentar
ou
Altere para alternar Alt + Numlock
salve as alterações e efetue logout / login ou reinicie.
fonte
xmodmap
comando (ou sejaxmodmap -e 'keycode 77 = Escape'
) destrói minhas associações de teclas existentes, definidas em.config/openbox/lxde-rc.xml
.config/openbox/lxde-rc.xml
, não há linha contendoNumlock
ouNum_Lock
. Quando crio um, ele não tem efeito: <keybind key = "Num_Lock"> <nome da ação = "Execute"> <comando> / bin / true </command> </action> </keybind>Encontre o seu código numlock com
xev
. Por exemplo, aqui, Num_Lock é 77.Use xmodmap para remapear o código da chave:
xmodmap -e 'keycode 77 = '
.Para todas as futuras sessões X, dentro do
~/.xprofile
localxmodmap -e 'keycode 77 = '
.EDIT: Nota: Não funciona se um software estiver alterando o estado do Num Lock.
fonte
xmodmap -e 'keycode 77 = '
funciona, mas ele faz com que um problema grave: todas as minhas combinações de teclas parar de trabalharxmodmap -e 'keycode 77 = Escape'
(YMMV, ESC parece seguro para mim). Você tem um arquivo ~ / .Xmodmap? Se sim, em vez de~/.xprofile
, coloque okeycode 77 = Escape
no final deste arquivo.xmodmap
comando (ou sejaxmodmap -e 'keycode 77 = Escape'
) destrói minhas associações de teclas existentes que são definidas em.config/openbox/lxde-rc.xml
Apenas remova o mapeamento da tecla NumLock, mapeando-o para nada: primeiro execute
xev
e pressione Num Lock (provavelmente imprimirá 77) e, em seguida, execute o comando:onde # é o código-chave do NumLock.
Você também colocaria isso
~/.xprofile
para desativar o NumLock em x sessões.fonte
xmodmap -e "remove Lock = Num_Lock"
com o LinuxMint 17.2 e imagino outras versões do Ubuntu, você pode acessar a configuração do TECLADO e, em seguida, LAYOUTS nessa página, encontrará um pequeno botão "opções".
A partir daí, vá para "várias opções de compatibilidade" e marque "as teclas numéricas sempre digitam dígitos"
Este é um salva-vidas para mim. Me incomoda digitar um número e ser movido para outro lugar da página. Felicidades! ;)
fonte
setxkbmap -option numpad:mac
ou através da criaçãoOption "XkbOptions" "numpad:mac"
dexorg.conf
.Outras respostas aqui sugeriram o uso
numlockx on
comxmodmap -e 'keycode 77 ='
, masnumlockx on
não funcionariam no meu sistema junto com essexmodmap
comando, mostrando uma mensagem de erro:E também a configuração
xmodmap -e 'keycode 77 ='
removeria, por algum motivo, todos os meus atalhos de teclado feitos comxbindkeys
.Esta resposta a uma pergunta semelhante me ajudou, no entanto. Parte do meu
~/.xinitrc
:Dessa forma, o NumLock não faz nada por si só, mas se pressionado com Shift, ele serve ao seu propósito original (principalmente inútil) e, o mais importante, não impede o
numlockx on
trabalho no meu sistema, nem atrapalhaxbindkeys
as combinações de teclas.fonte
Outra maneira, se você deseja desativar a numlockchave, desative permanentemente. Você pode fazer isso modificando seu arquivo de mapa de teclas atual, modificando o código de chave 77.
Defina esse valor como "none", para que pressione acidentalmente a tecla não faça nada.
Use
numlockx
na inicialização para iniciá-lo e use o arquivo de mapa de teclas modificado em um dos scripts de inicialização, por exemplo,~/.bashrc
ou em/etc/profile
.NOTA: Não testei isso, mas deve funcionar.
fonte
No OpenSuse 13.x com o KDE, isso funcionou para mim:
Se o NumLock precisar ser ativado porque está desativado, basta usar
% numlockx on
.fonte
Uma solução alternativa é adicionar um
cron
trabalho que execute o seguinte comandoa cada 30 segundos para ativar o NumLock.
Veja também
fonte
Pode não ser a melhor solução, mas funcionou para mim:
Onde 11 é o ID do seu teclado. Faça uma
xinput
lista para determinar a identificação do seu teclado (no meu caso, são 11):Obviamente,
numlockx
deve ser instalado para que isso funcione.Explicação:
stdbuf -oL
modifica as operações de armazenamento em buffer do fluxo de saída para a linha armazenada em bufferxinput test 11
imprime as teclas pressionadas em stdoutmawk -W interactive '$3==77 {printf "/usr/bin/numlockx on\n"}'
para cada linha impressa e contendo 77 (a tecla numlock), crie um comando/usr/bin/numlockx on
...| bash
... e canalize-o para o bash para executá-lo.Você pode inserir esse oneliner em um dos scripts iniciais dos ambientes da área de trabalho ou executá-lo em segundo plano.
fonte
Também quero que as teclas numéricas do teclado numérico sejam sempre números, nenhum dos itens do KP _....
Minha solução faz parte do meu Remapping Apple Keyboard para uso com o repositório Linux .
Basicamente, ele apenas remapeia Num_Lock como F20 e os números como eles mesmos.
Essa solução sempre fornece o resultado desejado e uma tecla de função extra como benefício adicional.
fonte
Crie o script a seguir e torne-o executável com
chmod +x <filename>
Coloque o caminho do arquivo
.config/openbox/autostart
Ou coloque-o como um trabalho cron que verifica a cada dois minutos e executa o script se o numlocks estiver desativado.
Ou apenas execute o script em um loop.
Se você não tiver o numlockx, poderá obtê-lo com
sudo apt-get install numlockx
fonte