Pull to refresh

Убунту OpenBox, установка и настройка

Reading time 10 min
Views 57K

С возрастом всё больше становится жалко времени на бесплодные ёрзанья мышкой; всё больше раздражения вызывает загружаемый с каждой DE какой-то бесконечный хлам, который съедает время и ресурсы с малопонятными целями. И начинается традиционное нисхождение: от KDE к XFCE, потом к LXDE. Наверное, когда-нибудь я дойду и до голой консоли на десктопе. Но пока меня остановил OpenBox.




«CrunchBang своими руками» – так чаще всего называются подобные руководства. Некоторые пишут совсем коротко: «Посмотри конфиги CrunchBang и настрой по ним свой OpenBox!»

Я посмотрел конфиги CrunchBang. Только он уже не CrunchBang, а BunsenLabs называется. Установил его на своём ноутбуке для изучения – wi-fi не работает: заводится и тихо умирает. Думаю, это из-за старого ядра – наблюдал такое раньше. Попытался перенести конфиги в Убунту – не получилось: там половина команд начинается с префикса «bl-», понятно, что это будет несовместимым с другими дистрибутивами. Стало очевидно, что лёгкого пути не будет.

Изначально для моей «голой» системы было два варианта: Дебиан netinst или Убунту сервер. После того как новенький Дебиан 9.1 гордо отказался конфигурировать Mysql (точнее, Mariadb) – даже после угрожающих размахиваний напильником и чтения вслух гневных нецензурных заклинаний с ЛОРа – остался только один вариант.

Установил Убунту сервер 16-с-чем-то. На работе. Пришёл домой, чтобы тихо посидеть над OpenBox'ом, а на ноутбуке уже интернет не работает. Потому что на работе я в него перед установкой провод воткнул, чтобы долго не разбираться. А дома вай-фай. И что? Куда тыкать мышкой, чтобы выбрать беспроводную сеть? Пошёл на работу, воткнул провод, установил lubuntu-desktop, wi-fi появился, красота! Потом анекдот про двух ковбоев вспомнил: «А тебе не кажется, Джон, что мы оба забесплатно дерьма поели?» То есть Lubuntu я и так мог скачать и установить, сразу, готовую, а не таким хитрым способом. Задача была немного другая.

Путь оказался ещё менее лёгким. Пришлось разбираться с этими вашими /etc/network/interface'ами. Разбирался, читал, экспериментировал. Для начала узнал, как устанавливать сами «окна» – после установки «голой» системы, надо в консоли писать что-то вроде:


$ sudo apt install xorg
$ sudo apt install openbox obmenu tint2 conky lightdm gdebi geany xarchiver

Вы спросите: ну ладно ещё Xarchiver, но причём тут Geany? – Так, для примера; там большой хвост ещё из разных предпочтений тянется от разных пользователей в интернете — я ведь не первый, кто пытается настраивать OpenBox для себя. Но это всё не очень принципиально. Важно то, что это неполный набор, неработающий!


WiFi


В процессе экспериментов с некоторыми «голыми» debian-based ОС я выучил наизусть, что для возможности подключения к wi-fi мой файл /etc/network/interfaces должен выглядеть так:


auto wlp1s0
iface wlp1s0 inet dhcp
wpa-ssid мой_dlink
wpa-psk мой_тайный_ключ_0a8396f1a4f6771e4a083691fe

Это меня и подвело – то, что выучил наизусть. Файл-то я скопировал, а wi-fi не работает. Потому что где-то в середине экспериментов у меня возник вопрос: вот я отказался от LXDE, так, может, и Lightdm для OpenBox'а не нужен? И ответ у меня получился положительный. То есть я его в итоге не стал устанавливать, совсем. Авторизуюсь в консоли, делаю там что-то, а потом вдруг мне хочется в окна мышкой потыкать, и я пишу сакраментальное:


$ startx

Потому что у меня задачи такие – в основном работа с сервером; и иногда хочется эту работу сделать удобнее – ну, там, несколько вкладок в файл-менеджере использовать, или в соседнем окне фильм посмотреть. Я не проверял, устанавливаются ли «беспроводные инструменты» вместе с Lightdm или эти инструменты тянет за собой LXDE какое-нибудь, но без Lightdm и без LXDE – точно не устанавливаются. Поэтому более правильно команда установки должна выглядеть так:


# (Вариант 1)
$ sudo apt install openbox obmenu tint2 xxkb wpasupplicant wireless-tools

Те, кто не знает ещё своего длинного зашифрованного ключа для вайфая, могут записать его в текстовый файл wpa-psk.txt так:


$ wpa_passphrase мой_dlink(ssid) мой_обычный_пароль>wpa-psk.txt

Ещё деталь: волшебное слово wlp1s0, для обращения к вашему сетевому интерфейсу, можно узнать, например, командой:


$ ip address

И там у вас может оказаться совсем другое слово – например, wlan0.


Когда же мне надоест руками править файл /etc/network/interfaces при переходе из одного здания в другое, я тоже знаю, что мне надо будет сделать – установить NetworkManager:


$ sudo apt install network-manager

Потом создать файл в своём домашнем каталоге ~/.config/openbox/autostart (если его ещё нет) и дописать туда две строчки:


tint2 &
nm-applet &

В сети описываются проблемы с апплетами для OpenBox'а, возникающие иногда из-за неправильной последовательности загружаемых модулей. Одно из решений я нашёл такое – вместо простого «tint2 &» написать:


if which tint2 >/dev/null 2>&1; then
  (sleep 2 && tint2) &
fi
nm-applet &

Видимо, предлагаемая задержка в 2 секунды помогает автозагрузчику OpenBox'а пережить разный сторонний загружаемый бутор и потом без помех отобразить желанную иконку сетей, по которой можно щёлкать мышкой. На сайте wiki.archlinux.org я видел ещё более «медленную» конструкцию:


# запуск Xcomppmgr и tint2 в Openbox
if which tint2 >/dev/null 2>&1; then
  (sleep 2 && xcompmgr) &
  (sleep 2 && tint2) &
fi

В целом, конечно, такая стратегия выглядит как-то сомнительно: мы же в итоге стремимся к «мгновенной» загрузке и выгрузке «иксов», иначе зачем нам этот путь упрощений – от KDE к XFCE, LXDE, OpenBox'у?


Важная Информация, панели, виджеты, погода


Куда делись из моей команды установки OpenBox Коньки (Conky)? Это такой апплет (или виджет?), который прямо на рабочем столе показывает, сколько у вас осталось памяти и не слишком ли перегрелся процессор. Я понял, что он мне так же не нужен, как и Lightdm, и Xcomppmgr из примера выше. В развитой мерфологии есть такая рекомендация: перед тем как пойти сдавать анализы в поликлинику, определите, что вы будете делать, если анализы положительные; подумайте, что будете делать, если анализы отрицательные; сравните ваши действия – если они одинаковы в обоих случаях, зачем вам вообще идти в поликлинику?

Зачем мне знать, сколько осталось памяти? Если комп уже начал сильно тормозить, я и так знаю, что делать, – например, закрыть все открытые окна («Если вы что-нибудь открыли – закройте»). И я знаю (чувствую пальцами), когда ноутбук перегревается, и тоже знаю, что делать, когда он начал перегреваться постоянно – например, можно попробовать отнести его на профилактику.

Ну, иногда бывает нужно посмотреть, кто конкретно больше памяти жрёт – Firefox или Chromium. Не для практической пользы, конечно, а чтобы вставлять потом умные замечания в дискуссии и базары на форумах. Но для этого постоянно работающий апплет не нужен, достаточно запустить на минутку в консоли команду:


$ top -oRES

Клавиатура. Переключатель раскладки


Как же жить без этого? Я бы вполне удовлетворился правкой файла /etc/default/keyboard:


XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:shifts_toggle,grp:alt_caps_toggle,terminate:ctrl_alt_bksp,compose:ralt,grp_led:scroll"

Если бы не две проблемы: 1) не всегда правка этого файла помогает – конфиги клавиатуры во время загрузки оконной системы читаются ещё из нескольких тайных мест; 2) мне удобнее, когда в разных открытых окнах запоминается разная раскладка, а в конфиге /etc/default/keyboard такое поведение окнам назначить нельзя.


Поэтому устанавливаем ещё одну программу:


$ sudo apt install xxkb

Впрочем, она уже записана в нашу общую «правильную» (Вариант 1) команду установки OpenBox. Потом создаём файл ~/.xxkbrc с примерно таким содержанием:


XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: yes
XXkb.controls.focusout: yes
XXkb.mainwindow.type: tray
XXkb.mainwindow.label.enable: yes
XXkb.mainwindow.enable: yes

В управляющей полоске каждого окна будет отображаться флажок языка, и каждое окно запоминает текущую раскладку. И да, сами клавиши переключения раскладки надо записать в файл ~/.config/openbox/autostart в виде такой команды:


setxkbmap -layout "us,ru" -option "grp:shifts_toggle,grp:alt_caps_toggle,terminate:ctrl_alt_bksp,compose:ralt,grp_led:scroll" &

Файл-менеджер


Мои наиболее частые действия на компьютере – открыть файл и что-нибудь написать в нём. Иногда это связный русский текст, иногда что-то вроде


body {width:800px; margin:0 auto;}

