我可以拥有文本 Alt-Tab 功能吗?

gue*_*tli 6 gui window-manager window software-recommendation application-switcher

从前有一个很棒的窗口管理器,叫做“启蒙”。

如果您使用它,然后点击Alt+,Tab那么您会看到一个小窗口标题列表。

像这样:

  • 用户@远程主机
  • foo@db-server
  • 电子书
  • ...

或者像这样:

窗口切换器简单而美丽

我很喜欢。

我要它回来。我的意思是功能,而不是应用程序。

我正在使用 Ubuntu 18.04

我不想看到这样的应用程序图标:

alt-tab 暂时没用

我最多打开五个终端。如果我按下 windows 键,我会看到大致相同的图像(大终端的小版本)五次。

窗口键图标

找到合适的终端需要时间和精力。而且我只想用键盘切换,不用鼠标。

终端背后的魔力:

xtermset -title foo
Run Code Online (Sandbox Code Playgroud)

我有这个 bash 脚本,如果我通过 ssh 登录,它就会被执行。

这样我就可以轻松区分几个终端。

如何获得这个在 1998 年起作用的功能?

(请不要告诉我安装启蒙窗口管理器,这个问题是关于一个简单的功能,而不是应用程序)

用户“DK Bose”希望我显示这些命令的输出:

===> wmctrl -m
Name: GNOME Shell
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: N/A
tguettler@aptguettler:~
===> 


tguettler@aptguettler:~
===> wmctrl -lx
0x0200000a  0 desktop_window.Nautilus  aptguettler Schreibtisch
0x01c00178  0 Pidgin.Pidgin         aptguettler tbz
0x02600010  0 Navigator.Firefox     aptguettler command line - List of window names on ALT-Tab - Ask Ubuntu - Mozilla Firefox
0x02200010  0 Mail.Thunderbird      aptguettler Posteingang - tguettler@tbz-pariv.de (IMAP) - Mozilla Thunderbird
0x04400006  0 gnome-terminal-server.Gnome-terminal  aptguettler foooooo
0x044000ce  0 gnome-terminal-server.Gnome-terminal  aptguettler tguettler@aptguettler
Run Code Online (Sandbox Code Playgroud)

字符串“foooooo”是通过xtermset -title foooooo. 标题是在一个在远程服务器上运行 ssh 的 shell 中设置的。

DK *_*ose 7

我不确定在 Ubuntu 18.04 中尝试更改窗口管理器是否可取。窗口管理器已集成到 GNOME Shell 中。

您可能会发现Rofi适合您所描述的目的,同时保持系统的默认设置不变。

窗口切换器模式下的 Rofi

  • Rofi在 Universe 部分可用。

  • 它的安装大小为 524 kB 和非常少的依赖项,您可以通过运行apt show rofi或使用apt install -s rofi.

  • Rofi有几个功能,但这里感兴趣的一个是窗口切换器。

一旦Rofi安装:

  • 运行rofi -dump-config > ~/.config/rofi/config.rasi以生成本地配置文件,您可以对其进行修改以满足您的需要。

  • 通过运行预览您想要使用的主题rofi-theme-selector。如果你想进一步调整主题,你可以将主题从/usr/share/rofi/themes复制到~/.local/share/rofi/themes并给它一个新名称以避免混淆。我喜欢Pop-Dark并将本地版本命名为myPop-Dark。在此答案中发布的图片中,我使用了myPop-Dark

用法

为了演示Rofi作为系统Alt+的替代品使用Tab

  • 我打开了几个窗口,包括五个 xterm 窗口。

  • 我分配Ctrl+ Win+R的键盘快捷键组合运行rofi -show window -theme myPop-Dark

在上面发布的图像中,有三列。如果您总是只想要应用程序的名称和窗口的标题,请编辑~/.config/rofi/config.rasi将注释掉的window-format行更改为

window-format: "{n}    {t}";
Run Code Online (Sandbox Code Playgroud)

您还可以修改rofi窗口的宽度、高度和位置。

要聚焦您想要的窗口,请使用箭头键或鼠标指针突出显示该条目,然后按Enter

如果您有一个非常长的窗口列表,请按要过滤掉所有其他窗口的窗口的唯一键。如果这是不可能的,请通过键入来过滤条目,如下面的动画所示f,然后o将列表限制为包含字符串“foo”的窗口。

下面的动画说明了这一点。

过滤窗口

要关闭突出显示的窗口,请按Shift+ Delete


小智 6

Ubuntu(包括 18.04)现在基于 GNOME,并且可以通过GNOME Shell Extensions提供一些附加功能。进入网站搜索:以“window switcher”为关键词,搜索结果首页可能会列出相关的扩展名。

这个似乎相关并得到维护:

dlandau 的切换器

dlandau 的切换台在行动

通过键入快速切换窗口或启动应用程序

使用配置的全局热键(默认为 Super+w)打开当前窗口列表。键入要激活的应用程序窗口的一部分名称或标题,然后按 Enter 键或单击要激活的项目。您可以使用箭头键在过滤的选择中导航,并键入多个以空格分隔的搜索词以进一步过滤。使用 Esc 或单击切换器外的任意位置以取消。

使用配置的全局热键(默认为 Super+x)打开应用程序启动器。键入要启动的应用程序名称的一部分,然后按 Enter。您可以使用 Ctrl+Space 或 Ctrl+Tab 在切换器和启动器之间切换,或者当没有匹配名称的打开窗口但有应用程序时,模式会自动切换。

您可以在首选项中自定义外观和功能。

扩展主页:https : //github.com/daniellandau/switcher

Shell 版本:(3.38最新)... 3.14(最旧)

要将常用键盘快捷键Alt+TabSuper+Tab与此扩展程序绑定,用户可能需要使用变通方法。GitHub 用户 PHLAK在 GitHub 上提交了此问题 #63,并在几条评论中解释了解决方法:

我想将 Switcher 绑定到 Super + Tab,但无法绑定。我也注意到我也不能将它绑定到 Alt + Tab。


我能够通过直接设置值来解决这个问题dconf

dconf write /org/gnome/shell/extensions/switcher/show-switcher "['<Super>tab']"
Run Code Online (Sandbox Code Playgroud)

您也可以使用dconf-configGUI执行相同操作。


您可能还必须使用该组合键取消绑定任何预配置的快捷方式。具体来说,“切换应用程序”绑定到Super+TabGnome。

您可以通过打开“设置”并导航到 来更改此设置Devices > Keyboard。然后搜索Super+Tab并更改或删除此绑定。

免责声明:原作者没有测试这个扩展,因为没有使用 GNOME 桌面。这个答案简单地引用了网上找到的最可靠的资源。由于原始截图和动画图像太大(500kB,7MB),因此在GIMP中重新制作并优化了屏幕截图(122kB)。

TL;DR转至 GNOME Shell Extensions 网站并安装选择的扩展:Switcher by dlandau。受制于与 Shell 版本的兼容性。


回答者注:包括更长的评论,解释了这个答案如何适合这个问题。当时回复 OP 查询的一条评论保持原样,位于此答案下方。

Ubuntu 18.04 使用 GNOME Shell 3.28,因此该扩展程序应该是兼容的 -- 2019 年 2 月 14 日 19:32

所描述的功能类似于传统的智能启动器,即 Kupfer、GNOME Do 或 Launchy:按 Alt- 或任何指定的快捷方式,然后显示启动器窗口弹出窗口(需要键入以查找打开的窗口)。相比之下,Shell 扩展将显示一个启动器窗口弹出窗口,可以轻松显示打开的窗口列表。只有在切换到目标窗口时才需要键入或使用光标键(唯一缺少的条件)。-- 2019 年 2 月 26 日 13:10

简而言之:扩展名“Switcher by dlandau”将显示一个简单的窗口标题列表,但不会在具有相同 Alt-Tab 的窗口之间切换。这是迄今为止您可以在带有 Shell 扩展的 GNOME 上获得的最接近的结果。-- 2019 年 2 月 26 日 13:24