GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment minimiser rapidement toutes les fenêtres pour une seule application ?

Je sais comment minimiser/masquer toutes les fenêtres dans Cosmic Cuttlefish/GNOME Shell en utilisant SUPER +D , mais j'aimerais pouvoir minimiser rapidement toutes les fenêtres d'une seule application (disons celle qui a actuellement le focus sur le curseur). Par exemple, je voudrais minimiser tous les documents LibreOffice, ou toutes les fenêtres Terminal.

Je ne vois pas ou ne reconnais pas tout à fait un moyen de le faire dans Paramètres> Périphériques> Clavier. Est-ce possible ?

Réponse acceptée :

OK, juste un rapide pour le fun 🙂

Réduire les fenêtres de l'application actuellement active

Vous pouvez utiliser une version simplifiée/modifiée de ce script, qui est fournie avec une installation par défaut d'Ubuntu Budgie.
Tandis que le script original bascule le bureau, celui modifié ci-dessous minimise toutes les fenêtres, sur l'espace de travail actuel, WM_CLASS actif .

Le script, comment l'utiliser

  • Assurez-vous d'avoir à la fois xdotool et wmctrl installé :

    sudo apt install wmctrl xdotool
    
  • Copiez le script ci-dessous dans un fichier vide, enregistrez-le sous minimize_current.py
  • Créez un raccourci clavier pour exécuter le script et vous avez terminé :). Utilisez la commande :

    python3 /path/to/minimize_current.py
    

Le scénario

#!/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])

Remarque

Notez que xdotool ni wmctrl , tel qu'utilisé dans ce script, fonctionnera sur Wayland.


Ubuntu
  1. Comment dois-je Glob pour tous les fichiers cachés ?

  2. Comment masquer toutes les fenêtres et afficher le bureau rapidement ?

  3. Comment créer une partition Ext4 pour tous les utilisateurs ?

  4. Comment exécuter une application pendant une durée définie dans Shell ?

  5. Comment utiliser un thème GTK 3 différent pour des utilisations spécifiques

Comment installer WSL (Windows Subsystem for Linux) en une seule commande | Installer Linux sur Windows à l'aide de WSL

Comment installer WSL2 (sous-système Windows pour Linux 2) sur Windows 10

Comment installer WSL (sous-système Windows pour Linux) sur Windows 11

Comment installer le sous-système Windows pour Linux

Linux – Raccourci pour minimiser toutes les fenêtres ?

Comment installer le serveur d'applications sur Windows Server 2012