Je veux utiliser xdg-open
pour ouvrir des irc://
liens, comment puis-je faire le paramètre requis?
Je veux utiliser xdg-open
pour ouvrir des irc://
liens, comment puis-je faire le paramètre requis?
Réponses:
xdg-open cherche simplement à voir quel environnement de bureau vous avez, puis exécute gnome-open, gvfs-open, xfce-open, etc. Voir ci-dessous pour des instructions spécifiques à l'environnement de bureau ...
Gnome utilise le programme gnome-open qui utilise gconf pour tout stocker. Par exemple, sur ma machine avec Ubuntu 10.10 exécutant gnome-open irc: // blah ouvre xchat car xchat inclut un correctif de configuration gconf pour ajouter un gestionnaire irc: //.
Cela montre comment gnome fait cela, avec les paramètres gconf dans /desktop/gnome/url-handlers/
. Voir à xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
titre d'exemple.
Pour KDE, vous devriez regarder les fichiers .protocol dans / usr / share / kde4 / services /, en créer un nouveau pour votre nouveau protocole et le mettre dans ~ / .kde / share / kde4 / services /, si c'est super utile alors envisagez de l'ajouter au package en tant que correctif pour les autres utilisateurs.
KDE utilise kde-open ou kfmclient selon ce qui est disponible et la version de KDE que vous avez.
XFCE utilise un programme appelé exo-open, ce programme n'a aucun moyen de le configurer ou d'ajouter des gestionnaires uri. L'examen du code source montre qu'il utilise des fichiers de bureau pour spécifier uniquement trois types de programmes. TerminalEmulator, WebBrowser et EmailClient.
Avec XFCE4 (et probablement aussi d'autres), il est possible de configurer xdg-open pour définir un gestionnaire de protocole personnalisé. Dans certains, vous devez créer / modifier les fichiers suivants:
~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list
Un exemple d'ajout d'un gestionnaire pour le protocole ed2k est fourni sur stackexchange.com 2 .
Je décrirai cela avec le magnet:
type d'URI et la transmission (c'est-à-dire le cas de bittorent), mais la même méthode peut être appliquée à n'importe quel schéma ou type de fichier.
J'ai également vérifié cela avec Debian Jessie, et je n'ai pas réellement de machine Ubuntu, mais je pense que cela devrait fonctionner de la même manière (au moins pour xdg-open , notez que les gestionnaires de fichiers peuvent choisir d'utiliser une logique différente).
Découvrez la chaîne de type MIME. Pour les types de fichiers MIME, vous pouvez le découvrir avec la commande file :
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
Pour le fichier ci-dessus, le type MIME est video/webm
.
Pour les gestionnaires d'URI, le type est x-scheme-handler/<scheme>
, où
<scheme>
est la partie de l'URI avant les deux points, par exemple "http", "mailto" "irc" ou "magnet". Voici des exemples de types MIME valides:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
Découvrez le nom du fichier .desktop de l'application.
Souvent, ce n'est pas la même chose que le nom "officiel", mais plutôt une version minuscule, ou un nom complètement différent. Les fichiers .desktop installés se trouvent sous / usr / share / applications. Puisqu'ils sont des fichiers texte normaux et contiennent le nom "officiel", la commande suivante peut vous aider:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
La commande signifie effectivement "lister les fichiers dans ce répertoire qui contiennent le mot" Transmission "". Certaines applications peuvent être installées uniquement pour l'utilisateur, dans ce cas, le chemin serait
~/.local/share/applications
.
Dans le cas où vous avez une application "étrange" qui ne contient pas du tout le fichier, vous pouvez toujours en créer une (et peut-être l'envoyer aux développeurs de l'application). Un moyen simple serait de copier un existant, de réécrire les champs que vous comprenez et de supprimer ceux que vous ne comprenez pas. Reportez-vous à la spécification pour plus de détails.
Effectuez l'affectation à l' aide de la commande xdg-mime :
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
Notez que peu importe où se trouve réellement le fichier (/ usr / share / applications, ~ / .local / share / applications ...), vous utilisez toujours uniquement le nom , pas le chemin complet.
Normalement, la commande ne produira rien - c'est OK. Si vous souhaitez vérifier ce que vous venez de faire ou voir ce qui est actuellement attribué à un type MIME sans l'ouvrir:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
Remarque 1: Si vous souhaitez consulter d'autres types MIME, vous pouvez consulter /etc/mime.types. Il ne contient pas tous les types dans le monde; par exemple les gestionnaires d'URI, mais il pourrait être utilisé pour une forme "agressive" de gestion des associations. Par exemple:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
associerait tous les formats vidéo connus à VLC.
Remarque 2: Les fichiers .desktop contiennent souvent une liste de types MIME qu'ils prétendent pouvoir gérer à l'aide de MimeType
field. La
page de manuel xdg-mime indique que le fichier .desktop doit revendiquer le type MIME avant que la commande mentionnée ci-dessus ne fonctionne, mais pour moi, cela semble fonctionner même si le champ est manquant. (Je veux dire, l'association sera appliquée et l'application sera lancée - si elle peut vraiment gérer le type, c'est une question différente). Je ne sais pas quel est l'inconvénient (peut-être qu'à l'avenir, le xdg-mime sera plus restrictif).
xdg-mime query filetype FILE
est le moyen XDG pour trouver des types MIME. 2) Vous pouvez également modifier les valeurs par défaut vous-même pour garder les choses plus organisées et les sauvegarder plus tard: .config/mimeapps.list
c'est le fichier.
xdg-mime query filetype xyz.wbem
OTOH donne moins d'informations et est beaucoup plus à taper.
Je voulais associer des postman
liens à mon application Postman installée manuellement (et non à l'extension Chrome) afin de pouvoir ouvrir les documents postman à partir du navigateur comme ceci:
Le lien que je voulais associer ressemble à ceci:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
Pour faire l'association j'ai fait les étapes suivantes:
/home/andrzej.rehmann/software/postman/
/usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
postman
lien xdg à l'application en exécutant:xdg-mime default Postman.desktop x-scheme-handler/postman
J'ai corrigé cette configuration si quelqu'un est intéressé: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml