我可以获得 Unity 风格的 Super+[1-9] 键盘快捷键来在 Gnome Shell 中启动应用程序吗?

我可以获得 Unity 风格的 Super+[1-9] 键盘快捷键来在 Gnome Shell 中启动应用程序吗?

我正在尝试使用 Gnome Shell 而不是 Unity,看看我是否更喜欢它,而我最怀念的 Unity 功能是使用Super+ 1 到 9 之间的任意数字切换到特定应用程序的功能。有没有办法将此功能添加到 Gnome Shell?

我可以使用 Gnome Shell 系统设置添加自定义快捷方式,但这些快捷方式总是启动新窗口而不是切换到现有窗口。

答案1

选项 1:Gnome Shell 扩展:AppKeys

此扩展模拟了 Gnome Shell 中的 Unity 行为: https://extensions.gnome.org/extension/413/dash-hotkeys/

完全按照预期执行,并添加了一些键绑定,例如使用 为应用程序打开一个新窗口Super+Shift+[1-9]。确认可在 Ubuntu 14.04.2 和 Gnome Shell 3.10.4 中运行。

选项 2:xbindkeys 和 wmctrl

wmctrl虽然设置和管理起来不那么用户友好,但您可以在许多环境中通过使用和获得这种功能xbindkeys

Xbindkeys 可以设置为在登录时启动。它将监视一个名为的文件.xbindkeysrc,该文件可以包含如下行:

#Launch or switch to E-mail
"wmctrl -xa Thunderbird || thunderbird"
    Alt + 2

#Launch or switch to Konsole
"wmctrl -xa Konsole || konsole"
    Alt + 3

#Launch or switch to IRC client
"wmctrl -xa Xchat || xchat"
    Alt + 4

与 Unity 类似,使用此配方,您可以设置一个键,如果应用程序正在运行,则切换到该应用程序,如果应用程序未运行,则启动该应用程序。我Alt在这里使用了它,但我认为您也可以使用它Mod4

选项 3:使用工作区切换快捷方式

类似的做法是分配切换到特定桌面(或“工作区”)的键盘快捷键。如果您在每个工作区运行一个应用程序,则快捷键会有效地切换到该应用程序。查看下面的Keyboard: Shortcuts: Navigation位置以设置工作区切换快捷键。

选项 4:gnome-shell-extensions-windows-navigator

安装此 Gnome 扩展后,在覆盖模式下,您可以按住 ALT 键并查看分配给每个窗口的数字。然后您可以按该数字来切换窗口。更多这里,包括安装说明。

答案2

基于马克·斯托斯伯格的“选项 1”,使用 wmctrl,我实现了一个小脚本来执行此操作,使用 .desktop 文件启动应用程序。通过启动 .desktop 文件,它还可以替代 xdg-open,后者在 Oneiric 中存在错误(它在文本编辑器中打开 .desktop 文件,而不是启动相应的应用程序)。

〜/ bin /桌面打开:

#!/bin/bash
NAME=`grep '^Name=' $1 | sed 's/^Name=//' | sed 's/%.//'`
EXEC=`grep '^Exec=' $1 | sed 's/^Exec=//' | sed 's/%.//'`
wmctrl -xa $NAME || $EXEC &

然后我使用 GNOME 键盘设置来设置自定义键盘快捷键,其中快捷键的命令例如/home/richardt/bin/desktop-open /usr/share/applications/gvim.desktop

我还没能做到的是使用包含该键的快捷方式Super- GNOME 似乎想保留它以切换到活动概览,但也许这是一个错误......

答案3

DockbarX在其“偏好设置”窗格中包含以下选项:

使用 Unity 风格的数字快捷键(Super+number)

这几乎是我目前在 Linux Mint 14 中使用它的唯一原因(dpkg-query 列出的“MATE 面板的 DockbarX 小程序”)。在 Linux Mint 中,我必须将独立的“DockX”添加到启动应用程序中。

我没有使用过 Unity,所以我在寻找与 Windows 7 任务栏类似的行为。与 Windows 7 相比,Unity/Dockbar 缺少的一件事是,当窗口已经聚焦时,它不会最小化窗口。它只会启动应用程序,或将焦点切换到它。我发现最小化行为也非常方便,可以快速清除杂乱并更好地专注于当前任务。看起来我可以通过调整此处其他答案中共享的示例脚本来模拟这一点。

相关内容