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 apturl
perintah. 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.bar
terbukaelinks
(www-browser
alternatif saya ). - Menjalankan
gnome-open apt://foo.bar
membuka Pusat Perangkat Lunak. - Membuka
gconf-editor
, saya melihat kunci/desktop/gnome/url-handlers/apt
yang nilainyaapturl "%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 *.desktop
file dan MIME-Type mereka; mis MimeType=application/<the-protocol>;
.
Saya menemukan /usr/share/applications/ubuntu-software-center.desktop
dengan 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.bar
membuka Pusat Perangkat Lunak apturl
.
Jadi saya menginstal ini apturl.desktop
di ~/.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-database
dan bahkan setelah reboot, keduanya xdg-open
dan gnome-open
masih 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-handler
tipe MIME dan mereka tidak ditangani dengan cara biasa.
Cara file-desktop tidak menjawab pertanyaan.
Jawaban:
Buka
~/.local/share/applications/mimeapps.list
dan tambahkan baris seperti:sumber
mimeapps.list
dapat bervariasi. Saya akan menyarankan untuk menjalankan pencarian untuk nama file.xdg-mime
Mungkin lebih elegan (dalam contoh ini saya menggunakan "apt" , ubah untuk skema lain):
/usr/share/applications/defaults.list
.apt.desktop
file (di sini beberapa contoh ) ke~/.local/share/applications/
(di seluruh pengguna) atau/usr/share/applications/
(di seluruh sistem).update-desktop-database
Daftarkan protokol dengan
Ini akan menambahkan Tipe MIME baru untuk skema
~/.local/share/applications/mimeapps.list
. Anda dapat mendaftarkan tipe mime baru untuk semua pengguna di sistemsudo xdg-mime install --mode system <xml file>
.Tes dengan
xdg-open "apt://foo.bar"
.Lihat juga Menambahkan Jenis MIME .
sumber