Inicie una aplicación de Chrome desde la línea de comandos

13

¿No puedo encontrar cómo iniciar una aplicación de Chrome desde un bash?

Estoy tratando de lograr esto con Postman .

Desde google-chrome -h, probé (desafortunadamente) esos:

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

El resultado es que se abre una nueva ventana en blanco.

Mi primera suposición es que la aplicación está almacenada en mi máquina y necesito abrir un archivo específico (el índice de la aplicación) para iniciarla.

Es posible lograr esto ?

Y si es posible, ¿cómo hacerlo?

chalasr
fuente
1
Probablemente, si abre el .desktoparchivo correspondiente ~/.local/share/applications(arrástrelo sobre una ventana de gedit abierta) puede ver el comando correcto en la Exec=línea.
Jacob Vlijm
Perfecto, gracias @JacobVlijm. El comando usa --app-id=[id]Supongo que esta identificación es permanente, así que crearé un alias, pero ¿conoces una forma de iniciarlo por su nombre?
chalasr
@JacobVlijm ¿Por qué la pregunta no es duplicada? ¿Qué comando debo escribir para ejecutar Chrome desde el terminal?
margarita
@daisy porque esa no es la misma pregunta. Se trata de cómo iniciar una aplicación de Chrome, no el propio Chrome.
chalasr

Respuestas:

17

Respondido gracias a @JacobVlijm.

Para ejecutar una aplicación de Chrome desde la línea de comandos, use lo siguiente:

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

Asumiendo el camino de google-chromees /opt/google/chrome/google-chrome.

Para recuperar la identificación de la aplicación, busque la primera aparición del nombre de la aplicación en /home/[user]/.local/share/applications.

chalasr
fuente
1
Perfecto, no tuve tiempo de publicar una respuesta, pero aún quería ayudar :)
Jacob Vlijm
Incluso puede obtener la identificación de la aplicación desde la URL de Chrome Store para la aplicación en particular. Por supuesto, esto solo funciona si tienes acceso a Internet :)
BarathVutukuri
1
Si tiene varios perfiles de Chrome, también debe agregar el directorio del perfil a la línea de comandos:google-chrome --profile-directory=Default --app-id=[app-id]
Vidar S. Ramdal
0

Desafortunadamente, no, no hay forma de llamar a una aplicación en la línea de comando por su nombre. Proporcionar esta función significaría un análisis adicional poco confiable para las aplicaciones instaladas y algunos lo considerarían una falla de seguridad. Sin embargo, puede analizarlo usted mismo con un script que busca y extrae el nombre de cada extensión / aplicación hasta que encuentre el nombre que busca:

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

Algunas aplicaciones establecen sus nombres más profundamente en los scripts. ¡No sé por qué! Puede que tenga que volver a escribir o agregar a un script como este para buscar en los archivos ".desktop" ~/.local/share/applicationssu '^ NAME = ...' equivalente al anterior, y luego obtener el comando de ejecución allí.

No he probado este script, solo lo escribí sobre la marcha para responder a su pregunta. Espero que, como ejemplo, funcione para usted, pero si la idea no es del todo correcta, podríamos modificarla un poco. Zsh es una sintaxis simple y directa en comparación con otros shells compatibles con sh. He tratado de omitir cualquier característica que requiera nuevas versiones o módulos, excepto PCRE. PCRE es mucho más fácil de usar para la coincidencia de patrones exactos que a menudo necesito que descuido Regex regular la mayor parte del tiempo. Un script Perl más largo podría funcionar, también la mayor parte de esta sintaxis se ejecutará sin modificaciones /bin/bash. foreach ... end, $match[1]matrices de estilo setopt rematchpcre, la sintaxis exacta de Bash Regex y emulateson las principales excepciones.

Micah W
fuente
0
  1. Abra la carpeta en la que se almacenan las aplicaciones en su terminal.
  2. correr chmod +x *.desktop
  3. Regrese a la carpeta gráfica en la que residen sus aplicaciones
  4. Ahora deberían tener iconos y corregir nombres
  5. Haga clic derecho en la aplicación que desea iniciar
  6. Hacer clic properties
  7. En la Commandlínea que aparece a mitad de camino se encuentra el comando utilizado para abrir esa aplicación.
Amolito
fuente