Definindo atalhos de teclado envolvendo a tecla Fn


17

Estou acostumado a pressionar Fn+ Leftpara simular a Hometecla e Fn+ Rightpara End.

Em um teclado com teclas físicas Homee End, o uso desses Fnatalhos de teclado não funciona.

Como posso mapear Fnatalhos de teclado personalizados no Ubuntu Linux?


1
possível duplicação de chaves multimídia Bind . Talvez não seja uma duplicata exata na descrição do problema, mas é resolvida pelo mesmo processo subjacente.
Daniel Andersson

Alguém está usando laptops modernos (2018) como o HP Spectre x360 (embora tenha teclas PgUp etc separadas) e o Dell XPS sabe se a tecla Function é detectada como as outras teclas?
MycrofD 16/01

1
Estou usando o Lenovo Thinkpad X1 Carbon com Fnchave, que é detectada como código-chave 151 por xev. Enquanto Fné pressionado Lefte as Rightteclas não produzem eventos. Fn+F2não produz eventos, mas funciona como esperado - reduz o volume.
Suor

Respostas:


16

Ao contrário de modificadores como Alt e Ctrl, pressionar a tecla Fn nunca é comunicado ao sistema operacional. A tecla modifica meramente os códigos de scape de outras teclas, pressionando Fn+ Rightemularia uma tecla End, mesmo que ela não exista fisicamente, mas elas são indistinguíveis pelo sistema operacional. Esse comportamento é controlado exclusivamente pelos componentes eletrônicos do teclado e, portanto, não pode ser alterado sem mexer no circuito ou no microcontrolador.


2
Há um sistema operacional e um computador que são definitivamente uma exceção a essa regra e são os laptops mac. Você pode modificar essa chave usando o Karabiner, na verdade. Os thinkpads também enviam essa chave para o sistema operacional, mas não é uma chave modificadora, como nos macs.
William

2
Isso não é verdade. xevmostra Fnpressionamentos de tecla.
Suor

1
Bem, na minha máquina Dell com um Debian 10, xevnão mostra nada quando a tecla Fn é pressionada.
Pierre

12

Na maioria dos sistemas, não é possível detectar a Fnchave em si, mas você pode tentar usar:

$ xev | grep --line-buffered keysym

para descobrir quais chaves Fn-Lefte Fn-Rightenviar. (O grepjusto reduz o ruído.)

Se você tiver sorte, esses pressionamentos de tecla enviarão pressionamentos de tecla sem importância para a máquina, que você poderá remapear.

Por exemplo, no meu sistema, xevmostra que meu Fn-Leftpressionamento de tecla envia um XF86AudioPrevevento:

state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,

Posso facilmente remapear isso para traduzir em um Homeevento chave:

$ xmodmap -e 'keysym XF86AudioPrev = Home'

Espero que você consiga fazer o mesmo para End, PageUp e PageDown.

Infelizmente, se o xev não receber nada de exclusivo ao pressionar Fn-Left, você estará sem sorte.

É uma pena que as Fnteclas pressionadas não sejam enviadas diretamente como as outras teclas modificadoras. Se fossem, teríamos muito mais poder para configurar seu significado por meio de software.


Infelizmente, o fn no meu laptop não se registra com os eventos de tecla acima e abaixo da mesma maneira que outras chaves, impedindo que isso funcione corretamente para uma tecla modificadora. Você pode remapear para outra tecla, no entanto.
William

5

Eu abri xevem um terminal. Ele detecta quando pressiono o Shift, Ctrl, Alt, e Win( Super), mas quando eu pressionou a Fnchave não detectá-lo.

Portanto, o software não tem nada a ver com a Fnchave; depende do hardware decidir qual chave será enviada ao software (por exemplo, a tecla Homeou End).

Portanto, seu teclado já deve ter para poder fazer isso.

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.