Часто приходится открывать файлы по сети – хотя бы чтобы просто посмотреть, что там написано. Поэтому мне совершенно необходим такой «стек» программ: файл-менеджер – фтп, smb, или fish клиент – текстовый редактор с подсветкой и проверкой орфографии. И ещё желательно не вводить каждый раз пароли для удалённого доступа.


Такие задачи можно решать, например, с помощью связки программ Krusader – Kate. А Kwalletmanager для хранения паролей сам с ними устанавливается. Да. И ещё треть KDE, наверное. Но тут уж ничего не сделаешь. Пробовал Tux-commander – он открывает файлы по сети, но не сохраняет обратно, во всяком случае «из коробки»; да и в целом возможности явно беднее, чем у Krusader'а. Те же проблемы и у «родных» файловых менеджеров KDE, XFCE, LXDE. То есть кому-то это всё равно, а для меня – проблема.


Таким образом, команда установки удлиняется на пару пунктов: krusader kate krename kdiff3 unrar konsole. Конечно konsole – а иначе что будет открываться в Krusader'е при нажатии клавиши F2 (или, в новой версии, F9)?


Русификация и проверка орфографии


Русификация самой системы мне не нужна: мне привычно и удобно в файл-менеджере набирать три буквы «doc», чтобы переместиться на папку Documents; а если папка будет называться «Документы», придётся переключать раскладку – уже не очень удобно. Ну, или в Krusader'е Alt+s – «Settings» и прочие обозначения уже привычны; как это будет по-русски, мне даже страшно подумать.


А вот проверка орфографии – хотя бы от элементарных опечаток – необходима. Её в Kate обеспечивает aspell (или ispell? всё время их путаю). К ним надо локальные настройки скачивать. В Либреофисе – hunspell, к нему тоже надо словари. Ну и словари для Firefox – отдельная песня.

Итого, вместе с самим Либреофисом и Firefox'ом команда установки получится:


#(Вариант 2)
$ sudo apt install xinit openbox obmenu tint2 xxkb wpasupplicant wireless-tools \
krusader kate krename kdiff3 unrar konsole libreoffice firefox \
hunspell-ru aspell-ru firefox-locale-ru libreoffice-l10n-ru geany gmrun mc mpv

Совсем забыл про mc – его в Убунту-сервере по умолчанию нет, и я его поставил первым, ещё в голой консоли. Geany – для страховки: не с любым файлом удобно работать в Kate.

«Зачем же тебе l10n-ru, если тебе не нужна русификация интерфейса?» – обязательно спросит, гаденько усмехаясь, наблюдательный линуксоид. – Не для себя. Это моя старая боль в спине (или ниже?): установишь кому-то в очередной раз линукс – и тут же вопли: я ничего не понимаю! тут всё не по русски! Вот у меня уже и выработался рефлекс, можно сказать. Хотя вряд ли, конечно, при уводе очередного клиента с Виндовс я буду ставить ему OpenBox. Но готовиться надо: иногда попадаются пользователи, совершенно не способные постоять за себя и готовые послушно заучивать все эти Alt+F2 и Win+w.


Запуск программ


Gmrun нужен, чтобы вызывать программы не мышкой из списка в меню, а непосредственно по Alt+F2, для чего в файл ~/.config/openbox/rc.xml должно быть, конечно, записано:


<keybind key="A-F2">
	<action name="Execute">
		<command>gmrun</command>
	</action>
</keybind>

Например, захотите вы компьютеру сказать shutup! shutdown -h 0 – вот и Alt+F2 пригодится. Конечно, не очень удобно для вызова программы полностью набирать её название. В Gmrun по умолчанию работает автодополнение названий программ при нажатии клавиши Tab. Это поведение можно изменить – чтобы подсказки выскакивали сразу и сами, без Tab. Для этого надо создать в домашней папке файл .gmrunrc и записать в него строку: TabTimeout = 1. В этом же файле можно указать некоторые другие настройки; полный их список можно посмотреть в файле /etc/gmrunrc; а лучше скопировать этот файл в ~/.gmrunrc и внести на новом месте нужные изменения.


Gmrun Alt+F2 с автодополнением программ – это, в сущности, замена вызова меню по Alt+F3 в XFCE или Alt+F1 в KDE, только без нудного лазанья по ответвлениям вида «Настройки», «Система», «Интернет»… К сожалению, собственных «actions» OpenBox'а там нет. Например, нельзя через Gmrun вызвать команду Exit – выгрузить сам OpenBox и вернуться в консоль. Или Restart – обновить конфигурацию после правки конфигов. Поэтому несколько команд всё равно приходится заучивать отдельно: Ctrl+Alt+r – Restart, Ctrl+Alt+0 – Exit. А чтобы они работали, надо добавить в файл ~/.config/openbox/rc.xml следующие записи:


