Iniciar um aplicativo Chrome na linha de comando


13

Não consigo encontrar como iniciar um aplicativo Chrome a partir de um bash?

Estou tentando conseguir isso com o Postman .

De google-chrome -h, eu tentei (infelizmente) aqueles:

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

O resultado é que uma nova janela em branco é aberta.

Meu primeiro palpite é que o aplicativo está armazenado na minha máquina e preciso abrir um arquivo específico (o índice do aplicativo) para iniciá-lo.

É possível conseguir isso?

E se for possível, como fazer?


1
Provavelmente, se você abrir o .desktoparquivo correspondente ~/.local/share/applications(arraste-o sobre uma janela aberta do gedit), poderá ver o comando correto na Exec=linha.
Jacob Vlijm 03/03

Perfeito, obrigado @JacobVlijm. O comando use the --app-id=[id]Presumo que esse id seja permanente, por isso vou criar um alias, mas você conhece uma maneira de iniciá-lo por seu nome?
chalasr

@JacobVlijm Por que a pergunta não é duplicada de Que comando devo digitar para executar o Chrome a partir do terminal?
daisy

@ Daisy, porque essa não é a mesma pergunta. É sobre como iniciar um aplicativo Chrome, não o próprio Chrome.
chalasr

Respostas:


17

Respondida graças a @JacobVlijm.

Para executar um aplicativo chrome na linha de comando, use o seguinte:

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

Assumindo o caminho de google-chromeis /opt/google/chrome/google-chrome.

Para recuperar o ID do aplicativo, pesquise a primeira ocorrência do nome do aplicativo em /home/[user]/.local/share/applications.


1
Perfeito, não teve tempo para deixar uma resposta, mas ainda queria ajudar :)
Jacob Vlijm

Você pode até obter o ID do aplicativo no URL da Chrome Store para o aplicativo específico. Claro que isto só funciona se você tiver acesso à internet :)
BarathVutukuri

1
Se você possui vários perfis do Chrome, também precisa adicionar o diretório de perfil à linha de comando:google-chrome --profile-directory=Default --app-id=[app-id]
Vidar S. Ramdal 30/07/19

0

Infelizmente, não há como fornecer um aplicativo na linha de comando pelo nome. O fornecimento desse recurso significaria uma análise extra não confiável para aplicativos instalados e alguns o considerariam uma falha de segurança. No entanto, você pode fazer a análise com um script que pesquisa e extrai o nome de cada extensão / aplicativo até encontrar o nome que você procura:

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

Alguns aplicativos definem seus nomes mais profundamente nos scripts - não sei por que! Você pode precisar reescrever ou adicionar a um script como este para procurar nos arquivos ".desktop" os nomes ~/.local/share/applications'^ NAME = ...' equivalentes aos anteriores e, em seguida, obter o comando de execução.

Não testei esse script - acabei de escrevê-lo rapidamente para responder à sua pergunta. Espero que, como exemplo, funcione para você, mas se a idéia não estiver certa, poderíamos ajustá-la um pouco. O Zsh é uma sintaxe simples e direta, em comparação com outros shells compatíveis com sh. Tentei deixar de fora quaisquer recursos que exijam novas versões ou módulos, exceto o PCRE. O PCRE é muito mais fácil de usar para a correspondência exata de padrões que muitas vezes preciso que negligencie Regex regular na maioria das vezes. Um script Perl mais longo pode funcionar, e a maior parte dessa sintaxe será executada sem modificação /bin/bash. foreach ... end, $match[1]matrizes de estilo setopt rematchpcre,, a sintaxe exata do Bash Regex e emulatesão as principais exceções.


0
  1. Abra a pasta na qual os aplicativos estão armazenados no seu terminal.
  2. Corre chmod +x *.desktop
  3. Volte para a pasta gráfica em que seus aplicativos residem
  4. Agora eles devem ter ícones e corrigir nomes
  5. Clique com o botão direito do mouse no aplicativo que você deseja iniciar
  6. Clique properties
  7. Na Commandlinha listada na metade do caminho, está o comando usado para abrir o aplicativo.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.