Penangan protokol URL di Desktop Ubuntu dasar

17

Ada cara untuk mendaftarkan penangan protokol URL dengan Gconf, yang sekarang sudah usang dan sepertinya tidak ada cara untuk melakukan hal yang sama dengan DConf (atau Gsettings, pembungkus yang disarankan).

Bagaimana cara mendaftarkan penangan protokol URL dengan benar sejak DConf?

Selain itu, sesuatu terlihat aneh bagi saya (karena saya tidak mengerti), pada Ubuntu 12.04 saya

Protokol apt://harus ditangani oleh apturlperintah. Begitu juga dengan browser Opera saya, tetapi hanya karena saya menambahkan asosiasi khusus ini menggunakan fasilitas konfigurasi browser. Jika tidak, di lingkungan lainnya:

  • Menjalankan xdg-open apt://foo.barterbuka elinks( www-browseralternatif saya ).
  • Menjalankan gnome-open apt://foo.barmembuka Pusat Perangkat Lunak.
  • Membuka gconf-editor, saya melihat kunci /desktop/gnome/url-handlers/aptyang nilainya apturl "%s"dan diaktifkan. Konfigurasi ini tampaknya diabaikan, yang cukup diharapkan, karena GConf dianggap usang.
  • Membuka dconf-editor, saya tidak dapat melihat apa pun yang terkait dengan penangan URL atau protokol di/desktop/gnome

Itu terlihat agak berantakan di mataku (hanya menggoda dengan kata-kata ini, tidak ada yang buruk)

Apa yang ada di bawahnya?

Catatan: Saya mencari sesuatu yang lebih disukai berfungsi bahkan ketika lingkungan desktop penuh tidak dimuat, seperti ketika menjalankan sesi i3wm dengan hanya gsettings-daemon(dan hal-hal lain yang tidak terkait dengan kasus ini) dimuat.

Memperbarui

Cara lain untuk "mendaftarkan" penangan protokol adalah dengan *.desktopfile dan MIME-Type mereka; mis MimeType=application/<the-protocol>;.

Saya menemukan /usr/share/applications/ubuntu-software-center.desktopdengan konten ini:

[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;

Yang ini menjelaskan mengapa gnome-open apt://foo.barmembuka Pusat Perangkat Lunak apturl.

Jadi saya menginstal ini apturl.desktopdi ~/.local/share/applications:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;

Setelah update-desktop-databasedan bahkan setelah reboot, keduanya xdg-opendan gnome-openmasih melakukan hal yang sama dan mengabaikan file desktop pengguna ini, yang seperti biasa dengan file desktop pengguna, harus menimpa yang ada di /usr/share/applications/.

Mungkin ada sesuatu yang istimewa dengan file desktop yang menentukan x-scheme-handlertipe MIME dan mereka tidak ditangani dengan cara biasa.

Cara file-desktop tidak menjawab pertanyaan.

Hibou57
sumber
1
Ini dapat membantu: unix.stackexchange.com/a/100736
Todd Owen

Jawaban:

10

Buka ~/.local/share/applications/mimeapps.listdan tambahkan baris seperti:

x-scheme-handler/apt=apturl.desktop
malaikat
sumber
Ya, saya dapat memperkirakannya untuk HTTP, MAILTO dan beberapa lainnya.
Hibou57
Tidak ada folder seperti itu. Saya melakukan pencarian dari root, dan tidak menemukannya.
Vlas Bashynskyi
@VlasBashynskyi, lokasi mimeapps.listdapat bervariasi. Saya akan menyarankan untuk menjalankan pencarian untuk nama file.
Hibou57
4

xdg-mime

Mungkin lebih elegan (dalam contoh ini saya menggunakan "apt" , ubah untuk skema lain):

  1. Periksa tipe-MIME terdaftar di /usr/share/applications/defaults.list.
  2. Tambahkan apt.desktopfile (di sini beberapa contoh ) ke ~/.local/share/applications/(di seluruh pengguna) atau /usr/share/applications/(di seluruh sistem).
  3. Bangun basis data cache jenis MIME yang ditangani oleh file desktop: update-desktop-database
  4. Daftarkan protokol dengan

    xdg-mime default apt.desktop x-scheme-handler/apt`
    

    Ini akan menambahkan Tipe MIME baru untuk skema ~/.local/share/applications/mimeapps.list. Anda dapat mendaftarkan tipe mime baru untuk semua pengguna di sistem sudo xdg-mime install --mode system <xml file>.

Tes dengan xdg-open "apt://foo.bar".

Lihat juga Menambahkan Jenis MIME .

Pablo Bianchi
sumber