![是否有键盘快捷键可以最小化除活动窗口之外的所有窗口?](https://linux22.com/image/1104784/%E6%98%AF%E5%90%A6%E6%9C%89%E9%94%AE%E7%9B%98%E5%BF%AB%E6%8D%B7%E9%94%AE%E5%8F%AF%E4%BB%A5%E6%9C%80%E5%B0%8F%E5%8C%96%E9%99%A4%E6%B4%BB%E5%8A%A8%E7%AA%97%E5%8F%A3%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E7%AA%97%E5%8F%A3%EF%BC%9F.png)
当打开像 GIMP 这样的程序时,我发现打开后台窗口会分散注意力,因为 GIMP 有三个与之关联的单独窗口。
必须手动转到每个其他非 Gimp 窗口来最小化它,这很麻烦。我需要的是 Ubuntu 中与 Windows 的Super+Home快捷键相匹配的键盘快捷键。可以最小化除活动窗口之外的所有窗口。
在 Ubuntu 中可以实现这种行为吗?
答案1
可以使用 Python 脚本实现这一点。脚本需要安装python-wnck
和python-gtk
才能运行,尽管我认为这些都是默认安装的。
将其复制并粘贴到文本编辑器中,并保存在合理的位置(例如最小化.py在您的主文件夹中):
#!/usr/bin/env python
import wnck
import gtk
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration()
windows = screen.get_windows()
active = screen.get_active_window()
for w in windows:
if not w == active:
w.minimize()
然后您可以通过打开键盘快捷键来设置键盘快捷键。
点击添加创建新的快捷方式。
使用命令bash -c 'python ~/minimise.py'
(假设你将其保存为最小化.py在您的主文件夹中)。
然后,您可以将您喜欢的键盘组合分配给此操作。
该脚本将最小化所有非活动窗口。我认为这对您的用例来说不是很有用,因为您将希望打开所有 Gimp 窗口。您可以使用略有不同的脚本来最小化所有非当前应用程序的窗口:
#!/usr/bin/env python
import wnck
import gtk
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration()
windows = screen.get_windows()
active_app = screen.get_active_window().get_application()
for w in windows:
if not w.get_application() == active_app:
w.minimize()
答案2
这是一个非常简单的方法控制端
wmctrl -k on; wmctrl -R :ACTIVE:
第一个命令显示桌面(即最小化所有窗口),第二个命令显示“活动”窗口,即最小化之前的活动窗口。我将其放在一行 bash 脚本中,然后为该脚本设置键盘快捷键。
编辑:使用以下方法恢复所有窗口:
wmctrl -l | cut -d' ' -f 1 | xargs -n1 wmctrl -i -a
答案3
使用 xdotool 的 bash 脚本:
currentwindowid=$(xdotool getactivewindow)
currentdesktopid=$(xdotool get_desktop)
for w in $(xdotool search --all --maxdepth 3 --desktop $currentdesktopid --name ".*"); do
if [ $w -ne $currentwindowid ] ; then
xdotool windowminimize "$w"
fi
done
它仅最小化当前桌面上的窗口。
要最小化所有桌面上的窗口:
currentwindowid=$(xdotool getactivewindow)
for w in $(xdotool search --all --maxdepth 3 --name ".*"); do
if [ $w -ne $currentwindowid ] ; then
xdotool windowminimize "$w"
fi
done
答案4
Ubuntu 21.10 正在运行 Wayland,我希望在新显示器上使用此功能。这是对我有用的解决方案,它是一个绑定到自定义组合键的 bash 脚本。
#!/bin/bash
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"global
.get_window_actors()
.filter(w=>w.meta_window.has_focus()===false)
.forEach(w=>w.meta_window.minimize())"