コマンドラインからChromeアプリを起動する


13

bashからchromeアプリを起動する方法が見つかりませんか?

私はこれをPostmanで達成しようとしています。

からgoogle-chrome -h、(残念ながら)それらを試しました:

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

その結果、新しい空白のウィンドウが開きます。

私の最初の推測は、アプリがマシンに保存されているため、特定のファイル(アプリインデックス)を開いて起動する必要があることです。

これを達成することは可能ですか?

そして、それが可能であれば、どうすればいいですか?


1
おそらく、対応する.desktopファイルを~/.local/share/applications(開いているgeditウィンドウにドラッグする)で開くと、そのExec=行に正しいコマンドが表示されます。
ジェイコブVlijm

完璧です、ありがとう@JacobVlijm。コマンドは、--app-id=[id]このIDが永続的であると想定しているため、エイリアスを作成しますが、名前で起動する方法を知っていますか?
chalasr


@daisyは同じ質問ではないからです。これは、Chrome自体ではなく、Chromeアプリケーションを起動する方法に関するものです。
-chalasr

回答:


17

@JacobVlijmに感謝します。

コマンドラインからChromeアプリを実行するには、次を使用します。

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

パスと仮定google-chromeです/opt/google/chrome/google-chrome

アプリIDを取得するには、でアプリケーション名が最初に現れる場所を検索し/home/[user]/.local/share/applicationsます。


1
完璧で、答えを投稿する時間はありませんでしたが、まだ手伝いたいと思っていました:)
ジェイコブヴィリム

特定のアプリケーションのChromeストアURLからアプリIDを取得することもできます。もちろん、これはインターネットにアクセスできる場合にのみ機能します:)
BarathVutukuri

1
あなたが複数のChromeプロフィールを持っている場合は、あなたも、コマンドラインにプロファイルディレクトリを追加する必要がありますgoogle-chrome --profile-directory=Default --app-id=[app-id]
Vidar S. Ramdal

0

残念ながら、コマンドラインで名前でアプリを呼び出す方法はありません。この機能を提供することは、インストールされたアプリの信頼性の低い余分な解析を意味し、一部はセキュリティの欠陥と見なします。ただし、検索する名前が見つかるまで各拡張機能/アプリの名前を検索および抽出するスクリプトを使用して、自分で解析を行うことができます。

/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."

一部のアプリは、スクリプト内でより深い名前を設定しています-理由はわかりません!~/.local/share/applications上記に相当する「^ NAME = ...」の「.desktop」ファイルを検索するには、このようなスクリプトを書き直したり、スクリプトに追加してから、そこで実行コマンドを取得する必要があります。

私はこのスクリプトをテストしていません-あなたの質問に答えるためにその場でそれを書いたところです。例としてそれがあなたのために働くことを願っていますが、アイデアが正しくない場合は、少し調整することができます。Zshは、他の一部のsh互換シェルと比較して、単純で単純な構文です。PCRE以外の新しいバージョンまたはモジュールを必要とする機能はすべて除外しようとしました。PCREは、私がよく必要とする正確なパターンマッチングに非常に使いやすいため、通常の正規表現をほとんど無視しています。より長いPerlスクリプトでも動作し/bin/bashます。また、この構文のほとんどはで変更されずに実行されます。foreach ... end$match[1]スタイル配列setopt rematchpcre、、Bash Regexの正確なsystax、およびemulate主要な例外です。


0
  1. 端末でアプリが保存されているフォルダーを開きます。
  2. 走る chmod +x *.desktop
  3. アプリが存在するグラフィカルフォルダーに戻ります
  4. これでアイコンが表示され、名前が修正されました
  5. 起動するアプリを右クリックします
  6. クリック properties
  7. Command半分ほど下にリストされている行には、そのアプリを開くために使用されるコマンドがあります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.