web-dev-qa-db-fra.com

Gestionnaires de protocole d'URL dans Ubuntu Desktop de base

Il y avait un moyen d'enregistrer les gestionnaires de protocole d'URL avec Gconf, qui est maintenant obsolète et il semble n'y avoir aucun moyen de faire la même chose avec DConf (ou Gsettings, son wrapper recommandé).

Comment enregistrer correctement un gestionnaire de protocole d'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 commande apturl. C'est le cas avec mon navigateur Opera, mais uniquement parce que j'ai ajouté cette association spécifique à l'aide de la fonction de configuration du navigateur. Sinon, dans le reste de l'environnement:

  • Lancer xdg-open apt://foo.bar ouvre elinks (mon alternative www-browser).
  • L'exécution de gnome-open apt://foo.bar ouvre le centre de logiciels.
  • En ouvrant gconf-editor, je vois une clé /desktop/gnome/url-handlers/apt dont la valeur est apturl "%s" et qui est activée. Cette configuration semble être ignorée, ce qui est raisonnablement prévisible, car GConf est considéré comme obsolète.
  • En ouvrant dconf-editor, je ne vois rien de ce qui concerne les gestionnaires d’URL ou les protocoles dans /desktop/gnome

Ça a l'air un peu brouillon à mes yeux (juste taquiner avec cette formulation, rien de grave)

Qu'est-ce qu'il y a 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 éléments non liés à cette affaire) chargés.

Mettre à jour

Un autre moyen de "enregistrer" un gestionnaire de protocole consiste à utiliser les fichiers *.desktop 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 SoftwareCenter au lieu de apturl.

J'ai donc installé ce 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, xdg-open et gnome-open font toujours la même chose et ignorent ce fichier de bureau de l'utilisateur, qui, comme d'habitude avec les fichiers de bureau de l'utilisateur, devrait remplacer celui de /usr/share/applications/.

Peut-être y at-il quelque chose de spécial avec les fichiers du bureau spécifiant le type MIME x-scheme-handler et ils ne sont pas gérés de la manière habituelle.

La méthode du fichier de bureau ne répond pas à la question.

16
Hibou57

Ouvrez ~/.local/share/applications/mimeapps.list et ajoutez une ligne comme celle-ci:

x-scheme-handler/apt=apturl.desktop
9
angel

xdg-mime

Peut-être plus élégant (dans cet exemple, j'utilise "apt" , changez-le pour tout autre schéma):

  1. Vérifiez les types MIME enregistrés dans /usr/share/applications/defaults.list.
  2. Ajoutez le fichier apt.desktop à ~/.local/share/applications/ ou /usr/share/applications/ ( ici des exemples ).
  3. Construisez la base de données de cache des types MIME gérés par les fichiers du bureau: update-desktop-database
  4. Enregistrer un protocole avec

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

    Ceci ajoutera le nouveau type MIME pour le schéma à ~/.local/share/applications/mimeapps.list. Vous pouvez enregistrer le nouveau type mime pour tous les utilisateurs du système Sudo xdg-mime install --mode system <xml file>.

Testez avec xdg-open "apt://foo.bar"

4
Pablo Bianchi