Запустите приложение Chrome из командной строки

Я не могу найти, как запустить приложение Chrome из Bash?

Я пытаюсь добиться этого с Почтальоном.

От google-chrome -hЯ попробовал (к сожалению) те из них:

$ google-chrome --app="Postman"
$ google-chrome --extension="postman"

В результате открывается новое пустое окно.

Мое первое предположение - приложение хранится на моем компьютере, и мне нужно открыть определенный файл (индекс приложения), чтобы запустить его.

Возможно ли этого добиться?

И если это возможно, как это сделать?

5 ответов

Решение

Ответил благодаря @JacobVlijm .

Чтобы запустить приложение chrome из командной строки, используйте следующее:

google-chrome --app-id=[app_id]

Предполагая путь google-chrome является /opt/google/chrome/google-chrome,

Чтобы получить идентификатор приложения, найдите первое вхождение имени приложения в /home/[user]/.local/share/applications,

После всего, что я выполнил следующую команду, у меня сработало...

google-chrome --app-id=fhbjgbiflinjbdggehcddcbncdddomop

Принять конфигурации по умолчанию

Шаблон: google-chrome --app-id=<extensionID>

Чтобы получить идентификатор расширения:

  • открытым chrome://extensions/ в вашем браузере Chrome
  • нажмите кнопку "Подробности" расширения Postman
  • просмотреть адрес в адресной строке, где URL в формате chrome://extensions/?id=<extensionID>Скопируйте extensionID из url-адреса и используйте его в команде

Таким же образом вы можете использовать любое расширение Google Chrome

К сожалению, нет никакого способа вызвать приложение в командной строке по его имени. Предоставление этой функции будет означать ненадежный дополнительный анализ для установленных приложений, и некоторые будут считать это недостатком безопасности. Однако вы можете выполнить синтаксический анализ самостоятельно, используя скрипт, который ищет и извлекает имя каждого расширения / приложения, пока не найдет искомое имя:

/usr/local/bin/chrome-app-by-name:

#!/bin/zsh
emulate -R zsh -o extendedglob -o nullglob
setopt rematchpcre ;# recommended, I'm so used to PCRE, I sometimes forget what doesn't work in Regex
Chrome_Profile=Default  ;# or "Profile 1" ...
cd ${XDG_CONFIG_HOME:-$HOME/.config}/google-chrome/${Chrome_Profile}/Extensions
foreach app in */*
   # We have just called the path to each version of each extension/app.
   # Next we enclose in braces - slightly unnecessary - to ensure that
   #  whatever version of Zsh, "manifest.json" is completely read and 
   #  closed before we use the variable.
   {
      App_Manifest="$(cat <$app/manifest.json)"
   }
   if [[ $App_Manifest =~ '^\s*"name"\s*:\s*"([a-zA-Z 0-9_.-]+)"' ]]
   then
      app_name="$match[1]" ;# capture the sub-expression match for "name"
      if [[ $app_name == $1 ]]
      then
         # For my system this is actually exec google-chrome-stable ...
         exec google-chrome --app-id="${app%%/*}" $argv[2,-1]
      fi
   fi
end
echo "App name not found.  Please use Exact, case-sensitive spelling."

Некоторые приложения устанавливают свои имена глубже в сценариях - я не знаю почему! Возможно, вам придется переписать или добавить скрипт, подобный этому, для поиска файлов ".desktop" в ~/.local/share/applications для их '^NAME=...', эквивалентного приведенному выше, и затем получите команду выполнения там.

Я не тестировал этот скрипт - я просто написал его на лету, чтобы ответить на ваш вопрос. Я надеюсь, что в качестве примера это сработает для вас, но если идея не совсем верна, мы могли бы немного ее подправить. Zsh- простой прямой синтаксис по сравнению с некоторыми другими sh-совместимыми оболочками. Я пытался исключить любые функции, которые требуют новых версий или модулей, кроме PCRE. PCRE намного проще в использовании для точного сопоставления с образцом, который мне часто нужен, поэтому большую часть времени я игнорирую регулярные регулярные выражения. Более длинный Perl-скрипт может работать, также большая часть этого синтаксиса будет работать без изменений в /bin/bash, foreach ... end, $match[1] массивы стилей, setopt rematchpcreточный систакс Bash Regex, и emulate являются основными исключениями.

В терминах BASH используйте это для запуска вашего Gmail ETC:

      google-chrome --app=https://mail.google.com/mail/u/0/#inbox 

у меня это тоже есть в настройках почтового наблюдателя!

  1. Откройте папку, в которой приложения хранятся в вашем терминале.
  2. Бежать chmod +x *.desktop
  3. Вернитесь в графическую папку, в которой находятся ваши приложения
  4. Теперь у них должны быть значки и они исправляют имена
  5. Щелкните правой кнопкой мыши приложение, которое вы хотите запустить
  6. Нажмите properties
  7. в Command строка, которая указана на полпути вниз, - это команда, используемая для открытия этого приложения.
Другие вопросы по тегам