Ответы:
Файловый менеджер (по умолчанию Nautilus) использует MIME-тип файла, чтобы определить, с какой программой открыть его. Когда приложение установлено, оно может указывать, какие типы MIME оно может открывать, и команду, используемую для открытия файлов в файле .desktop, в котором он находится /usr/share/applications
. Этот файл используется для меню, ярлыков на рабочем столе и т. Д.
Например, GIMP имеет следующий файл .desktop:
[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;
См. MimeType
Поле - здесь перечислены поддерживаемые типы MIME. Exec
Поле указывает системе использовать команду gimp-2.7 %U
, заменив «% U» файлами для открытия. (Обратите внимание, что GIMP 2.7 - это версия, которую я установил из PPA, поэтому она выше текущей версии в репозиториях Ubuntu).
Когда пакет приложения установлен, система извлекает эти данные MIME-типа в более легкодоступную базу данных, потому что поиск в каждом файле .desktop займет слишком много времени, если это будет выполняться при каждом открытии файла.
Это сообщает системе, какие приложения могут использоваться для этого типа MIME, и предоставляет приложения в списке «Открыть с помощью». По умолчанию определяется в другом месте. Файл /usr/share/applications/defaults.list
предоставляет информацию о системных значениях по умолчанию. Если вы не выберете иное, эти приложения используются при открытии файла.
sudo update-desktop-database
См. Jarrpa.net/2011/10/28/…
/usr/local/share/applications
. Я думаю, что GTK выглядит там тоже по умолчанию. Это происходит в моей системе, но оно было обновлено (не переустановлено) начиная с Ubuntu 7.04 или около того.
В дополнение к отличному ответу dv3500ea, я хотел бы добавить некоторую информацию о том, что происходит, когда вы меняете свои ассоциации.
Хотя defaults.list (который вы можете найти, набрав «locate defaults.list») предоставляет список приложений, связанных с каждым типом MIME, все ваши настройки хранятся в вашем домашнем каталоге, в ~ / .local / доля / приложения / mimeapps.list. Поэтому, если вы добавляете, удаляете ассоциации или изменяете ассоциации по умолчанию, этот файл обновляется.
Руководство по администрированию системы рабочего стола GNOME по адресу http://library.gnome.org/admin/system-admin-guide/stable/ , по-видимому, не обсуждает mimeapps.list, но я нашел следующее описание на http: //live.gnome .org / SysAdminGuideUpdate :
mimeapps.list находится в $ XDG_DATA_DIRS / application. Его цель - добавить или удалить ассоциации MIME из приложений. nautilus пишет ~ / .local / share / Applications / mimeapps.list, когда пользователь вносит изменения в диалоговом окне «Открыть с помощью».
mimeapps.list
он перекрывается записями в defaults.list
.
~/.local/share/applications/mimeapps.list
запустить s / vlc / mplayer / , и запущенные процессы, такие как pcmanfm, восприняли изменения без перезапуска. (mplayer.desktop просто запускает mplayer. Я полагаю, у меня был один из старых установок mplayer в / usr / local. IDK, MimeType=list;
нужен ли он или нет.
mimeapps.list
может быть в любом месте по следующему пути поиска: Характеристики.freedesktop.org
Я обнаружил, что в моей системе (Debian Jessie) также есть ~/.config/mimeapps.list
ассоциация, которую я случайно создал, чтобы открыть файл определенного типа с помощью gedit. Ни один из стандартных способов исправить это (настройки приложения по умолчанию, свойство Thunar, открытое с помощью свойства) не отразило это, но gedit было приложением по умолчанию.
Мне удалось удалить строку, ~/.config/mimeapps.list
и теперь правильное приложение открывает файл.
~/.config/mimeapps.list
.
mimeapps.list
может быть в любом месте по следующему пути поиска: Характеристики.freedesktop.org
Я нашел эту ссылку относительно ассоциации по умолчанию, это может быть полезно.
https://wiki.archlinux.org/index.php/Default_Applications
для глобальной ассоциации:
/usr/share/applications/mimeapps.list
по ассоциации пользователей:
~/.local/share/applications/mimeapps.list
Синтаксис следующий:
[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
Раздел [Добавленные ассоциации] используется для указания предпочтительных (по умолчанию) приложений в порядке уменьшения предпочтения. это означает, что desktopfile1 является наиболее предпочтительным, а desktopfileN наименее предпочтительным. Раздел
[Удаленные ассоциации] используется для явного удаления любых ранее унаследованных ассоциаций.
/usr/share/applications/mimeapps.list
не существует.
mimeapps.desktop
наdefaults.desktop
Создайте файл truecrypt.desktop
в ~/.local/share/applications
следующих строках:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes
затем отредактируйте файл ~/.local/share/applications/mimeapps.list
и добавьте следующую строку:
application/octet-stream=truecrypt.desktop
Я обнаружил MIME-тип Truecrypt, выполнив следующую команду:
file --mime-type -b <any truecrypt filename>
mimeapps.list
путь поиска
Другие упоминали этот файл, но никто не объяснил его местонахождение точно.
Стандарт freedesktop.org говорит по адресу https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html :
Порядок поиска для этого файла следующий:
$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.list user overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list sysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list for completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list for compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list distribution-provided defaults
а затем значения по умолчанию для этих переменных среды приведены по адресу https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html :
$XDG_DATA_HOME
: $HOME/.local/share
$XDG_CONFIG_HOME
: $HOME/.config
$XDG_DATA_DIRS
: нет, добавлено в XDG_DATA_HOME
$XDG_CONFIG_DIRS
: нет, добавлено в XDG_CONFIG_HOME
Старые версии Ubuntu могут не проверяться ~/.config
, поэтому обязательно попробуйте ~/.local/share
.
Команды как:
xdg-settings set default-web-browser chromium-browser.desktop
xdg-settings get default-web-browser
автоматически отредактирует эти файлы.
Для всех пользователей:
/usr/share/applications/defaults.list
У каждого пользователя есть файл конфигурации для переопределения этих значений по умолчанию:
~ / .Config / mimeapps.list
см. также https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html для мест, которые могут быть использованы для переопределения значений по умолчанию.
Вы должны знать MIME-тип файла, для которого вы хотите изменить ассоциацию.
Также все ассоциации могут быть обработаны-изменены в командной строке с помощью:
XDG-мим
Freedesktop.org (ранее назывался X Desktop Group, то есть аббревиатура «XDG») - это группа, которая в настоящее время руководствуется такими стандартами X ( подробнее в Википедии ).
В ответе Варвариука уже упоминается использование xdg-mime :
xdg-mime default xnview.desktop image/jpeg
После долгих игр с редакторами изображений и программами просмотра я получил разные программы просмотра для разных типов изображений практически без согласованности, особенно среди редких типов изображений.
Я взял указанную выше команду и назначил ее каждому из типов MIME, контролируемых программами просмотра изображений, а затем создал новую image-viewer.desktop
, клонировав один из них (это необязательно, вы можете просто повторно использовать свой любимый). Затем я вручную проверил, что ни один из типов MIME не будет несовместим с моим новым предпочтительным приложением. Наконец, я установил это приложение по умолчанию для всех типов MIME других приложений:
sed '/^MimeType=/!d; s///; s/;/\n/g' \
/usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
|xargs xdg-mime default image-viewer.desktop
Это проверяет .desktop
файлы для каждого из зрителей ( Ristretto , Geeqie и GThumb в моем случае), извлекает определение MIME (которому предшествует, MimeType=
а затем содержит список, разделенный точкой с запятой), удаляет (предварительно сопоставленную) метку предисловия и разбивает список на одну запись в строке. sort -u
затем удаляет лишние строки, затем они передаются xdg-mime
для установки новых значений по умолчанию.
(Если вы хотите проверить это, прежде чем запускать его вживую, измените xargs
на xargs echo
и он напечатает полученную команду вместо ее запуска.)
Этот метод должен работать для всего, что вы хотите вернуть для целевого приложения. Вам даже не нужно создавать новый .desktop
файл (вы можете использовать существующий). Я сделал этот дополнительный шаг, чтобы, когда я неизбежно изменил свою привязанность между программами просмотра изображений, мне просто нужно было изменить этот файл.
В Ubuntu 18.04 я обнаружил, что порядок старшинства следующий: от сильнейшего к слабому:
~/.local/share/applications/defaults.list
/usr/share/applications/defaults.list
~/.config/mimeapps.list
(«Открыть с другим приложением» будет обновлять это)~/.local/share/applications/mimeapps.list
mimeinfo.cache
реестре совместимых приложений, которые генерируются из .desktop
файлов, присутствующих в /usr/share/applications
и /usr/local/share/applications
, и могут быть восстановлены с использованием update-desktop-database
./etc/gnome/defaults.list
/usr/share/applications
.desktop
файлах существует ли команда для повторного создания этой базы данных MIME, чтобы увидеть новые ассоциации в действии?