Estou executando o Fedora 40 que instalei há alguns meses. Percebi que F10
no meu Emacs não executa a função que atribuí a ele no Emacs: na verdade, o Emacs não vê F10
mais a chave (e tenho quase certeza de que isso começou a acontecer quando atualizei para o Fedora 40: era funcionando bem no Fedora 38 - pulei o Fedora 39).
Posso dizer que o Emacs não vê a chave usando C-h C-k
a função de ajuda para descrever uma chave e pressionando F10
. Normalmente, a chave é ecoada na área de eco do Emacs e o comando vinculado a ela é relatado. Nesse F10
caso, nada ecoa na área de eco. Em vez disso, o File
menu é suspenso.
Esse comportamento parece ser um tanto geral: ambos Firefox
e Thunderbird
exibem o mesmo comportamento, o que é outro motivo para concluir que o ambiente de desktop é o que está fazendo isso. Porém, nem todo aplicativo faz isso: em gnome-terminal
and xterm
, F10
aparentemente apenas gera uma sequência de escape: ^[[21~
.
Eu fiz isso gsettings list-recursively
e encontrei uma entrada usando F10
: que parecia promissora, então configurei-a como vazia:
$ gsettings get org.gnome.desktop.interface menubar-accel
'F10'
$ gsettings set org.gnome.desktop.interface menubar-accel ''
$ gsettings get org.gnome.desktop.interface menubar-accel
''
mas isso não fez nada AFAICT (após vários níveis de reinicialização: reiniciar o Emacs, sair e entrar novamente, reinicializar, desligar e começar do zero). Pelo que eu sei, todos os widgets gráficos (configurações, ajustes, etc.) estão usando a API Gsettings abaixo, então isso deveria ter encontrado o culpado - mas sem dados.
Como o Emacs é construído com libgtk-3.0, também tentei uma configuração GTK conforme descrito nesta resposta , mas isso também não fez nenhuma diferença.
Embora meu principal interesse seja me libertar F10
de quem quer que seja seu mestre atual e permitir que ele seja passado para o Emacs, eu também estaria interessado em quaisquer dicas/hacks/métodos que você tenha criado para lidar com problemas semelhantes. Alguma ideia?
Informações da versão:
- SO: Fedora 40
- Kernel: Linux 6.9.12-200.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Sábado, 27 de julho 15:56:15 UTC 2024 x86_64 GNU/Linux
- Gnomo: 46,3
- Emacs: upstream de última geração, não lançado (31.0.50), mas também acontece no Emacs que vem com o Fedora 40: GNU Emacs 29.4 (build 1, x86_64-redhat-linux-gnu, GTK+ Versão 3.24.42, versão cairo 1.18.0) de 16/07/2024
Se forem necessárias mais informações, ficarei feliz em fornecê-las: por favor, me avise.
ATUALIZAÇÃO: em resposta ao comentário de David G. abaixo, xev
vê F10
(e também faz gnome-terminal
e xterm
como mencionado acima e, claro, o que quer que faça o File
menu cair no caso de Emacs
, Firefox
e Thunderbird
). O problema não é que não seja visto: o problema é que ele é agarrado antes que eu queira que seja agarrado e não sei o que o agarra. Isso é o que estou tentando descobrir, na esperança de poder convencer algo a manter as mãos longe de mim F10
:)
Em resposta a comentários adicionais de David G. (obrigado pelas respostas e por me manter honesto!), Tentei emacs -Q
iniciar o Emacs sem nenhum arquivo de inicialização (seja site-init ( site-start.el
ou user-init ou early-init). Mas o GTK A sugestão é intrigante. Eu construí um Emacs sem nenhum kit de ferramentas e ele se comporta conforme o esperado F10
: a chave está visível e posso vinculá-la a um comando. Encontrei esta seção na documentação do GTK: é sobre GTK4 e não consigo. encontre o equivalente na documentação do GTK3, mas presumo que o comportamento seja o mesmo nas duas versões. Não sou programador do GTK, então não sei como desativar esse comportamento ainda, mas parece claro que. David G. estava certo quando apontou a interface GTK no Emacs como a culpada.
Acho que o emacs usa um processo de manipulação de entrada de dois estágios (mais outro na frente, se você contar o GTK), e Ch k faz apenas o último. Não consigo me lembrar dos detalhes do estágio anterior (mas acho que foi sobre alguns remapeamentos de teclas).
Eu recomendaria tentar um programa básico de depuração, como o
xev
, para ver se ele recebeF10
. Isso permitirá que você determine se o problema está no emacs ou em algo externo a ele. Eu suspeito que você descobrirá que a maioria das chaves especiais/interceptadas (como<Alt>F2
) também são interceptadas antes dexev
.Suspeito
F10
que esteja sendo interceptado dentro do emacs, provavelmente na interface GTK, possivelmente no site lisp e possivelmente nas configurações e interconexões do elisp da interface GTK. (A última é dizer: talvez você deva procurar referências à barra de menu e F10 em qualquer arquivo elisp específico do GTK.)