Systemweite Verknüpfung für anwendungsspezifische Verknüpfung überschreiben

11

Gibt es eine Möglichkeit, einer in einer Anwendung definierten Tastenkombination Vorrang vor einer systemweiten Tastenkombination mit derselben Tastenkombination zu geben?

Gewünschtes Verhalten: Wenn einige Tasten gedrückt werden, prüfen Sie, ob die fokussierte Anwendung etwas tun möchte (und wenn ja, tun Sie dies). Wenn nicht, überprüfen Sie, ob für einige Tasten eine Systemverknüpfung vorhanden ist, und führen Sie diese aus.

Was aktuell passiert: Ich habe F11im Einstellungsmenü für Tastaturkürzel die Option "Vollbild umschalten" festgelegt. In Chrome F11sollte der Chrome-eigene Vollbildmodus aktiviert werden, wird jedoch von der systemweiten Verknüpfung überschrieben, dh Chrome wird zum Vollbildmodus (GNOME-Bedienfeld und Titelleiste verschwinden), wechselt jedoch nicht in den Chrome-Vollbildmodus (in dem auch die Registerkarten, die Adressleiste und die Lesezeichenleiste angezeigt werden) verschwinden).

(Randnotiz: Firefox hat nicht das gleiche Problem, aber dies scheint daran zu liegen, dass der FF-Vollbildmodus derselbe ist, der vom Fenstermanager-Vollbildmodus ausgelöst wird.)

Fred
quelle
Die erste Frage, die mir in den Sinn kommt; Was spricht mit dem Betriebssystem über Tastendrücke, die Anwendung oder X / Wayland? Es scheint mir, dass das X einen Tastendruck handhabt und ihn bei Bedarf zerlegt, bevor es an das Fenster übergeben wird, in dem Ihre Anwendung auf Sie wartet. Die zweite Frage lautet: Wie würde X wissen, ob sich der Status der Anwendung geändert hat, und wie würde X wissen, ob eine Änderung direkt aufgrund eines Tastendrucks erfolgt ist? Ich würde gerne auf die Beine gehen und sagen, dass Sie in dieser Sache kein Glück haben.
HellionWisp

Antworten:

2

Haftungsausschluss: Dies ist nicht genau das, was Sie wollen, aber ich habe zu viel Zeit damit verbracht, es nicht zu veröffentlichen, und vielleicht kann es jemand anderes verwenden.

Ich bin so weit gekommen, dass Strg + F11 überall Vollbild ist, aber Chromium, wo es Chromiums Vollbild ist!

  1. Gedankengang

Ich dachte, ich könnte den Fenstermanager austricksen, wenn ich ihn benutze xdotool den Befehl und direkt an das Chrome-Fenster sende - ohne Erfolg.

Dann dachte ich, ich könnte vielleicht die Tastenkombination in Google Chrome ändern, aber das scheint fest codiert zu sein - eine weitere Sackgasse.

  1. Was uns damit zurücklässt

Installieren xdotool, um Tastaturdrücke zu simulieren

sudo apt-get install xdotool

Konfigurieren Sie die Ubuntu-Tastaturkürzel neu auf etwas Beliebiges, das wir nie eingeben, das aber im Skript verwendet werden kann

Einstellungen -> Geräte -> Tastatur

Scrollen Sie nach unten und bearbeiten Sie. Schalten Sie den Vollbildmodus um Ctrl + Alt + 1und drücken Sie dann die Taste+ und fügen Sie eine benutzerdefinierte Tastenkombination hinzu

Tastaturkürzel - Vollbild

Klicken Sie dann auf +und fügen Sie eine benutzerdefinierte Tastenkombination hinzu

Dialog der benutzerdefinierten Verknüpfung

Bearbeiten Sie das Skript

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

mach es ausführbar

chmod +x /home/user/fullscreen.sh

  1. Fazit

Es scheint unmöglich, den Fenstermanager auszutricksen und einen Tastendruck zu schmuggeln, aber es sind sicherlich Problemumgehungen möglich. In diesem Fall hat Google die Tastenkombination für die Vollbildtastatur nicht konfigurierbar gemacht, sodass sie nur knapp unter der Marke liegt

Jetzt steuert der Fenstermanager mit Strg + F11 das Vollbildverhalten außer in Chrom.

Robert Riedl
quelle
1
Denken Sie, Sie haben Recht, dass dies das Beste ist, auf das wir hoffen können - schade, dass Chrome / ium keine benutzerdefinierten Tastaturkürzel unterstützt. Bemerkenswert: Die Wahl der Tastenkombination ist für diesen Trick von Bedeutung! Ich hatte bereits Strg + F11 an etwas anderes gebunden. Versucht mit Umschalt + Alt + F11, was nicht funktioniert hat. Alt + F11 hat aber gut funktioniert. (Ich denke, es wurde versucht, Umschalt + Strg + Alt + F11 zu tun)
Fred