我知道如何使用SUPER+最小化/隐藏 Cosmic Cuttlefish/GNOME Shell 中的所有窗口D,但我希望能够快速最小化单个应用程序的所有窗口(例如当前具有光标焦点的窗口)。例如,我想最小化所有 LibreOffice 文档或所有终端窗口。
我不太清楚或无法识别在“设置”>“设备”>“键盘”中执行此操作的方法。这可能吗?
答案1
这不是键盘快捷键,而是最小化应用程序所有窗口的另一种方法。您可以启用“点击后最小化' 在 Ubuntu dock 中。然后,一旦您单击 dock 中的应用程序图标,它就会最小化该应用程序的所有窗口(如果它们已经最小化,则提升)。
要启用此选项,请在终端中运行以下命令:
gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
答案2
好的,只是为了好玩而已:)
###最小化当前活动应用程序的窗口您可以使用精简版/编辑版这个脚本,它随默认的 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])
###Note 请注意,此脚本中使用的 和xdotool
均不wmctrl
适用于 Wayland。