Posso ativar as teclas de rejeição apenas para determinadas chaves?

8

No meu laptop, estou com um problema persistente em que as teclas digitadas na barra de espaço estão sendo repetidas. Depois de várias substituições e de tentar vários sistemas operacionais, julguei que o problema é de hardware, não de software.

Felizmente, eu aprendi que o Ubuntu tinha um recurso conhecido como teclas de devolução, o que me permitiria neutralizar o problema, pois as teclas repetidas seriam filtradas.

No entanto, ativar a solução para todas as chaves às vezes filtra as chaves que eu não quero que sejam filtradas. Por exemplo, quando eu digito Olá , muitas vezes eu pressionar os dois l s em rápida sucessão, no entanto, por vezes, um dos l s é filtrado, que pode ser bastante irritante. Sei que nunca precisarei pressionar a barra de espaço duas vezes em uma sucessão tão rápida e, como só estou tendo problemas com a barra de espaço, só quero ativar as teclas de rejeição na barra de espaço.

Então, é possível ativar apenas as teclas de rejeição na barra de espaço?

Faiz Saleem
fonte
Repetiu quantas vezes? Isso acontece toda vez?
daltonfury42
Isso não acontece sempre, mas é o suficiente para ser bastante irritante. Eu diria que isso acontece cerca de três vezes por parágrafo. Pode ser muito irritante ter que voltar e editar os espaços estranhos.
Faiz Saleem
1
O espaço é geralmente repetido cerca de duas vezes. Se você vir a fonte do meu post original, poderá facilmente ver os espaços repetidos, como intencionalmente os deixei.
Faiz Saleem
Eu atualizei a minha resposta, mas antes de lê-lo, leia este .
daltonfury42
Obrigado, tentarei mais tarde - eu apenas estive muito ocupado, então não tive chance.
Faiz Saleem

Respostas:

3

xset - utilitário de preferência do usuário para X

r é controlar a repetição automática.

xset -r 10

desabilitará a repetição automática para a tecla "1".

xset r 10

habilitará a repetição automática para a tecla "1".

xset r [código da chave]

no meu caso, o código-chave da barra de espaço é 65, verifique o seu com o código: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

Ainda assim, se você precisar alterar a velocidade das teclas, também poderá usar o parâmetro rate.

E também adicione este comando ao seu arquivo de script de início da sessão.

Tohid Tamboli
fonte
Você pode obter a lista atual de quais teclas têm a repetição automática ativada xset q. É uma matriz de 256 bits despejada em hexadecimal e bastante difícil de ler.
Meu 18/07/15
Definitivamente vou ter certeza de dar uma chance. Obrigado!
Faiz Saleem
1
Funcionou bem para mim. Aproveite o representante +100!
Faiz Saleem
4

Encontrei uma solução para você, mas ela não envolve Bounce Keys. O que faço aqui é desativar a tecla / teclado espacial por um pequeno tempo cada vez que o espaço é pressionado. Então aqui vai:

Usamos xbindkeyspara capturar a barra de espaço pressionada (neste caso, release) e xdotoolinserir espaços. Instale-os se você não o tiver em seu sistema:

sudo apt-get install xbindkeys xdotool

Um arquivo de configuração xbindkeys deveria ter aparecido na sua pasta pessoal com o nome de .xbindkeysrcoutra pessoa e crie um como este:

xbindkeys -d > ~/.xbindkeysrc

Copie o snippet e cole-o no seu arquivo .xbindkeysrc.

"xdotool key KP_Space; xinput set-int-prop <kbd-id> "Device Enabled" 8 0; sleep .05 ; xinput set-int-prop <kbd-id> "Device Enabled" 8 1"
     m:0x0 + c:65 + Release
    space

Aqui <kbd-id>está o ID do teclado, que pode ser encontrado por xinputcomando. Agora você deseja configurar o xbindkeys para iniciar sempre que iniciar o computador.

Abra /etc/rc.locale adicione a linha xbindkeysantes exit 0.

Você terminou. Abra um terminal e digite xbindkeyspara iniciá-lo por enquanto. Veja se faz o trabalho. Se não capturar os espaços duplos ou caracteres após a falta de espaços, ajuste o delaycomando em ~/.xbindkeysrcconformidade e reinicie.

Referências:

daltonfury42
fonte
Eu tive alguns problemas com esta resposta. O comando xinput vinculado não desativa o teclado, desativa a tela sensível ao toque. Tentei adaptar o comando para desativar o teclado, mas isso também não funcionou. O comando correto é: xinput float 13 ; sleep .1 ; xinput reattach 13 3que faz o trabalho. No entanto, a solução em si não funciona. Quando inicio xbindkeys com este comando, a barra de espaço não entra mais em um espaço. Ele desativa o teclado brevemente, como deveria, mas nenhum caractere de espaço é inserido. Estou fazendo algo errado?
Faiz Saleem
Também encontrei uma maneira de desativar apenas a tecla de espaço. Depende do xmodmap: xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem
@FaizSaleem, desculpe-me pela primeira edição, foi um erro meu. Eu dei o meu ID de teclado, que é 10. Você pode encontrar o seu digitando xinput. Mas não precisamos disso, você encontrou uma maneira de desativar o espaço sozinho.
daltonfury42
Sobre o segundo problema, também testei apenas se o teclado estiver desativado. Tentei inserir um espaço manualmente usando xdotool getactivewindow key KP_Space, mas ele não funciona.
daltonfury42
xdotool key spacetambém não funciona, e todos os outros métodos que tentei inserir um espaço falharam.
Faiz Saleem