Como encontrar * por que * não consigo vincular algum atalho de teclado (ou qual aplicativo o levou)?

14

Em resumo: existe (no Unity) alguma maneira de descobrir qual aplicativo pegou algum atalho global? Eu não peço "atalhos padrão", mas alguma maneira de obter informações sobre os atalhos reais (qual aplicativo está realmente mantendo a tecla fornecida agora na minha configuração atual)

História mais longa:

Tenho problemas repetíveis com o gerenciamento de atalhos de teclado. No momento:

  • Às vezes, a sinapse (*) não pode vincular o Win-Space, pois é um atalho de ativação, relatando "Falha ao registrar a tecla de atalho 'ativar' com a assinatura 'espaço'" "(o que geralmente significa que esse atalho já está sendo usado)

    (*) Após um login, ele funciona, após outro login, não. Eu suspeito que alguma corrida entre dois aplicativos ...

  • Por algum motivo, F9 torna minha tela um pouco mais escura (e F9 não atinge atalhos no nível do aplicativo, por exemplo, meu menu byobu não funciona)

Tentei olhar para vários lugares e:

  • Eu não ver qualquer um desses atalhos nas configurações do teclado / Atalhos

  • Não consigo encontrá-los no gconf-editor (tentei procurar F9 em valores em particular, nada foi encontrado)

  • Não consegui encontrá-los no dconf-editor (não há pesquisa, cliquei nos caminhos mais óbvios)

Portanto, minha pergunta é: existe alguma maneira de perguntar ao unity / dconf / gconf / d-bus / o que quer que seja sobre a alocação atual de teclas de atalho globais (qual processo está mantendo qual tecla). Ou force o log dessas alocações em algum arquivo de log. Ou cumprimente-os de algum lugar. Ou………

Mekk
fonte
Você poderia esclarecer ou definir (para os fins desta pergunta) o que significa atalho global ?
A tecla que pressiono e que causa algo não relacionado à janela atualmente ativa. Por exemplo, o atalho global Win-S abre a exibição de exposição, o atalho global Alt-Tab alterna janelas, F12 (na minha configuração) abre o terminal suspenso tilda etc. etc. E, como eu disse, sempre que pressiono F9, a tela escurece e Não tenho idéia de qual aplicativo faz isso e por quê. E algo às vezes pega espaço no Win. E, no passado, vi F12 ser retirado de tilda (felizmente, esse problema desapareceu). Então, eu ficaria feliz em ter alguma maneira de examinar essas alocações de teclado.
MEKK
Acho que o F9 pode ativar a sobreposição de widgets, mas já faz um tempo desde que estive no Unity. Talvez procure isso no CCSM ..?
Rasmus
Veja em askubuntu.com/questions/101226/… ou wiki.ubuntu.com/Keybindings ou superuser.com/questions/152367/… - Existem vários locais descritos, por exemplo, no dconf ou gconf, onde o Unity armazena seus atalhos. Talvez você queira verificar essas páginas para obter novas informações?
Byte Commander

Respostas:

2

Entre 12.10 e 17.04, a área de trabalho do Ubuntu é na verdade o Compiz e o próprio Unity é apenas um plugin do Compiz.

Se, em vez disso, você definir e ativar o plug-in "comandos" do Compiz e definir atalhos de teclado usando o CCSS em caso de conflito, o CCSM deverá alertá-lo sobre qual plug-in está causando o conflito e também fornecer opções para desativar o plug-in ou a combinação de teclas em conflito. antes de aplicar suas configurações.

Pessoalmente, também tive dificuldade em definir atalhos de teclado no 14.04+, mas desde que decidi começar a usar o plug-in CCSM em vez das configurações de atalho de teclado no Unity, não tive nenhum problema e todos os meus atalhos funcionam muito bem e por isso sugiro fortemente que você pelo menos dê uma olhada como uma opção.

mchid
fonte
1

Agora eu entendo o que você precisa ...

sudo apt-get install evtest

Desfrute de desmontar eventos Ubuntu USB HID!

Aviso Isso não funciona nos teclados PS2 / estilo ... (mas quem usa mais aí?) :-)

Fabby
fonte
Não resolvendo completamente meu problema, mas certamente útil. Ainda assim, estou curioso o que é o lugar onde essas ligações ativas estão realmente mantidos e se ele pode ser introspectadas (gsettings são lugar que são lidos por muitos aplicativos, mas nem todo aplicativo deve usar gsettings ...)
MEKK
Se você me der a saída do comando acima, eu posso ajudá-lo ... Se você quer saber o porquê , aconselho a ler: wiki.archlinux.org/index.php/Extra_keyboard_keys e depois apreciará que funciona em absoluto!!! ;-)
Fabby
Este artigo não é exatamente o que estou perguntando - não pergunto como as chaves são convertidas de pressionamentos de teclas físicos em símbolos (embora isso também seja interessante e às vezes confuso). Pergunto uma coisa mais simples: qual programa realmente mantém e aplica atalhos de teclado globais e se existe algum tipo de utilitário ou API que me permita examinar ou rastrear essas atribuições.
Mekk
(quando inicio a unidade, ele registra Alt-F2, Alt-F4, Win-S etc etc. quando inicio a sinapse, ele registra Win-space, quando inicio o yakuake ele registra F12 etc etc - dois últimos de acordo com a minha configuração - mas qual é o local em que essas chaves são registradas e como acessá-lo?) #
999
Oooh ... Agora entendo ... Existe algo chamado, evtestmas que faz apenas coisas com USB! Por outro lado, é exatamente isso que você precisa se usar um laptop ou um desktop sem teclado no estilo PS / 2!
Fabby
1

De uma das minhas respostas mais antigas s:

Primeiro você precisa instalar xdotool:

sudo apt-get install xdotool

Eu criei uma série de comandos para nos mostrar as garras passivas em um pressionamento de tecla. Por exemplo, para ver o que está chamando a combinação Shift + PrintScreen, você pode usar o "script" abaixo:

xdotool keydown "shift+Print"; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

Isso acionará o evento da tecla Shift + PrtSc e em uma instalação padrão do Ubuntu mostrará o gnome-settings-daemon agarrando o teclado. Pelo menos isso funcionou na minha instalação mais antiga do 12.04, mas parece que em um 14.04 eu tive que usar isso:

xdotool key "shift+Print"; sleep 1; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

mas

xdotool keydown "F12"; xdotool key "XF86LogGrabInfo"; xdotool keyup "F12"; tail /var/log/Xorg.0.log

ainda funciona, às vezes, e não outras. Não sei porque.

Você apenas precisa modificar o "script" acima, alterando as chaves que devem ser simuladas.

falcoeiro
fonte