Как известно,
OpenBox,
Awesome и прочие менеджеры окон являются самодостаточными средствами взаимодействия пользователя с окнами, в отличие от таких
DE, как
Gnome,
XFCE и
KDE, в которых интегрированы готовые наборы заранее определенных программ. Но вместе с тем такие менеджеры окон налагают на пользователя повышенные требования в части того, что ему теперь придется искать для каждой функции в
DE непривязанный к ним аналог. В частности, за автомонтирование
USB-устройств в традиционных
DE отвечают встроенные средства, а в менеджерах окон об этом придется заботиться пользователю.
Первым делом мое внимание привлек пакет
ivman, с которым я уже имел дело 2 года назад на
Gentoo. Увы, с тех пор он не развивался, что сказалось на его функционировании в
Arch'е. Заставить его автоматом монтировать флешки не удалось ни при каких условиях.
Опуская словесные прения в конференциях, скажу, что я все же решился остановиться на написании правил
udev для автомонтирования и размонтирования. В
jabber-конференции для быстрого решения проблемы мне указали
эту, недавно появившуюся, ссылку.
Правила изначально выглядели так:
KERNEL=="sd[a-z]", DRIVER=="usb-storage", GROUP="storage"
ACTION=="add", KERNEL=="sd[a-z][0-9]", GROUP="storage", RUN+="/bin/mkdir -p /media/$env{ID_FS_LABEL_ENC}"
ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/$env{ID_FS_LABEL_ENC}"
ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="ntfs", RUN+="/bin/mount -t ntfs-3g -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/$env{ID_FS_LABEL_ENC}"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount -o rw,noauto,noexec,nodev,noatime,dmask=000,fmask=111 /dev/%k /media/$env{ID_FS_LABEL_ENC}"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/umount /dev/%k"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/rmdir /media/$env{ID_FS_LABEL_ENC}"
но я решил еще добавить правила для файловых систем
ext2/3. Попутно всплыла еще одна проблема. Поскольку для монтирования создается каталог в
/media с меткой соответствующего раздела, то для разделов, у которых отсутствует метка (
label), монтирование, соответственно, производится непосредственно в
/media. Представляете себе эту кашу?
Из той же статьи выудил команду для поиска альтернативных способой наименования примонтированных разделов:
# udevadm monitor --env
и после многочисленных экспериментов решил остановиться на схеме именования через
UUID:
ID_FS_UUID_ENC
Правда, все равно жаль, что "человеческие" названия разделов не видны, даже если есть, но зато избавился от вышеуказанного казуса. В принципе, вариантов именования масса...
Решил посмотреть, как отображаются примонтированные разделы в файловом менеджере
PCMANfm, т.к. он максимально приближен к
Nautilus :) Показывать примонтированные разделы он показывает, но отмонтировать не дает, т.к., судя по всему, имеет свою систему автомонтирования. Правда, назвать ее так можно с натяжкой, ибо разделы не монтируются, пока по ним не кликнешь. И отмонтировать раздел, находясь в нем, невозможно. Но все же лучше, чем ничего. В меню забил пункт с командой
sync, после выполнения которого выдергиваю флешки.