Cosmic Cuttlefish/GNOME Shellのすべてのウィンドウを最小化/非表示にする方法を知っています SUPER+D、しかし、1つのアプリケーション(たとえば、現在カーソルフォーカスがあるウィンドウ)のすべてのウィンドウのみをすばやく最小化できるようにしたいと思います。たとえば、すべてのLibreOfficeドキュメント、またはすべてのターミナルウィンドウを最小化したいと思います。
[設定]> [デバイス]> [キーボード]でこれを行う方法がよくわかりません。これは可能ですか?
OK、楽しみのための簡単なもの:)
デフォルトのUbuntu Budgieインストールに付属している このスクリプト の簡略版/編集版を使用できます。元のスクリプトはデスクトップを切り替えますが、下で編集したスクリプトは、現在アクティブなWM_CLASS
の現在のワークスペースにあるすべてのウィンドウを最小化します。
xdotool
とwmctrl
の両方がインストールされていることを確認してください:
Sudo apt install wmctrl xdotool
minimize_current.py
として保存しますスクリプトを実行するキーボードショートカットを作成すれば完了です。次のコマンドを使用します。
python3 /path/to/minimize_current.py
#!/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])
このスクリプトで使用されているxdotool
もwmctrl
もWaylandでは機能することに注意してください。
これはキーボードショートカットではなく、アプリケーションのすべてのウィンドウを最小化する別の方法です。 Ubuntuドックで 'minimise on click'を有効にできます。次に、ドックでアプリケーションアイコンをクリックすると、そのアプリケーションのすべてのウィンドウが最小化されます(既に最小化されている場合は、前面に表示されます)。
このオプションを有効にするには、ターミナルで次のコマンドを実行します。
gsettings set org.gnome.Shell.extensions.dash-to-dock click-action 'minimize'
(参照: buntu 17.10以降のUbuntuドックで「クリックで最小化」を有効にするにはどうすればよいですか? )