Note: This info is outdated.
Внимание: Эта информация устарела.
English version below.
В общем написал я патч для этого зверя.
Патч не совсем честный, просто потому, что честного метода похоже не существует (точнее он заключается в том, чтобы задавать параметры в настройках KDE, а не в HAL, но возможность их задавать появится только в KDE 4). Тем не менее подожду еще немного (может из списка рассылки ответят-таки) и попробую протолкнуть его в дебиановский пакет для Etch. Типа “non-utf8-non-latin1 speaking communities need it very-very much”.
Для того, чтобы KDE монтировал флэшки (и другие носители) с iocharset, а не с utf8 должен стоять пропатченный пакет kdebase-kio-plugin и в настройках HAL должно быть следующее (эти настройки, кстати, заставляют pmount-hal, gnome и ivman монтировать носители с правильной кодировкой):
root@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.iocharset=koi8-r" type="bool">true</merge> <merge key="volume.policy.mount_option.codepage=866" type="bool">true</merge> </match> </device> </deviceinfo>
После добавления строчек надо не забыть перезапустить HAL.
В принципе можно там дописать еще каких-нить опций, но учтите, что опции можно только добавлять к тем, которые устанавливает KDE (отменять можно только опцию utf8 – она сбрасывается, если среди опций встречается iocharset). Сделано так просто потому, что вменяемого способа работы с ключами в libhal-storage нету, а добавлять проверку к каждой опции мне показалось излишним.
Патч: 40_use_hal_mountoptions.diff
Пакет, собранный для Debian Etch:
- kdebase-kio-plugins
Также пришлось обновить, чтобы не было проблем по зависимостям:
- kcontrol
- kdebase-bin
- kdesktop
- kfind
- konqueror
Все эти и другие пакеты (которые тоже может потребоваться обновить) ставятся из репозитория
deb http://gerasiov.net/debian etch kdebase
Upd: Чуть-чуть поправил патч. Теперь не обязательно задавать uft8=false – он сам понимает, что надо отключить uft8, если встречает “iocharset=”.
Upd2: Обновил пакеты и переместил их в репозиторий unstable.
Upd3: Переместил пакеты в репозиторий stable/etch, секция kdebase.
I wrote patch, which force kdebase to use mount options from HAL’s policy.mount_option. See above for example (there I set iocharset and codepage). Patch is avaible here: 40_use_hal_mountoptions.diff. Patched packages for Debian Etch and Lenny are available in my repository.
К сожалению опции в hal, начиная с версии 0.5.10 – DEPRECATED и никакой замены не нашел… скоро уберут 🙁
Деприкейтед-то оно существенно давно. Но пока не убрали. А в KDE4 будет соответствующая глобальная настройка. По крайней мере обещали, что получится на деле – хрен его знает.