Como fazer a repetição automática do tipo de chave personalizada em xkb

Como fazer a repetição automática do tipo de chave personalizada em xkb

Eu defini um tipo de chave personalizada em meu arquivo de configuração xkb para fazer algum redirecionamento (por exemplo, redirecionar Ctrl+ ppara Upetc.). No entanto, não consigo realizar o trabalho de repetição automática para esse tipo personalizado (nem a chave original (por exemplo p) ou a ação de redirecionamento ( por exemplo, Upredirecionado de Ctrl+ p) tem repetição automática).

Eu tentei adicionar repeat=true,à keysymsconfiguração de acordo comisto da lista de discussão xfree86mas também não funciona.

Responder1

Por favor, leia man xsetpara a ropção. É possível habilitar a repetição automática para uma chave específica, fornecendo seu código inteiro ao xset rcomando. Por exemplo:

Eu tenho

<SPCE> = 134;

no meu arquivo de mapa de teclado xkbcom personalizado. Então, emitindo:

xset r 134

no terminal, ativará a repetição automática para minha tecla de espaço remapeada.

Você pode adicionar este comando ao seu ~/.xinitrcarquivo. Não há necessidade de mexer no próprio arquivo de configuração xkb.

Responder2

Encontrei um patch no repositório do Chromium OS que pode ajudar com isso; parece ter sido removido depois que eles o corrigiram no próprio Chrome. Não tenho certeza do que aconteceu com o controle de qualidade do patch ou se ele foi enviado upstream ou não.

links aqui:X: Mapear Alt-Up e Alt-Down para Page Up e Page Down

O patch é o seguinte:

This is a probably-wrong fix for an issue where autorepeat
is disabled for keys assigned by XKB.  As far as I can tell,
XKB has the correct autorepeat settings for the keys before
a completely-empty autorepeat array from X is copied over
it; then the XKB array is copied back to X.  This makes us
skip the first copy.

diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 75e243c..bceb55c 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -342,9 +342,6 @@ CARD8 *         repeat;
     xkb= xkbi->desc;
     repeat= xkb->ctrls->per_key_repeat;

-    if (pXDev->kbdfeed)
-   memcpy(repeat,pXDev->kbdfeed->ctrl.autoRepeats,32);
-
     XkbUpdateDescActions(xkb,first,num,changes);

     if ((pXDev->kbdfeed)&&

Eu ainda não tentei, mas provavelmente tentarei em breve.

Responder3

Eu tive esse mesmo problema onde redirecionei SUPER + Hpara LEFTo qual funcionou, mas não repeti.

Funcionou quando adicionei autorepeat = yesà definição do símbolo chave.

Encontrei aqui:http://web.archive.org/web/20190320180541/http://pascal.tsu.ru/en/xkb/gram-symbols.html

informação relacionada