
Ich verwende Xfce mit Kde Plamsa5 als Fenstermanager. Ich kann die Xfce-Fenstereinstellungen nicht mehr öffnen, dafür aber die KDE-Systemeinstellungen. Ich kann keine Option finden, um automatisch auf neu erstellte Fenster zu fokussieren.
Wenn ich ein neues Fenster öffne, bleibt der Fokus auf dem vorherigen Fenster, aber ich möchte, dass das neue Fenster automatisch angehoben und fokussiert wird.
Antwort1
Es handelt sich um die „Fokus-Diebstahl-Verhinderung“ in den Kwin-Fenstereinstellungen. Wenn sie auf „mittel“ eingestellt ist, erhalten neu geöffnete Fenster automatisch den Fokus.
Antwort2
Die saubere Lösung
Ich verwende kein Plasma und kann daher nicht herausfinden, was das Problem verursacht. Es muss nicht erklärt werden, dass die Beseitigung der Ursache die „sauberste“ Lösung wäre.
Wenn das unmöglich erscheint und Sie diese Kombination verwenden möchten, können Sie jedoch das unten stehende Pflaster verwenden, damit es funktioniert. Die Lösung ist ein extrem „leichtes“ Hintergrundskript, das neu erstellte Fenster im Auge behält und sie öffnet, wenn sie erscheinen.
Wie benutzt man
Das Skript verwendet
wmctrl
sudo apt-get install wmctrl
Kopieren Sie das folgende Skript in eine leere Datei und speichern Sie es unter
raise_window.py
Testen Sie es von einem Terminal mit dem folgenden Befehl:
python3 /path/to/raise_window.py
Öffnen Sie einige Anwendungen und prüfen Sie, ob deren Fenster automatisch geöffnet werden.
- Wenn alles einwandfrei funktioniert, fügen Sie es zu Ihren Startanwendungen hinzu: Dash > Startanwendungen > Befehl hinzufügen.
Das Drehbuch
#!/usr/bin/env python3
import subprocess
import time
import os
get = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()
curr_1 = get(["wmctrl", "-l"]).splitlines()
while True:
try:
curr_2 = get(["wmctrl", "-l"]).splitlines()
new = [w for w in curr_2 if not w in curr_1]
for w in new:
w = w.split()[0]
command = "wmctrl -ia "+w
subprocess.Popen(["/bin/bash", "-c", command])
except:
pass
curr_1 = curr_2
time.sleep(1)