logo

muhas.ru — это просто блог…

О linux, о используемых или просто понравившихся инструментах, вобщем обо всем что окружает мою аскетичную компьютерную жизнь и показалось достойным упоминания или заметки «на память»

Pytyle2 — не красноглазый тайлинг

Пример расположения окон с помощью pytyle2Pytyle2 — первый виденный мною не красноглазый тайлинг, причем он действительно не красноглаз. Те кто видели первый pytyle могут с этим поспорить из-за конфига на языке python. Однако pytyle2 исправляет этот недостаток — все настройки в нем хранятся в ini-файле понятном без какой-либо предварительной подготовки и без осознания некоторых основ какого-нибудь языка программирования...

Не красноглазый он ещё и потому что pytyle вовсе не оконный менеджер, как вы могли подумать, а надстройка над ним. Т.е. запускаем свой wm, а сверху pytyle который (с конфигом по-умолчанию) свое присуствие визуально никак не выдает. Однако стоит нам нажать волшебное сочетание клавиш Alt-a и (о чудо!) пропала панель(если была) и окна выстроились мозаикой... при желании можно отменить тайлинг другим волшебным сочетанием (Alt-u)

Pytyle2 умеет как ручной тайлинг a la musca/ratpoison/screen, так и автоматический как у xmonad, а так же циклическое переключение режимов тайлинга (вертикальный, горизонтальный, колонками, одно окно на экран...) как у awesome, ну и собственно управление всем этим. К тому же в отличии от полноценных тайловых менеджеров управлять окнами можно не только с помощью тайлинга, но и средствами вашего wm (правда pytyle2 работает только с EWMH совместимыми, коих навалом — начиная с openbox и заканчивая kwin, compiz, mutter и даже awesome), т.е. использовать его можно и gnome/kde/xfce/ect.

Итак, желающие попробовать уже наверное запустили pytyle и нажали Alt-a. Дабы не распинаться о всех прелестях (к слову сказать, сам использую лишь малую их часть), приведу основные сочетания клавиш для управления:
  • Alt-j — следующее окно
  • Alt-k — предыдущее окно
  • Alt-h\l — изменение размера окон
  • Alt-Shift-C — закрыть окно
  • Alt-a — включить тайлинг
  • Alt-u — выключить его
  • Alt-z — циклическое переключение режимов тайлинга
  • Alt-m — фокус на основное окно
  • Alt-c — делает основным следующее окно
  • Alt-Shift-D — включить/выключить декорацию окна
  • Alt-Shift-B — включить/отключить отображение бордюров/li>
Кстати, настройка горячих клавиш в конфиге ($XDG_CONFIG_HOME/pytyle2/config.ini появляется после первого запуска) производится почти так же как и здесь у меня отображено. Вот первые строки конфига
[GlobalKeybindings]
Alt-A = tile
Alt-U = untile
Alt-Shift-D = toggle_decorations
Alt-Shift-B = toggle_borders
и так далее
В конфиге указаны как горячие клавиши, окна исключения которые pytyle трогать не будет, используемые режимы тайлигна, так и настройки режимов, цвета/размеров и отображение бордюров активных/неактивных окон, отображение декораций окон от оконного менеджера, отступы от края экрана(по-умолчанию они установлены в 0, посему и при включении тайлигна панель скрывается) и уйма прочего...
Как видно из примера выше, файл конфигурации достаточно просто и имеет вид ключ = значение, посему отредактировать его не составит труда (он не только прост, но ещё и прокомментирован).
Кстати, файл конфигурации можно править уже при запущенном pytyle2 и обновлять его с помощью Alt-q. Так что может к нему как и к tint2 появится какой-нибудь pytyle2wizard...

Напомню, что официально pytyle2 ещё не существует, т.е. он находится в разрабатываемом состоянии и установить его можно из hg методом python2 setup.py install (для арчеводов в AUR'е есть PKGBUILD).

Страница проекта на гуглокоде

PS. Конечно же поведение некоторых вещей может изменится, да и о багах забывать не стоит — всё же версия ещё в разработке, хотя и полностью годная к применению, по меньшей мере для моих нужд...

pacinfo - кусочек Ubuntu в ArchLinux

pacinfo - просмотр информации из pacman о пакетахpacinfo — графическая утилита для просмотра информации об установленных пакетах. Сразу оговорюсь, она написана на mono/gtk#, но это первая графическая программа на mono которая быстро (моментально) запускается.

Программа ничего не делает кроме вывода информации о пакете — описание, дату установки, список файлов... И скриншот приложения. Собственно скриншот это самое примечательное, берутся они из Ubuntu Software Center.
Вот так вот ненавязчиво Ubuntu приходит на помощь ArchLinux :)

Что бы описать весь её текущий функционал достаточно одного скриншота...

Конечно, ради простого просмотра информации эта программа излишня, но буду надеяться что автор не остановится на достигнутом и продолжит развитие своего детища, а то пока даже информация о зависимостях/зависимых пакетах не отображается.
Конечно, хотелось бы что бы автор добавил просмотр не только установленных пакетов, да и возможность их установки/удаления/обновления была бы весьма кстати...
Эх, мечты...

