Był sposób na zarejestrowanie procedur obsługi protokołu URL w Gconf, który jest już przestarzały i wydaje się, że nie ma sposobu, aby zrobić to samo z DConf (lub Gsettings, jego zalecanym opakowaniem).
Jak poprawnie zarejestrować programy obsługi protokołu URL od czasu DConf?
Dodatkowo coś wydaje mi się dziwne (bo tego nie rozumiem) na moim Ubuntu 12.04
Polecenie apt://
powinno obsługiwać protokół apturl
. Dzieje się tak w mojej przeglądarce Opera, ale tylko dlatego, że dodałem to konkretne powiązanie za pomocą narzędzia konfiguracji przeglądarki. W przeciwnym razie w pozostałej części środowiska:
- Bieganie
xdg-open apt://foo.bar
otwiera sięelinks
(mojawww-browser
alternatywa). - Uruchomienie
gnome-open apt://foo.bar
otwiera Centrum oprogramowania. - Po otwarciu
gconf-editor
widzę klucz,/desktop/gnome/url-handlers/apt
którego wartość jestapturl "%s"
włączona. Ta konfiguracja wydaje się być ignorowana, co jest uzasadnione, ponieważ GConf jest uważany za przestarzały. - Po otwarciu
dconf-editor
nie widzę nic związanego z programami obsługi adresów URL lub protokołami/desktop/gnome
Wygląda mi trochę niechlujnie (po prostu droczę się z tym sformułowaniem, nic złego)
Co jest pod spodem
Uwaga dodatkowa: szukam czegoś, co najlepiej działa, nawet gdy pełne środowisko pulpitu nie jest załadowane, na przykład podczas uruchamiania sesji i3wm z załadowanym tylko gsettings-daemon
(i innymi rzeczami niezwiązanymi z tym przypadkiem).
Aktualizacja
Innym sposobem „zarejestrowania” procedury obsługi protokołu są *.desktop
pliki i ich typ MIME; np MimeType=application/<the-protocol>;
.
Znalazłem /usr/share/applications/ubuntu-software-center.desktop
z tą zawartością:
[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;
To wyjaśnia, dlaczego gnome-open apt://foo.bar
zamiast tego otwiera Centrum oprogramowania apturl
.
Więc zainstalowałem to apturl.desktop
w ~/.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;
Po update-desktop-database
i nawet po ponownym uruchomieniu komputera, zarówno xdg-open
i gnome-open
ciągle to samo i zignorować ten plik na pulpicie użytkownika, który jak zwykle z użytkowników komputerów stacjonarnych plików, należy zastąpić jeden w /usr/share/applications/
.
Może jest coś specjalnego w plikach pulpitu określających x-scheme-handler
typ MIME i nie są one obsługiwane w zwykły sposób.
Plik typu desktop nie odpowiada na pytanie.
Odpowiedzi:
Otwórz
~/.local/share/applications/mimeapps.list
i dodaj wiersz, taki jak:źródło
mimeapps.list
może się różnić. Sugerowałbym, aby rozpocząć wyszukiwanie nazwy pliku.xdg-mime
Może bardziej elegancki (w tym przykładzie używam „apt” , zmień go dla dowolnego innego schematu):
/usr/share/applications/defaults.list
.apt.desktop
plik ( tutaj kilka przykładów ) do~/.local/share/applications/
(całego użytkownika) lub/usr/share/applications/
(całego systemu).update-desktop-database
Zarejestruj protokół za pomocą
Spowoduje to dodanie nowego typu MIME do schematu
~/.local/share/applications/mimeapps.list
. Możesz zarejestrować nowy typ MIME dla wszystkich użytkowników w systemiesudo xdg-mime install --mode system <xml file>
.Przetestuj za pomocą
xdg-open "apt://foo.bar"
.Zobacz także Dodawanie typu MIME .
źródło