habilitando chaves adesivas no xorg (incrível gerenciador de desktop)

12

Gostaria de habilitar "teclas modificadoras" no archlinux + awesome, e não encontrei as informações corretas.

Macario
fonte
O que são "chaves adesivas"?
22412 Daniel Daniel
certo, eu quis dizer "teclas modificadoras adesivas", significa que pressionar uma tecla modificadora atua como uma alternância e geralmente a alternância é liberada na próxima pressionamento de tecla, para que as teclas não precisem ser pressionadas simultaneamente, mas podem ser pressionadas em sequência. Esta é uma acessibilidade para usuários com deficiência no OS-X, Gnome e provavelmente Windows, e acho mais confortável e menos trabalhoso com o recurso ativado.
Macario

Respostas:

21

Eu entendi. Existe um utilitário chamado xbkeys para definir opções de acessibilidade para o xorg.

No manual do xkbset ($ xkbset man):

To switch sticky keys on or off, and optionally set or reset:
() two keys pressed at the same time stops sticky keys;
() a modifier pressed twice will be locked:

    [-]{sticky|st} [[-]twokey|[-]latchlock]...

Eu executei isso:

$ xkbset sticky -twokey -latchlock

Esse comando pode ir em .xinitrc

# turn on stickykeys. don't let two keys pressed at the same time disable it.
# don't turn on "latch lock", ie pressing a modifier key twice "locks" it on.
xkbset accessx sticky -twokey -latchlock

# don't expire these settings. (run xkbset q exp for details.)
xkbset exp 1 =accessx =sticky =twokey =latchlock

 

Macario
fonte
Aqui está um link para xkbset: math.missouri.edu/~stephen/software/#xkbset
Isto está disponível no debian no pacote xkbset.
precisa
3
Esta resposta é muito útil! Agora eu só quero encontrar uma maneira de limitar o comportamento persistente às teclas Shift.
precisa
1
@JayeshBhoot Sim; O xkb possui variantes de "trava" de algumas chaves. Eu recebo shift pegajoso mapeando minhas teclas shift para as ISO_Level2_Latchquais atua como shift para fins de modificador. (Alguns programas que procuram especificamente o código da tecla shift não funcionam ISO_Level2, principalmente jogos.) Tenho minha configuração online; mas você precisará procurar alguma documentação sobre detalhes específicos da aplicação de mapeamentos de chave personalizados. Agora você pode usar o github.com/hallettj/dot-xmonad/blob/master/home/.config/X11/xkb/…
Jesse Hallett
1
@JesseHallett obrigado pelo ponteiro! Vou tentar isso o mais rápido possível.
Jayesh Bhoot
5

Você pode usar o Xmodmap para definir um bloqueio de teclas para as teclas Scroll, Kana, Num, Caps e Shift. Além disso, algumas chaves de agrupamentos ISO podem ser remapeadas dessa maneira. Por exemplo, no meu teclado, para definir o Shift esquerdo como uma alternância, use o seguinte:

xmodmap -e "código-chave 50 = Shift_Lock"

use "xev" para obter o código de chave correto.

Apenas adicione o comando dentro das aspas a um arquivo chamado .Xmodmap e reinicie o X para que as alterações sejam permanentes.

Infelizmente, não acho que exista um código para bloquear as teclas Control, Alt ou Meta. Se você postar uma pergunta mais específica e adicionar uma recompensa decente, talvez eu consiga elaborar um script de shell e / ou alteração no xorg para tornar isso possível.

gogators
fonte
Infelizmente eu não tenho mais pontos para oferecer, eu realmente estou faltando modificadores pegajosas como em cntrl, janela, alt, meta ...
Macario
XKB é a melhor maneira de fazer isso. Confira Arch wiki
phil pirozhkov
1

Uma maneira de ativar as teclas adesivas é pressionar a StickyKeys_Enabletecla. Se não o tiver mapeado para o teclado, você pode simular o pressionamento de tecla com, por exemplo, o Xdotool:

> xdotool key StickyKeys_Enable
Guildenstern
fonte
-1

Até onde eu sei, o Xorg não suporta isso. Não é inconcebível que um driver de teclado personalizado implemente isso, mas nunca me deparei com isso.

mkaito
fonte
Mmm ... eu realmente gostaria de ter isso sem ter que recorrer ao Gnome ou ao XFCE ... chatice!
Macario