是否可以通过 chrome:// url 启动 chromium?

是否可以通过 chrome:// url 启动 chromium?

我想创建一个启动器来启动:

chromium-browser chrome://inspect

但是,这只会打开 Chromium,就好像根本没有指定 url 一样。

甚至可以启动 Chromium 打开chrome://url 吗?

答案1

尽管“正常”的 URL 确实能按预期工作,但乍一看似乎不可能chrome://通过命令使用这些 URL,而且手册页中也没有任何相关信息man chromium-browser

然而,解决这个问题是完全有可能的,借助工具

怎么运行的

  • 安装xdotool

    sudo apt-get install xdotool
    
  • .desktop在您的文件中使用以下命令:

    /bin/bash -c "chromium-browser&sleep 2&&xdotool type 'chrome://inspect'&&xdotool key Return"
    

它将打开chromium browserxdotool输入chrome://inspecturl 并(模拟)按回车键。

有效地这将完全满足您的要求。
不用说,您可以chrome://inspect用任何其他chrome://命令替换。

笔记

在命令中,包含 2 秒的短暂休息,以确保在xdotool开始输入之前浏览器已加载。在我的系统(不是最新的)上,可以将其更改为sleep 1并且仍能完美运行。您可以尝试一下。


编辑

选择

无论脏不脏,解决方案都应该总是有效。我时不时地尝试上述解决方案,发现有时窗口出现的时间太长chromium-browser。特别是当计算机负载过重时,xdotool 可能会开始“盲目”输入。

下面的解决方案是“经得起时间考验的”,并且应该在任何情况下都有效;它确保xdotool 仅有的开始输入时新的 chromium-browser窗口在约 15 秒内出现。

如何使用

  • 将以下脚本复制到一个空文件中
  • 另存为run_chrcommand.py
  • 在您的文件中使用命令.desktop

    python3 /path/to/run_chrcommand.py
    

剧本

#!/usr/bin/env python3
import subprocess
import getpass
import time

user = getpass.getuser()
get = lambda x: subprocess.check_output(["/bin/bash", "-c", x]).decode("utf-8")
ws1 = get("wmctrl -lp"); t = 0
subprocess.call(["/bin/bash", "-c", "chromium-browser&"])
while t < 30:      
    ws2 = [w.split()[2] for w in get("wmctrl -lp").splitlines() if not w in ws1]
    procs = [[p for p in get("ps -u "+user).splitlines() \
              if "chromium-bro" in p and w in p] for w in ws2]
    if len(procs) > 0:
        command = "xdotool type 'chrome://inspect'&&xdotool key Return"
        subprocess.call(["/bin/bash", "-c", command])
        break
    time.sleep(0.5)
    t = t+1

相关内容