Можно ли запустить chromium с помощью chrome: // url?

Я хотел бы создать запускающее средство запуска:

chromium-browser chrome://inspect

Однако, это просто открывает хром, как будто вообще не был указан URL.

Можно ли даже запустить Chromium, открывая chrome:// URL?

3
задан 24 January 2015 в 16:46

1 ответ

В то время как "нормальный" URL действительно работает как ожидалось, кажется невозможным сначала использовать chrome:// URL от команды, и нет ничего в man chromium-browser страница справочника на этом.

Однако очень хорошо возможно работать вокруг этого, с помощью xdotool.

Как это работает

  • установка 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 окно появляется в appr. 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
3
ответ дан 24 January 2015 в 16:46

Другие вопросы по тегам:

Похожие вопросы: