当打开像 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())"