Saya tahu cara meminimalkan/menyembunyikan semua jendela di Cosmic Cuttlefish/GNOME Shell menggunakan SUPER +D , tetapi saya ingin dapat dengan cepat meminimalkan hanya semua jendela untuk satu aplikasi (katakanlah yang saat ini memiliki fokus kursor). Misalnya, saya ingin meminimalkan semua dokumen LibreOffice, atau semua jendela Terminal.
Saya tidak cukup melihat atau mengenali cara untuk melakukan ini di Pengaturan> Perangkat> Papan Ketik. Apakah ini mungkin?
Jawaban yang Diterima:
Oke, hanya yang singkat untuk bersenang-senang
Minimalkan jendela aplikasi yang sedang aktif
Anda dapat menggunakan versi skrip ini yang telah dilucuti/diedit, yang disertakan dengan instalasi default Ubuntu Budgie.
Sementara skrip asli mengaktifkan desktop, skrip yang diedit di bawah meminimalkan semua jendela, di ruang kerja saat ini, dari saat ini WM_CLASS
aktif .
Script, cara menggunakan
-
Pastikan Anda memiliki keduanya
xdotool
danwmctrl
terpasang:sudo apt install wmctrl xdotool
- Copy script di bawah ini ke dalam file kosong, simpan sebagai
minimize_current.py
-
Buat pintasan keyboard untuk menjalankan skrip dan selesai :). Gunakan perintah:
python3 /path/to/minimize_current.py
Skrip
#!/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])
Catatan
Perhatikan bahwa xdotool
atau wmctrl
, seperti yang digunakan dalam skrip ini, akan berfungsi di Wayland.