Il y avait un moyen d'enregistrer les gestionnaires de protocole URL avec Gconf, qui est maintenant obsolète et il semble qu'il n'y ait aucun moyen de faire de même avec DConf (ou Gsettings, son wrapper recommandé).
Comment enregistrer correctement un gestionnaire de protocole URL depuis DConf?
De plus, quelque chose me semble étrange (car je ne le comprends pas), sur mon Ubuntu 12.04
Le protocole apt://doit être géré par la apturlcommande. C'est le cas avec mon navigateur Opera, mais uniquement parce que j'ai ajouté cette association spécifique en utilisant la fonction de configuration du navigateur. Sinon, dans le reste de l'environnement:
- La course
xdg-open apt://foo.bars'ouvreelinks(monwww-browseralternative). - L'exécution
gnome-open apt://foo.barouvre le Centre logiciel. - En ouvrant
gconf-editor, je vois une clé/desktop/gnome/url-handlers/aptdont la valeur estapturl "%s"et elle est activée. Cette configuration semble être ignorée, ce qui est raisonnablement attendu, car GConf est considéré comme obsolète. - Ouverture
dconf-editor, je ne vois rien de lié aux gestionnaires d'URL ou aux protocoles dans/desktop/gnome
Ça a l'air un peu désordonné à mes yeux (juste taquiner avec cette formulation, rien de mal)
Qu'y a-t-il en dessous?
Note latérale: Je recherche quelque chose qui fonctionne de préférence même lorsque l'environnement de bureau complet n'est pas chargé, comme lors de l'exécution d'une session i3wm avec uniquement gsettings-daemon(et d'autres choses sans rapport avec ce cas) chargé.
Mise à jour
Une autre façon d '«enregistrer» un gestionnaire de protocole consiste à *.desktoputiliser des fichiers et leur type MIME; par exemple MimeType=application/<the-protocol>;.
J'ai trouvé un /usr/share/applications/ubuntu-software-center.desktopavec ce contenu:
[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;
Celui-ci explique pourquoi gnome-open apt://foo.barouvre le Centre logiciel au lieu de apturl.
J'ai donc installé ceci apturl.desktopdans ~/.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;
Après , update-desktop-databaseet même après le redémarrage, les deux xdg-openet gnome-openfaire toujours le même et ignorer ce fichier de bureau de l' utilisateur, qui , comme d' habitude avec les fichiers de bureau utilisateur, devrait l' emporter sur celui /usr/share/applications/.
Il y a peut-être quelque chose de spécial avec les fichiers de bureau spécifiant le x-scheme-handlertype MIME et ils ne sont pas traités de la manière habituelle.
La méthode du fichier de bureau ne répond pas à la question.