Очеловечивание OpenBox

*Обсуждение сборки и свежие ссылки теперь здесь:
http://www.calculate-linux.ru/boards/44/topics/11881*
desktop-small.png

Началось все с того, что мэинтэйнеры кед опять напортачили со слотами… :slight_smile:
Как не странно именно так все и началось. Мне это просто надоело: постоянные блокировки при обновлении минорных версий qt и kde, по-настоящему достало это меня, когда на ноутбуке жены с бинарным профилем попытка обновить систему вылилась в почти полный снос кед, а как оказалось нужно было пересобрать бинарники из-за изменения в нумерации слотов кде. Ну да ладно это все цветочки.
Был скачал последний на тот момент стэйдж CLS с OpenBox, установлен на второй рут и запущен. В начале, как я и предполагал, у меня есть полностью НЕ настроенный, «голый» рабочий стол.
Я знаю, что в CLS уже есть gtk+ и qt, так что я отталкивался от того, что могу использовать проги, которым нужен один из 2-х фреймворков. Выбор огромен, так что я не расстраиваюсь! :slight_smile:

  1. Для начала окружение для сборки, которое я для себя создал:
    Мои USE-флаги в make.conf:

    USE="${USE} -consolekit qt4 -gtk -gtk3 wicd -networkmanager mmx -hal
    gallium -gnome -gconf python3 X -mysql -postgres -semantic-desktop
    -lirc sqlite -ldap opengl -gimp -slang ncurces -ggi taglib 3dnowext
    custom-cflags smp libnotify -ipv6 -spell -qt3support -policykit"

Они, с небольшими изменениями, кочуют у меня от системы к системе. Поясню, почему я отключил gtk — включение этого флага тянет за собой сборку gnome-common какой-то программой, а это меня совсем не устраивает. Этот флаг я включаю только для нужных мне программ через /etc/portage/package.use/using.
Содержимое /etc/portage/ приводить не стану, все можно настроить по своим предпочтениям.
Последнее и немаловажное — я сижу на нестабильной ветке, профиль у меня calculate/desktop/CLS/amd64/developer, и ACCEPT_KEYWORDS=~amd64 в make.conf.
2. Поехали дальше, что было доустановлено мной:
media-gfx/feh — очень простой просмотрщик графики, я его использую для установки обоев.
x11-misc/tint2 — таскбар, часы и трэй в одном флаконе, специально для легких WM.
x11-misc/tintwizard — ГУИ настройки tint2, можно не ставить, это по желанию. НЕ зыбывайте после ее запуска загружать текущий конфиг.
sys-apps/iproute2 — пришлось доустановить для работы последних кальковских утилит, обещают в следующий стэйдж включить в поставку.
x11-misc/obconf — ГУИ для настройки OpenBox, настраиваются практически все параметры, темы шрифты и т. д.
x11-misc/obmenu — ГУИ для настройки главного меню.
www-client/firefox — думаю всем понятно, исходя из предпочтений калькостроителей, можно заменить на www-client/chromium. :slight_smile:
app-office/libreoffice-bin — тоже думаю в объяснениях не нуждается. Ставил именно бинарник из-за значительно более быстрой установки, да и версия бинарная оказалась свежее.
net-irc/xchat — опять все поняли. :slight_smile: Ставил с флагом gtk, иначе не будет ГУИ.
x11-misc/xxkb — крохотная переключалка раскладок, позволяет переключать языки отдельно для каждого окна и показывать индикатор раскладок, можно даже флажки стран прикрутить.
sys-apps/pmount — для работы с внешними накопителями от пользователя, скрипт mountmenu.sh прилагается.
x11-apps/xdm — совственно ясно, что это. Поясню зачем: не понравилось мне автологин через хитрые механизмы в /etc/sysctrl.conf и через создание хитрых программ на С, в которых прописано имя пользователя. Бал выбран простой путь — следующий пакет
x11-misc/slim — тоже понятно, именно через него и настроен автологин. А можно и не настраивать, а работать, «как положено», со всей «секюрностью». :slight_smile:
net-misc/wicd — управлялка проводными и беспроводными сетями. К сожалению NetworkManager тянет за собой PolicyKit и ConsoleKit и избавится от них не получается, а ГУИ для него тянет еще и часть гнома.
-net-misc/networkmanager — решил не ломать традицию калькулэйт и, по‑возможности, пользуюсь, тем, что используется в других дистрах. У меня он собран с флагами connection-sharing dhcpcd kernel_linux, иногда приходится через свой бук давать инет компам без вафли.
net-misc/cnetworkmanager — без комментариев.
gnome-extra/nm-applet — аплет для руления нетворкманагером. Он, к сожалению, не собираеться без кусков гнома, но флагами можно минимизировать «хвосты», у меня получилось свести кол-во зависимостей до 10, не бог весть что, но другая альтернатива — руками поднимать с помошью cnetworkmanager, а рулить вообще непонятно как, наверное nmcli мог бы помочь. Wicd не стал ставить, хотя очень хотелось и зависимостей меньше, но причины см. выше, да и в нем нету возможности рулить ppp соединениями.
x11-themes/hicolor-icon-theme — без этого пакета в nm-applet-е не запускается окно настройки соединений.-
net-p2p/rtorrent — имхо, самый лучший клиент для торрента, гуи не искал и не ставил, консольная морда меня вполне устраивает. Единственный, несущественный для меня, минус — не умеет создавать торрент-файлы. Собирал с флагами color daemon xmlrpc. Что тянет за собой для работы “демоном”
app-misc/screen — без объяснений. :slight_smile:
net-im/pidgin — возможно и не самый мощный выбор, но как замена kopete меня вполне устроила. Собирал с флагами gtk ncurses networkmanager nls.
net-im/skype — кому-то нужны комментарии? :slight_smile:
media-video/smplayer — тоже все понятно, одно уточнение — я ставил из своего локального оверлея с маленько подправленным ебилдом, потому как уже давно и надежно сижу на
media-video/mplayer2 — замена mplayer, у меня работает более плавно на HD видео, вроде как использует для воспроизведения все ядра — не проверял.
www-plugins/adobe-flash — тоже, думаю не нуждается в представлениях, к сожалению, пока без нее тяжко. Ставил версию 10.2.159.1_p201011173, 10.3 сразу после ее появления надежно замаскирована мной потому как она ТОЛЬКО 32-бита и тянет за собой кучу emul‑linux, а в итоге ФФ ее не видит. Возможно с хромом ситуация будет другая. В чате все упорно советуют 11-ую версию, но в дереве ее нету, а пихать мимо дерева я ничего не хочу, так же как и искать или писать для этой поделки ебилды, если версия для линукса не нужна разработчикам, то уж мне она и подавно…
app-misc/mc:slight_smile:
app-emulation/virtualbox-bin — ну нужна мне винда для работы, что же тут поделаешь.
app-admin/sudo — да, я им пользуюсь.
x11-misc/gmrun — запускалка приложений, типа krunner.
media-sound/mpd — музыкальный сервер, очень давно слушаю музыку с его помощью, меня он всем устраивает, морды можно использовать разные в кедах я использовал media-sound/qmpdclient, но на данной системе он потянул за собой непростительно много зависимостей и был заменен на проверенный
media-sound/sonata — ГУИ для mpd на GTK+.
media-gfx/scrot — утилитка для снятия скриншотов.
x11-misc/parcellite — утилита для работы с буфером обмена.
app-text/evince — утилита для просмотра PDF, DjVu, tiff и т.д.
Вроде все. Все зависимости отслеживались при установке пакетов. С помощью флагов было минимизировано количество зависимостей, по возможности все флаги, которые я не знал были убраны. Все флаги вносились в /etc/portage/package.use/using.
3. Настройки всего этого хозяйства.
В основном, настройки у меня уже были, т. к. я и раньше некоторое время пытался работать в OpenBox, но теперь я решил сделать все основательно и надолго :slight_smile:
Первое, что ввело меня в ступор это полное игнорирование калькулэйтом файла ~/.xinitrc. Первое время система от пользователя вообще отказывалась запускать startx, пришлось удалить ~/.xinitrc, после этого startx заработал. Пришлось использовать автозапуск самого OpenBox-а ~/.config/openbox/autostart.sh Этот вариант оказался самым обычным bash-скриптом, вот его содержимое:

#!/bin/bash
feh --bg-scale "/home/rodion/Pictures/naturelandscapepack/nature & landscape (24).jpg" &
tint2 &
xxkb &
wicd-gtk &
parcellite &

Все мои попытки сделать хитрый автологин с запуском Х-ов показались мне не очень красивыми и было принято решение установить slim. После недолгого изучения полученного файла конфигурации обнаружилось, что в шаблонах кальки, формирующих /etc/slim.conf, параметр login_cmd настроен так, что он не воспринимает файл ~/.xinitrc, хотя в дефолтных настройках его обработка предусмотрена. Чем так не угодил разработчикам самый древний способ автозапуска программ при старте Х-ов? Оставляю это на совести разработчиков. :slight_smile: Собственно, настройка автологина в слиме сводится к прописыванию двух параметров в его конфиге: default_user username и auto_login yes.
Настройки OpenBox описывать не буду, т. к. они отлично делаются через «родной» ГУИ — obconf, там все совершенно понятно. Вся конфигурация лежит в ~/.config/openbox/rc.xml. Не забывайте запускать реконфигурацию после внесенных изменений. Первая неприятность, которую я пока не победил — после реконфигурации пропадают значки в трее (прямо как в винде). :frowning:
Настройка меню так же делается из ГУИ — obmenu, там тоже все понятно без особых объяснений. Сами настройки меню лежат рядом с конфигурацией OpenBox, в файле menu.xml.
Настройки tint2 можно сделать из tintwizard*а или взять готовые. Настройки лежат в~/.config/tint2/tint3rc*. В настройщике не все мне было сразу понятно, я его установил, когда у меня уже был готовый конфиг. Не забывайте сразу после запуска конфигуратора загружать текущий файл конфигурации, иначе можно потом сохранить дефолтные настройки и заменить рабочий конфиг.
Настройка xxkb лежит прямо в хомяке — ~/.xxkbrc, у меня настроено 2 языка.
Больше всего проблем мне принес NetworkManager, вернее, решение о «визуализации» его работы и управлении им. К сожалению апплета на «чистых» GTK+ или QT нет. Пришлось установить nm-applet, он потянул за собой некоторое количество пакетов от гнома, точнее 10, не очень больших. После запуска он упорно показывал на доступной точке доступа знак «Стоп» и не давал мне подключать сеть от пользователя. Запущенный0 от рута, первым делом спросил пароль от какого-то «брелока», т. к. я ни разу не гномовод, для меня это стало неожиданностью, был задан произвольный пароль и дело пошло дальше. При каждом запуске nm-applet появлялся запрос на пароль к «брелоку». От рута сеть настроилась и запустилась. Не забывайте при настройке сети установить галку, разрешающую работать с соединением всем пользователям. После пересоздания соединения и установки нужной «птички» соединение от пользователя запускается, но вот «брелок», заставил углубиться на форумы убунтологов. :slight_smile: Решение было найдено: запуск gnome-keyring-daemon перед запуском nm-applet.
Настройка Wicd сводится к добавлению его в автозагрузку rc-update add wicd default и запуску gtk-ного ГУИ при старте OpenBox-а.
Далее была поставлена задача сделать монтирование и нормальное, «мышкотыкательное», отмонтирование внешних устройств. На сайте кальки была найдена статья по этому поводу. http://www.calculate-linux.ru/blogs/show/214 Для всего этого используеться usidks и udisks-glue для автомонтирования. Настройки передрал, маленько покопался с ошибкой, решил, отписал в статью о найденном решении. Обнаружил пренеприятнейшую особенность данного решения — если на флешке несколько разделов, то не монтируется ни один :frowning: Пошел копать дальше. Гугуление по «openbox монтирование» выдало интересную статейку о формировании динамического меню OpenBox при втыкании носителя. Скрипт mountmenu.sh был срочно положен в /usr/local/bin/, нужная строка

