2009-03-10

Screenshot от Scrot в Awesome

У меня возникла проблема со снятием скриншотов экрана в менеджере окон awesome. Дело в том, что мне хотелось это делать через заранее созданный пункт меню, т.к. набирать каждый раз, когда мне нужен скриншот, эту "рулетку":
scrot 'scrot_%Y-%m-%d_$wx$h.png' -s -b -e 'mv $f ~/screenshots/'

у меня не было никакого желания :)
Сначала я попробовал, как обычно, создать пункт меню с вышеуказанной строкой. Но это не дало эффекта. Тогда я вспомнил, что можно запускать эту программу в терминале:
xterm -e scrot 'scrot_%Y-%m-%d_$wx$h.png' -s -b -e 'mv $f ~/screenshots/'

Но при этом окно терминала также висело открытым. В принципе все окна терминала открываются у меня с тэгом, но что делать, если нужно снять скриншот с другого окна терминала? Опция -iconic упорно не желала сворачивать окно терминала в значок, как и указание & в конце команды. Тогда я внимательно присмотрелся к опции -geometry терминала:
xterm -geometry 0x0 -e scrot 'scrot_%Y-%m-%d_$wx$h.png' -s -b -e 'mv $f ~/screenshots/'

что в итоге решило мою проблему, если не считать маленький прямоугольник в левом верхнем углу тэга (и то только тэга терминалов), не особенно бросающийся в глаза. Хоть какое-то решение проблемы :)
В OpenBox у меня такой проблемы нет...

2009-03-09

Автомонтирование USB-устройств в менеджерах окон

Как известно, 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, после выполнения которого выдергиваю флешки.

2009-03-03

Openbox. DE и файловые менеджеры. Screenshots & Samba

Продолжил знакомство с Openbox, озадачившись вопросом замены некоторых приложений Gnome на DE-независимые. Например, файловые менеджеры. Отказаться от привычного Nautilus'а не так-то просто. Он интегрирован в Gnome очень глубоко (заменить, конечно, можно), поэтому искал такой же функционал. Мое внимание привлек PCMANfm, а рекомендуемый ROX-filer не очень-то поразил меня обилием функций, но оставил оба, хотя pcmanfm пользовался намного больше. Есть еще emelFM2 - довольно широко настраиваемый файловый менеджер с возможностью монтирования блочных устройств. Кстати, ROX - не только файловый менеджер, но и целая легковесная DE, правда, меня она не впечатлила.
Еще один момент, связанный с файловым менеджером - просмотр Windows-шар. Я очень привык делать это через Nautilus, но ни в ROX, ни в PCMANfm, ни в emelFM2 такой возможности не обнаружил. Я уже начал подумывать, что придется ковыряться через cli-интерфейс, но знающие товарищи в jabber-конференции подсказали решение в виде пакета smbnetfs, который предоставляет возможность просматривать сетевое окружение, примотированное, как обычные разделы, к папке /mnt/smbnet/. Несколько непривычно, зато независимо от выбранного файлового менеджера :)
Наконец открыл для себя scrot :) Мне и раньше его советовали, но у меня был Gnome :) Теперь я нахожу, что он намного более удобен, чем gnome-screenshot, в первую очередь тем, что можно делать скрин произвольной области экрана и автоматически обрабатывать изображение:
scrot 'scrot_%Y-%m-%d_$wx$h.png' -s -b -e 'mv $f ~/screenshots/'

Согласитесь, сделать так gnome-screenshot не в состоянии, а ведь это не все опции...

Openbox

Давно интересовался легковесными оконными менеджерами типа Blackbox, Fluxbox, Openbox etc. Ставить его пробовал и раньше, но тогда ничего в нем за неопытностью не понял. Решил попытать счастья в очередной раз :)
Все оказалось не так уж трудно. Во многом мне помогли статьи Системный монитор Conky: простота и мощь, заметки арчера, Openbox guide (и его перевод), Openbox gentoo-wiki и, конечно, Openbox (Русский) arch-wiki, а также многое другое по ссылкам из этих статей.
В дополнение поставил PyPanel (конфиг взят отсюда) и Conky, конфиг которого взят отсюда, но изменен в части ядер процессоров:
${color grey}Core 1: ${color white}${cpu cpu1}% ${hwmon 1 temp 1}°C ${color red}| ${color grey}Core 2: ${color white}${cpu cpu2}% ${hwmon 1 temp 3}°C

и дополнен инфой о машине и версии ядра.
В дальнейшем намерен полностью перейти на него с Gnome и, возможно, Gnome (и его приложения) полностью снести. В этом аспекте очень интересует информация о чистых Gtk- и Qt-приложениях, а также других, не связанных никоим образом с Gnome (KDE я и так не использую).