Ich weiß, wie man alle Fenster in Cosmic Cuttlefish/GNOME Shell mit SUPER minimiert/versteckt +D , aber ich möchte in der Lage sein, schnell nur alle Fenster für eine einzelne Anwendung zu minimieren (z. B. diejenige, die derzeit den Cursorfokus hat). Ich möchte zum Beispiel alle LibreOffice-Dokumente oder alle Terminal-Fenster minimieren.
Ich sehe oder erkenne keine Möglichkeit, dies unter Einstellungen> Geräte> Tastatur zu tun. Ist das möglich?
Akzeptierte Antwort:
OK, nur kurz zum Spaß 🙂
Fenster der aktuell aktiven Anwendung minimieren
Sie könnten eine abgespeckte/bearbeitete Version dieses Skripts verwenden, das mit einer standardmäßigen Ubuntu Budgie-Installation geliefert wird.
Während das ursprüngliche Skript den Desktop umschaltet, minimiert das bearbeitete unten alle Fenster im aktuellen Arbeitsbereich des aktuellen aktive WM_CLASS
.
Das Skript, wie man es benutzt
-
Stellen Sie sicher, dass Sie beide
xdotool
haben undwmctrl
installiert:sudo apt install wmctrl xdotool
- Kopieren Sie das folgende Skript in eine leere Datei und speichern Sie es als
minimize_current.py
-
Erstellen Sie eine Tastenkombination, um das Skript auszuführen, und Sie sind fertig :). Verwenden Sie den Befehl:
python3 /path/to/minimize_current.py
Das Skript
#!/usr/bin/env python3
import subprocess
ignore = [
"= _NET_WM_WINDOW_TYPE_DOCK",
"= _NET_WM_WINDOW_TYPE_DESKTOP",
]
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def get_currws():
return [l.split()[0] for l in get(
["wmctrl", "-d"]).splitlines() if "*" in l][0]
def get_valid(w_id):
# see if the window is a valid one (type)
w_data = get(["xprop", "-id", w_id])
if w_data:
return True if not any([t in w_data for t in ignore]) else False
else:
return False
def get_wmclass(w_id):
return get(["xprop", "-id", w_id, "WM_CLASS"])
def get_state(w_id):
return "window state: Iconic" in get(["xprop", "-id", w_id, "WM_STATE"])
currws = get_currws()
allwinsdata = [w.split() for w in get(["wmctrl", "-l"]).splitlines()]
winsoncurr = [w[0] for w in allwinsdata if w[1] == currws]
active_w = get(["xdotool", "getactivewindow"])
activeclass = get_wmclass(active_w)
relevant = [w for w in winsoncurr if get_valid(w)]
# windows on current workspace, normal state
tominimize = [
w for w in relevant if all(
[not get_state(w), get_wmclass(w) == activeclass]
)
]
for w in tominimize:
subprocess.Popen(["xdotool", "windowminimize", w])
Hinweis
Beachten Sie, dass xdotool
noch wmctrl
, wie in diesem Skript verwendet, funktioniert auf Wayland.