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 apturl
commande. 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.bar
s'ouvreelinks
(monwww-browser
alternative). - L'exécution
gnome-open apt://foo.bar
ouvre le Centre logiciel. - En ouvrant
gconf-editor
, je vois une clé/desktop/gnome/url-handlers/apt
dont 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 à *.desktop
utiliser des fichiers et leur type MIME; par exemple MimeType=application/<the-protocol>;
.
J'ai trouvé un /usr/share/applications/ubuntu-software-center.desktop
avec 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.bar
ouvre le Centre logiciel au lieu de apturl
.
J'ai donc installé ceci apturl.desktop
dans ~/.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-database
et même après le redémarrage, les deux xdg-open
et gnome-open
faire 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-handler
type 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.
Réponses:
Ouvrez
~/.local/share/applications/mimeapps.list
et ajoutez une ligne comme:la source
mimeapps.list
peut varier. Je suggère d'exécuter une recherche pour le nom de fichier.xdg-mime
Peut-être plus élégant (dans cet exemple, j'utilise "apt" , changez-le pour tout autre schéma):
/usr/share/applications/defaults.list
.apt.desktop
fichier ( ici quelques exemples ) à~/.local/share/applications/
(à l'échelle de l'utilisateur) ou/usr/share/applications/
(à l'échelle du système).update-desktop-database
Enregistrez un protocole avec
Cela ajoutera le nouveau type MIME au schéma
~/.local/share/applications/mimeapps.list
. Vous pouvez enregistrer le nouveau type MIME pour tous les utilisateurs du systèmesudo xdg-mime install --mode system <xml file>
.Testez avec
xdg-open "apt://foo.bar"
.Voir aussi Ajout d'un type MIME .
la source