Komut satırından bir Chrome uygulaması başlatın


14

Bir bash'tan bir krom uygulamasını nasıl başlatacağımı bulamıyorum?

Bunu Postacı ile başarmaya çalışıyorum .

Kimden google-chrome -hdenedim (maalesef):

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

Sonuç olarak yeni bir boş pencere açılır.

İlk tahminim, uygulama makinemde saklanıyor ve başlatmak için belirli bir dosyayı (uygulama dizini) açmam gerekiyor.

Bunu başarmak mümkün mü?

Ve eğer mümkünse, nasıl yapılır?


1
Muhtemelen karşılık gelen .desktopdosyayı ~/.local/share/applications(açılmış bir gedit penceresinin üzerine sürükleyin) açarsanız, Exec=satırda doğru komutu görebilirsiniz .
Jacob Vlijm

Mükemmel, teşekkürler @JacobVlijm. Komutu kullan, --app-id=[id]bu kimliğin kalıcı olduğunu varsayıyorum, bu yüzden bir takma ad oluşturacağım, ancak adıyla başlatmanın bir yolunu biliyor musunuz?
chalasr


@daisy çünkü bu aynı soru değil. Bu, kromun kendisinin değil, bir krom uygulamasının nasıl başlatılacağıyla ilgilidir.
chalasr

Yanıtlar:


18

@JacobVlijm sayesinde cevap verdi.

Bir chrome uygulamasını komut satırından çalıştırmak için aşağıdakileri kullanın:

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

Yolunu varsayarsak google-chromeDİR /opt/google/chrome/google-chrome.

Uygulama kimliğini almak için, uygulama adının ilk örneğini içinde arayın /home/[user]/.local/share/applications.


1
Mükemmel, bir cevap göndermek için zaman yoktu, ama yine de yardım etmek istedim :)
Jacob Vlijm

Uygulama kimliğini, söz konusu uygulamanın Chrome Mağazası URL'sinden bile alabilirsiniz. Tabii ki bu sadece internet erişimi varsa çalışır :)
BarathVutukuri

1
Birden fazla Chrome profiliniz varsa, profil dizinini de komut satırına eklemeniz gerekir:google-chrome --profile-directory=Default --app-id=[app-id]
Vidar S. Ramdal

0

Ne yazık ki, bir uygulamayı komut satırında adıyla çağırmanın bir yolu yoktur. Bu özelliğin sağlanması, yüklü uygulamalar için güvenilir olmayan ekstra ayrıştırma anlamına gelir ve bazıları bunun bir güvenlik açığı olduğunu düşünür. Ancak ayrıştırmayı, aradığınız adı bulana kadar her uzantının / uygulamanın adını arayan ve ayıklayan bir komut dosyasıyla kendiniz yapabilirsiniz:

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

Bazı uygulamalar adlarını komut dosyalarında daha derinlere koyuyor - nedenini bilmiyorum! ~/.local/share/applicationsYukarıdakine eşdeğer "^ NAME = ..." için ".desktop" dosyalarını aramak için yeniden böyle bir komut dosyasını yeniden yazmanız veya eklemeniz gerekebilir ve ardından yürütme komutunu oraya getirin.

Bu senaryoyu test etmedim - sadece sorunuzu cevaplamak için anında yazdım. Umarım örnek olarak sizin için çalışır, ancak fikir tam olarak doğru değilse, biraz değiştirebiliriz. Zsh, diğer bazı sh uyumlu kabuklara kıyasla basit, düz ileri sözdizimidir. PCRE dışında yeni sürümler veya modüller gerektiren özellikler bırakmaya çalıştım. PCRE'nin tam desen eşleşmesi için kullanımı çok daha kolaydır, çoğu zaman düzenli Regex'i ihmal etmem gerekir. Daha uzun bir Perl betiği çalışabilir, ayrıca bu sözdiziminin çoğu değiştirilmemiş olarak çalışacaktır /bin/bash. foreach ... end, $match[1]stil dizileri, setopt rematchpcreBash Regex'in tam sistaksı emulateve ana istisnalardır.


0
  1. Uygulamaların terminalinizde depolandığı klasörü açın.
  2. Çalıştırmak chmod +x *.desktop
  3. Uygulamalarınızın bulunduğu grafik klasörüne geri dönün
  4. Şimdi simgeleri olmalı ve isimleri düzeltiyorlar
  5. Başlatmak istediğiniz uygulamayı sağ tıklayın
  6. Tıklayın properties
  7. Gelen Commandyarıya kadar yaklaşık listelenen hattı söz konusu uygulamayı açmak için kullanılan komuttur.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.