<keybind key="C-A-r">
	<action name="Restart"/>
</keybind>
<keybind key="C-A-0">
	<action name="Exit"/>
</keybind>

Монтирование флэшек и локальных дисков


Возможно, такие штатные менеджеры, как Thunar или PCManFM умеют монтировать флэшки. Или даже авто-монтировать при вставке. Мой Krusader в «минимальном» OpenBox'е не осилил: устройство он показывает, предлагает смонтировать, но потом говорит, прав не хватает. В режиме рута монтирует, но русские буквы отображаются вопросиками. То есть нужно, видимо, что-то ещё там скриптами подстраивать или дополнительными утилитами. Я решил проще – добавил в /etc/fstab две строчки:


/dev/sdb1 /mnt/fleshka1 vfat noauto,user,rw,codepage=866,iocharset=utf8 0 2
/dev/sdc1 /mnt/fleshka2 vfat noauto,user,rw,codepage=866,iocharset=utf8 0 2

Наверное, надо ещё и sdb2 на всякий случай, но мне для моих флэшек хватает. Теперь Krusader монтирует и отмонтирует вставляемые флэшки правильно. Если у вас есть нужные для работы дополнительные разделы на локальных дисках, их тоже лучше сразу прописать в /etc/fstab.


Заключение


Остался вопрос: зачем в конце получившейся команды установки OpenBox (Вариант 2) написано mpv? С учётом того что мне ещё надо настраивать на моём Убунту сервере LAMP или QEMU, этот вопрос кажется мне каким-то мелким, не стоящим внимания.


Гораздо интереснее узнать, в чём я ошибся в своей настройке OpenBox и какие варианты настроек ещё бывают; что я забыл. Скажем, иногда надо видеть два окна сразу — например, рисунок клавиатуры и текстовый редактор (для изучения «слепого» набора). Можно ведь аккуратно разместить эти окна на экране клавиатурными сокращениями. А потом как-то заставить OpenBox запомнить это расположение окон. И вообще сохранить всю сессию. То есть тут есть над чем работать.


P.S. Чуть не забыл: если вы не используете NetworkManager, строчку auto wlp1s0 в файле /etc/network/interfaces лучше закомментировать и использовать для подключения к сети команду в консоли:


sudo ifdown wlp1s0 && sudo ifup -v wlp1s0

(Вместо wlp1s0 — название вашего беспроводного интерфейса). Иначе загрузка Убунту может «зависнуть» минут на 5 в поисках несуществующей точки доступа к wi-fi.


UPD. Флешки монтировать руками, конечно, довольно неудобно. В итоге решил эту проблему установкой pcmanfm: видимо, он устанавливает необходимые утилиты, и после его установки krusader тоже нормально монтирует подключаемые устройства.


Заодно и network-manager установил. Но польза от периода работы без него осталась: теперь я знаю, как подробно посмотреть, почему не подключается wi-fi (а с network-manager'ом щёлкаешь по иконке — и ничего не происходит, и не видно, где проблема).


Ещё в процессе работы сформировался набор приложений, которые постепенно доустанавливались. В итоге общая команда установки на Убунту Openbox, утилит и рабочих программ сильно выросла. Я разделил её на две части. После выполнения первой части можно выдернуть сетевой провод и дальше работать по wi-fi.


Установка Openbox на Убунту, первая половина:



sudo apt install xinit openbox tint2 xxkb pcmanfm mc wpasupplicant wireless-tools \
network-manager gmrun 

Скорее всего, wpasupplicant и wireless-tools не нужно устанавливать отдельно, если устанавливаем сразу network-manager — это как бы варианты.


Установка Openbox на Убунту, вторая половина:



sudo apt install language-pack-gnome-ru-base language-pack-gnome-ru synaptic \
gdebi geany xarchiver konsole krusader krename kdiff3 kate zip unrar \
alsa-utils vlc okular gwenview kchmviewer kdesudo gnome-screenshot kde-cli-tools gcc \
zeal lm-sensors cups libapache2-mpm-itk php php-xml php-mysql firefox libreoffice \
calibre firefox-locale-ru libreoffice-l10n-ru hunspell hunspell-ru aspell aspell-ru

В arch linux нужно ещё отдельно устанавливать пакет kio-extras, иначе не будет работать sftp в Krusader'е.


Synaptic удобен для поиска — когда точно не знаешь название программы. Lm-sensors установил от страха — когда вдруг показалось, что ноутбук греется. И ещё: не ищите замечательный справочник zeal (ссылку на который дал Shtucer) на других линукс-платформах — кажется, такой готовый пакет есть только для Убунту.

Tags:
Hubs:
+17
Comments 66
Comments Comments 66

Articles