Substituir atalho em todo o sistema para atalho específico do aplicativo


11

Existe uma maneira de atribuir um atalho de teclado definido em uma precedência de aplicativo a um atalho de todo o sistema com a mesma ligação de tecla?

Comportamento desejado: Quando algumas teclas são pressionadas, verifique se o aplicativo focado deseja fazer alguma coisa (e, se for o caso, faça). Caso contrário, verifique se há um atalho do sistema para algumas teclas e faça isso.

O que acontece atualmente: eu F11configurei como 'alternar tela cheia' no menu de configurações para atalhos de teclado. No Chrome, você F11deve ativar o próprio modo de tela cheia do Chrome, mas é substituído pelo atalho do sistema, ou seja, o Chrome fica em tela cheia (o painel GNOME e a barra de título desaparecem), mas não entra no modo de tela cheia do Chrome (onde as guias, barra de endereço e barra de favoritos também desaparecer).

(Observação: o Firefox não tem o mesmo problema, mas isso ocorre porque o FF em tela cheia é o mesmo que / é acionado pelo gerenciador de janelas em tela cheia)


A primeira pergunta que me vem à cabeça; o que fala com o sistema operacional sobre as teclas pressionadas, o aplicativo ou o X / Wayland? Parece-me que o X manipula uma tecla pressionada e, se necessário, modifica-a antes de passá-la para a janela em que seu aplicativo está esperando. A segunda pergunta é como X saberia se o aplicativo mudou de estado e como saberia se uma alteração ocorreu diretamente devido a um pressionamento de tecla? Eu estaria inclinado a sair em um membro e dizer que você está sem sorte com isso.
HellionWisp

Respostas:


2

Isenção de responsabilidade: não é exatamente isso que você deseja, mas gastei muito tempo nisso para não publicá-lo e talvez alguém possa usá-lo.

Cheguei até Ctrl + F11 em tela cheia em todos os lugares, exceto no Chromium, onde é a tela cheia do Chromium!

  1. Linha de raciocínio

Eu pensei que poderia enganar o gerenciador de janelas se eu usar xdotoole enviar o comando diretamente para a janela do chrome - sem sucesso.

Então eu pensei que poderia alterar o atalho de teclado no google chrome, mas isso parece codificado - outro beco sem saída.

  1. O que nos deixa com isso

Instale xdotoolpara simular pressionamentos de teclado

sudo apt-get install xdotool

reconfigurar os atalhos do teclado Ubuntu para algo arbitrário, que nunca digitamos, mas é utilizável no script

Configurações -> Dispositivos -> Teclado

Role para baixo e edite Alterne para o modo de tela cheiaCtrl + Alt + 1 e pressione +e adicione um atalho de teclado personalizado

atalhos do teclado - tela cheia

pressione o botão +e adicione um atalho de teclado personalizado

caixa de diálogo de atalho personalizado

editar o script

nano /home/user/fullscreen.sh


#!/bin/bash
export DISPLAY=:0
windowname=$(xdotool getactivewindow getwindowname | cut -d "-" -f 2)
if [[ $windowname != *"Chromium"* ]]
then
xdotool keydown Ctrl keydown Alt key 1 keyup Alt keyup Ctrl
else
xdotool search --onlyvisible --class "Chromium" windowfocus 
sleep 0.2
xdotool key F11
fi

torná-lo executável

chmod +x /home/user/fullscreen.sh

  1. Conclusão

Parece impossível enganar o gerenciador de janelas e contrabandear as teclas, mas certamente existem soluções possíveis. Nesse caso, o Google tornou o atalho de teclado em tela cheia não configurável, ficando um pouco abaixo da marca

Agora, com Ctrl + F11, o gerenciador de janelas controla o comportamento da tela cheia, exceto no cromo.


1
Pense que você está certo em relação ao melhor que podemos esperar - pena que o Chrome / ium não suporte atalhos de teclado personalizados. Vale ressaltar: a escolha do atalho do teclado é importante para esse truque! Eu já tinha Ctrl + F11 vinculado a outra coisa. Tentei com Shift + Alt + F11, que não funcionou. Alt + F11 funcionou bem embora. (Eu acho que ele estava tentando fazer Shift + Ctrl + Alt + F11)
fred 21/01
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.