Remplacer le raccourci à l'échelle du système pour un raccourci spécifique à l'application

11

Existe-t-il un moyen de donner un raccourci clavier défini dans une priorité d'application sur un raccourci à l'échelle du système avec la même liaison de touches?

Comportement souhaité: lorsque certaines touches sont enfoncées, vérifiez si l'application ciblée veut faire quelque chose (et si oui, faites-le). Sinon, vérifiez s'il existe un raccourci système pour certaines touches , puis faites-le.

Que se passe-t-il actuellement: j'ai F11défini comme «basculer en plein écran» dans le menu des paramètres pour les raccourcis clavier. Dans Chrome F11, le mode plein écran de Chrome devrait être activé, mais il est remplacé par le raccourci à l'échelle du système, c'est-à-dire que Chrome devient plein écran (le panneau GNOME et la barre de titre disparaissent) mais n'entre pas en mode plein écran de Chrome (où les onglets, la barre d'adresse et la barre de favoris sont également disparaître).

(Remarque: Firefox n'a pas le même problème, mais cela semble être dû au fait que FF plein écran est le même que / est déclenché par le gestionnaire de fenêtres en plein écran)

Fred
la source
La première question qui me vient à l'esprit; qu'est-ce qui parle au système d'exploitation des touches, de l'application ou de X / Wayland? Il me semble que le X gérera une pression sur une touche, et la gâchera si nécessaire, avant de la passer à la fenêtre sur laquelle votre application vous attend. La deuxième question est de savoir comment X pourrait-il savoir si l'application a changé d'état et comment pourrait-il savoir si un changement s'est produit directement en raison d'une pression sur une touche? Je serais enclin à sortir sur un membre et à dire que vous n'avez pas de chance à ce sujet.
HellionWisp

Réponses:

2

Avis de non-responsabilité: ce n'est pas exactement ce que vous voulez, mais j'ai passé trop de temps à ce sujet pour ne pas le publier et peut-être que quelqu'un d'autre peut l'utiliser.

Je suis allé jusqu'à ce que Ctrl + F11 soit en plein écran partout mais Chromium où il est en plein écran de Chromium!

  1. Train de pensée

Je pensais pouvoir tromper le gestionnaire de fenêtres si j'utilise xdotool et envoie la commande directement à la fenêtre Chrome - en vain.

Ensuite, j'ai pensé que je pourrais peut-être changer le raccourci clavier dans Google Chrome, mais cela semble codé en dur - une autre impasse.

  1. Ce qui nous laisse avec ça

Installer xdotoolpour simuler les pressions sur le clavier

sudo apt-get install xdotool

reconfigurer les raccourcis clavier Ubuntu en quelque chose d’arbitraire, que nous ne tapons jamais mais qui est utilisable dans le script

Paramètres -> Périphériques -> Clavier

Faites défiler et modifier de basculer en mode plein écran à Ctrl + Alt + 1puis cliquez sur le +et ajoutez un raccourci clavier personnalisé

raccourcis clavier - plein écran

puis appuyez sur +et ajoutez un raccourci clavier personnalisé

boîte de dialogue de raccourci personnalisé

éditer le 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

le rendre exécutable

chmod +x /home/user/fullscreen.sh

  1. Conclusion

Il semble impossible de tromper le gestionnaire de fenêtres et de contrebande, mais il existe certainement des solutions de contournement possibles. Dans ce cas, Google a rendu le raccourci clavier plein écran non configurable, il est donc juste en deçà de la marque

Maintenant, avec Ctrl + F11, le gestionnaire de fenêtres contrôle le comportement plein écran sauf en chrome.

Robert Riedl
la source
1
Pensez que vous avez raison, c'est le meilleur que nous puissions espérer - dommage que Chrome / ium ne prenne pas en charge les raccourcis clavier personnalisés. À noter: le choix du raccourci clavier est important pour cette astuce! J'avais déjà Ctrl + F11 lié à autre chose. J'ai essayé avec Shift + Alt + F11, ce qui n'a pas fonctionné. Alt + F11 a bien fonctionné cependant. (Je suppose qu'il essayait de faire Shift + Ctrl + Alt + F11)
Fred