Советы новичкам. Как изменить программы по умолчанию для определенных типов файлов в Ubuntu Linux.
Инструкция писана для Ubuntu 10.10, но может быть полезна и для предыдущих релизов.
Ассоциация определенной программы для открытия конкретного типа файлов.
1. В Наутилусе делаем правый клик по файлу нужного типа и из выпадающего меню выбираем «Свойства».
2. В диалоговом окне «Свойства» переходим на вкладку «Открывать в программе».
3. Из списка ставим галочку напротив необходимого нам приложения, если его нет, но мы знаем где лежит исполняемый файл нужного нам приложения, то нажимаем кнопку «Добавить» и выбираем его. Теперь все файлы типа нашего файла будут открываться в выбранном приложении.
Но типов тех же аудио или видео файлов очень много и выбирать приложение, в котором его открывать, для каждого типа файла не очень удобно.
Как назначить приложение по умолчанию сразу для нескольких типов файлов?
Ассоциации типов файлов для каждого пользователя лежат в файле
Но если вы не переопределяли программы для открытия всех типов файлов, то этот файл будет почти пуст, а информация о том, каким приложением какой файл открывать будет извлекаться из глобального файла
По непонятным причинам изменения, произведенные непосредственно в файле defaults.list, не произвели эффекта. Но импорт информации из файла defaults.list в файл mimeapps.list и дальнейшее изменение ассоциаций эффект произвели.
Чтобы произвести ассоциацию определенной кучи типов файлов с нужным приложением используйте следующий пример, иллюстрирующий ассоциацию видео типов файлов.
Пример: .avi .mp4 .mpg .ogv .ogm .mkv .wmv и подобные.
Ассоциация всех видео типов файлов с VLC вместо Totem media player .
Чтобы отобразить ассоциации всех видео MIME типов, используйте команду:
cat /usr/share/applications/defaults.list | grep video
Теперь добавим все найденные ассоциации в локальный файл нашего пользователя:
cat /usr/share/applications/defaults.list | grep video >> /home/имя_пользователя/.local/share/applications/mimeapps.list
Далее открываем локальный файл mimeapps.list в gedit:
и теперь ищем и заменяем все вхождения totem на vlc, для чего выбираем из меню gedit «Поиск»-«Заменить»:
Сохраняем измененный файл и наслаждаемся изменениями, вступившими в силу сразу после сохранения файла.
Источник
Как назначить ассоциации к файлам по расширению?
Обычно ассоциации назначаются по типу файла, определяемому по содержимому. Но тип «текстовый файл» в итоге объединяет уж сильно разные данные. Что-то неплохо бы открывать в gedit, что-то — в emacs, а что-то вообще гнуплотом.
Если назначать через «properties → open with» в гноме, то предлагает установить ассоциацию для всех текстовых файлов разом.
А можно как-то их поделить по расширениям?
В ubuntu tweak есть раздел «типы файлов»
Других подобных программ не знаю.
Если толбко вручную вбивать в файл mimetypes.
FYI: file(1) различает очень много разных типов «текстовых» файлов, независимо от расширения.
FYI: file(1) различает очень много разных типов «текстовых» файлов, независимо от расширения.
Возможно. Но нужные мне не разделяет.
напиши wrapper-скрипт, который будет сам вычленять расширение и запускать соответствующее приложение, а на этот скрипт назначь ассоциацию
Открой /usr/share/mime/packages/freedesktop.org.xml и посмотри как там описан тип файлов txt (поиск по «.txt» даст нужный результат). Определи по аналогии свои типы, что-то вроде text/your-subtype, для нужных тебе разрешений. Потом обнови базу данных mime: update-mime-database /usr/share/mime.
В ubuntu tweak есть раздел «типы файлов»
Интересная утилита, куча типов перечислена, но свой там создать вроде нельзя. А нужные мне файлы — они все «Text document».
Если толбко вручную вбивать в файл mimetypes.
Что куда вбивать?
напиши wrapper-скрипт, который будет сам вычленять расширение и запускать соответствующее приложение, а на этот скрипт назначь ассоциацию
Источник
Где хранятся ассоциации файлов?
Как Ubuntu или любые другие системы Linux хранят ассоциации файлов?
Есть ли некоторые /etc/asscociations файл или что-то?
Я знаю, что могу щелкнуть правой кнопкой мыши файл и изменить его с помощью «открыть с помощью», но мне просто интересно узнать, как он хранится внутри.
9 ответов
Файловый менеджер (по умолчанию Nautilus) использует MIME-тип файла, чтобы определить, с какой программой открыть его. Когда приложение установлено, оно может указывать, какие типы MIME оно может открывать, и команду, используемую для открытия файлов в файле.desktop, который находится в /usr/share/applications , Этот файл используется для меню, ярлыков на рабочем столе и т. Д.
Например, GIMP имеет следующий файл.desktop:
Увидеть MimeType поле — здесь перечислены поддерживаемые типы MIME. Exec поле указывает системе использовать команду gimp-2.7 %U , заменив «%U» файлами для открытия. (Обратите внимание, что GIMP 2.7 — это версия, которую я установил из PPA, поэтому она выше текущей версии в репозиториях Ubuntu).
Когда пакет приложения установлен, система извлекает эти данные MIME-типа в более легкодоступную базу данных, потому что поиск в каждом файле.desktop займет слишком много времени, если это будет выполняться при каждом открытии файла.
Это сообщает системе, какие приложения можно использовать для этого типа MIME, и предоставляет приложения в списке «Открыть с помощью». Значение по умолчанию определено в другом месте. Файл /usr/share/applications/defaults.list предоставляет информацию о системных значениях по умолчанию. Если вы не выберете иное, это те приложения, которые используются при открытии файла.
В дополнение к отличному ответу 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, когда пользователь вносит изменения в диалоговом окне «Открыть с помощью».
Я обнаружил, что в моей системе (Debian Jessie) также есть
/.config/mimeapps.list у него была ассоциация, которую я случайно создал, чтобы открыть файл определенного типа с помощью gedit. Ни один из стандартных способов исправить это (настройки приложения по умолчанию, свойство Thunar, открытое с помощью свойства) не отразило это, но gedit было приложением по умолчанию.
Я был в состоянии удалить строку из
/.config/mimeapps.list и теперь правильное приложение открывает файл.
Я нашел эту ссылку относительно ассоциации по умолчанию, это может быть полезно. https://wiki.archlinux.org/index.php/Default_Applications
для глобальной ассоциации:
по ассоциации пользователей:
Раздел[Добавленные ассоциации] используется для указания предпочтительных (по умолчанию) приложений в порядке уменьшения предпочтения. это означает, что desktopfile1 является наиболее предпочтительным, а desktopfileN наименее предпочтительным.
Раздел[Удаленные ассоциации] используется для явного удаления любых ранее унаследованных ассоциаций.
Я был в состоянии установить ассоциацию как это:
Вы также можете удалять ассоциации и делать другие вещи: man xdg-mime
Мне не нужно было бежать sudo update-desktop-database ,
Создать файл truecrypt.desktop в
/.local/share/applications со следующими строками:
затем отредактируйте файл
/.local/share/applications/mimeapps.list и добавьте следующую строку:
Я обнаружил MIME-тип Truecrypt, выполнив следующую команду:
mimeapps.list путь поиска
Другие упоминали этот файл, но никто не объяснил его местонахождение точно.
Порядок поиска для этого файла следующий:
а затем значения по умолчанию для этих переменных среды приведены по адресу 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 так что обязательно попробуйте
автоматически отредактирует эти файлы.
Для всех пользователей:
У каждого пользователя есть файл конфигурации для переопределения этих значений по умолчанию:
см. также https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html для мест, которые могут быть использованы для переопределения значений по умолчанию.
Вы должны знать MIME-тип файла, для которого вы хотите изменить ассоциацию.
Также все ассоциации могут быть обработаны-изменены в командной строке с помощью:
https://freedesktop.org/ (ранее назывался X Desktop Group, то есть аббревиатура «XDG») — это группа, которая в настоящее время придерживается таких стандартов X ( подробнее об этом в Википедии).
После большого количества игр с редакторами изображений и программами просмотра, я получил разные программы просмотра для разных типов изображений практически без согласованности, особенно среди редких типов изображений.
Я взял вышеуказанную команду и назначил ее каждому из типов MIME, контролируемых программами просмотра изображений, а затем создал новый image-viewer.desktop путем клонирования одного из них (это необязательно, вы можете просто повторно использовать свой любимый). Затем я вручную проверил, что ни один из типов MIME не будет несовместим с моим новым предпочтительным приложением. Наконец, я установил это приложение по умолчанию для всех типов MIME других приложений:
Это исследует .desktop файлы для каждого из зрителей ( Ristretto, Geeqie и GThumb в моем случае), извлекает определение MIME (которому предшествует MimeType= затем содержит список, разделенный точкой с запятой), удаляет (предварительно сопоставленную) метку предисловия и разбивает список на одну запись в строке. sort -u затем удаляет лишние строки, затем они передаются xdg-mime установить новые значения по умолчанию.
(Если вы хотите проверить это перед запуском, измените xargs в xargs echo и он напечатает полученную команду вместо ее запуска.)
Этот метод должен работать для всего, что вы хотите вернуть для целевого приложения. Вам даже не нужно создавать новый .desktop файл (вы можете использовать существующий). Я сделал этот дополнительный шаг, чтобы, когда я неизбежно изменил свою привязанность между программами просмотра изображений, мне просто нужно было изменить этот файл.
Источник
[РЕШЕНО] Ручное назначение иконки определенному типу файла и информации в поле «тип файла»
#1 — 17 сентября 2018 в 15:22 |
Имею установленный Linux Mint 19 в окружении Mate и установленный в нем бесплатный CAD пакет DraftSight для редактирования файлов с расширением dwg.
В настройках внешнего вида выбран Mint-X-Grey из стандартных тем.
Cad пакет установлен штатным образом, ассоциация файлов по открытию файлов dwg работает исправно.
Но есть пара обидных недоделок:
I. не определен значок типу файлов *.dwg
При обращении к каталогу темы Mint-X-Grey:
ls -l /usr/share/icons/Mint-X-Grey
-rw-r—r— 1 root root 6148 июл 17 15:18 icon-theme.cache
-rw-r—r— 1 root root 553 июн 6 15:31 index.theme
drwxr-xr-x 8 root root 4096 июл 17 15:12 places
Как видно каталога mimetypes там нет.
Зато созвучные (*dwg*) названия и значки есть в каталогах:
/usr/share/icons/hicolor/16х16|32х32|48х48|64х64|128х128/mimetypes/rapplication-vnd.dassault-systemes.draftsight-dwg.png
и
/usr/share/icons/gnome/16х16|32х32|48х48|64х64|128х128/mimetypes/rapplication-vnd.dassault-systemes.draftsight-dwg.png
II. в поле отображаемом в Caja по названием «Тип»
написано «тип application/vnd.VAR_VENDOR_NAME.VAR_PRODUCT_NAME-dwg (application/vnd.VAR_VENDOR_NAME.VAR_PRODUCT_NAME-dwg)», что так же малоинформативно для пользователя и засоряет экран при отображении окна списком.
Вопрос к знатокам что и как можно сделать, чтобы устранить эти «козявки» в связке типа файла со значком и описанием типа файла.
Буду заранее благодарен всем опубликовавшим дельные советы.
С уважением, Юрий.
P.S.:
Ранее долгое время работал под KDE, там была возможность через GUI установить значки на типы файлов. У Caja, к сожалению, можно (через пункт «параметры» контекстного меню) назначить значок конкретному файлу, а не всем аналогичным файлам с тем же расширением.
#2 — 19 сентября 2018 в 17:57 |
Ручное назначение иконки определенному типу файла и информации в поле «тип файла» . не определен значок типу файлов *.dwg . |
ручное не ручное но есть такая штука как AssoGiate
» Программа Assogiate
Программа Assogiate предназначена для изменения,удаления или добавления mime-типов файлов.С ее помощью можно легко добавить отсутствующий тип файлов в систему,а также легко назначить определенному типу файлов иконку приложения с помощью которого эти файлы будут открываться. . « (с)http://ansat.pp.ua/programma-assogiate.html
и вроде как несложно найти эту программу в репах убунты (возможно в уже подключенных
#3 — 21 сентября 2018 в 07:42 |
Спасибо за ответ!
НО к сожалению данный пакет давно уже почил и связанные с ним зависимости не разрешаются .
При установке:
sudo dpkg -i ./assogiate_0.2.1-5_amd64.deb
Выбор ранее не выбранного пакета assogiate.
(Чтение базы данных … на данный момент установлено 380184 файла и каталога.)
Подготовка к распаковке ./assogiate_0.2.1-5_amd64.deb …
Распаковывается assogiate (0.2.1-5) …
dpkg: зависимости пакетов не позволяют настроить пакет assogiate:
assogiate зависит от libatkmm-1.6-1 (>= 2.22.1), однако:
Пакет libatkmm-1.6-1 не установлен.
assogiate зависит от libglibmm-2.4-1c2a (>= 2.32.0), однако:
Пакет libglibmm-2.4-1c2a не установлен.
assogiate зависит от libgnome-vfsmm-2.6-1c2a (>= 2.22.0), однако:
Пакет libgnome-vfsmm-2.6-1c2a не установлен.
assogiate зависит от libgtkmm-2.4-1c2a (>= 1:2.24.0), однако:
Пакет libgtkmm-2.4-1c2a не установлен.
assogiate зависит от libpangomm-1.4-1 (>= 2.27.1), однако:
Пакет libpangomm-1.4-1 не установлен.
assogiate зависит от libsigc++-2.0-0c2a (>= 2.0.2), однако:
Пакет libsigc++-2.0-0c2a не установлен.
assogiate зависит от libxml++2.6-2 (>= 2.33.1), однако:
Пакет libxml++2.6-2 не установлен.
dpkg: ошибка при обработке пакета assogiate (—install):
проблемы зависимостей — оставляем не настроенным
Обрабатываются триггеры для menu (2.1.47ubuntu2.1) …
Обрабатываются триггеры для man-db (2.8.3-2) …
Обрабатываются триггеры для desktop-file-utils (0.23+linuxmint3) …
Обрабатываются триггеры для mime-support (3.60ubuntu1) …
Обрабатываются триггеры для hicolor-icon-theme (0.17-2) …
При обработке следующих пакетов произошли ошибки:
assogiate
При попытке запуска после установки:
assogiate
assogiate: error while loading shared libraries: libgnomevfsmm-2.6.so.1: cannot open shared object file: No such file or directory
Предварительная ручная установка libgnomevfs2-0 и libgnomevfs2-common проблему не решает.
До того как задать вопрос здесь, я натыкался на эту программу, но как уже писал стройчкой выше .
Возможно вам известно как можно порешать зависимости на Mint19 (Ubuntu 18.04)?
Буду рад выслушать.
Источник