Alguém sabe como atingir o bloqueio do Caps em Python?
Pergunta
Estou tentando atingir o bloqueio de tampas quando os dois botões de turno são retidos por um segundo. Eu tentei usar o módulo Virtkey, mas não está funcionando. Esse módulo funciona para outras chaves, então não acho que estou usando o módulo incorretamente.
Alguém tem uma maneira de fazer isso?
Só para deixar claro, eu quero realmente atingir as tampas de bloqueio e não apenas o LED.
Obrigado!
Solução
Isso funciona para mim (liga e desligam o LED, além de ativar/desativar as tampas)
import virtkey
v = virtkey.virtkey()
v.press_keycode(66)
v.release_keycode(66) # first release doesn't release it
v.release_keycode(66)
Aqui estão mais alguns exemplos
v.press_keycode(66) # turns capslock on
v.release_keycode(66)
v.press_keycode(66) # turns capslock off
v.release_keycode(66)
Você também pode obter uma alternância como um comportamento apenas usando release_keycode
v.release_keycode(66) # toggles capslock
v.release_keycode(66) # toggles back again capslock
Outras dicas
Coisa engraçada. Eu experimentei Virtkey no intérprete, e parecia que estava funcionando. Depois de ligar press_keycode(50)
, minha máquina age como Caps Lock foi pressionada (Ubuntu 9.10, Python-Virtkey .50ubuntu2). Se eu lançar a chave- release_keycode(50)
- Ele age como se nada tivesse acontecido.
import virtkey
v = virtkey.virtkey()
v.press_keycode(50)
Se executado como um script, sai da tecla CAPS pressionada para uma guia Terminal virtual. Muito irritante.
Você já olhou para o comando xvkbd? É um teclado virtual X com opções de linha de comando e, na pior das hipóteses, você pode chamá -lo de Python. Outra idéia a serem analisada é o XMODMAP, que permite re-mapa as teclas em X. Veja esta postagem no SU, por exemplo.