Programy obsługi protokołu URL w podstawowym Ubuntu Desktop

16

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.barotwiera się elinks(moja www-browseralternatywa).
  • Uruchomienie gnome-open apt://foo.barotwiera Centrum oprogramowania.
  • Po otwarciu gconf-editorwidzę klucz, /desktop/gnome/url-handlers/aptktórego wartość jest apturl "%s"włączona. Ta konfiguracja wydaje się być ignorowana, co jest uzasadnione, ponieważ GConf jest uważany za przestarzały.
  • Po otwarciu dconf-editornie 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ą *.desktoppliki i ich typ MIME; np MimeType=application/<the-protocol>;.

Znalazłem /usr/share/applications/ubuntu-software-center.desktopz 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.barzamiast tego otwiera Centrum oprogramowania apturl.

Więc zainstalowałem to apturl.desktopw ~/.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-databasei nawet po ponownym uruchomieniu komputera, zarówno xdg-openi gnome-opencią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-handlertyp MIME i nie są one obsługiwane w zwykły sposób.

Plik typu desktop nie odpowiada na pytanie.

Hibou57
źródło
1
Może to pomóc: unix.stackexchange.com/a/100736
Todd Owen

Odpowiedzi:

9

Otwórz ~/.local/share/applications/mimeapps.listi dodaj wiersz, taki jak:

x-scheme-handler/apt=apturl.desktop
anioł
źródło
Tak, mogę to wymyślić dla HTTP, MAILTO i kilku innych.
Hibou57
Nie ma takiego folderu. Przeprowadziłem wyszukiwanie z katalogu głównego i nie znalazłem go.
Vlas Bashynskyi
@VlasBashynskyi, lokalizacja mimeapps.listmoże się różnić. Sugerowałbym, aby rozpocząć wyszukiwanie nazwy pliku.
Hibou57,
4

xdg-mime

Może bardziej elegancki (w tym przykładzie używam „apt” , zmień go dla dowolnego innego schematu):

  1. Sprawdź zarejestrowane typy MIME w /usr/share/applications/defaults.list.
  2. Dodaj apt.desktopplik ( tutaj kilka przykładów ) do ~/.local/share/applications/(całego użytkownika) lub /usr/share/applications/(całego systemu).
  3. Zbuduj bazę danych pamięci podręcznej typów MIME obsługiwanych przez pliki pulpitu: update-desktop-database
  4. Zarejestruj protokół za pomocą

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

    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 systemie sudo xdg-mime install --mode system <xml file>.

Przetestuj za pomocą xdg-open "apt://foo.bar".

Zobacz także Dodawanie typu MIME .

Pablo Bianchi
źródło