23 votes

Les gestionnaires de protocole URL dans le bureau de base d'Ubuntu

Il y avait un moyen d'enregistrer des gestionnaires de protocole d'URL avec Gconf, qui est maintenant obsolète et il semble qu'il n'y ait 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:// devrait être géré par la commande apturl. C'est le cas avec mon navigateur Opera, mais seulement parce que j'ai ajouté cette association spécifique en utilisant l'installation du navigateur. Sinon, dans le reste de l'environnement :

  • En exécutant xdg-open apt://foo.bar ouvre elinks (mon alternative à www-browser).
  • En exécutant 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 est apturl "%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.
  • En ouvrant dconf-editor, je ne vois rien en rapport avec les gestionnaires d'URL ou les protocoles dans /desktop/gnome

Cela semble un peu confus à mes yeux (juste taquinerie avec ce terme, rien de mal)

Qu'y a-t-il en dessous ?

Note : 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 seulement avec gsettings-daemon (et d'autres choses non liées à ce cas) chargées.

Mise à jour

Une autre manière de "enregistrer" un gestionnaire de protocole est avec les fichiers *.desktop et leur Type MIME ; par exemple MimeType=application/;.

J'ai trouvé un /usr/share/applications/ubuntu-software-center.desktop avec ce contenu :

[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Vous permet de choisir parmi des milliers d'applications disponibles pour 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;

Cela explique pourquoi gnome-open apt://foo.bar ouvre le Centre logiciel 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=APTURL
Comment=Gestionnaire APTURL
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;

Après update-desktop-database et même après le redémarrage, à la fois xdg-open et gnome-open continuent d'ignorer ce fichier de bureau utilisateur, qui, comme d'habitude avec les fichiers de bureau utilisateur, devrait remplacer celui dans /usr/share/applications/.

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

La méthode des fichiers de bureau ne répond pas à la question.

15voto

Pablo Bianchi Points 10158

xdg-mime

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

  1. Vérifiez les types MIME enregistrés dans /usr/share/applications/defaults.list.
  2. Ajoutez le fichier apt.desktop (voici quelques exemples) à ~/.local/share/applications/ (au niveau utilisateur) ou /usr/share/applications/ (au niveau du système).
  3. Construisez la base de données cache des types MIME gérés par les fichiers desktop (peut nécessiter sudo) :
    update-desktop-database
  4. Enregistrez un protocole avec

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

Cela ajoutera le nouveau type MIME pour le schéma soit à ~/.config/mimeapps.list soit à ~/.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 .

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

Voir aussi Ajout d'un type MIME.

13voto

angel Points 146

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

x-scheme-handler/apt=apturl.desktop

0voto

krob Points 1

Lors du lancement de liens href qui ressemblent à :

zoommtg://zoom.us/join?action=join&confno=000000

C'est ce qui a fonctionné pour moi avec Zoom

echo "x-scheme-handler/zoommtg=Zoom.desktop" >> ~/.local/share/applications/mimeapps.list

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X