awesome (Русский)
- awesome — это полностью настраиваемый современный оконный менеджер для Xorg. Он очень быстрый и расширяемый. Ориентирован на опытных пользователей, разработчиков, людей, занимающихся вычислениями и на тех, кто желает иметь полный контроль над графической средой.
Установка
Установите пакет awesome. Разрабатываемая версия доступна в пакете awesome-gitAUR, считается нестабильной и может иметь отличия в API настроек.
Запуск
Запустите awesome
с помощью xinit. Для того, чтобы использовать входящий в комплект файл xsession, смотрите статью Экранный менеджер.
GNOME
Вы можете настроить GNOME использовать awesome как визуальный интерфейс, но держать GNOME работющем в фоновом режиме. Смотрите awesome-gnomeAUR.
XFCE
Смотрите Xfce (Русский)#Использовать сторонний оконный менеджер.
Настройка
Основанный на языке программирования lua, файл настроек находится в ~/.config/awesome/rc.lua
.
Создание файла настроек
Во-первых, создайте новый каталог, необходимый в следующем шаге:
$ mkdir -p ~/.config/awesome/
Awesome попытается использовать настройки, которые содержится в файле ~/.config/awesome/rc.lua. Он не создается автоматически, поэтому скопируйте шаблон:
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
Синтаксис файла настроек часто изменяется при обновлении awesome. Поэтому повторите эту команду, если с awesome произошло что-то непонятное или же вы хотите изменить настройки.
Дополнительная информация о настройке доступна в разделе Configuration в документации awesome.
Примеры
Отличные примеры файлов rc.lua можно найти по следующим ссылкам:
- Тема со скриншотами Awesome
- Настройки Awesome от Setkeh
- User configuration that supports different themes, including a status bar
- Awesome configuration with two modern themes
Расширения
Несколько расширений, доступных для awesome:
Расширение | Функциональность | Версия |
---|---|---|
Поверхностный просмотр всех открытых клиентов | Awesome 3.5+ | |
Динамические тэги | Awesome 3.5 | |
Всплывающие уведомления | Awesome 3.5+ | |
Дополнительные виджеты | Awesome 3.5 |
Автозапуск программ
Для использования XDG Autostart установите xorg-xrdb и dex и добавьте следующие строки в файл ~/.config/awesome/rc.lua
:
~/.config/awesome/rc.lua
awful.spawn.with_shell( 'if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi;' .. 'xrdb -merge <<< "awesome.started:true";' .. -- list each of your autostart commands, followed by ; inside single quotes, followed by .. 'dex --environment Awesome --autostart --search-paths "${XDG_CONFIG_HOME:-$HOME/.config}/autostart:${XDG_CONFIG_DIRS:-/etc/xdg}/autostart";' )
Для демонов без трея можно использовать systemd-юниты с целью autostart.target, что более функционально, так как они могут быть настроены так, чтобы продолжали работать даже после непредвиденной остановки.
Наконец, возможно создать скрипт autorun.sh
со следующим содержимым:
~/.config/awesome/autorun.sh
#!/bin/sh run() { if ! pgrep -f "$1" ; then "$@"& fi }
Не забудьте сделать его исполняемым.
Для добавления программ автозапуск просто добавляйте строки вида run "программа [аргументы]"
в файл autorun.sh
. Функция run
ищет указанную программу среди запущенных процессов и запускает её, только если ничего не нашлось. Проверьте корректность файла, попробовав запустить его напрямую:
$ ~/.config/awesome/autorun.sh
И, если всё хорошо, пропишите его в файле настроек:
~/.config/awesome/rc.lua
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
Выбор раскладки клавиатуры
Есть несколько способов изменения раскладки клавиатуры.
С помощью setxkbmap
В стандартных настройках awesome уже активирован виджет раскладки.
Чтобы временно добавить несколько доступных раскладок, выполните
$ setxkbmap -layout "us,ru"
Клик по виджету будет переключать раскладку. Если вы хотите переключать раскладки с помощью клавиатуры, к команде можно добавить, например, -option "grp:alt_shift_toggle"
для переключения с помощью Shift+Alt
. То есть полная команда будет выглядеть так:
$ setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle"
Пример для добавления фонетической русской раскладки:
$ setxkbmap -model pc105 -option "grp:shifts_toggle,compose:sclk" "us,ru(phonetic_YAZHERTY)"
где
- в качестве клавиши Compose используется Scroll Lock, а переключение раскладки настроено на Left Shift + Right Shift;
- используется клавиатура со 105 клавишами.
Чтобы сделать изменения постоянными, добавьте команду в автозапуск. Например, если вы используете LightDM, можно добавить команду в файл .xprofile.
С помощью rc.lua
Начиная с версии 4, в awesome можно настроить переключение раскладок. Для переключения раскладки с помощью Shift+Alt
добавьте следующие две строки в globalkeys
:
~/.config/awesome/rc.lua
-- {{{ Key bindings globalkeys = gears.table.join( -- ... awful.key({ "Shift" }, "Alt_L", function () mykeyboardlayout.next_layout(); end), awful.key({ "Mod1" }, "Shift_L", function () mykeyboardlayout.next_layout(); end) )
Необходимо заранее настроить несколько раскладок, например, с помощью setxkbmap или в файлах настроек X.
Команду для добавления раскладок можно добавить в #Автозапуск программ.
С помощью Xorg
Смотрите статью Конфигурация клавиатуры в Xorg.
Темы оформления
Beautiful — это библиотека Lua, которая позволяет вам задавать темы оформления для awesome из внешних файлов. С её помощью весьма легко изменить «на лету» цвета или обои awesome без внесения изменений в файл rc.lua
.
Тема по-умолчанию содержится в /usr/share/awesome/themes/default
. Скопируйте её ~/.config/awesome/themes/default
и измените theme_path
в rc.lua
.
-- beautiful.init(gears.filesystem.get_configuration_dir() .. "/themes/default/theme.lua") local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), "default") beautiful.init(theme_path)
Можно скопировать другие темы и заменить «default» на, например, «sky», «gtk», «zenburn» и т.д. — локальные копии тем легко изучать, изменять и тестировать. Смотрите [1] для информации о дополнительных параметрах тем. Например, чтобы добавить промежуток между окнами, добавьте
beautiful.useless_gap = 5
в файл rc.lua
.
Обои рабочего стола
Beautiful может обрабатывать ваши обои, поэтому вам не нужно устанавливать их в ваших файлах .xinitrc
или .xsession
. Это позволяет иметь конкретные обои для каждой темы.
Есть два способа установить обои:
- в вашей копии файла
theme.lua
:-- абсолютный путь theme.wallpaper = "/путь/к/фону.png" -- относительно вашего каталога themes theme.wallpaper = theme_path .. "путь/к/фону.png"
- или в файле настроек
rc.lua
, где-нибудь междуbeautiful.init
иlocal function set_wallpaper
:-- абсолютный путь beautiful.wallpaper = "/путь/к/фону.png" -- относительно каталога настроек beautiful.wallpaper = awful.util.get_configuration_dir() .. "путь/к/фону.png"
Можно выбирать случайные обои с помощью такого скрипта: [2] — добавьте его в rc.lua
, обновив настройки под ваши нужды. Модификация скрипта, которая умеет сама считывать список файлов из указанного каталога: [3].
Советы и рекомендации
Скрыть / показать wibox
Чтобы привязать комбинацию Modkey + b для показа/скрытия строки состояния на активном рабочем столе (как в awesome 2.3), добавьте в ваш globalkeys в rc.lua:
awful.key({ modkey }, "b", function () myscreen = awful.screen.focused() myscreen.mywibox.visible = not myscreen.mywibox.visible end, {description = "toggle statusbar"} ),
Показывать wibox (или выполнять другие действия) только при нажатой Mod-клавише невозможно из awesome, но есть python-скрипт для этого: autohidewibox.
Скриншот (снимок экрана)
Смотрите статью Keyboard input (Русский) для правильного назначения кнопки PrtSc
. Затем установите какую-нибудь программу для создания скриншотов например scrot.
Добавьте в массив globalkeys
:
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'", false) end),
Эта функция сохраняет скриншоты внутри ~/screenshots/
, измените путь/папку при необходимости.
Удаление пробелов окна
Начиная с версии awesome 3.4, можно удалить небольшие зазоры между окнами; в awful.rules.rules таблице есть раздел properties, добавьте к нему
size_hints_honor = false
Прозрачность
Смотрите Xorg (Русский)#Композит.
В awesome 3.5, прозрачность окна можно установить динамически с помощью сигналов . Например, rc.lua
будет содержать следующее:
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus c.opacity = 1 end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal c.opacity = 0.7 end)
wibox'ы
В awesome есть встроенная поддержка псевдо-прозрачности. Чтобы задействовать её, добавьте 2 шестнадцатеричные цифры к цветам в вашем файле темы (например, ~/.config/awesome/themes/default/theme.lua
, который, как правило, копия /usr/share/awesome/themes/default/theme.lua
) как показано здесь:
theme.bg_normal = "#000000AA"
где "AA" это значение прозрачности.
Чтобы менять прозрачность текущего окна, нажатием Modkey + PgUp/PgDown
, можно установить transset-dfAUR и внести следующие изменения в вашем rc.lua
:
globalkeys = gears.table.join( -- Ваше сочетание клавиш [...] awful.key({ modkey }, "Next", function (c) awful.util.spawn("transset-df --actual --inc 0.1") end), awful.key({ modkey }, "Prior", function (c) awful.util.spawn("transset-df --actual --dec 0.1") end), -- Другое ваше сочетание клавиш [...] )
Промежуток между виджетами
Стандартный файл rc.lua
размещает в wibox'е виджеты, в том числе значок раскладки клавиатуры и часы, с очень маленьким промежутком между ними. Его можно увеличить с помощью свойства spacing
:
{ -- Right widgets layout = wibox.layout.fixed.horizontal, spacing = 10, mykeyboardlayout, ...
ImageMagick
You may have problems if you set your wallpaper with imagemagick's display command. It does not work well with xcompmgr. Please note that awsetbg may be using display if it does not have any other options. Installing habak, feh, hsetroot or whatever should fix the problem (grep -A 1 wpsetters /usr/bin/awsetbg to see your options).
Передача информации виджетам при помощи awesome-client
Вы можете легко передать текст виджету. Для этого создайте новый виджет:
mywidget = widget({ type = "textbox", name = "mywidget" }) mywidget.text = "initial text"
Для обновления текста из внешнего источника, используйте awesome-client:
echo -e 'mywidget.text = "new text"' | awesome-client
Не забудьте добавить виджет в раздел wibox Вашего файла настроек.
Использование другой панели с awesome
Если вам нравится в awesome все, кроме того, как выглядит стандартная панель, то пришло время установить другую, например xfce4-panel.
Затем добавьте его в секцию autorun вашего rc.lua
. Вы можете также закомментировать секцию, которая создает wibox'ы для каждого экрана (начиная с mywibox[s] = awful.wibox({ position = "top", screen = s })
) но это не так необходимо. Не забудьте проверить ваш rc.lua
на наличие ошибок, введя:
$ awesome -k rc.lua
Вы должны также изменить modkey+R
данное сочетание клавиш, чтобы запустить другое приложение запуска вместо встроенного в awesome. Для примеров смотрите List of applications/Other#Application launchers. Не забудьте добавить:
properties = { floating = true } }, { rule = { instance = "$ваше_запускаемое_приложение" },
в ваш rc.lua
.
Каталоги приложений в строке меню
awesome содержит menubar. По умолчанию при нажатии Mod+p
откроется похожее на dmenu меню приложений в верхней части экрана. Оно ищет файлы .desktop
в каталогах $XDG_DATA_DIRS/applications/
и $XDG_DATA_HOME/applications/
.
Чтобы добавить или заменить эти каталоги, можно изменить menubar.menu_gen.all_menu_dirs
:
~/.config/awesome/rc.lua
table.insert(menubar.menu_gen.all_menu_dirs, "/path/to/custom/applications/")
Стоит отметить, что файлы .desktop
перечитываются каждый раз при запуске awesome, тем самым замедляя запуск. Если вы запускаете программы другим способом, то меню можно отключить в rc.lua
путём удаления local menubar = require("menubar")
и других упоминаний переменной menubar
.
Всплывающие меню
Существует простое меню в awesome 3, - упрощённое пользовательское меню. [4] Если вы хотите меню freedesktop.org, смотрите тут awesome-freedesktop.
Если вы предпочитаете видеть более традиционное меню приложений, когда вы щёлкаете по иконке Awesome или делаете щелчок правой кнопкой мышки по пустому участку рабочего стола, вы можете воспользоваться инструкциями, приведёнными в статье Xdg-menu (Русский)#Awesome. Однако это меню не обновляется при добавлении или удалении программ. Поэтому не забывайте выполнять команду для обновления вашего меню. Она может выглядеть примерно так:
xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu >~/.config/awesome/archmenu.lua
Заголовки окон
Включить заголовки окон в awesome легко, просто установите в файле настроек переменную titlebars_enabled в true (в разделе Rules
):
{ rule_any = {type = { "normal", "dialog" } }, properties = { titlebars_enabled = true } },
Тем не менее, вы можете захотеть иметь возможность включения или отключения заголовков окон. Для этого вы можете добавить сочетание клавиш в clientkeys:
-- working toggle titlebar awful.key({ modkey, "Control" }, "t", function (c) awful.titlebar.toggle(c) end, {description = "Show/Hide Titlebars", group="client"}),
Если вы хотите по умолчанию скрыть заголовки окон, выполните эту функцию сразу после создания заголовка окна (в обработчике сигнала "manage"
):
awful.titlebar.hide(c)
Уведомление о состоянии батареи
Этот пост в блоге содержит пример скрипта для rc.lua
, показывающего простое уведомление о состоянии батареи. Заметьте, что для него требуется модуль naughty для уведомлений (установлен по умолчанию в версии 3.5). Ещё примеры есть на сайте awesome.
Мультимедийные клавиши
Можно управлять громкостью и статусом воспроизведения с клавиатуры с помощью amixer (пакет alsa-utils) и playerctl. Назначьте выполнение этих команд на соответствующие мультимедийные клавиши:
-- Volume Keys awful.key({}, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q -D pulse sset Master 5%-", false) end), awful.key({}, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q -D pulse sset Master 5%+", false) end), awful.key({}, "XF86AudioMute", function () awful.util.spawn("amixer -D pulse set Master 1+ toggle", false) end), -- Media Keys awful.key({}, "XF86AudioPlay", function() awful.util.spawn("playerctl play-pause", false) end), awful.key({}, "XF86AudioNext", function() awful.util.spawn("playerctl next", false) end), awful.key({}, "XF86AudioPrev", function() awful.util.spawn("playerctl previous", false) end),
Экранная клавиатура Steam
Экранная клавиатура Steam, активируемая с помощью Steam Controller, может зависнуть после попытки ввести один символ. Это происходит потому, что окно, которое должно получить ввод, должно иметь фокус, и клавиатура будет ждать, пока этот ввод не будет успешно отправлен. Ручное переключение фокуса на другое окно отправит ввод на него, и клавиатура отвиснет до следующей попытки ввода символа.
Хитрость заключается в том, чтобы предотвратить получение фокуса клавиатурой. Добавьте следующий сигнал в вашу конфигурацию (или объедините с существующим сигналом focus):
client.connect_signal("focus", function(c) if awful.rules.match(c, { name = "^Steam Keyboard$" }) then awful.client.focus.history.previous() end end)
Это будет возвращать фокус предыдущему окну каждый раз, когда фокус переходит на клавиатуру. Поскольку ввод на клавиатуре обрабатывается клиентом Steam и потому не требует фокуса, ввод текста теперь будет работать правильно.
Решение проблем
Отладка rc.lua
Xephyr позволяет запускать X, вложенный в окно клиента другого Х. Это позволяет проверять работоспособность rc.lua
, не нарушая работу текущего сеанса. Начните с копирования rc.lua
в новый файл (например rc.lua.new
), и изменяйте его по мере необходимости. Затем запустите новый экземпляр awesome в Xephyr, передав ему путь к файлу настроек rc.lua.new
:
$ Xephyr :1 -ac -br -noreset -screen 1152x720 & $ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new
Преимущество такого способа заключается в том, что вы не нарушите работу текущего рабочего стола awesome, избежите потенциальный сбой приложений X и потерю работоспособности. После завершения настройки и тестирования скопируйте rc.lua.new
в rc.lua
и перезапустите awesome.
Автоматический перезапуск
В дополнение к вышеописанному, вы можете использовать inotify-tools для автоматического перезапуска сеанса Awesome, находящегося внутри Xephyr при изменении любого файла настроек в директории ~/.config/awesome
:
#!/usr/bin/env bash Xephyr :1 -ac -br -noreset -screen 1920x1080 -dpi 96 & sleep 1 DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new & instance=$! while inotifywait -r -e close_write ~/.config/awesome; do kill -s SIGHUP $instance done
awmtt
awmttAUR (Awesome WM Testing Tool — Утилита тестирования Awesome WM) — простой скрипт-обёртка над Xephyr. По умолчанию он будет использовать ~/.config/awesome/rc.lua.test
. Если он не может найти тестовый файл, он будет использовать ваш фактический rc.lua
. Вы также можете указать местоположение файла настроек, который вы хотите проверить:
$ awmtt start -C ~/.config/awesome/rc.lua.new
Когда вы закончите тестирование, закройте окно:
$ awmtt stop
Или сразу смотрите изменения, которые вы делаете в файл настроек с помощью следующей команды:
$ awmtt restart
aawmtt
aawmttAUR (Another Awesome WM Testing Tool — Другая утилита для тестирования Awesome WM) — ещё одна реализация awmttAUR с перезапуском на лету по умолчанию.
Она такая же awmtt-ng, но включает в себя несколько исправлений для механизма поиска дисплеев в Xorg, который не работает на некоторых машинах в случае с awmtt-ng.
В отличие от awmtt, эта реализация не пытается сначала запустить тестируемый файл, а запускает файл настроек по умолчанию.
Чтобы открыть окно Xephyr с загруженным Awesome, просто запустите команду:
$ aawmtt
Теперь вывод из Awesome будет происходить в ваш терминал, и после изменения любых файлов в папке настроек, Awesome wm будет перезапущен.
В случае если вы хотите поменять директорию, где будет отслеживаться изменение файлов, или путь к файлу настроек, запустите команду:
$ aawmtt --config "location_of_config_file" --watch "directory_to_watch_for_changes"
По умолчанию директория, в которой отслеживаются изменения, это родительская директория к вашему файлу настроек, то есть ~/.config/awesome
.
Файл журналов
Если вы используете LightDM, awesome будет записывать ошибки в `$HOME/.xsession-errors`. Если вы используете .xinitrc
для запуска awesome, смотрите вопрос «Where are logs, error messages or something?» на странице FAQ.
Клавиша Mod4
Awesome рекомендует переназначить mod4
, которой по умолчанию является клавиша Super
(«Windows»). Если по какой-то причине она не распознаётся как mod4
, используйте xmodmap чтобы узнать её. Для того чтобы изменить назначение, воспользуйтесь xev
, чтобы найти код клавиши и имя клавиши для сопоставления. Затем добавьте нечто похожее в ~/.xinitrc
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L" exec awesome
В этом случае проблемой является то, что иногда xorg распознаёт код клавиши 115 неправильно, как клавишу 'Select'. Приведенная выше команда явно перераспределяет код ключа 115 на корректную клавишу 'Super_L'.
Для того, чтобы переназначить mod4
с помощью setxkbmap
(конфликтует с xmodmap
) смотрите:
tail -50 /usr/share/X11/xkb/rules/evdev
Для установки клавиши caps lock как mod4
добавьте следующую строку в ~/.xinitrc
:
setxkbmap -option caps:hyper
Исправление для Java приложений (серый интерфейс)
Смотрите Java (Русский)#Ошибки отрисовки приложений Java и [5].
Eclipse: невозможно изменить размер/переместить главное окно
Если главное окно "прилипло" и вы не можете переместить его или изменить размер (используя mod4 + левую/правую клавишу мыши) отредактируйте workbench.xml
и установите fullscreen/maximized в значение false (если оно установлено), уменьшите цифру ширины и высоты на меньшую, чем размер одного вашего экрана рабочего стола.
workbench.xml
можно найти в eclipse_workspace/.metadata/.plugins/org.eclipse.ui.workbench/
. Отредактируйте строку:
<window height="xx" maximized="true" width="xx" x="xx" y="xx"
Netbeans: автозавершение кода отображается на неправильном экране
Если у вас два дисплея и вы используете автозавершение кода (Ctrl + Space) в Netbeans, оно может отображаться на неправильном экране. Может помочь это:
.config/awesome/rc.lua
awful.rules.rules = { ... { rule_matches = { -- Исправление Netbeans class = { "sun-awt-X11-XWindowPeer", "NetBeans IDE 8.2" }, name = { "win1" } }, properties = { screen = 1 } -- даже если здесь экран 1, это всё равно работает и на втором экране (непонятно почему). }, ... }
scrot: не получается сделать скриншот с выделением мышью с помощью сочетаний клавиш
При использовании scrot могут возникнуть проблемы с назначением сочетания клавиш для создания снимка области экрана с выделением мышью (scrot -s
). Чтобы решить эту проблему, добавьте следующую строку в ваш rc.lua
:
awful.key( { modkey, }, клавиша, nil, function () awful.spawn("scrot -s") end)
Обратите внимание, что в функцию awful.key
в аргумент press
передаётся nil
. Вместо этого функция-обработчик, которая запускает scrot, передаётся в аргумент release
.
YouTube: полноэкранный режим показывает как в фоновом режиме
Если видео с YouTube появляется под вашим браузером в полноэкранном режиме, или скрывается под панелью управления, то добавьте в rc.lua
{ rule = { instance = "plugin-container" }, properties = { floating = true } },
Для Chromium
{ rule = { instance = "exe" }, properties = { floating = true } },
или:
{ rule = { role = "_NET_WM_STATE_FULLSCREEN" }, properties = { floating = true } },
Смотрите [6].
Запретить колесу прокрутки мыши менять теги
В вашем rc.lua
измените раздел Mouse Bindings на следующий:
-- {{{ Mouse bindings root.buttons(gears.table.join( awful.button({ }, 3, function () mymainmenu:toggle() end) )) -- }}}
Xdg-menu будет генерировать дубликаты пунктов меню, если вы копируете файлы .desktop из /usr/share/applications
в ~/.local/share/applications
, даже если предпочтительнее просто использовать пользовательские файлы вместо оригинальных, чтобы, например, задать другую тему для конкретного приложения. Одним из решений является фильтрация сгенерированного вывода через awk для удаления пунктов с именем, идентичным предыдущему пункту.
xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu | awk -F, '{if (a!=$1) print $a; a=$1}' >~/.config/awesome/archmenu.lua
Некоторые сочетания клавиш не работают в Xfce4
Возможно, есть пересечения в используемых сочетаниях клавиш между Xfce4 и awesome. Откройте настройки:
$ xfce4-keyboard-settings
и посмотрите, нет ли там пересечений с сочетаниями клавиш awesome, в частности с mod-клавишей (обычно Super_L).
Утечки памяти
Некоторые пользователи сталкиваются с утечкой памяти даже при отсутствии активности. При использовании большого количества виджетов утечка может происходить со скоростью до 5 МБ/мин. Чтобы уменьшить потребление памяти, можно выполнять более частую сборку мусора, добавив следующее в ~/.config/awesome/rc.lua
:
-- Регулярный запуск сборщика мусора для предотвращения утечки памяти gears.timer { timeout = 30, autostart = true, callback = function() collectgarbage() end }
Смотрите также
- https://archlinux.org.ru/forum/topic/11748/ - Анатомия awesome
- https://archlinux.org.ru/forum/topic/15184/ - Установка Awesome 3.5.6 и доведение его до рабочего состояния
- https://awesomewm.org/apidoc/documentation/90-FAQ.md.html - ЧаВо
- https://www.lua.org/pil/ - Программирование на Lua
- https://awesomewm.org/ - Официальный сайт awesome
- https://bbs.archlinux.org/viewtopic.php?id=88926 - поделитесь своим awesome!
- https://help.ubuntu.ru/wiki/awesome - Отличная русскоязычная документация