Максимальный минимум: Создаем гиковый десктоп из подручных материаловСовременные дистрибутивы Linux чрезмерно дружелюбны к новичкам и совершенно неэффективны в повседневном использовании. Следуя же нашим инструкциям, ты получишь минималистическое, быстрое и удобное окружение рабочего стола, как у многих гиков. Устанавливаем дисплейный менеджерПервый шаг на пути к новому десктопу — установка дисплейного менеджера (DM), в задачи которого входит формирование графического окна с полями для ввода имени и пароля, а также запуск всех остальных компонентов DE. Наиболее продвинутые и удобные DM распространяются в комплекте с популярными десктопными средами, такими как KDE и Gnome, но в силу своей раздутости и адского количества зависимостей для нашего минималистичного десктопа они подходят плохо. Поэтому я выбрал легкий и удобный дисплейный менеджер SLiM (Simple LogIn Manager). SLiM доступен в основном репозитории Ubuntu, поэтому его легко установить с помощью любого apt-клиента. В ходе установки необходимо согласиться с предложением сделать SLiM менеджером по умолчанию. Какой-либо дополнительной настройки не требуется, но для удобства лучше изменить несколько строк конфигурационного файла. Открываем /etc/slim.conf, находим в самом начале опцию default_path и добавляем в конец ее значения следующую запись (опции и значения разделены пробелом):
Эта строка позволит использовать административные команды внутри DE. Далее находим опцию sessions и указываем в качестве ее значения строку "default,awesome,xterm". Так у нас будет всего три типа сессии: прошлая, менеджер окон awesome и голый xterm (вместо кучи различных WM). Выбираем менеджер оконМенеджер окон — ключевой компонент любого рабочего стола. От его выбора зависит не только то, как будет выглядеть твой десктоп, но и множество других характеристик: способ расположения окон на экране, наличие или отсутствие панелей, системы меню, возможности заскриптовать действия, поддержка стандартов freedesktop, наличие трея и многое другое. Большинство современных менеджеров окон похожи друг на друга и предлагают пользователю сходный функционал. Fluxbox, windowmaker, kwm, compiz и огромное количество других WM реализуют одну и ту же модель перекрывающихся окон, более тридцати лет назад предложенную компанией Xerox. Между тем многие пользователи уже давно заметили, что модель неперекрывающихся окон (каждое из которых растягивается на все доступное пространство экрана) гораздо более удобна для восприятия информации и управления окнами. Менеджеры окон, реализующие такую модель, называются тайловыми (от английского слова tail — плитка, черепица). Они не столь популярны, как остальные, но по-настоящему ценятся в среде гиков. Всего существует около десятка тайловых WM, среди которых есть как совершенно минималистичные (например, ratpoison и dwm), так и очень функциональные (ion3, awesome). Более того, быть тайловым умеет даже менеджер окон kwm (начиная с KDE 4.5). Для гиковского рабочего стола я выбрал менеджер окон awesome. Он функционален и настраиваем, имеет все необходимое для жизни, включая панель управления, меню и трей, но самое главное — awesome способен работать в разных режимах, начиная от классического (стандартные перекрывающиеся окна) и заканчивая десятком режимов с неперекрывающимися окнами. Как и все остальное, awesome доступен в репозитории Ubuntu, поэтому его можно установить с помощью apt-get:
Пакет awesome-extra содержит дополнительные модули awesome, они нам понадобятся при настройке, которую мы произведем в одном из следующих разделов. Настраиваем эмулятор терминалаТрудно представить себе UNIX-десктоп без эмулятора терминала, а гиковый десктоп — тем более. Ни один продвинутый пользователь и дня не проживет без терминала, набора самопальных скриптов и mc, поэтому к выбору замены xterm нужно подходить со всей серьезностью. Существует масса различных эмуляторов терминалов, однако наиболее удобным в использовании и непритязательным к системным ресурсам я считаю терминал rxvt-unicode. Он умеет все, что только может потребоваться от терминала, и почти не имеет зависимостей. Кроме того, нам понадобится внятный моноширинный шрифт, удобочитаемый и не режущий глаз. На эту роль лучше всего подходит классический консольный шрифт terminus, уже многие годы восхваляемый UNIX-старожилами. Устанавливаем необходимые компоненты, плюс (во избежание путаницы) удаляем все остальные эмуляторы терминала из системы:
Создаем файл ~/.Xdefaults и пишем в него настройки:
Все. Осталось только установить менеджер сетевых подключений, и можно считать, что каркас будущего десктопа готов. Менеджер сетевых подключенийБез интернета жить нельзя, поэтому мы должны разобраться с тем, как собираемся к нему подключаться. По умолчанию в Ubuntu установлен менеджер соединений NetworkManager, но после переезда в собственный DE перед нами встанет выбор, продолжать ли использовать его, поменять на другой или настраивать все вручную. Я предлагаю остановиться на менеджере подключений wicd, который мне кажется более удобным и стабильным, а к тому же имеет консольный интерфейс. Установим его, заодно удалив NetworkManager:
Установщик автоматически пропишет wicd в автозапуск, поэтому после перезагрузки нам останется только запустить клиент. Собираем все вместеТеперь у нас есть четыре основных компонента рабочего стола, поэтому мы уже можем начать его использовать. Проще всего это сделать, просто перезагрузив машину. После этого на экране должно появиться окно slim. Нажимаем <F1> (чтобы выбрать сессию awesome), вводим имя и пароль. На экране появится awesome в своем дефолтовом виде. Начинаем медитировать. Строка сверху — это статус-бар, его задача — показывать текущее состояние менеджера окон и управлять им (несмотря на ориентированность на клавиатурное управление, awesome можно контролировать с помощью мыши). Квадратный значок с его левой стороны — стандартная кнопка меню, с помощью которой можно запускать приложения и управлять WM. Меню можно вызвать без использования мыши, просто нажав комбинацию <Win+W>. Последовательность цифр от 1 до 9, расположенная сразу за кнопкой меню — это так называемые теги, аналоги виртуальных рабочих столов в других WM. Между ними можно переключаться мышкой или комбинацией <Win+номер>. С правой стороны расположен индикатор текущей раскладки окон (о нем мы поговорим чуть позже), перед ним — часы, а перед часами — трей (он не виден, пока в него не будет свернуто приложение). Между списком тегов и треем располагается стандартный таск-лист, показывающий открытые в данный момент окна (приложения). Сами приложения можно запускать тремя разными способами:
Переключение между приложениями с одним тегом (то есть расположенными на одном виртуальном рабочем столе) осуществляется с помощью комбинаций <Win+J> (вперед), <Win+K> (назад) и <Win+Tab> (между двумя последними). По умолчанию awesome работает в классическом режиме, позволяя таскать окна по экрану и накладывать их друг на друга. Однако все изменится после нажатия комбинации <Win+пробел>, которая переведет менеджер окон в тайловый режим: все окна окажутся на экране, деля его между собой. Если окно одно — оно займет весь экран, два окна поделят экран на две части по вертикали, три — на три части и так далее. Awesome умеет располагать окна более чем десятком различных способов, переключаться между которыми можно с помощью клика по индикатору раскладки в правой стороне статус-бара (левый клик — вперед, правый — назад), либо с помощью все той же клавиатурной комбинации <Win+пробел> (вперед) или <Win+Shift+пробел> (назад). Очень трудно объяснить различия между всеми раскладками, поэтому рекомендую хорошенько поэкспериментировать. Добавлю лишь, что наиболее практичными я считаю три из них:
В любой момент выбранное окно можно минимизировать с помощью клавиатурной комбинации <Win+N>, растянуть на весь экран с помощью <Win+M>, сделать плавающим, нажав <Win+Ctrl+Пробел> или закрыть — <Win+Shift+C>. Ширину окон можно изменять с помощью <Win+H> (больше) и <Win+L> (меньше). Этой информации будет вполне достаточно, чтобы приступить к использованию awesome, но для того, чтобы почувствовать всю его мощь, не обойтись без правильного конфигурационного файла. В awesome используется язык сценариев lua, с помощью которого происходит как настройка менеджера окон под свои нужды, так и его расширение (на lua можно написать плагин практически любой сложности и прозрачно интегрировать его в менеджер окон). И хотя lua — очень простой язык (он напоминает сильно урезанный JavaScript), написанные на нем конфигурационные файлы получаются довольно длинными и сильно запутанными. Поэтому я уже подготовил хороший конфигурационный файл и выложил его на нашем диске. Ниже мы кратко пробежимся по его основным разделам. Далее происходит инициализация темы менеджера окон с помощью функции beautiful.init. Я поменял стандартную тему на более светлую, но ты можешь выбрать другую, просто указав каталог темы в качестве аргумента функции (по умолчанию темы awesome лежат в каталоге /usr/share/awesome/themes/). Ниже происходит установка значений стандартных опций, таких как дефолтовый эмулятор терминала, редактор, modkey (это клавиша, присутствующая во всех клавиатурных комбинациях awesome — по умолчанию Win, обозначенная в конфиге как Mod4). Далее идет перечисление доступных раскладок окон, названия стандартных тегов, инициализация меню, статус-бара, виджетов, установка стандартных клавиатурных комбинаций (кстати, я поменял комбинацию закрытия окна на <Ctrl+Q>, она мне кажется более удобной) и индивидуальные настройки приложений. В целом журнале не хватит места, чтобы описать, как все это работает, поэтому я остановлюсь только на двух важных моментах: виджетах и индивидуальных настройках приложений. В приведенном конфиге статус-бар отображает пять виджетов: скорость скачивания/загрузки по сети (для Wi-Fi), нагрузка на процессор, заполненность памяти, уровень заряда батареи и текущий уровень громкости (кстати, по нему можно кликать, чтобы уменьшать и увеличивать громкость). Ты можешь удалить или добавить новые виджеты, но тебе придется самому разбираться, как это сделать (благо в интернете есть немало руководств на русском, посвященных этому вопросу). Раздел конфига, обозначенный комментарием «-- {{{ Rules», предназначен для настройки поведения окон отдельно взятых приложений. Его особенно удобно использовать, чтобы сделать окна выбранных приложений по умолчанию плавающими. Например, если мы хотим, чтобы окно плеера audacious не растягивалось на весь экран, а всегда открывалось, как в обычных WM, то мы должны добавить следующий блок в этот раздел (сразу за предыдущей подобной записью):
Имя класса (в данном случае «Audacious2») можно получить, введя в терминале команду «xprop | grep WM_CLASS» и кликнув по окну нужного приложения. С менеджером окон все. Теперь необходимо настроить автозапуск приложений (нам нужно запускать хотя бы клиент wicd), переключение раскладки клавиатуры (отказавшись от DE, мы потеряли эту возможность) и автомонтирование сменных накопителей (еще одна вкусность DE). Первая задача самая простая. Все, что требуется сделать для ее решения, это просто прописать нужные команды в файл ~/.xsession, добавив в их конец знак '&'. Таким же образом решается и задача настройки переключения клавиатуры, а сам ~/.xsession в окончательном виде приобретает следующий вид:
Автомонтирование флешек проще всего реализовать с помощью демона halevt, который работает абсолютно прозрачно для пользователя и не требует настройки. Достаточно установить одноименный пакет в систему и добавить запуск демона в тот же .xsession (строка «pgrep halevt >> /dev/null || halevt &» прямо перед «exec awesome») и убрать его из автозапуска на системном уровне:
Флешки будут монтироваться с флагом sync, поэтому перед извлечением их не нужно размонтировать. Найти содержимое можно в каталоге /media/метка-фс (или /media/disk, если ФС не имеет метки). БраузерРабочий стол без браузера практически бесполезен, поэтому самое время подумать о том, как мы собираемся открывать веб-сайты. В UNIX существует огромное количество всевозможных браузеров, начиная от минималистичных текстовых и заканчивая огромными тяжелыми комбайнами с множеством зависимостей. Однако среди них есть только один браузер, идеально вписывающийся в наше графическое окружение. Браузер uzbl (от английского слова usable — удобный) появился как идея создать веб-обозреватель, неуклонно следуя традициям UNIX, поэтому то, что получилось в результате, выглядит очень непохожим на все остальные браузеры. Во-первых, uzbl состоит из нескольких независимых программ, каждая из которых выполняет только одну функцию: uzbl-core отвечает за загрузку и рендеринг страниц (в его недрах движок WebKit), uzbl-cookie-daemon сохраняет и отдает cookie, uzbl-browser создает графический интерфейс, uzbl-tabbed добавляет к интерфейсу табы. Все остальные компоненты реализованы в виде подключаемых скриптов. Интерфейс браузера очень скромный и кроме статус-бара не содержит ни кнопок, ни адресной строки. Все управление происходит либо через минимальное меню, доступное по нажатию правой кнопки мыши, либо с помощью специальной системы команд и закрепленных за ними быстрых клавиш. Во многом команды и быстрые клавиши похожи на свои аналоги в редакторе Vim, поэтому те, кто предпочитают этот текстовый редактор, быстро освоятся в uzbl. Для остальных поясню: большинство действий в uzbl совершается с помощью одинарных нажатий на клавишу. Например, клавиша <r> перезагружает страницу, а <o> — открывает новую. Они существенно удобнее стандартных клавиатурных комбинаций с задействованием клавиши <Ctrl>, но накладывают свой отпечаток на стиль работы с браузером: каждый раз, когда придется использовать формы веб-страницы для ввода каких-либо данных, придется нажимать клавишу <i>, которая переведет браузер в так называемый «режим ввода», при этом все горячие клавиши отключаются, и клавиатура начинает работать в обычном режиме. Выход из режима ввода осуществляется нажатием <Esc>. Браузер имеет довольно большое количество команд, поэтому их придется заучить. Наиболее используемые команды относятся к навигации и работе с текущей страницей: uzbl: навигация по странице
На втором месте находятся команды, предназначенные для навигации по сайтам: uzbl: навигация по сайтам
Особое место занимают команды для перехода между табами (они работают только в uzbl-tabbed): uzbl: переход между табами
Кроме всего перечисленного, uzbl имеет довольно интересную систему закладок, навигация по которой осуществляется с помощью меток. Ты просто нажимаешь <Ctrl+b>, вводишь метку, и текущая страница сохраняется в закладках. Вновь открыть ее можно, нажав <u>, введя имя метки и выбрав страницу с помощью клавиши <Tab> (эта функциональность реализована с помощью dmenu, который содержится в пакете suckless-tools). Клавиша <U> позволяет таким же образом загрузить страницу из истории. Для выхода из браузера используется двойное нажатие клавиши <Z>. Настройки браузера хранятся в файле .config/uzbl/config, исправленный вариант которого есть на диске (кстати, я убрал все настройки, связанные с табами, так как awesome сам предоставляет такую функциональность). Он прост в понимании и достаточно хорошо документирован, поэтому разобраться будет нетрудно. Что дальше?Теперь у нас есть базовое окружение рабочего стола, который, тем не менее, еще нельзя использовать каждодневно. Для нормального существования понадобится ворох приложений. Опытным путем было выяснено, что с рабочим столом лучше всего сочетается следующее ПО:
Info
Links
|