Sé cómo minimizar/ocultar todas las ventanas en Cosmic Cuttlefish/GNOME Shell usando SUPER +D , pero me gustaría poder minimizar rápidamente solo todas las ventanas para una sola aplicación (por ejemplo, la que actualmente tiene el foco del cursor). Por ejemplo, me gustaría minimizar todos los documentos de LibreOffice o todas las ventanas de Terminal.
No veo ni reconozco una forma de hacer esto en Configuración> Dispositivos> Teclado. ¿Es esto posible?
Respuesta aceptada:
Vale, solo uno rápido por diversión 🙂
Minimizar las ventanas de la aplicación actualmente activa
Podría usar una versión simplificada/editada de este script, que viene con una instalación predeterminada de Ubuntu Budgie.
Mientras que el script original alterna el escritorio, el editado a continuación minimiza todas las ventanas, en el espacio de trabajo actual, del actual activo WM_CLASS
.
El script, cómo usarlo
-
Asegúrate de tener ambos
xdotool
ywmctrl
instalado:sudo apt install wmctrl xdotool
- Copie el siguiente script en un archivo vacío, guárdelo como
minimize_current.py
-
Cree un atajo de teclado para ejecutar el script y listo :). Usa el comando:
python3 /path/to/minimize_current.py
El guión
#!/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])
Nota
Tenga en cuenta que xdotool
ni wmctrl
, como se usa en este script, funcionará en Wayland.