My first awesome/ru

Это небольшое руководство предназначено для людей, которые никогда не использовали тайлинговые менеджеры окон и не обладают продвинутыми способностями и/или желанием глубоко разбираться во всём этом. Мы исследуем замечательный мир awesome шаг за шагом и в конце концов придем к работающему рабочему столу, попутно получив базовые знания в настройке awesome. Мы начнем с дефолтного файла rc.lua, который устанавливается вместе с awesome, поиграем с ним немного и попробуем сделать его более красивым и полезным с помощью виджетов. Для этого руководства вам не нужны никакие умения программирования кроме использования текстового редактора.

Исследование Awesome
Я предполагаю, что вы уже установили awesome с помощью пакетного менеджера или скомпилировали из исходников. Теперь добавьте строку exec awesome в ваш ~/.xinitrc (Если у вас нет такого файла и вы пользуетесь gdm/xdm/иным менеджером дисплеев, пропустите этот пункт). Как было сказано выше, awesome предоставляет дефолтный файл конфигурации, от которого мы будем отталкиваться. Вы можете найти этот файл под названием rc.lua в /etc/xdg/awesome/. Скопируйте его в ~/.config/awesome/ и запускайте Иксы.

''Примечание: awesome сначала грузит файл из пользовательской директории, а потом уже из /etc. То есть, если вы испортите свой пользовательский rc.lua, то awesome загрузится со второго, дефолтного и правильного. Поэтому совет - не редактируйте файл в /etc/xdg/awesome, иначе можете убить awesome совсем!''

Переместите курсор мыши в левый верхний угол и нажмите по иконке awesome. Откроется небольшое меню. Просмотрите пункты меню, потом нажмите на иконку снова чтобы закрыть его. Справа от иконки вы увидите цифры от 1 до 9. Это ваши теги (или рабочие столы). Вы можете щёлкнуть по одному из них, но ничего не изменится (так как мы еще не открыли ни одной программы). Справа вверху вы можете увидеть дату/время и иконку, которая отображает текущее расположение окон (layout). Вы также можете кликнуть по этой иконке чтобы изменить активное расположение.

Одним из преимуществ awesome перед другими тайлинговыми оконными менеджерами является хорошая поддержка мыши. Если пожелаете, awesome может вести себя как полноценный менеджер плавающих окон (почти как openbox). Но на время этого базового руководства мы сфокусируемся в основном на управлении с клавиатуры.

Давайте откроем терминал: нажмите Mod4+Enter. Mod4 - это ваша кнопка "Windows", или "Super", находящаяся между Ctrl и Alt. Вы сможете по желанию изменить ваш modkey, но мы вернемся к этому позже. Итак, открылось окно xterm. Конечно же, вы сможете заменить его на другой ваш любимый терминал (опять таки, чуть позже). Теперь нажмите Mod4+Shift+c чтобы закрыть терминал. Эта команда, которая позволяет вам закрыть любое приложение. В awesome есть очень элегантный способ запускать программы: нажать Mod4+r (это аналог Shift+F2 в Gnome, например). Вы увидите надпись Run: вверху на панели awesome. Кроме простого введения комманды, вы также можете дополнять ее Tab-ом.

Откройте еще одно приложение. И еще одно. Они нужны нам чтобы проверить тайлинг-возможности. Теперь вы можете нажимать 'Mod4+Space' чтобы просмотреть все возможные расположения окон. Заметьте, как иконка layout'а соответствует тому как программы расположены на экране.

Попробуйте комбинации Mod4+h, Mod4+l, Mod4+Shift+h и Mod4+Shift+l для изменения размера окна. Вы также можете изменить размер окна, зажав Mod4 и правую клавишу мыши (Button3). Mod4+f развернет текущее окно на весь экран.

С помощью Mod4+Number (1-9) вы можете перемещаться между тегами. Комбинация Mod4+Shift+Number (1-9) посылает текущее окно на тег, указаный цифрой. Mod+Left и Mod+Right перемещают вас по тегам влево и вправо соответственно.

Используйте Mod4+k и Mod4+j чтобы переключаться между окнами внутри одного тега. Также это можно сделать просто наведя курсором мыши на нужное окно. Эта возможность называется sloppy focus и если она вам не нравится, ее можно будет позже отключить.

Чтобы выйти из awesome, нажмите Mod4+Shift+q. Но не спешите делать это, нам следует еще многому научится.

Прочитать о всех комбинациях клавиш можно в man-странице awesome (man awesome в консоли). Но учтите - все комбинации клавиш вы сможете вскоре изменить, поэтому не утруждайте себя запоминаем всех комбинаций (а особенно неудобных и непривычных для вас) сейчас.

Изменение темы
Вместе с awesome поставляются три темы: default, sky, zenburn. Существует также множество пользовательских тем, которые можно найти на странице Темы Beautiful, если английский для вас не составляет особой проблемы, смотрите оригинальную страницу с темами  Theme Beautiful.

Чтобы изменить тему, откройте ваш файл rc.lua (напомним, тот, который находится в директории ~/.config/awesome/) и измените эту строку возле начала файла:

beautiful.init("/usr/share/awesome/themes/default/theme.lua")

В этом руководстве, мы остановимся на теме по умолчанию. Развернутую информацию о темах в awesome можно найти на странице Beautiful.

Изменение фонового изображения
Фоновое изображение вашего рабочего стола задается в файле темы (theme.lua в директории вашей темы). Чтобы изменить изображение, исправьте эту строку в файле темы:

theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/background.png" }

Персонализация тегов
Для оптимизации вашего рабочего процесса, вы возможно захотите задать тегам свои имена и установить некоторым из них специфические layout-режимы. Откройте ваш rc.lua и найдите секцию layout-ов. Она должна выглядеть следующим образом:

layouts = {     awful.layout.suit.tile, awful.layout.suit.tile.left, awful.layout.suit.tile.bottom, awful.layout.suit.tile.top, awful.layout.suit.fair, awful.layout.suit.fair.horizontal, awful.layout.suit.spiral, awful.layout.suit.spiral.dwindle, awful.layout.suit.max, awful.layout.suit.max.fullscreen, awful.layout.suit.magnifier, awful.layout.suit.floating }

Здесь указаны все возможные варианты расположения окон, которые присутствуют в awesome. Лично мне не нужные некоторые расположения (например, спиральное). Мы можете закомментировать или удадить некоторые из них если считаете, что никогда не будете их использовать.

Это мое личное мнение, и оно может отличаться от вашего, поэтому сначала тщательно протестируйте каждый layout. Пока я оставлю их без изменений.

Теперь мы хотим дать имя каждому тегу. Вот как выглядит участок конфига с именами тегов по умолчанию (от 1 до 9):

--

Мы хотим изменить имена тегов и назначить каждому из них свой layout. По умолчанию, на всех тегах изначально установлено плавающее расположение окон. Замените верхний участок кода следующим:

--



Мы используем массив layouts чтобы задать расположение окон каждому тегу. Число в квадратных скобках - это номер layout-а. В этом примере мы устанавливаем тегу main расположение tile, тегу www - расположение tile.left, im - плавающее расположение и т.д. Вы можете настроить это как вам угодно.

Пока мы все еще в файле конфигурации, мы также можем изменить терминал по умолчанию, текстовый редактор и назначить другую клавишу в качестве modkey:

terminal = "xterm" editor = os.getenv("EDITOR") or "nano" modkey = "Mod4"

Измените эти параметры по вашему вкусу, они говорят сами за себя.

Сохраните ваш файл rc.lua и перезапустите awesome (можно выполнить из меню в левом верхнем углу - awesome - restart). Теперь ваш экран должен напоминать скриншот справа. Обратите внимание, что awesome очень чувствителен к ошибкам в конфигурационном файле. Даже небольшие ошибки могут прекратить его работу. Вы можете уберечь себя от некоторых проблем, связанных с неправильным конфигом, проверив файл на синтаксические ошибки с помощью консольной комманды awesome -k.

Добавление виджетов
Теперь мы хотим добавить некоторую полезную информацию на нашу панель. Это можно сделать с помощью виджетов. Примером таких виджетов могут послужить отображение использования памяти, температуры CPU, заряда батарее и т.д. Вы можете узнать всё о виджетах и их создании на странице Виджеты в awesome.

