Enquanto o url "normal" funciona como esperado, parece impossível inicialmente usar os chrome://
urls de um comando, e não há nada na página man chromium-browser
man sobre isso.
No entanto, é muito possível contornar isso, com a ajuda de xdotool .
Como funciona
-
instale
xdotool
sudo apt-get install xdotool
-
Use o seguinte comando no seu arquivo
.desktop
:/bin/bash -c "chromium-browser&sleep 2&&xdotool type 'chrome://inspect'&&xdotool key Return"
O que ele fará é abrir chromium browser
, xdotool
digitará o chrome://inspect
url e (simular) retornará.
Efetivamente isso fará exatamente o que você quer.
Não é necessário dizer que você pode substituir chrome://inspect
por qualquer outro comando chrome://
.
Nota
No comando, há uma pequena pausa incluída de 2 segundos, para garantir que o navegador seja carregado antes que xdotool
comece a digitar. No meu sistema (não o mais recente) pode ser alterado para sleep 1
e ainda funciona perfeitamente. Você pode experimentar um pouco com isso.
editar
Alternativa
Sujo ou não, uma solução deve sempre funcionar. Eu tentei a solução acima agora e, em seguida, descobri que, ocasionalmente, leva muito tempo para a janela chromium-browser
aparecer. Especialmente quando o computador está muito ocupado, há uma chance de o xdotool começar a digitar "cegamente".
A solução abaixo é "à prova de tempo" e deve funcionar sob todas as circunstâncias; Ele garante que xdotool
somente comece a digitar quando uma nova % janelachromium-browser
aparecer dentro de aprox. 15 segundos.
Como usar
- Copie o script abaixo em um arquivo vazio
- Salvar como
run_chrcommand.py
-
use como comando no seu arquivo
.desktop
:python3 /path/to/run_chrcommand.py
O script
#!/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