xdg-mime query default inode/directory
me donne correctement:
nemo.desktop
comme je l’attendais et le veux.
Mais
xdg-open $HOME
Donne une erreur:
xdg-mime: mimetype argument missing
Try 'xdg-mime --help' for more information.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/run-mailcap line 528.
Warning: program returned non-zero exit code #66
... et ouvre Audacieux.
J'ai essayé de modifier la ligne run-mailcap pour échapper aux accolades, ce qui permet de supprimer ce message d'erreur. Mais cela ne résout pas le problème. Je reçois toujours "l'argument mimetype manquant" et le mauvais programme s'ouvre.
J'ai essayé de désinstaller Audacious, et il ouvre un autre programme incorrect (git-cola et chrome).
J'ai essayé Sudo apt-get install --reinstall xdg-utils
et cela n'a rien changé.
edit: plus d'informations, le comportement décrit ci-dessus se produit à la fois dans Cinnamon et Gnome, mais pas dans Lubuntu LXDE. Dans LXDE, la requête donne nemo.desktop et xdg-open ne génère aucun message d'erreur dans le terminal, mais ouvre PCManFM (pas nemo).
Est-ce un indice de ce qui ne va pas ou comment y remédier?
J'ai eu exactement le même problème.
Je pourrais résoudre le problème en installant simplement gvfs-bin
(rien de plus) ...
Sudo apt install gvfs-bin
Je l'ai découvert, car dans les fichiers journaux de l'utilisateur , Amias doit se lire comme suit:gvfs-open /home/amias
Mais gvfs-open n'était pas installé sur mon système.
Après avoir installé gvfs-bin
, cela fonctionne!
Pour définir une nouvelle association de fichiers (par exemple, utiliser Nemo pour des dossiers), vous pouvez effectuer les opérations suivantes:
gvfs-mime --set inode/directory nemo.desktop
-À votre santé
D'accord, il semble qu'un correctif ait été publié pour les autres personnes ayant des problèmes similaires, à en juger par cet article: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810587
Dans cet article, la personne rencontrait:
"L'attache gauche non échappée dans regex est obsolète, elle est passée dans regex; elle est marquée par <- HERE dans m /% {<- HERE (. *?)}/Dans/usr/bin/run-mailcap, ligne 528."
tout en exécutant nmh, qui semble similaire à votre message d'erreur, à l'exception d'un programme différent. Je recommanderais donc de courir:
Sudo apt-get upgrade;Sudo apt-get dist-upgrade
Comme le paquet affecté pourrait avoir une version mise à jour disponible avec le correctif.
J'espère que ça aide.
NOTE: Ceci mettra à jour tous les paquets qui peuvent être mis à jour (ce qui est une bonne chose malgré tout) alors ne soyez pas surpris si plusieurs paquets veulent être mis à jour.
Le problème est dû au fait que gvfs-info
soit obsolète.
La ligne 635 dans xdg-mime utilise gvfs-info
pour gnome. bash gvfs-info "$1" 2> /dev/null | grep standard::content-type | cut -d' ' -f4
J'ai essayé de réévaluer cette ligne manuellement, voici le résultat:
gvfs-info ~/test.pdf|grep standard::content-type| cut -d' ' -f4
This tool has been deprecated, use 'gio info' instead.
See 'gio help info' for more info.
/usr/bin/gvfs-info: 10: [: ~/test.pdf: unexpected operator
/usr/bin/gvfs-info: 10: [: ~/test.pdf: unexpected operator
application/pdf
Ensuite, j'ai essayé d'utiliser gio info
:
gio info ~/test.pdf|grep standard::content-type| cut -d' ' -f4
application/pdf
J'ai donc temporairement changé le bloc pour info_gnome () dans xdg-mime utiliser gio info
à la place et bam, cela a fonctionné!
631 info_gnome()
632 {
633 if gvfs-info --help 2>/dev/null 1>&2; then
634 DEBUG 1 "Running gvfs-info \"$1\""
635 gnomevfs-info "$1" 2> /dev/null | grep standard::content-type | cut -d' ' -f4
636 Elif gnomevfs-info --help 2>/dev/null 1>&2; then
637 DEBUG 1 "Running gnomevfs-info \"$1\""
638 gnomevfs-info --slow-mime "$1" 2> /dev/null | grep "^MIME" | cut -d ":" -f 2 | sed s/"^ "//
639 else
640 DEBUG 1 "Running gio info \"$1\""
641 gio info "$1" 2> /dev/null | grep standard::content-type | cut -d' ' -f4
642 fi
643 if [ $? -eq 0 ]; then
644 exit_success
645 else
646 exit_failure_operation_failed
647 fi
648 }
xdg-open est un script shell permettant de le déboguer avec -x
bash -x /usr/bin/xdg-open $HOME
cela me donne une sortie comme celle-ci
+ check_common_commands /home/amias
+ '[' 1 -gt 0 ']'
+ parm=/home/amias
+ shift
+ case "$parm" in
+ '[' 0 -gt 0 ']'
+ '[' -z '' ']'
+ unset XDG_UTILS_DEBUG_LEVEL
+ '[' 0 -lt 1 ']'
+ xdg_redirect_output=' > /dev/null 2> /dev/null'
+ '[' x/home/amias '!=' x ']'
+ url=
+ '[' 1 -gt 0 ']'
+ parm=/home/amias
+ shift
+ case "$parm" in
+ '[' -n '' ']'
+ url=/home/amias
+ '[' 0 -gt 0 ']'
+ '[' -z /home/amias ']'
+ detectDE
+ unset GREP_OPTIONS
+ '[' -n Unity ']'
+ case "${XDG_CURRENT_DESKTOP}" in
+ '[' x = x ']'
+ '[' x '!=' x ']'
+ '[' xthis-is-deprecated '!=' x ']'
+ DE=gnome
+ '[' xgnome = x ']'
+ '[' xgnome = x ']'
+ '[' xgnome = xgnome ']'
+ which gnome-default-applications-properties
+ DE=gnome3
+ '[' xgnome3 = x ']'
+ DEBUG 2 'Selected DE gnome3'
+ '[' -z '' ']'
+ return 0
+ case "${BROWSER}" in
+ case "$DE" in
+ open_gnome3 /home/amias
+ gvfs-open --help
+ gvfs-open /home/amias
+ '[' 0 -eq 0 ']'
+ exit_success
+ '[' 0 -gt 0 ']'
+ exit 0
Ceci est issu d'une installation de xdg-open sur 64bit 16.04.
Je t'ai montré le mien maintenant, tu me montres le tien.
modifier:
en regardant votre résultat, je constate que open_generic_xdg_mime ne renvoie pas de type mime, ce qui empêche le script de choisir le bon service. Une solution de contournement simple consisterait à créer un script appelé open_generic_xdg_mime et à le faire exécuter 'fichier -i' sur son entrée. Cela vous donnera le type mime, mais vous devrez ranger un peu la sortie avec quelque chose comme une coupe. laissez-moi savoir si vous avez besoin d'un coup de main avec ça.