Відповіді:
Файловий менеджер (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 / share / applications / mimeapps.list. Отже, якщо ви додаєте або видалите асоціації або зміните об'єднання за замовчуванням, цей файл оновлюється.
Посібник з адміністрування системи GNOME на веб-сайті http://library.gnome.org/admin/system-admin-guide/stable/ не відображається для обговорення mimeapps.list, але я знайшов такий опис на http: //live.gnome .org / SysAdminGuideUpdate :
mimeapps.list знаходиться в $ XDG_DATA_DIRS / додатках. Її мета - додавання або видалення асоціацій mime з додатків. nautilus пише ~ / .local / share / applications / mimeapps.list, коли користувач вносить зміни в діалоговому вікні "Відкрити з".
mimeapps.list
це перекреслено записами в defaults.list
.
~/.local/share/applications/mimeapps.list
, і запущені процеси, такі як pcmanfm, підняли зміни без перезавантаження. (mplayer.desktop просто працює 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
for глобальна асоціація:
/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-mime
Freedesktop.org (раніше називався X Desktop Group, тому абревіатура "XDG") - це група, яка в даний час керує X стандартами на кшталт цього ( докладніше в Wikipedia ).
У відповіді warvariuc вже згадується використання 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, щоб побачити нові асоціації в дії?