GNOME 中带有活动的窗口,在 Alt+Tab 后通知但不显示?

Der*_*yck 6 gnome window-manager gdm gnome-shell

当一个具有打开窗口的进程被激活时,它保持未聚焦并隐藏在其他窗口下,但在下面给出一个小通知,表明有操作。这在以下情况下尤为明显:

  • PCManFM 文件管理器- 当它已经打开到一个文件夹并被赋予一个新的打开到一个新选项卡时
  • File-RollerArchive Manager - 当它已经打开一个文件并获取一个新文件并在窗口中打开时。

我主要使用Gnome 3.x。我已经搜索了dconf30 次的最后和后面,我能找到的最接近的是focus_mode = clickauto_raise = true但都没有任何效果。

我已经在这里呆了这么久,我一定会忽略一些东西。如果你看到我明显遗漏的东西,请随时纠正我。 这是系统设置:

  • Ubuntu 14.04 x64(和 Fedora 20)
  • Gnome 3.x(所有版本都受影响)
  • 适用于 Radeon R9 的 AMD Catalyst 13 驱动程序
  • gdm

编辑#1

nautilus 也受此影响,我刚刚确认。

当事情发生时,我真的需要这些窗口出现。特别是因为我是让事情发生的人,而不是一些随机过程。

很高兴会根据需要发布任何设置或配置文件。

编辑#2

我已将负责的操作范围缩小到Alt+ Tab(即使重新分配给新的键映射并且将具有类似操作的另一个映射重新分配给它)。

起初我认为它可能是Alternate Tab扩展,但禁用它什么也没做。

复制:打开一个文件窗口,Alt+Tab到另一个窗口,然后打开另一个文件管理器实例。它不必在选项卡中;它也会出现在一个新窗口中。

don*_*sti 4

对于某些应用程序(例如),可以通过将其各自文件(例如)中的键值从更改为来file-roller修复。StartupNotifytruefalse.desktop/usr/share/applications/file-roller.desktop

上述方法并不适用于所有应用程序(例如nautilus),因此解决问题的另一种方法是自定义 shell 扩展;只是为了给您一个想法,您可以轻松修复nautilus如下行为:编辑/usr/share/gnome-shell/js/ui/windowAttentionHandler.js并添加以下三行代码:

    if (app.get_id() == "nautilus.desktop")
        Main.activateWindow(window);
        return;
Run Code Online (Sandbox Code Playgroud)

在以下行之后:

    let app = this._tracker.get_window_app(window);
Run Code Online (Sandbox Code Playgroud)

所以你最终会得到这样的结果:

    let app = this._tracker.get_window_app(window);
    if (app.get_id() == "nautilus.desktop")
        Main.activateWindow(window);
        return;
    let source = new Source(app, window);
    Main.messageTray.add(source);
Run Code Online (Sandbox Code Playgroud)

但是,除非您只想针对某些特定应用程序,否则不值得编写自己的扩展。对于全局更改,看起来有一个扩展:

只显示窗口

覆盖“通知系统”(它在此处工作正常gnome 3.8)。
请记住,两个文件 (extension.jsmetadata.json) 必须放置在:
~/.local/share/gnome-shell/extensions/justshowthewindow@ryanlerch.org
通过调整工具激活扩展并重新启动 shell ( Alt+ F2then rthen Enter)。