xdg-mime query default inode/directory
правильно дает мне:
nemo.desktop
так, как я ожидаю, и хочу этого.
Но
xdg-open $HOME
выдает ошибку:
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
... и открывает Audacious.
Я попытался отредактировать строку run-mailcap, чтобы убрать скобки, и это избавило от этого сообщения об ошибке. Но это не решает проблему. Я все еще получаю «аргумент mimetype отсутствует» и открывается неправильная программа.
Я попытался удалить Audacious, и вместо этого он открыл другую неправильную программу (git-cola и chrome).
Я попытался sudo apt-get install --reinstall xdg-utils
, и это ничего не изменило.
Редактировать: больше информации, описанное выше поведение происходит как в Cinnamon, так и в Gnome, но не в Lubuntu LXDE. В LXDE запрос дает nemo.desktop, а xdg-open не выдает никаких сообщений об ошибках в терминале, но открывает PCManFM (не nemo).
Это ключ к тому, что не так или как это исправить?
xdg-открытый сценарий оболочки, таким образом, можно отладить его с-x
bash -x /usr/bin/xdg-open $HOME
, это дает мне вывод как это
+ 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
, Это от рабочей установки xdg-открытых на 64 битах 16.04.
я показал Вам мой теперь, Вы показываете мне Ваш.
редактирование:
рассмотрение Вашего вывода i видит, что open_generic_xdg_mime не удается возвратить тип пантомимы, и это препятствует тому, чтобы сценарий выбрал правильный сервис. Простое обходное решение должно было бы создать сценарий, названный open_generic_xdg_mime, и заставить его 'петлять-i' против его входа, это даст Вам тип пантомимы, но необходимо будет привести в порядок вывод немного с чем-то, любят сокращение. сообщите мне, нужна ли Вам рука с этим.
У меня была точно та же проблема.
я мог решить проблему просто установкой gvfs-bin
(ничто больше)...
sudo apt install gvfs-bin
я узнал это, потому что в файлах журнала от пользователя Amias должен читать:
gvfs-open /home/amias
, Но gvfs-открытый не был установлен в моей системе.
После установки gvfs-bin
, это работает!
, Чтобы установить новую ассоциацию файлов (например, использовать Немо для папок), можно сделать:
gvfs-mime --set inode/directory nemo.desktop
- Аплодисменты
Хорошо, кажется, как будто патч был выпущен для других, имеющих подобные проблемы, судящие этой статьей: https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=810587
В этой статье человек встречался:
"Незавершенная левая фигурная скобка в regex удержана от использования, проходится в regex; отмеченный < - ЗДЕСЬ в m / % {< - ЗДЕСЬ (.*?)} / в/usr/bin/run-mailcap строке 528".
при выполнении nmh, который кажется подобным сообщению об ошибке за исключением другой программы. Таким образом, я рекомендовал бы работать:
sudo apt-get upgrade;sudo apt-get dist-upgrade
, Поскольку затронутый пакет мог бы иметь обновленную версию в наличии с патчем.
я надеюсь, что это помогает.
ПРИМЕЧАНИЕ: Это обновит все пакеты, которые могут быть обновлены (который является хорошей вещью независимо), так не удивляйтесь, хотят ли несколько пакетов обновить.
Проблема происходит из-за gvfs-info
быть удержавшим от использования.
Строка 635 в xdg-пантомиме использует gvfs-info
для гнома. bash gvfs-info "$1" 2> /dev/null | grep standard::content-type | cut -d' ' -f4
Я пытался переоценить ту строку вручную, вот результат:
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
Затем я пытался использовать gio info
:
gio info ~/test.pdf|grep standard::content-type| cut -d' ' -f4
application/pdf
Таким образом, я временно изменил блок для info_gnome () в xdg-пантомиме для использования gio info
вместо этого и обман, это работало!
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 }