Luncurkan aplikasi Chrome dari baris perintah

13

Saya tidak dapat menemukan cara meluncurkan aplikasi chrome dari bash?

Saya mencoba untuk mencapai ini dengan tukang pos .

Dari google-chrome -h, saya mencoba (sayangnya) yang itu:

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

Hasilnya adalah jendela kosong baru dibuka.

Tebakan pertama saya adalah aplikasi disimpan di mesin saya dan saya perlu membuka file tertentu (indeks aplikasi) untuk meluncurkannya.

Apakah mungkin untuk mencapai ini?

Dan jika memungkinkan, gimana caranya?

chalasr
sumber
1
Mungkin jika Anda membuka .desktopfile terkait ~/.local/share/applications(seret ke jendela gedit yang terbuka), Anda dapat melihat perintah yang benar di dalam Exec=baris.
Jacob Vlijm
Sempurna, terima kasih @JacobVlijm. Perintah ini menggunakan --app-id=[id]Saya menganggap id ini permanen jadi saya akan membuat alias, tetapi apakah Anda tahu cara untuk meluncurkannya dengan namanya?
chalasr
@JacobVlijm Mengapa pertanyaannya bukan duplikat dari perintah apa yang harus saya ketik untuk menjalankan Chrome dari terminal?
Daisy
@daisy karena itu bukan pertanyaan yang sama. Ini tentang cara meluncurkan aplikasi chrome, bukan chrome itu sendiri.
chalasr

Jawaban:

17

Dijawab berkat @JacobVlijm.

Untuk menjalankan aplikasi chrome dari baris perintah, gunakan yang berikut ini:

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

Dengan asumsi jalan google-chromeadalah /opt/google/chrome/google-chrome.

Untuk mengambil id aplikasi, cari nama aplikasi yang pertama kali muncul di /home/[user]/.local/share/applications.

chalasr
sumber
1
Sempurna, tidak punya waktu untuk mengirim jawaban, tetapi masih ingin membantu :)
Jacob Vlijm
Anda bahkan bisa mendapatkan id aplikasi dari URL Toko Chrome untuk aplikasi tertentu. Tentu saja ini hanya berfungsi jika Anda memiliki akses ke internet :)
BarathVutukuri
1
Jika Anda memiliki beberapa profil Chrome, Anda perlu menambahkan direktori profil ke baris perintah juga:google-chrome --profile-directory=Default --app-id=[app-id]
Vidar S. Ramdal
0

Sayangnya, tidak ada cara yang disediakan untuk memanggil aplikasi di baris perintah dengan namanya. Menyediakan fitur ini berarti penguraian ekstra yang tidak dapat diandalkan untuk aplikasi yang diinstal dan beberapa akan menganggapnya sebagai kelemahan keamanan. Anda dapat melakukan penguraian sendiri, dengan skrip yang mencari dan mengekstrak nama setiap ekstensi / aplikasi hingga menemukan nama yang Anda cari:

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

Beberapa aplikasi menetapkan nama mereka lebih dalam di skrip - Saya tidak tahu mengapa! Anda mungkin harus menulis ulang atau menambahkan skrip seperti ini untuk mencari file ".desktop" ~/.local/share/applicationsuntuk '^ NAME = ...' yang setara dengan di atas, dan kemudian dapatkan perintah eksekusi di sana.

Saya belum menguji skrip ini - saya hanya menulisnya dengan cepat untuk menjawab pertanyaan Anda. Saya berharap bahwa sebagai contoh itu bekerja untuk Anda, tetapi jika idenya tidak tepat, kita bisa sedikit mengubah. Zsh sederhana, sintaks lurus-maju dibandingkan dengan beberapa shell yang kompatibel dengan sh lainnya. Saya telah mencoba untuk mengabaikan semua fitur yang memerlukan versi atau modul baru kecuali untuk PCRE. PCRE jauh lebih mudah digunakan untuk pencocokan pola persis yang sering saya butuhkan sehingga saya mengabaikan Regex reguler hampir sepanjang waktu. Skrip Perl yang lebih panjang dapat berfungsi, juga sebagian besar sintaks ini akan berjalan tanpa dimodifikasi di /bin/bash. foreach ... end, $match[1]array gaya,, setopt rematchpcresystax yang tepat dari Bash Regex, dan emulatemerupakan pengecualian utama.

Micah W
sumber
0
  1. Buka folder tempat aplikasi disimpan di terminal Anda.
  2. Lari chmod +x *.desktop
  3. Kembali ke folder grafis tempat aplikasi Anda berada
  4. Sekarang mereka harus memiliki ikon dan mereka memperbaiki nama
  5. Klik kanan aplikasi yang ingin Anda luncurkan
  6. Klik properties
  7. Di Commandbaris yang terdaftar sekitar setengah jalan adalah perintah yang digunakan untuk membuka aplikasi itu.
Amolith
sumber