仅启动一个 Chromium 实例

仅启动一个 Chromium 实例

我在 Ubuntu 20.04 上从快照存储运行 Chromium,使用 Openbox 和最小安装。如何通过每次额外单击面板(lxpanel)或chromium从 Xterm 终端启动命令来仅运行一个 Chromium 浏览器实例?我的目的是,对于我为他进行此安装的(老)用户,如果他不小心点击面板中的 Chromium 图标,则不会生成新的 Chromium 实例。chromium --help没有显示我搜索的选项。目前,当我在类似情况下尝试时,任何chromium命令的启动都会启动一个具有相同配置文件的新 chromium 窗口。理想情况下,我想得到一些关于如何聚焦已经运行的 Chromium 窗口的建议。

答案1

Chromium 可能存在一个标志,允许它在再次启动时将焦点放在现有窗口上,但我找不到。默认情况下,它会创建一个新的空白行。

获得所需行为的一个简单方法是使用(非常)小的脚本,实际上是一行代码。该脚本使用该工具wmctrl检查 Chromium 窗口是否存在。如果存在,则窗口将处于焦点状态,如果不存在,则将运行可执行文件。这种方法的好处是可以适用于任何应用程序。

  • wmctrl -lx启动chromium,然后使用终端中的 命令确定chromium窗口的窗口类。
    0x04200003  0 chromium-browser.Chromium-browser  vanadium New Tab - Chromium
    
  • 您可以使用以下命令启动或切换到 Chromium:
    sh -c "wmctrl -x -a Chromium.browser || chromium-browser"
    
  • 在用户目录.desktop中创建 Chromium 启动器的副本。编辑副本,并将上面的命令替换为: ~/.local/share/applicationsExec=
    Exec=sh -c "wmctrl -x -a Chromium.browser || chromium-browser"
    

第一个命令,在 之前||,激活 Chromium 浏览器的现有窗口。只有当该命令失败时(||,表示“或”),才会运行第二个命令,即运行应用程序所需的命令。同样,Snap 版本也可以使用相同的命令启动,否则您可以在原始.desktop文件中看到正确的命令行是什么。

评论

  • 您可能需要wmctrl先安装,因为它不是默认安装的。该包具有相同的名称。

  • Snap 将.desktop启动器存储在特定位置,即 中列出的目录之一下的“应用程序”目录中printenv XDG_DATA_DIRS。您将轻松识别 snap 的路径。查看该目录下的“应用程序”目录以找到.desktopChromium 文件。然后您应该按照上述说明复制和编辑该文件。

相关内容