Ассоциации файлов

Материал из Bryansk Linux Users Group.

Перейти к: навигация, поиск

Казалось бы всё просто: открыл "Центр Управления КДЕ", закладку привязки файлов. А если пользователей 20+ штук? Тогда, скажите вы, тоже всё просто - делаем один конфиг у себя, а потом:

# cp $HOME/.kde/share/config/profilerc /usr/kde/3.5/share/config/

А как же GTK-приложения, пользователи GNOME и уже существующие пользователи с существующими конфигами? Придётся немного разобраться, как вообще образуются файловые привязки? Есть проект freedesktop.org , пытающийся стандартизировать большинство функций менеджеров окон. Согласно ему сначала создаётся файл, содержащий MIME database . Для этой цели можно использовать графическую утилиту assogiate, под root он правит глобальную базу. Но скорее всего база типов файлов у вас уже есть и править ее нет необходимости. Далее при установке каждое приложение создаёт в /usr/share/applications/ .desktop файл в котором и привязывается конкретная команда к MIME-типам файлов. Например:

# cat /usr/share/applications/mplayer.desktop 
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=MPlayer
GenericName=Multimedia player
Comment=Multimedia player
Comment[de]=Multimedia-Player
Comment[es]=Reproductor multimedia
Comment[fr]=Lecteur multimédia
Comment[it]=Lettore multimediale
Comment[zh]=多媒体播放器
Icon=mplayer
TryExec=gmplayer
Exec=gmplayer %F
Terminal=false
Categories=GTK;AudioVideo;Audio;Video;Player;TV;
MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-theora;video/x-matroska;
InitialPreference=8

Теперь обратите внимание на последний параметр InitialPreference - это приоритет, то есть если один и тот же MIME-тип использует более одного приложения, то приложением по-умолчанию будет выбрано то, у которого этот параметр больше. Для того, чтобы новые ассоциации вступили в силу, надо отменить пользовательские настройки, для этого необходимо удалить ~/.local/share/applications/ примерно так:

#for i in /home/* ; do rm $i/.local/share/applications/* ; done

И если вы пользователь gentoo, не забудьте добавить в make.conf CONFIG_PROTECT=/usr/share/applications/ , чтобы при обновлении софта ваши настройки не пошли прахом.


Участник:Assa

Личные инструменты