当前位置: 首页>>技术教程>>正文


是否有用于最小化除活动窗口之外的所有窗口的键盘快捷键?

问题描述

当打开像 GIMP 这样的程序时,我发现打开背景窗口会分散注意力,因为 GIMP 有三个与之关联的独立窗口。

必须手动转到每个其他非 Gimp 窗口以最小化它是一种负担。我需要的是 Ubuntu 中与 Windows 的 Super + Home 快捷键匹配的键盘快捷键。一种最小化除活动窗口之外的所有窗口的窗口。

是否有可能在 Ubuntu 中实现这种行为?

最佳答案

可以使用 python 脚本来实现这一点。该脚本需要安装 python-wnckpython-gtk 才能工作,尽管我认为这些都是默认安装的。

将其复制并粘贴到文本编辑器中并保存在合理的位置(例如,作为您的主文件夹中的 minimise.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'(这是假设您将其保存为您的主文件夹中的 minimise.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()

次佳答案

这是一个使用 wmctrl 的非常简单的方法

wmctrl -k on; wmctrl -R :ACTIVE:

第一个命令显示桌面(即最小化所有窗口),第二个命令引发 “active” 窗口,该窗口在最小化之前处于活动状态。我将它放在 one-line bash 脚本中,然后为该脚本设置键盘快捷键。

编辑:使用以下方法恢复所有窗口:

wmctrl -l | cut -d' ' -f 1 | xargs -n1 wmctrl -i -a

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12654.html,未经允许,请勿转载。