如何使终端 sushi 成为焦点文件?

如何使终端 sushi 成为焦点文件?

我打算使用 sushi 作为 Zotero(一个著名的开源研究助手)中的预览应用程序,它类似于在 shell 中运行“sushi FILENAME”命令。结果预览窗口没有焦点,被埋在 Zotero 主窗口下。为了找到可能的解决方法,我尝试执行以下操作:

  1. 在终端中执行“/usr/bin/sushi MyFileName.pdf”,预览窗口只有在我第一次运行该命令时才具有焦点,然后我关闭预览窗口;之后每次我执行相同的命令时,预览窗口始终位于终端窗口后面。

  2. 我认为这可能是由 gnome 引起的,所以我尝试使用 evince(ubuntu 默认的 PDF 阅读器)打开 PDF 文件,在终端中执行“/usr/bin/evince MyFileName.pdf”,每次都会在新窗口获得焦点。其他 PDF 阅读器应用程序(libreoffice 等)的结果相同

  3. 在 Nautilus 中打开文件时,预览窗口始终以该文件为焦点进行显示,因此在这种情况下 sushi 的性能非常完美。

  4. 在 sushi README 中,我发现 sushi 支持手动显示文件,因此我使用 dbus-send 来调用 org.gnome.NautilusPreviewer。命令如下:

    dbus-send --print-reply --dest=org.gnome.NautilusPreviewer /org/gnome/NautilusPreviewer org.gnome.NautilusPreviewer.ShowFile string:"file:///home/madhouse/Downloads/U1D400.pdf" int32:58720257 boolean:true
    

    我想通过设置父窗口ID(int32:58720257是父窗口ID)使预览窗口处于活动状态(焦点),但是第一次之后预览窗口始终位于终端窗口后面。这种情况与第一种情况相同。

  5. 我使用 Xterm 测试了命令“/usr/bin/sushi MyFileName.pdf”,很神奇的是,sushi 总是显示焦点在上的文件,Terminal 和 Xterm 有什么区别,我对 Xterm 不熟悉。

  6. 比较以上内容会发现,在终端中运行 sushi 时无法预览焦点所在的文件。这种行为的原因是什么?有什么可能的解决方法吗?

我的设备:Ubuntu 20.04 //gnome 版本:3.36.8

附言: 我已经提交了这个问题(关联),但开发人员认为这不可行,很快就关闭了这个问题。我认为这是不合理的。现在我的临时解决方案是安装 gnome 扩展(窃取我的焦点)以强制所有新窗口立即获得焦点。

相关内容