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.


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

 


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.


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

-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.


Mmm ... eu realmente gostaria de ter isso sem ter que recorrer ao Gnome ou ao XFCE ... chatice!
Macario
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.