É possível iniciar o cromo com um chrome: // url?

3

Gostaria de criar um lançamento de iniciador:

chromium-browser chrome://inspect

No entanto, isso simplesmente abre o cromo como se não fosse especificado nenhum URL.

É mesmo para iniciar o Chromium abrindo uma chrome:// url?

    
por Remco Haszing 24.01.2015 / 14:46

1 resposta

3

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
    
por Jacob Vlijm 24.01.2015 / 15:16

Tags