Некоторые пользователи создают целые библиотеки виджетов чтобы упростить создание виджетов для других. Существует множетсво подобных библиотек, но в этом руководстве мы остановимся на библиотеке Vicious, так как она предоставляет всё необходимое нам. Как установить Vicious, описывается в этой статье, также Vicious устанавливается с пакетом awesome-extra.

Теперь, когда Vicious установлена, добавьте следующую строчку в начало вашего rc.lua:

vicious = require("vicious")

Нам нужен виджет, который будет отображать текущую скорость сетевой загрузки и выгрузки. Vicious предоставляет нам netwidget - именно то, что нам нужно.

Добавьте этот код в ваш rc.lua после "-- {{{ Wibox" и до "textclock":

-- {{{ Wibox -- Network usage widget -- Initialize widget netwidget = widget({ type = "textbox" }) -- Register widget vicious.register(netwidget, vicious.widgets.net, ' ${eth0 down_kb} ${eth0 up_kb} ', 3)

Этим мы создали и инициализировали виджет. Но чтобы увидеть его, нам нужно сначала добавить его на наш wibox (wibox - контейнер для виджетов в awesome). После добавления netwidget ваша wibox-секция должна выглядеть следующим образом:

-- Create the wibox mywibox[s] = awful.wibox({ position = "top", screen = s }) -- Add widgets to the wibox - order matters mywibox[s].widgets = { {             mylauncher, mytaglist[s], mypromptbox[s], layout = awful.widget.layout.horizontal.leftright },         mylayoutbox[s], mytextclock, netwidget,      --   Добавьте это и не забудьте запятую в конце! s == 1 and mysystray or nil, mytasklist[s], layout = awful.widget.layout.horizontal.rightleft } end -- }}}

Теперь перегрузите awesome и оцените результат. Также вы можете добавить виджетам красивые иконки (некоторые из них можно найти на странице Значки для Awesome). Чтобы отобразить иконки, сначала нужно задать их в нашем файле темы. Откройте ваш файл темы (theme.lua) и добавьте в него следующее:

theme.widget_net = "/path/to/icons/down.png" theme.widget_netup = "/patch/icons/icons/up.png"

Не забудьте изменить /path/to/icons/ на реальный путь к иконкам. Обычно это ~/.config/awesome/icons/.

Теперь добавьте следующие строки в ваш rc.lua туда же, где вы вставили инициализацию вашего виджета:

dnicon = widget({ type = "imagebox" }) upicon = widget({ type = "imagebox" }) dnicon.image = image(beautiful.widget_net) upicon.image = image(beautiful.widget_netup)

Теперь добавьте эти виджеты-иконки на wibox, сразу до и после вашего "netwidget". Это будет выглядеть так:

..   upicon, netwidget, dnicon, ..

Перегрузите awesome чтобы увидеть окончательный результат.



Последнее, что мы хотим сделать - это добавить разделитель между netwidget-ом и часами. Мы сделаем это с помощью обычного текстового виджета. Добавьте эти строки в rc.lua туда же, где находится ваш предыдущий виджет:

Awsome < 3.5 separator = widget({ type = "textbox" }) separator.text = " :: " Awesome 3.5 separator = wibox.widget.textbox separator:set_text(" :: ")

И теперь разместим разделитель на wibox-е:

..   separator, upicon, netwidget, dnicon, ..

На этом всё. Вы научились как добавлять виджеты на вашу панель awesome. Прочтите статью Vicious и файл Readme чтобы узнать как добавлять остальные виджеты. Также вы можете ознакомиться с библиотекой виджетов Obvious, которая также достаточно проста в использовании.

Что дальше?
Теперь вы можете самостоятельно изучать богатые возможности самого увлекательного тайлингового менеджера awesome. В этом вам будет помогать эта wiki, которая является самым полным информационным ресурсом по awesome. Большинство ответов на ваши вопросы вы можете получить прямо на главной странице. Если вы не нашли ответ на свой вопрос на вики, смело обращайтесь за помощью на почтовую рассылку awesome@naquadah.org (чтобы подписаться, отправьте письмо на awesome-subscribe@naquadah.org) - сообщество awesome всегда радо помочь новичкам (правда исключительно на английском). Также вы можете написать на русском автору перевода данной статьи на почту yakushev.alex{ear}gmail.com.

Удачи вам в освоении awesome!