我想创建一个启动器来启动:
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 browser
,xdotool
输入chrome://inspect
url 并(模拟)按回车键。
有效地这将完全满足您的要求。
不用说,您可以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