从命令行启动 Chrome 应用

从命令行启动 Chrome 应用

我找不到如何从 bash 启动 chrome 应用程序?

我正在尝试实现这一点邮差

google-chrome -h,我(不幸)尝试了那些:

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

结果是打开了一个新的空白窗口。

我的第一个猜测是该应用程序存储在我的计算机上,我需要打开一个特定的文件(应用程序索引)来启动它。

有可能实现这个吗?

如果可能的话,该怎么做?

答案1

感谢@JacobVlijm 的回答。

要从命令行运行 chrome 应用程序,请使用以下命令:

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

假设的路径google-chrome/opt/google/chrome/google-chrome

要检索应用程序 ID,请在 中搜索第一次出现的应用程序名称/home/$USER/.local/share/applications

答案2

在我执行完以下命令后,它对我有用,并且打开了 postman

google-chrome --app-id=fhbjgbiflinjbdggehcddcbncdddomop

假设默认配置

图案:google-chrome --app-id=<extensionID>

获取扩展 ID:

  • chrome://extensions/在 Chrome 浏览器中打开
  • 点击 Postman 扩展的“详细信息”按钮
  • 在地址栏上查看地址,其中 url 的格式为chrome://extensions/?id=<extensionID> 从 url 复制扩展名 ID 并在命令中使用它

你也可以使用任何谷歌浏览器扩展程序

答案3

不幸的是,没有提供在命令行中通过名称调用应用程序的方法。提供此功能意味着对已安装的应用程序进行不可靠的额外解析,有些人会认为这是一个安全漏洞。但是,您可以使用脚本自己进行解析,该脚本会搜索并提取每个扩展/应用程序的名称,直到找到您要搜索的名称:

/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以在“.desktop”文件中搜索与上述相同的“^NAME=...”,然后在那里获取执行命令。

我没有测试过这个脚本 - 我只是临时写了它来回答你的问题。我希望作为一个例子它对你有用,但如果这个想法不太正确,我们可以稍微调整一下。与其他一些与 sh 兼容的 shell 相比,Zsh 的语法简单、直接。我试图省略任何需要新版本或模块的功能,除了 PCRE。PCRE 对于我经常需要的精确模式匹配来说更容易使用,以至于我大多数时候都忽略了常规正则表达式。更长的 Perl 脚本可以工作,而且这种语法的大部分将在/bin/bash. foreach ... end$match[1]样式数组、setopt rematchpcreBash Regex 的精确系统和 中不加修改地运行,这emulate是主要的例外。

答案4

在 BASH 术语中使用它来启动你的 gmail 等:

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

我的邮件监视程序设置中也有这个!

相关内容