?

Log in

No account? Create an account
title'; DROP TABLE `users` -- Day [entries|friends|calendar]
Курю бамбук. Дорого.

[ website | GQ's blog ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

KDE, монтирование дисков, кодировка [21 Jan 2007|11:47pm]

Note: This info is outdated.
Внимание: Эта информация устарела.

Пересадил жену из Гнома в КДЕ (3.5). В первую очередь из-за убожества под названием Наутилус, который используется в Гноме в качестве файл-менеджера.

Ну и столкнулся во всей красе со странными опциями монтирования при монтировании флешек из конкверора.

Итак, для монтирования используется hal. Hal, в общем-то, настроен так, чтобы vfat монтировался с iocharset=,codepage=:

gq@vice:~$ cat /etc/hal/fdi/policy/codepage.fdi
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="volume.fstype" string="vfat">
<merge key="volume.policy.mount_option.utf8" type="bool">false</merge>
<merge key="volume.policy.mount_option.iocharset=koi8-r" type="bool">true</merge>
<merge key="volume.policy.mount_option.codepage=866" type="bool">true</merge>
</match>
</device>
</deviceinfo>

И pmount-hal монтируется все правильно:

gq@vice:~$ PMOUNT_DEBUG=1 pmount-hal `hal-find-by-property --key volume.fstype --string vfat`
drive: /org/freedesktop/Hal/devices/storage_serial_JetFlash_TS1GJF2B_6110074164F2F66B
volume: /org/freedesktop/Hal/devices/volume_uuid_4CEA_FA17
device: /dev/sdd1
label: JETFLASH
fstype: vfat
options: codepage=866,iocharset=koi8-r
umask: (null)
spawnv(): executing pmount 'pmount' '-t' 'vfat' '-c' 'koi8-r' '/dev/sdd1' 'JETFLASH'
spawn(): pmount terminated with status 0

Но вот KDE на это сильно наплевать, он монтирует с непонятно откуда берущимися опциями:

gq@vice:~$ mount | grep JETFLASH
/dev/sdd1 on /media/JETFLASH type vfat (rw,noexec,nosuid,nodev,noatime,uid=1000,utf8,shortname=lower)

Начал отлаживать. Konqueror вызывает kio_media_mounthelper. Этот бинарник поставляется пакетом kdebase-kio-plugins. Скачал исходники. Оказалось и впраду, при монтировании KDE не смотрит на volume.policy.mount_option, а параметры там берутся из настроек, которые доступны по правой кнопке мыши на сменном носителе. Вот только возможности глобальной настройки там нету, а даже если бы и была – там нет возможности задать codepage и iocharset.

Такая вот фигня. В принципе я понимаю, почему они используют свой механизм задания опций – хочется тотального гуя, но все же, игнорировать настройки hal, это как-то не комильфо.

Рисую патч.

Upd: оказывается там все еще запутанней. volume.policy.mount_option вроде как deprecated =\ Написал в список рассылки hal – посмотрим, что они скажут, и, в случае чего, это будет временный патч, “чтобы русский работал”.

Баг на тему в багтрекере КДЕ: http://bugs.kde.org/show_bug.cgi?id=133456
В списке рассылки пока молчат =\.

Upd2: Нарисовал патч.

permalink Add comment

navigation
[ viewing | January 21st, 2007 ]
[ go | previous day|next day ]