Вчера вышла первая публичная версия pacinfo.
Страница программы
Блог автора, в комментариях к некоторым записям о pacinfo классический холивар о mono.

Bootsplash в ArchLinux с помощью fbsplash

ArchLinux bootsplash — fbsplashЧто такое fbsplash?
fbsplash обеспечивает графическую среду во время загрузки системы c использования linux framebuffer, причем обеспечивает это в userspace (bootsplash)
Обеспечивает сей пакет только базовую функциональность сплеш-заставки в процессе загрузки и выключения компьютера. Для более тесной интеграции с ArchLinux существует пакет fbsplash-extras с дополнительными скриптами, позволяющий видеть ход загрузки/выключения системы (имена демонов, ход проверки файловых систем), иконки и прочие мелкие полезности...
Так же fbsplash обеспечивает обои и рамку в консоли если ядро поддерживает fbcondecor).

Устанавливаем
Так как по мнению истинных арчеводов сие от лукавого, то пакеты fbsplash-extras и fbsplash находятся в AUR, оттуда их и ставим, не забывая о какой-нибуть теме сплеш-заставки, к примеру fbsplash-theme-arch-black, которая устанавливается как зависимость от fbsplash-extras.
К сожалению во многих темах отсутствует поддержка некоторых разрешений экрана. Но для стандартной (если это так можно назвать) темы есть дополнение в виде fbsplash-theme-arch-black-extras поддерживающий много других разрешений монитора (1024x600, 1152x720, 1152x768, 1280x720, 1280x768, 1280x800, 1280x854, 1280x960, 1366x768, 1400x1050, 1440x1050, 1440x900, 1440x960, 1680x1050, 1920x1080, 1920x1200, 2048x1080, 2048x1536, 768x576), посему не забываем поставить и его. В общем
yaourt -S fbsplash fbsplash-theme-arch-black fbsplash-extras fbsplash-theme-arch-black-extras

В AUR находится достаточно тем (искать fbsplash-theme), так же можно найти их и на развалах opendesktop.org, kde-look.org и прочих look'ах...

Базовая настройка
Все настройки хранятся в файле /etc/conf.d/splash, там их не мало, но нас в первую очередь интересует тема. Поэтому устанавливаем её для своего разрешения экрана
SPLASH_THEMES="
    arch-black
    arch-black/1024x600.cfg
"

где arch-black это имя темы (каталог с темой в /etc/splash/), а 1024x600 это существующее в теме разрешение.
Конфиг достаточно хорошо прокомментирован (английским языком), обратите внимание на опцию SPLASH_XSERVICE
Особо ленивым или не желающим разбираться что да как в конфиге хватит только изменения темы, остальное можно оставить по умолчанию.

Linux kernel
А теперь включаем сие дело в init-образ ядра.
Добавляем в /etc/mkinitcpio.conf хук fbsplash сразу после udev, должно получится что-то вроде
HOOKS="блаблабла udev fbsplash блаблабла"
Если вы используете uswsusp и хотите в нем поддержки сплеш-экрана, то необходимо поставить из AUR uswsusp-fbsplash и использовать хук fbsplash несколько иначе
HOOKS="base udev блаблабла uresume fbsplash блаблабла"
(ну и о fbcondecor не забываем)
После сих действий пересобираем init-образ
mkinitcpio -p kernel26

Правим параметры загрузки ядра. При использовании KMS выставляем разрешение фреймбуфера через video (например, video=1024x600), или без него с помощью vga (допустим, nomodeset vga=789) и дополняем строками для splash-заставки, получаем что-то вроде (пример для grub)
kernel /path/to/kernel root=/dev/bla ro video=1024x600 console=tty1 quiet logo.nologo splash=silent,fadein,fadeout,theme:arch-black
Где arch-black имя темы, а logo.nologo отключает встроенный механизм вывода логотипа ядра...
Сохраняем, уходим в ребут и радуемся заставке =)

ВНИМАНИЕ!!! После каждого изменения настроек не забывайте пересоздать init образ, средствами mkinitcpio

Обратите внимание что если разрешение в загрузчике grub/lili/grub2(или что вы там используете) отличается от того что во фреймбуфере то в самом начале загрузки можно будет видеть немного строк о загрузке ядра вместо самого bootsplash.

Конечно не все так идеально — меня просто бесит момент между отключением splash и загрузкой иксов), но вполне годно. К тому же стандартной загрузки нас никто не лишает — во время показа splash-заставки можно нажать F2 и увидеть привычную загрузку...

Автомонтирование с помощью udev и udisks

Я уже писал о автомонтировании через udev, с помощью mount или pmount, которые постепенно переродились у меня в два скрипта — один для монтирования, другой для размонтирования... Сегодня же хочу поведать о udisks (пришедшем на смену hal и имеющим пару полезных плюшек для автомонтирования, о чем ниже) и изысканиях проведенных вместе с hatred. Конечно, читатели вялого мейллиста archlinux-ru уже могли видить описание сего дела от hatred ещё пару месяцев назад.

