Продолжим прошлую тему, но уже для Unix-систем, на примере классических представителей — awesome и Xmonad.
Парадигма неперекрывающихся окон при некотором навыке оказывается удобнее и очень популярна в среде так называемых гиков — пользователей, «повёрнутых» на техницизме. Согласно этой парадигме, окна растягиваются на свободное место экрана, образуя мозаику. При этом компоновкой окон на экране занимается не пользователь, а сам менеджер. Однако, пользователь вправе задать схему размещения окон.
Название происходит от английского слова tile (мозаика), такие оконные менеджеры называются тайлинговыми. Помимо мозаики, тайлинговые менеджеры обеспечивают распахивание окон на весь экран, позволяя клавиатурную навигацию между ними. Но главное преимущество тайлинговых менеджеров состоит в их чрезвычайной легковесности и доступности красивейшего конфигурирования «под себя».
Среди юниксовых тайлинговых менеджеров ИМХО наиболее популярен и продвинут awesome, написанный на языке Lua.
Одним из главных преимуществ awesome перед другими тайлинговыми менеджерами является хорошая поддержка мыши
Но чтобы составить собственное впечатление о тайлинге, лучше всего не разглядывать чужие скриншоты, а самому попробовать awesome.
Не бойтесь, вряд ли вы что-то сломаете и наверняка сможете вернуться к своему любимому десктопу.
Это элементарно, потому что всё есть в репозиториях. В убунтуподобных ОС менеджер awesome устанавливается командой
sudo apt-get install awesome awesome-extra
Попутно установится ещё несколько пакетов, обеспечивающих удовлетворение зависимостей. На дату написания статьи из репозиториев грузилась версия 3.4.9
/etc/xdg/awesome/rc.lua
. Вам надо создать файл пользовательской конфигурации ~/.config/awesome/rc.lua
. Дело в том, что awesome, стартуя, считывает настройки именно из ~/.config/awesome/rc.lua
, но если этот файл отсутствует или повреждён, то он обращается к дефолтному файлу.Поэтому сначала надо создать пользовательский директорий:
sudo mkdir ~/.config/awesome/
и скопировать туда дефолтный файл:
sudo cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
Редактировать в дальнейшем надо именно пользовательский, а не дефолтный файл, опасаясь последний испортить, так как из-за возможных ошибок есть риск потерять власть над менеджером awesome.
Скорее всего, окнами у вас управляет GNOME Display Manager или KDE Display Manager. Но не спешите останавливать его, освобождая ~/.xinitrc
, содержащий скрипт запуска startx
. Если такого файла нет, то его надо создать командой:
sudo touch ~/. Xinitrc
и затем с помощью любого редактора (gedit, nano, kate и т.д.) наполнить содержимым, вставив строчку exec awesome
и закомментировав остальное:
#!/bin/sh ...... exec awesome exit 0
Сделайте этот сценарий исполняемым:
sudo chmod +x ~/.xinitrc
Закрываем, как обычно, приложения, данные которых вам важно сохранить. Переходим в true-терминал, а не его эмулятор: нажимаем Ctrl+Alt+F2, логинимся и вводим свой обычный пароль суперпользователя (цифры вводите основными клавишами!).
Останавливаем текущий менеджер. Например, в Ubuntu 11.04 это выполняется командой:
sudo service gdm stop
А в Ubuntu 11.10 несколько иной командой:
sudo service lightdm stop
и запускаем
sudo startx
По умолчанию будет использована тёмная тема default из директория /usr/share/awesome/themes
.
Учтите, настроенный по умолчанию awesome представляет собой не самое лучшее зрелище. В дальнейшем, если awesome у вас приживётся, новых тем можно накачать отсюда
Итак, awesome запущен. Видите в левом верхнем углу цифры от 1 до 9? Это так называемые тэги. Каждый тэг — это отдельный виртуальный рабочий стол. Каждый из них может содержать собственную мозаику из нескольких приложений или одно-единственное приложение, или не содержать ничего. Основная управляющая клавиша — это win, та, которая имеет логотип ОС Windows. Какой же Линукс без терминала?
Запустим его, нажав win + Enter, и вызовем мануал:
man awesome
В мануале клавиша win загадочно именуется как Mod4
, но win как-то привычнее. Там же в мануале подробно описаны и управляющие комбинации клавиш.
Перечислю основные:
Цифры надо нажимать на основной клавиатуре. Переключать тэги можно кликами мыши по ним или клавишами «влево-вправо», зажав клавишу win. Пора запустить какое-нибудь приложение. Щёлкаем левой кнопкой по желаемому тэгу и правой кнопкой вызываем меню приложений, которое очень похоже на стандартное гномовское, но составлено подробнее.
Например, идём Debian->Приложения->Офис, вызываем libreoffice и выбираем writer. Изменить размер любого окна (распахнуть и снова уменьшить) можно комбинацией win+f. Уменьшенное окно можно таскать по экрану, зажав клавишу win и левую кнопку мыши. Откройте в пределах одного и того же тэга ещё несколько приложений, но не распахивайте их на весь экран. Видите в правом верхнем углу экрана квадратик?
Это схема тайлинга. Пощёлкайте по нему и посмотрите, как изменяется мозаика приложений.
Ну как, понравилось? Честно говоря, когда я впервые увидел awesome в работе, то решил, что это очередной «мозговой выпот красноглазых». Но со временем я убедился, что парадигма тайлинга имеет право на жизнь.
Да, кстати, статью эту я писал, находясь как раз в awesome.
Это очень просто! Закрываем приложения, для которых важно сохранить данные, жмём правую кнопку мыши и выбираем выход из awesome. Вываливаемся в чёрный true-терминал. Всё,
Занимаем его своим штатным менеджером с помощью команды:
sudo service gdm start
или
sudo service lightdm start
в зависимости от версии ОС.
Я умышленно не затрагивал конфигурирование awesome «под себя» и вопросы написания экранных виджетов, иначе бы эта короткая статья превратилась в пространное эссе. В интернете полно подобных руководств. Если вам действительно понравился тайлинг, в частности, awesome, то стОит изучить Lua (он прост, как Бейсик) и подумать: а не снести ли вообще титульный менеджер окон вашей сборки Линукса и не сделать ли awesome менеджером, запускаемым по умолчанию?
Взамен даже на скромном компьютере вы получите стремительный десктоп, который можно совершенствовать до бесконечности
Правда стремительным он будет, если откажетесь от тяжеловесных приложений вроде Firefox, Google Chrome, VLC и др. и взамен их подберёте более лёгкие и быстрые, как, например, Midori, Arora, mplayer и проч. Кроме того, не все тяжеловесы корректно работают с awesome.
В заключение напомню, что начиная с версии 11.10 убунтуподобных ОС, не надо больше заморачиваться манипуляциями с файлом ~/.xinitrc
, выходить в true-терминал, гасить
Читатель уже, наверное, заметил необычность awesome — он написан на новомодном Lua, о котором я обязательно напишу серию статей его рассматривающих. Xmonad в этом плане также весьма и весьма примечателен — он в свою очередь был написан на не менее модном Haskell.
О'кей, описание Xmonad у меня будет очень коротким, потому как там всё практически аналогично вышерассмотренному. Но не упущу возможности развеять один миф, который очень часто можно о нём услышать от его восторженных почитателей: что, дескать:
«он написан на многоумном и чиста хакерском языке Haskell, и что для всего менеджера хватило пять сотен строк кода».
У меня есть, что ответить на эту легенду:
savgor:/tmp/xmonad-0.10/XMonad% wc -l * 267 Config.hs 425 Core.hs 192 Layout.hs 300 Main.hs 90 ManageHook.hs 535 Operations.hs 541 StackSet.hs 2350 total
Как видим, насчет «пяти сотен строк» — это всё враки, а вот во всём остальном — он действительно очень и очень неплох, поверьте. Со всем остальным не буду повторяться, его хорошее введение-описание советую почитать тута, а затем можно осилить и этот опус.
Напоследок напомню ещё две интересные лично для меня оболочки.
Это, во-первых, Stumpwm (is a tiling, keyboard driven X11 Window Manager written entirely in Common Lisp), и, во-вторых: широкоизвестный DWM — для всех любителей минимализма и строгости, где нет ничего лишнего, который можно считать продвинутым спецпространством для удобного отображения консоли, только с одним большим отличием — быстрым запуском GUI-приложений.
2 комментария
"если awesome у вас приживётся, новых тем можно накачать отсюда"
ссылка сломалась
awesome уж никак не написан на lua, на lua написаны расширения для него.
"sudo touch ~/. Xinitrc"
это вообще бред! создавать у себя в домашнем каталоге файл при помощи sudo?????? к тому же, если хочется запускать из gdm, то надо править не .xinitrc, а .xsession и тогда отпадет надобность в запуске через startx и остановке gdm.