GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo minimizar rápidamente todas las ventanas para una sola aplicación?

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 y wmctrl 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.


Ubuntu
  1. Cómo crear una imagen de Windows para OpenStack

  2. ¿Cómo debo Glob para todos los archivos ocultos?

  3. ¿Cómo ocultar todas las ventanas y mostrar el escritorio rápidamente?

  4. ¿Cómo crear una partición Ext4 para todos los usuarios?

  5. ¿Cómo ver una lista de todas las ventanas abiertas en un panel en Unity?

Cómo instalar WSL (Subsistema de Windows para Linux) en un solo comando | Instalar Linux en Windows usando WSL

Cómo instalar WSL2 (Subsistema de Windows para Linux 2) en Windows 10

Cómo instalar WSL (Subsistema de Windows para Linux) en Windows 11

Cómo instalar el subsistema de Windows para Linux

Linux:¿acceso directo para minimizar todas las ventanas?

Cómo instalar el servidor de aplicaciones en Windows Server 2012