Можно использовать pcmanfm или другой менеджер файлов с возможностью автоматического монтирования сменных носителей, но «мы не ищем легких путей». К тому же если без использования файлового менеджера в фоне (например, pcmanfm -d) для автомотрирования udev всё же хорош и может позволить дополнительные действия при монтирования, а благодаря udisks разделы на сьемном носителе можно отмонтировать через любой файломанагер использующий udisks, а таких сейчас все больше и больше...

В общем udev+udisk.tar.gz
Внутри архива:
99-automount-fs.rules - рулесы для udev для автомонтирования
automount-fs.sh       - собственно скрипт для автомонтирования, вызывается udev'ом
save-sessios-vars.sh  - скрипт который нужно прописать в start up скрипт вашего WM или DE
README                - небольшое руководство
Необходимы ck-launch-session и dbus-launch из-за которых у нас с hatred произошел взрыв мозга... т.е. достаточно продолжительный мозговой штурм из-за которых возник дополнительный файл вызываемый при старте иксовой сессии и использование переменных DBUS_SESSION_BUS_ADDRESS и XDG_SESSION_COOKIE, и даже дополнительный sleep, хотя по большей части скрипт и правила udev не изменились...
В общем всё работает, и работает замечательно, спасибо hatred...

Ну и докучи обещанный в списке рассылки скрипт отмонтирования с помощью dmenu.
#!/bin/sh

LABEL=`/bin/ls -1Q /media/ | /bin/sed 's/\"/\[/;s/\"/\]/' | grep -v 'smbnet' |   /usr/bin/dmenu -fn '-xos4-terminus-medium-r-normal--12-120-72-72-c-60-*-*' -nb '#737373' -nf '#e7e3e7'  -sb '#e7e3e7' -sf '#737373' -p "Umount:"`
LABEL=`/bin/echo "$LABEL" | /bin/sed 's/\[//;s/\]//'`
SD=`mount|grep "$LABEL " | cut -f 1 -d " "`
RETURN=$(/usr/bin/udisks --unmount  "$SD" 2>&1)
if [ ! -z "$LABEL" ]; then
    if [ -z "$RETURN" ]; then
    /usr/bin/notify-send "Устройство $LABEL успешно размонтировано" 
    else
    /usr/bin/notify-send "Ошибка размонтирования устройства!" "$RETURN"
    fi
fi
exit 0
Кстати, сей скрипт не особо и нужен ибо благодоря udisks-helper если вытащить примонтированную флешку то она отмонтируется, да и устройство в /dev/ и точка монтирования удалятся (это те самые плюшки от udisks обещанные выше). Но все же лучше отмонтировать...

PS. Почти два месяца автомаунта — полет нормальный

UP:Если у вас udisks не монтрует от пользователя, то разрешения высставляется в файле /usr/share/polkit-1/actions/org.freedesktop.udisks.policy заменой в соответсвующих местах
<allow_any>no</allow_any>
на
<allow_any>yes</allow_any>
или колдуем с polkit-auth

DPMS — немного о энергосбережении монитора в linux

DPMS (Display Power Manager Signaling) — сигналы управления энергопотреблением дисплеев, технология, позволяющая управлять питанием монитора.

Включить сие можно в xorg.conf(xorg.conf.d/) в секции Monitor (по-умолчанию включено)
Option "DPMS" "true"
Ну а настроить все это в секции ServerLayout, время устанавливается в минутах
Option "StandbyTime" "10" # режим ожидания
Option "SuspendTime" 10" # спящий режим
Option "OffTime" "10"  # отключение экрана
указаны стандартные настройки, по меньшей мере у меня в дефолте они именно таковы. Для отключения опции нужно выставить её значение в 0.

Иногда эти значения надо менять — программно отключать экран или отключить выключения экрана... Допустим, что бы не отключать монитор во время проигрывания видео можно, ну или что бы тупо пялится на экран не ожидая его отключения...
В X.org для интерактивного управления настройками иксов используется xset, в том числе и для dpms.
xset -dpms # отключить dpms
xset +dpms # включить dpms
xset s off # отключает автоматическое выключение экрана 
xset s 300 # включает выключение экрана через 5 минут (в отличии от конфига тут указывается в секундах)
xset dpms 100 200 300 # устанавливает время режима ожидания, спящего режима и отключения монитора (0 - значит отключено)
xset dpms force standby # немедленно устанавливает экран или экраны в режим ожидания
xset dpms force suspend # в режим сна
xset dpms force off # выключает экран
xset -q # посмотреть параметры
Т.е. для отключения погасания экрана можно использовать команду
xset -dpms;xset s off

Кстати, xscreensaver использует свои настройки dpms, но с помощью xset можно управлять и им. Так же с помощью setterm можно управлять dpms и из консоли — к примеру указанная ниже команда тупо отключит экран
setterm -blank force
подробнее о dpms можно почитать в арчевики

PS не забывайте что если вы используете DE и что-нить в качестве управления энергосбережением, то настройки могут быть другими, к примеру, как у xscreensaver...