Fedora: Lenovo Hotkeys selecionados não funcionam no Fedora 26 (keycode 255)

1

O teclado USB "Enhanced Performance" da Lenovo tem algumas teclas de atalho de início rápido úteis na linha superior. Estranhamente, no meu sistema Fedora 26 com o XFCE, algumas dessas chaves funcionam, mas outras não - sem nenhuma lógica óbvia.

Aqui está a situação de quais chaves funcionam e quais chaves não funcionam:

Comoconseguirqueasteclasdeatalhorestantes(planilha,áreadetrabalhobloqueada)funcionem?

Emprincípio,asteclasdeatalhopodemserconfiguradasemdoislocais:Usandoxfwm4-settingsexfce4-keyboard-settings,dependendodequalfuncionalidadeédesejada.Lá,eupossoconfiguraraplicativosqueiniciamasteclasmarcadasemverde-masnãoparaasteclasmarcadasemvermelho(acaixadediálogosimplesmentenãoregistraumpressionamentodetecla).

Diagnósticoatéagora

Seguindoo artigo de atalhos do Arch , verifiquei que:

  • com evtest todas as impressoras de tecla de atalho são registradas corretamente, incluindo os botões marcados em vermelho acima de

  • com xev apenas as chaves marcadas em verde são registradas.

Assim, para algumas das chaves, o pressionamento de tecla é perdido em algum lugar da pilha após o evtest e antes do xev.

O problema parece estar relacionado ao fato de que X11 não suporta códigos-chave > 255

Aqui estão as chaves problemáticas:

Event code 421 (KEY_WORDPROCESSOR)
Event code 423 (KEY_SPREADSHEET)

Como posso corrigir isso?

    
por user3096626 07.08.2017 / 14:42

1 resposta

3

Essas chaves não funcionam na configuração padrão porque são mapeadas para códigos-chave > 255. Por razões históricas, X11 limita os códigos-chave ao intervalo [8, 255] e isso é realmente difícil de corrigir .

A solução alternativa é remapear os códigos-chave para os intervalos abaixo de 255 , que são ainda livre, como mostrado na resposta acima.

Obtenha todas as teclas de atalho do teclado Lenovo Enhanced Performance USB para funcionar no Fedora

Crie um novo arquivo /lib/udev/hwdb.d/61-keyboard-custom.hwdb (o nome é importante: o mapeamento de chave padrão está no arquivo 60-keyboard.hwdb e queremos sobrescrevê-lo), com este conteúdo

evdev:input:b0003v04B3p301B*
 KEYBOARD_KEY_90004=prog2
 KEYBOARD_KEY_90005=prog3

Isto reescreve as chaves do processador de texto e da planilha ( KEY_WORDPROCESSOR e KEY_SPREADSHEET ) para as chaves prog2 e prog3 que estão no intervalo permitido para X11.

Em seguida, execute

udevadm hwdb --update
udevadm trigger --sysname-match="event*"

e verifique com o evtest que as duas chaves funcionam agora.

Agora é possível usar as configurações do teclado XFCE para atribuir programas a essas chaves.

Bônus: se o aplicativo já estiver em execução, concentre-se na janela usada mais recentemente

O comportamento desejado da tecla de atalho - para mim - é alternar de volta para a janela usada mais recentemente do aplicativo (se ela já estiver em execução), ou então iniciar o aplicativo novo e focar nele. Isso é fácil de fazer com o script de shell em esta resposta

    
por 07.08.2017 / 21:26