From: Igor Vlasenko <vlasenko@imath.kiev.ua> To: devel@lists.altlinux.org Subject: [devel] MIME Revolution! Date: Thu, 14 Apr 2011 00:33:42 +0300 Message-ID: <20110413213341.GA608@dad.imath.kiev.ua> (raw) Уважаемые коллеги! Обращаюсь к вам с просьбой помочь сделать доброе дело, за которое вам будет большая благодарность от простых пользователей наших дистрибутивов: всех наших жен, дедушек, бабушек, внучек, жучек, учителей, бухгалтеров, и других простых пользователей. Более того, для простых пользователей это будет "killer feature", которой могут похвастаться весьма немногие дистрибутивы, если вообще могут. А вот мы сможем похвастать. И с чистой совестью сказать, что у нас круче ;) Речь идет о наведении порядка с умолчаниями MIME. Сейчас мы в целом живем без каких-либо умолчаний, Устаревшие KDE InitialPreference и героические попытки в xfce-settings-* паковать костыли в /etc/skel/.local не в счет, так как они погоды не делают. Текущую ситуацию можно назвать MIME Hell: это ситуация, когда для открытия pdf файла может быть вызван gimp, а для открытия html странички или видеофильма -- wine. За последнее, кстати, в https://bugzilla.altlinux.org/25214 wine забивали, как мамонта. При чем по сути дела wine не виновато, хотя, конечно, установка в .local is a bit extreme, в /usr все же корректнее, но по сути виноват дистрибутив, в котором отсутствуют разумные умолчания mime. стандарты freedesktop.org, к сожалению, далеки от идеала, но там все же попадаются здравые идеи. Не прошло и трех лет, как libgio начала поддерживать mimeapps.list. Это списки desktop файлов, которыми рекомендуется открывать данный тип mime, отсортированные в порядке релевантности приложения типу. Я хочу создать и поддерживать актуальный файл mimeapps.list для Сизифа. Это должен быть общесистемный, DE-нейтральный файл. DE-специфическую настройку лучше осуществлять, манипулируя в скрипте startDE переменной $XDG_DATA_DIRS и подкладывая туда DE-специфические defaults.list. Я начал с того, что, используя технологии репокопа, сгенерировал из desktop файлов актуальную неотсортированную болванку для mimeapps.list. получился достаточно жуткий файл mimeapps.raw с 381 mime типом, и для каждого mime типа внушительный список desktop файлов, которые надо отсортировать. В таком виде получается жуткая задача, на такой файл придется угробить человеко-месяцы, а результат будет невозможно поддерживать. Поэтому мысль сразу же пошла по unix-way. Я решил генерировать mimeapps.list из человекодружественных файлов priorities, с 3-мя или 4-мя колонками, разделенными любым числом пробельных символов первая колонка это freedesktop desktop id: для /usr/share/applications/foo.desktop это будет просто foo.desktop, а вот для /usr/share/applications/kde/kdict.desktop это kde-kdict.desktop. вторая колонка это mime тип. Фишка в том, что там разрешаются shell glob: третья колонка -- приоритет, 4-я опциональная - зарезервирована для спец, настроек приоритета, вида GNOME=30;LXDE=100; пока не используется. Если приоритет >0, то файл будет вписан под [Added Associations]. Если приоритет <0, то файл будет забанен в [Removed Associations]. Пример priorities/50-office: ----------------------------------------------------------------------- desktop файл mime типы приоритет резерв ----------------------------------------------------------------------- abiword.desktop application/* 10 kde4-kword.desktop application/* 50 openoffice.org-writer.desktop application/* 90 writer.desktop application/* 100 Из этого 4-х строчного файла при генерации получается 27 строк в mimeapps.list. Если globbing или спец.настройки не требуются, то готовые кусочки mimeapps.list можно складывать в файл mimeapps.in. Я выложил код генерации в people/viy/packages/altlinux-mime-defaults.git, в README описано, как происходит генерация. Делаем как в README (качаем wget -c http://repocop.altlinux.org/pub/repocop/data/freedesktop-desktop.db пускаем ./generate_mimeapps) получаем текущий mimeapps.list, mimeapps.status (там критикуется mimeapps.list, рассказывается, что в нем не хватает) и mimeapps.raw. mimeapps.raw -- это несортированная заготовка для mimeapps.list. Сделав $ grep 'audio.*=' mimeapps.raw | grep -v 'midi.*=' | \ sed -e 's,^.*=,,' | perl -npe 's/;/\n/g' | sort -u получим список из 52 обработчиков аудио, которые надо отсортировать по релевантности. Господа! 1) Нужен доброволец, который любит музыку и разбирается в плеерах, чтобы выписать приоритеты для плееров в файле priorities/50-audio. Вот список. alsaplayer.desktop audacious2.desktop audacious2-gtkui.desktop audacity.desktop avidemux.desktop banshee-1-audiocd.desktop banshee-1-media-player.desktop brasero.desktop clementine.desktop deadbeef.desktop decibel-audio-player.desktop easytag.desktop exaile.desktop falf.desktop foobnix.desktop gnome-banshee-1.desktop gnome-mplayer.desktop gvim.desktop kde4-amarok.desktop kde4-kaffeine.desktop kde4-kid3.desktop kde4-kmid.desktop kde-amarok.desktop kde-juk.desktop kde-kaffeine.desktop kde-kmid.desktop kde-kmplayer.desktop kid3.desktop listen.desktop miro.desktop mkvinfo.desktop mkvmerge-gui.desktop mplayer.desktop muine.desktop parole.desktop pragha.desktop qmmp.desktop qmmp_enqueue.desktop rhythmbox.desktop rhythmbox-device.desktop rosegarden.desktop smplayer.desktop smplayer_enqueue.desktop songbird.desktop soundconverter.desktop sound-juicer.desktop soundtracker.desktop totem.desktop vlc.desktop xine.desktop xmms.desktop Если какого-то плеера в списке нет, это значит, что в его .desktop файле не прописаны mime типы. В таком случае надо еще вешать баги на такой плеер. 3) Нужен доброволец отсортировать видео плееры по релевантности. 3) Нужны добровольцы на другую сортировку: IDE, архиваторы, редакторы, ... см. mimeapps.status -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine
next reply other threads:[~2011-04-13 21:33 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-04-13 21:33 Igor Vlasenko [this message] 2011-04-13 21:46 ` Денис Смирнов 2011-04-13 22:30 ` Igor Vlasenko 2011-04-13 22:38 ` Igor Vlasenko 2011-04-13 22:41 ` Денис Смирнов 2011-04-13 22:53 ` Igor Vlasenko 2011-04-13 23:13 ` Денис Смирнов 2011-04-13 23:32 ` Igor Vlasenko 2011-04-14 3:25 ` REAL 2011-04-14 3:50 ` Денис Смирнов 2011-04-14 3:56 ` REAL 2011-04-14 4:24 ` Hihin Ruslan 2011-04-13 23:21 ` Денис Смирнов 2011-04-13 23:28 ` Igor Vlasenko 2011-04-13 23:44 ` Денис Смирнов 2011-04-13 23:59 ` Igor Vlasenko 2011-04-13 22:40 ` Aleksey Novodvorsky 2011-04-13 22:48 ` Igor Vlasenko 2011-04-13 22:40 ` Денис Смирнов 2011-04-13 23:02 ` Igor Vlasenko 2011-04-13 23:25 ` Денис Смирнов 2011-04-13 23:37 ` Igor Vlasenko 2011-04-13 23:39 ` Денис Смирнов 2011-04-13 23:41 ` Igor Vlasenko 2011-04-20 7:57 ` [devel] MIME Revolution! -> relative user level Michael Shigorin 2011-04-20 8:32 ` Денис Смирнов 2011-04-20 8:35 ` Michael Shigorin 2011-04-20 8:40 ` REAL 2011-04-20 10:09 ` Dmitriy Kruglikov 2011-04-20 10:20 ` Aleksey Novodvorsky 2011-04-21 5:50 ` [devel] [JT] " Michael Shigorin 2011-04-21 6:09 ` Hihin Ruslan 2011-04-21 13:02 ` Rinat Bikov 2011-04-21 13:20 ` Hihin Ruslan 2011-04-20 7:54 ` [devel] MIME Revolution! Michael Shigorin 2011-04-20 8:07 ` Vladislav Zavjalov 2011-04-20 8:09 ` Michael Shigorin 2011-04-14 12:27 ` Igor Vlasenko 2011-04-14 12:45 ` Андрей Черепанов 2011-04-14 12:56 ` Igor Vlasenko 2011-04-14 13:08 ` Igor Vlasenko 2011-04-14 13:14 ` Андрей Черепанов 2011-04-14 13:22 ` Igor Vlasenko 2011-04-14 13:26 ` Андрей Черепанов 2011-04-14 13:45 ` Андрей Черепанов 2011-04-14 14:05 ` Igor Vlasenko 2011-04-14 15:18 ` Андрей Черепанов 2011-04-13 22:26 ` Paul Wolneykien 2011-04-13 22:47 ` Paul Wolneykien 2011-04-14 10:48 ` Андрей Черепанов 2011-04-14 22:16 ` Paul Wolneykien 2011-04-20 8:04 ` [devel] MIME Revolution! -> upstream Michael Shigorin 2011-04-14 9:58 ` [devel] MIME Revolution! Sergey V Turchin 2011-04-14 11:44 ` Андрей Черепанов 2011-04-14 12:12 ` Андрей Черепанов 2011-04-14 12:16 ` Igor Vlasenko 2011-04-14 12:48 ` Андрей Черепанов 2011-04-14 12:58 ` Igor Vlasenko 2011-04-14 13:02 ` Igor Vlasenko 2011-04-15 12:45 ` Vladislav Zavjalov 2011-04-15 13:19 ` Igor Vlasenko 2011-04-15 15:00 ` Vladislav Zavjalov 2011-04-15 19:28 ` Igor Vlasenko 2011-04-20 7:36 ` [devel] MIME Revolution! -> prio Michael Shigorin 2011-04-20 7:42 ` Денис Смирнов 2011-04-20 8:15 ` Michael Shigorin 2011-04-20 8:21 ` REAL 2011-04-20 8:36 ` Денис Смирнов
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20110413213341.GA608@dad.imath.kiev.ua \ --to=vlasenko@imath.kiev.ua \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git