<menu execute="mountmenu.sh" id="mounts" label="Устройства"/>

прописана в меню и начато тестирование. :slight_smile: В итоге в скрипте были оставлены только 2 пункта — «Монтировать» и «Отмонтировать». Используеться pmount. Проблема автомонтирования пока отложена.
Настройки scrot свелись к определению кода клавиши PrtSc с помощью xev, прописыванию нового биндинга в конфиге OpenBox для запуска скрипта и созданию bash-скрипта screenshot.sh в /usr/local/bin/.
На этом, пока все, скрин прилагается, ничего особо примечательного на нем нету. Возможно кроме потребления проца X-ами :slight_smile: К сожалению запечатлеть меню с помощью PrtSc не удалось, сфоткал мобильником.

menu-small.jpg

1) ДМ (DM - Display Manager) и ВМ (WM - Window Manager) - разные вещи.
2) >К сожалению запечатлеть меню с помощью PrtSc не удалось, сфоткал мобильником.

Вы сами говорили про scrot.
Так вот, scrot -cd10, и в эти 10 секунд открываешь меню. Что сложного?

Исправил первое замечание.
А по поводу второго, у меня по PrtSc, без задержки. Картинка есть, что еще надо.

спс!
tint использовал когда-то в связке с FVWM :))

P.S. в списке тегов расставь запятые после каждого тега, иначе выглядит как один тег… :wink:

Исошник посмотреть бы ещё выложить :slight_smile: Отличная статья!

Решил отказаться от NM, потому как надоело наблюдать кучу процессов consolekit-а. Выпилить policy/consolekit-ы не получается, т.к. они жестко нужны NM. Поэтому заменяю его на Wicd.
В итоге система избавилась от 28-и ненужных пакетов. Wicd потянул за собой 3 пакета.
Добавил ебилд, app-misc/cls-desktop-meta/cls-desktop-meta-11.6.ebuild, для быстрой установки всего этого хозяйства. Шаблоны в процессе создания.

x11-misc/tint2 USE tint2conf
удобно, использует тот же tintwizard, но если запустить tintwizard сам по себе он ломает существующий конфиг, вникать не стал просто использую tint2conf… и еще x11-misc/menumaker, чтобы в меню появились все приложения, установленные на Вашем компьютере, после чего его можно довести тем же obmenu.

mmaker OpenBox3

Про tintwizard я написал, что надо ОБЯЗАТЕЛЬНО открыть текущий конфиг на редактирование, иначе можно потерять настройки. А про mmaker не знал, спс, попробуй.

Родион Дорошкевич писал(а):

Про tintwizard я написал, что надо ОБЯЗАТЕЛЬНО открыть текущий конфиг на редактирование, иначе можно потерять настройки. А про mmaker не знал, спс, попробуй.

)) спс Родион, разобрался, не внимательно прочел…
вот только трей, что то не видно ((

systray = 1
systray_padding = 0 4 5
systray_sort = ascending
systray_background_id = 0
systray_icon_size = 16
systray_icon_asb = 70 0 0

Обновил в статье файл tint2rc, глянь там мои настройки.

Вспомнил о еще одной проблеме, с которой столкнулся при работе в OpenBox, видео у меня ati, дрова проприетарные, подключен дополнительный монитор у которого разрешение больше основного, xinerama включена.

При работе на втором мониторе курсор “разбивается” на мелкие осколки, очень некрасиво выглядит. Решение простое: создать линк на любой из доступных в системе тем курсоров и сделать его default.

 # cd /usr/share/cursors/xorg-x11/
 # ln -s whiteglass default

К сожалению, в стандартных темах нету некоторых курсоров, например нескольких “рук”. Поэтому в программах, где они используются, можно встретить “разбитый” курсор. :frowning: Возможно, стоит установить курсоры из гнома или кде. :slight_smile:

К сожалению, в стандартных темах нету некоторых курсоров, например нескольких “рук”. Поэтому в программах, где они используются, можно встретить “разбитый” курсор. :frowning: Возможно, стоит установить курсоры из гнома или кде. :slight_smile:

как насчет x11-themes/vanilla-dmz-aa-xcursors http://jimmac.musichall.cz/themes.php?skin=7

Родион, спс, трей заработал… как насчет вот такого решения(источник gentoo wiki en), ты писал по поводу авто входа:
$HOME/.bash_profile

 # .bash_profile

 # Read Bash settings file (Get private aliases & functions)
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

 # Start X if not a Telnet/SSH Session.
 # (... X then reads .xinitrc to start OpenBox)
if [ -n $SSH_CONNECTION ]; then
    exec startx
fi

P.S. у меня .xinitrc работает

mmaker навел на мысль, бросился на поиск и вот, что нашел, предлагаю Вашему вниманию, гораздо интересней- obmenugen-bin из оверлея wavilen, для использования оверлея придется добавить USE mercurial:

euse -E mercurial 
emerge -uDN world
layman -a wavilen
eix-update
echo "=x11-misc/obmenugen-bin-0.4.3-r56 ~x86 или ~amd64" >> /etc/portage/package.keywords/using
emerge obmenugen-bin
obmenugen --help ;)

все предельно просто, меню радует, в меню появятся “параметры obmenugen” где по умолчанию можно указать терминал, браузер, редактор и файловый менеджер итд… вкусная вещь… ))

Aleksey Vasilyevich писал(а):

как насчет x11-themes/vanilla-dmz-aa-xcursors http://jimmac.musichall.cz/themes.php?skin=7

К сожалению, не помогло, проверить можно если на втором экране в ФФ открыть гуглопочту, в списке сообщений попробовать перетянуть сообщение за правую полоску. Появится “разбитый” курсор.
Это курсор на основном экране:

Это то же место, но уже на втором экране:

Родион, проверил - у меня все нормально перетаскивается и курсор не рушится, наверное это отголоски унстэйбл у тебя :slight_smile:

Xinerama включена, дрова ати, 2 монитора?

о нет, я про второй монитор не заметил :slight_smile:

мои 5 копеек %)
feh вполне можно заставить рандомно менять обои через определенный промежуток времени. вот мой (полный костылей) скрипт:

#!/bin/bash
while [ 0 -lt 1 ]
do
feh --bg-fill -rz /home/pav/Images/walls &
sleep 10
done

ну и добавляем в autostart.sh строчку типа
sh /home/pav/.walls_slideshow.sh &

UPD1
замеченные минусы:

  1. скрипт не завершает работу при логауте
  2. картинка меняется как бы моргая

Вот результаты трудов. CLS на стероидах - cLSD - http://t.co/qms1OuL7.
Ссылка на архив с исошкой на моем гуглодоксе, пока у Lautre лежит инет: http://is.gd/3V4Prv
Ставить желательно с создание пользователя и автологином его: cl-install -d /dev/sdXY -u user_name -A user_name. Тогда сразу будет пользователь с настроенным рабочим столом. К сожалению, работа прямо из livecd не тестировалась и не настраивалась, поэтому автологин рута при загрузке есть, но Х-ы автоматом не запускаются, так же не уверен в том, что рут получит настройки из шаблонов. Это в процессе.

Тестируйте, высказывайте пожелания, сюда или на irc канале кальки.

Я как-то про pptp и не подумал, извини. :slight_smile: У меня smplayer кушает отлично все файлы, не знаю почему у тебя крашится. А дедбифом я не пользуюсь, у меня mpd+sonata, но на публику, особенно неподготовленную такое давать стремно :slight_smile: Прозрачную консоль я не делаю - мешает фон. Коньки тоже не ставлю - не вижу в них необходимости.
А вообще, рад что понравилось, пусть и с напильником :slight_smile: