30 мая 2012 г.

openbox и lxde на arch linux (черновикъ и всякие фишки)

Однажды я ударился головой в сильный минимализм и решил делать очень тонкую систему (на WM openbox, панельке tint2, и всякой другой босоте), потом постепенно пришёл к компромиссу — LXDE, которая тоже использует по умолчанию openbox, плюс свою довольно приличную панельку lxpanel и прочие lx-плюшки, обладающие для меня на данный момент идеальным балансом минимализм-юзабельность. Тут последовательно в виде мелких исторических заметок.

Менеджер входа в систему

Сначала я загонялся по простым менеджерам входа. Выбрал SLiM, простой, удобный. В inittab прописывается в конце (вроде, там даже есть закоменчено по умолчанию в arch linux):
x:5:respawn:/usr/bin/slim >/dev/null 2>&1
Ну и, разумеется, чтобы грузилось сразу в X, должно там же стоять
id:5:initdefault:
Как я сказал, сначала использовал openbox как отдельный WM, запускал я его через прописывание в ~/.xinitrc :
exec openbox-session
Темы для менеджера тоже есть. Ставится: slim-themes archlinux-themes-slim итд. Можно просмотреть каждую из них:
slim -p /usr/share/slim/themes/имя-темы
Из настроек много что можно изменить в /etc/slim.conf . Команды — то что можно ввести вместо имени юзера для выполнения, настраивается там же. По дефолту уже настроены: console, halt, reboot итд.

Файловый менеджер

Вообще не парился, т.е. работал только через mc. Но можно использовать, например, Thunar или Xfdesktop или любой другой. Как понятно, без всяких этих менеджеров иконок на рабочем столе не будет.

Раскладки

Всё по-гиковски приходится делать. Вариант первый: в ~/.config/openbox/autostart прописываем что-то типа:
setxkbmap -layout "us,ru(winkeys)" -variant -option grp:ctrl_shift_toggle,grp_led:scroll,terminate:ctrl_alt_bksp &
Тут всё понятно — вешаем в автозагрузку setxkbmap с нужными параметрами. Использование более чем очевидное. Клавиши обозначаются так:
grp:toggle – правый Alt
grp:shift_toggle – две клавиши Shift
grp:ctrl_shift_toggle – Control+Shift
grp:alt_shift_toggle – Alt+Shift
grp:ctrl_alt_toggle – Control+Alt
grp:caps_toggle – CapsLock
grp:lwin_toggle – левая клавиша “Win”
grp:rwin_toggle – правая “Win”
grp:menu_toggle – клавиша “Контекстное меню”
grp:lctrl_toggle – левая клавиша Control
grp:rctrl_toggle – правая клавиша Control
Индикаторы (у меня используются для индикации раскладки) так:
grp_led:num – индикатор Num Lock.
grp_led:caps – индикатор Caps Lock.
grp_led:scroll – индикатор Scroll Lock.
Можно ещё в дополнение к основному способу назначить клавиши для временного переключения раскладки. Вторая раскладка держится только когда нажата соответствующая клавиша. Это может показаться удобным для ввода пары латинских букв в русском тексте. Клавиши назначаются так:
grp:switch – правый Alt
grp:lwin_switch – левая Win
grp:rwin_switch – правая Win
grp:win_switch – любая Win
Всё это можно прописывать, конечно, напрямую в /etc/X11/xorg.conf , но мне такой способ не нравится.
Второй способ: в итоге прописал всё это же самое в .xinitrc (ДО старта сессии WM!) чтобы везде работало (в смысле из всех тонких WM, с которыми я периодически игрался) Мой вариант:
setxkbmap -layout "us,ru(winkeys)" -variant -option grp:ctrl_shift_toggle,grp_led:scroll,terminate:ctrl_alt_bksp,compose:lwin
Здесь я настраиваю две раскладки, переключение по ctrl+shift, индикатор на Scroll Lock, убой x на классический ctrl+alt+backspace и compose на левую Win.

Панель задач, трей итд

Без этого можно, но как-то неудобно мне. Мне нравится tint2. Настраивается с помощью входящей в комплект tintwizard или ручками. Всегда убираю максимальный размер иконки (а то криво рисует вообще половину иконок в трее). Ставлю ширину 100% чтобы от края до края было, и включаю системное меню openbox (чтобы правой кнопкой можно было вызвать с панели, а не только с раб. стола).

Индикатор раскладки

Всё просто — это отдельная программа, висит в трее. Выбрал fbxkb, в archlinux собирается и ставится из AUR http://aur.archlinux.org/packages.php?ID=3458 . В autostart прописывается, очевидно
fbxkb &

Меню

Меню в openbox меня слегка бесило, не очень я люблю такое, люблю чтобы из desktop-файлов собиралось и не парило меня. Тут меню конфигурируется руками и жёстко заполняется (или скриптами, конечно). Фишка с автогенерацией подменю из скриптов хорошая, но как-то её бы с этой скооперировать.
Можно сгенерировать, например, с помощью menumaker. Ставим:
# pacman -S menumaker
Смотрим опции:
mmaker --help
Запускаем:
$ mmaker -v OpenBox3     #  Не перезаписывать существующий файл меню.
$ mmaker -vf OpenBox3    #  Принудительно перезаписать файл меню.

Системный монитор на рабочий стол — conky

Тоже вещь довольно приятная, но на любителя. Имхо, понтов больше :) Настраивается конфигами. Качается готовый конфиг или настраивается свой:
cp /etc/conky/conky.conf ~/.conkyrc
Двойной буфер включается обязательно, в файле конфигурации:
double_buffer yes
Потом включается (скорее всего включён) DBE в иксах, в /etc/X11/xorg.conf добавлением строки Load "dbe" в Section "Module".
Делаю прозрачным:
own_window_transparent yes
Сделал отображение четырёх процессоров вместо одного:
${color grey}CPU1 Usage:$color ${cpu cpu1}% ${cpubar cpu1 4}
${color grey}CPU2 Usage:$color ${cpu cpu2}% ${cpubar cpu2 4}
${color grey}CPU3 Usage:$color ${cpu cpu3}% ${cpubar cpu3 4}
${color grey}CPU4 Usage:$color ${cpu cpu4}% ${cpubar cpu4 4}

LXDE

Потом я забил тюнинговать и ушёл на LXDE :) Убил slim, поставил lxdm. Хотя можно и тот оставить, он гораздо проще и менее наворочен (отсюда и плюсы и минусы). Прописываю в /etc/inittab
x:5:respawn:/usr/sbin/lxdm >& /dev/null
Также настраиваем openbox при необходимости, только вкратце. Конфиг используется не rc.xml, а lxde-rc.xml
В целом настройка вполне подробно есть на ArchWiki: https://wiki.archlinux.org/index.php/LXDE.
Как делается автостарт:
а) можно настроить, скопировав desktop-файлы в ~/.config/autostart/
б) прописать в ~/.config/lxsession/LXDE/autostart , обратите внимание, что это НЕ bash-скрипт, не надо завершать символом & и прочее, также поддерживается символ @.
Также общесистемный вариант — /etc/xdg/lxsession/LXDE/autostart, но всё подряд туда не считаю правильным сувать (например, раскладки).
~/.xinitrc не читается, как и во многих взрослых DM. Итак, раскладки теперь в ~/.config/lxsession/LXDE/autostart (строку см. выше).
Для рабочего стола использую небольшой но крайне приятный файлменеджер PCManFM (по дефолту в LXDE). О настройке тоже в ArchWiki есть ( https://wiki.archlinux.org/index.php/PCManFM ).
Что характерно, в PCManFM есть поддержка gvfs, что даёт нам корзину, маунты и прочее. Это при желании, конечно. Ставим:
pacman -S polkit-gnome gvfs consolekit
Корзину тоже надо настроить ещё чуть-чуть ручками %) На рабочем столе делаем файл trash.desktop с содержимым:
#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Name=Trash
Name[ru]=Корзина
Exec=pcmanfm trash:///
Type=Application
Icon=user-trash
Все удалённые элементы попадают в ~/.local/share/Trash

См. также

Заметку: Делаем скриншот кнопкой (LXDE, openbox)
Заметку: Делаем блокировку экрана (LXDE, openbox) с клавиатуры
Разные легковесные утилиты: gpicview, xarchiver итд итп.


upd

delete right & middle menu

Для того чтобы опенбоксовское меню не вылезало.

~/.config/openbox/[lxde-]rc.xml





раскладка

если назначить compose на win то Super_L например портится. так что пришлось поменять в ~/.config/lxsession/LXDE/autostart

setxkbmap -layout "us,ru(winkeys)" -option grp:caps_toggle,grp_led:caps,terminate:ctrl_alt_bksp,compose:ralt

заодно перевёл переключение раскладок на капслок.

Комментариев нет:

Отправить комментарий