- Awesome
- Содержание
- Установка
- Настройка
- Раскладка клавиатуры
- Настройка тэгов и схем (layouts).
- Использование виджетов
- Blingbling
- Установка
- Использование
- Регулятор громкости
- Погода
- Установка
- Использование
- Формат вывода
- Локализация
- Календарь
- Настройка внешнего вида
- Вид GTK приложений
- lxappearance
- gnome-settings-daemon
- Вид Qt приложений
- Горячие клавиши, мультимедиа кнопки
- Кнопки управления громкостью
- Работа с сессиями пользователей
- Автомонтирование внешних накопителей
- Использование с рабочим окружением (Desktop Environment)
- GNOME
- Запуск
- Настройка
- Приложения и Awesome
- Автозагрузка
- Присвоение приложению тэг по умолчанию
- Pidgin в Awesome
- Тайлинг
- Советы по настройке
- Сделать клиент плавающим (floating)
- Отображение раскладки клавиатуры
- Включение numlock при загрузке
- Проблемы
Awesome
Содержание
Awesome – гибкоконфигурирумый динамический тайлинговый оконный менеджер. Очень легкий и расширяемый за счет использования языка программирования Lua. Awesome нацелен на опытных пользователей, разработчиков и людей, желающих использовать гибкий инструмент в повседневной работе.
Распространено мнение, что тайлинговые оконные менеджеры- для больших экранов, хочется заметить, что это не так, тайлинговый оконный менеджер отлично себя чувствует на нетбуке, где, чаще всего, работать приходится без мыши, а в работе с клавиатуры тайлинговым менеджерам нет равных. Естественно ни о каком толковом тайлинге окон на нэтбуке нельзя говорить, на всех тэгах установлена максимизация окна приложения.
Установка
Перед установкой настоятельно рекомендуется ознакомиться с языком программирования Lua, так как весь процесс настройки будет происходить с использованием этого языка.
После этого при логине в меню выбора сессии можно указать Awesome и начать знакомство с этим удивительным оконным менеджером (на рисунке ниже видно, что данный оконный менеджер полностью оправдывает свое название). Как и во всех тайлинговых оконных менеджерах окна (клиенты) занимают все свободное пространство рабочего стола.
Команда | Сочетание |
---|---|
Вызов терминала | mod4+Enter |
Вызов меню | mod4+w |
Запуск приложения | mod4+r |
Перезапуск Awesome | mod4+Control+r |
Выход Awesome | mod4+Shift+q |
Больше см. man awesome
По умолчанию Awesome использует стандартные файлы конфигурации, поэтому для применения изменений после установки необходимо скопировать стандартный файл конфигурации, в папку
/.config/awesome. В последствии, если Вы нарушите работоспособность своего конфигурационного файла, оконный менеджер запустится с настройками по умолчанию.
Настройка
Но данная команда проверяет только синтаксис, поэтому, при не правильной адресации и многих других ошибках она не поможет.
Если вы не сильны в Lua и не очень хотите его подробно изучать, то в любом месте конфигурационного файла можно указать выполнение собственного скрипта, написанного на вашем любимом языке. Например так:
Данный код будет при нажатии на виджет часов на панели awesome вызывать скрипт /home/ /bin/dairy.sh.
Раскладка клавиатуры
При загрузке в голый AwesomeWM (без сессии GNOME) перестает работать переключение раскладки клавиатуры 1) ) Для настройки необходимо добавить в автозапуск команду
Ниже описан способ добавления комады в автозагрузку awesome и способ отображения раскладки на панели
Обновление https://awesomewm.org/doc/api/documentation/89-NEWS.md.html У Awesome теперь есть встроенная поддержка обнаружения и настройки раскладки клавиатуры. Использование setxkbmap больше не требуется. Также добавлен виджет для просмотра текущей раскладки.
Отличительная особенность Awesome (и большинства тайлинговых оконных менеджеров)- система тэгов, вместо привычных виртуальных рабочих столов. Система тэгов более гибка и конфигуриуема. Например можно назначит несколько тэгов для одного приложения (клиента) или настроить отображение приложений с несколькими тэгами одновременно.
Команда | Сочетание |
---|---|
Переключиться на следующий тэг | mod4+Right |
Переключиться на предыдущий тэг | mod4+left |
Переключиться на тэг по номеру (1-9) | mod4+(1-9) |
Включить/выключить отображение тэга по номеру (1-9) | mod4+Control+(1-9) |
Пометить приложение тэгом по номеру (1-9) | mod4+Shift+(1-9) |
Пометить/снять пометку приложения тэгом по номеру (1-9) | mod4+Shift+Control+(1-9) |
Больше см. man awesome
Настройка тэгов и схем (layouts).
Тэги и схемы расположения клиентов- основное с чем придется работать повседневно при использовании оконного менеджера Awesome, поэтому целесообразно уделить повышенное внимание их настройке.
Кусок кода rc.lua, отвечающий за работу схем расположения клинетов:
Здесь наглядно показана работа основного инструмента языка Lua- таблица. Создается таблица с именем layouts и в ячейки [1]-[9] записываются различные значения схем.
Настройка схем расположения клиентов сводится к исключению (комментированию) не используемых.
Кусок кода rc.lua, отвечающий за формирование списка тэгов и отображение их на экране:
Данный код формирует для каждого экрана (s) 9 тэгов с именами от 1 до 9 и выставляет для всех схему, записанную в первой ячейке таблицы layout (по умолчанию float).
Настройка тэгов, как правило, заключается в:
Как правило при настройке тэгов в именах вместо цифр используют графические символы или буквы греческого алфавита. Нецелесообразно в имени тэга использовать слова (www, office, и т.д.), потому что они будут расходовать ценное место на панели, которое можно занять полезными виджетами, а назначение тэгов в процессе использования закрепятся в памяти сами собой.
Для настройки тэгов, введем дополнительную таблицу с именем tags , в которой будут две ячейки, представляющие собой так же таблицы, это names и layout , в которые, в свою очередь, уже будут записываться значения для каждого тэга.
Так же вместо символов в именах тэгов можно использовать любые иконки, для этого код будет выглядеть следующим образом:
в строке awful.tag.seticon(beautiful.homeicon, tags[s][1]) происходит обращение к файлу иконки в формате beautiful.homeicon , это возможно при указании пути к иконке в файле темы awesome theme.lua для редактирования необходимо скопировать его в домашний каталог из стандартной папки:
И создать в нем иконку с именем homeicon , указав путь к файлу изображения:
Одновременно с изменением имени в примерах, приведенных выше, для каждого тэга указывается схема расположения клиентов, в ячейка layout таблицы tags . В квадратных скобках указывается номер ячейки таблицы layouts .
Для настройки схемы расположения клиентов внутри определенного тэга кусок кода Tags должен выглядить следующим образом:
Здесь нас интересуют строки с функциями awful.tag.setncol и awful.tag.setproperty , первая функция устанавливает число колонок стэк-зоны в значение 2 для четвертого тэга, вторая функция устанавливает значение ширины мастер-зоны -20% от ширины экрана.
Полный перечень доступных функций приведен в официальном описании API(eng).
Использование виджетов
Ещё одна особенность Awesome- гибкоконфигурируемые виджеты, позволяющие отказаться от использования conky .
Blingbling
Замечательные виджеты blingbling. Основное отличие- ориентированность на графику.
Установка
Для корректной работы blingbling необходимы пакеты liblua5.1-oocairo-1.4-1.2 и liblua5.1-oocairo-dev 1.4-1.2
Установка blingbling из git:
Использование
В начало файла rc.lua необходимо добавить
Описание конфигурации виджетов приведено в файле
Регулятор громкости
Для добавления регулятора громкости необходимо выполнить следующие шаги:
Проблемы
У меня, а как показал поиск и ещё у нескольких людей на ноутбуках HP Pavilion, наблюдается проблема- при попытке приглушить звук через команду amixer Master toggle , которая используется и в упомянутом выше виджете, звук успешно выключается, но после этого не включается обратно. Не знаю в чем причина такого поведения, но заметил, что если после этого в alsamixer переключать хаотично все каналы mute/unmute- кнопкой «M», то звук включится обратно, поэтому есть довольно тривиальное решение этой проблемы- включать\выключать приглушение звука скриптом, вот он (можно скачать щелкнув по имени файла):
Если все работает нормально, правим управляющий файл виджета volume из blingbling:
ищем и исправляем следующий кусок файла:
Другой способ решения этой же проблемы. В файле
в функции set_master исправляем
Погода
Виджет найден здесь в крайне заброшенном состоянии и реабилитирован. Данный виджет работает от Яндекс.Погода, снабжен набором иконок.
Установка
Необходимо скачать архив и распаковать его содержимое в папку
/.config/awesome/, так что бы получилось следующее дерево каталогов:
В начале вашего rc.lua необходимо добавить строку:
После этого необходимо создать text или image- виджет:
moscow— получаем перейдя по ссылке Яндекс.Погода и выбрав на странице свой город, искомое значение параметра будет в адресной строке:
(по умолчанию данный параметр- moscow);
3600-время обновления в секундах (по умолчанию- 907)
Использование
При наведении на виджет на панели будет отображаться всплывающее уведомление awesome с иконкой и основной информацией. Можно установить сколько угодно виджетов на панель, но нельзя установить несколько городов в один виджет. На скриншоте на панель добавлено два виджета одновременно: один- imagebox, второй- textbox.
По умолчанию в awesome на панель добавлены часы (mytextclock). При наведении красоты вам захочется изменить формат отображения и добавить в них календарь.
Формат вывода
В вашем файле rc.lua редактируем строку инициализации виджета textclock, дописывая параметры:
полный перечень параметров можно посмотреть в man date
Локализация
Добавив к часам дату и день недели, вы обнаружите их не локализованными. Это нормально, потому что локализация системы и локализация в языке Lua— разные вещи. Конфигурационный файл виджета textclock хранится по пути
Хорошим тоном является копирование дефолтных конфигурационных файлов в домашнюю папку, что бы в случае возникновения проблем система могла работать на дефолтной конфигурации, поэтому копируем:
Для корректного отображения необходимо в файл
перед командой запроса даты добавить команду установки локализаци. Файл textclock.lua примет вид:
Календарь
Для того, что бы при наведении указателя мыши на часы появлялся простой календарик необходимо подключить дополнительный модуль calendar2, код взят из вики awesome и немного исправлен 2)
Для установки необходимо:
сохранить приведенный выше файл в папку
добавить вверху файла rc.lua строку
добавить после строки инициализации виджета часов строку вида
Выглядит это следующим образом: нажатием левой или правой кнопкой мыши (или кручением колесика) переключаются месяцы, нажатием средней кнопки мыши- устанавливается текущий месяц.
Настройка внешнего вида
Вид GTK приложений
Ниже описаны два разных способа настройки внешнего вида приложений, вы вправе выбрать какой вам подходит больше.
lxappearance
Плюс данного способа в том, что не требуется запуск дополнительной службы и система более «чистая». Для того, что бы настраивать темы GTK, темы иконок и т.д. можно воспользоваться легким редактором внешнего вида из проекта LXDE lxappearance
gnome-settings-daemon
Оптимальным решением будет добавление в автозагрузку awesome службы gnome-settings-daemon, данная служба будет применять все настройки gnome-control-center включая управление питанием, назначением горячих клавиш, переключением раскладки и т.д. Единственный минус его использования- в трее появляется значок клавиатуры, но его можно легко убрать.
Вид Qt приложений
Вид Qt приложений также настраивается при помощи отдельного приложения, для установки воспользуйтесь командой
Требуемое приложение- qtconfig , после его запуска откроется окно, в котором можно будет детально настроить отображение Qt приложений, например Skype. Не забывайте сохранять изменения, при помощи комбинации Ctrl+S или через меню «Файл»-«Сохранить»
Горячие клавиши, мультимедиа кнопки
Замечательная особенность AwesomeWM- возможность «повесить» на любое ваше действие на клавиатуре/мыши любое действие системы или запуск программы 3) .
Кнопки управления громкостью
На большинстве современных ноутбуков имеются кнопки запуска приложений, управления воспроизведением музыки или просто управлением громкости. Для того чтобы их оживить, нужно знать их «сканкоды»- коды, которые генерируются при их нажатии. Для того что бы их узнать воспользуемся приложением xev , которое входит в состав пакета X11-utils и поставляется по умолчанию, после запуска в терминале команды xev откроется дополнительное окно, и нажмите необходимую кнопку, в терминале, если данная клавиша уже не назначена в системе и она распознается на железном уровне, появится подобный вывод:
Здесь нас интересует фраза «keycode 122», 122- искомое значение.
На моём ноутбуке 121-mute, 122- уменьшение громкости и 123- увеличение. Добавляем в rc.lua следующий код:
здесь вы можете увидеть, что на кнопку «mute» установлено выполнение скрипта, это связано с проблемой описанной в разделе о blingbling , скрипт выложен там же.
Работа с сессиями пользователей
Если у вас на компьютере работает несколько пользователей, то вы, работая в сессии Ubuntu, вероятно оценили удобство меню, появляющееся по нажатию на имя пользователя на панели Unity, позволяющее легко переключаться между сессиями пользователей. Хотелось бы иметь подобное меню и в AwesomeWM.
Операцию переключения пользователя обеспечивает пакет dm-tools, подробно о его применении можно почитать в справке man dm-tools. Для добавления в правый верхний угол кнопки с системным меню проделаем следующее.
В данном меню предусмотрены команды управления питанием, для того, что бы эти пункты меню работали, необходимо сконфигурировать sudoers на выполнение данных команд без запроса пароля.
/.config/awesome/themes/theme.lua иконку создаваемой кнопки меню(пример для AwOken):
Автомонтирование внешних накопителей
Используя программу из рабочего окружения Unity можно настроить автомонтирование внешних носителей при подключении. Для этого необходимо добавить в автозагрузку демон /usr/lib/gnome-settings-daemon/gnome-fallback-mount-helper, настройки на его действия задаются в gnome-control-center(«Параметры системы» в Unity), но в сессии, отличной от Unity, пункт конфигурации этого демона убирается, поэтому для его настройки необходимо зайти в сессию Unity.
Использование с рабочим окружением (Desktop Environment)
Так как Awesome является всего лишь оконным менеджером, то после запуска сессии Awesome не будет запущено никаких служб и сервисов, что с одной стороны хорошо, с точки зрения быстродействия и легкости, а с другой стороны- не очень, с точки зрения удобства использования. В данном разделе будет рассмотрена возможность запуска сессии основных рабочих окружений с Awesome в качестве оконного менеджера.
GNOME
Запуск
Устанавливаем панель GNOME
Создаем файл сессии Gnome+AwesomeWM
/usr/share/xsessions/gnome-awesome.desktop
Создаем файл GNOME сессии
/usr/share/gnome-session/sessions/awesome.session
Создаем .desktop файл для Awesome
/usr/share/applications/awesome.desktop
Завершаем сессию пользователя и логинимся в сессию Gnome with Awesome.
Настройка
При загрузке сессии можно заметить, что под gnome-panel отрисовывается панель awesome, для наведения порядка необходимо её отключить. Для этого в файле
/.config/awesome/rc.lua закомментируем строки 4) , относящиеся к wibox:
Для применения изменений необходимо перезагрузить Awesome нажав Mod4+Control+r
Приложения и Awesome
Автозагрузка
В Awesome отсутствует поддержка автозапуска приложений, поэтому что бы настроить автозапуск при этом после перезапуска Awesome (для применения конфигурации, например) не должны запускаться вторые копии приложений. Добавляем дополнительную библиотеку- распаковываем архив 5) в каталог рядом с rc.lua. Вверху rc.lua добавляем
и в любом удобном месте добавляем команду автозапуска:
Присвоение приложению тэг по умолчанию
Еще одной удобной особенностью Awesome является возможность назначить приложению определенный тэг, для этого в конфигурационном файле необходимо добавить следующий код:
и ткнуть мышью в окно приложения. В консоли отобразится значение поля class для этого приложения, как правило необходимо использовать имя, начинающееся с большой буквы, но бывают и исключения.
Здесь в значении tags[1][6] первая цифра указывает номер дисплея, вторая- номер тэга. После этого плеер Vlc будет всегда запускаться с шестым тэгом на первом дисплее.
Pidgin в Awesome
Тайлинг
В Awesome работа с одним из самых распространенных мессенджером станет удивительно приятной и удобной! Для этого нам нужно:
Для настройки схемы отображения клиентов тэга №4 воспользуемся куском кода, приведенным выше:
Назначаем клиенту Pidgin тэг по умолчанию (в данном случае №4). Дополнительно к метке class клиенты могут отличаться меткой role , который так же можно посмотреть запустив:
Для окна списка контактов Pidgin эта метка имеет значение buddy_list , для окон чатов- conversation . Добавляя приведенный ниже код в ваш rc.lua, вы определяете открытие окна списка контактов с тэгом 4, а открытие окна чата с тэгом 4 и пометкой его как slave , что будет переносить его сразу в стэк-зону.
Получим следующее:
Советы по настройке
В Pidgin рекомендуется влкючить модуль «Уведомление о сообщении» и в его настройках отметить пункт «Установить подсказку СРОЧНО для оконного менеджера». В этом случае при наличии непрочитанного сообщения тэг, которым помечен Pidgin будет выделятся цветом.
Сделать клиент плавающим (floating)
Часто нужно, чтобы некоторые клиенты всегда открывались в плавающем режиме, при котором они свободно перемещаются поверх общей схемы расположения клиентов (перемещение таких окон производится при помощи Mod4+LMB, изменение размера окна- Mod4+RBM), например KeePassx. Для этого необходимо создать правило для клиента KeePassx с установкой ему режима floating.
Отображение раскладки клавиатуры
По умолчанию в Awesome не реализована возможность отображения раскладки клавиатуры. Но это часто является необходимым, мало того, нужно что бы система отслеживала установленную раскладку для каждого открытого окна. Для этого воспользуемся пакетом kbdd .
Установка:
Конфигурация rc.lua.
Создаем виджет kbdwidget :
Конфигурируем на прослушивание DBus:
Добавляем виджет на панель.
Добавляем kbdd в автозагрузку
Включение numlock при загрузке
Для этого будет использоваться программа numlockx
В любое место rc.lua необходимо добавить строку
Проблемы
Если вы используете chromium, то обнаружите неприятную вещь: все ссылки mailto 6) открываются новым окном браузера chromium, вместо положенного thunderbird. Эта проблема касается не только AwesomeWM, но и всех других нестандартных окружений рабочего стола. Возникает она в следствии того, что chromium для открытия ссылок использует команду xdg-email, которая как раз и не признает никакие другие DE кроме GNOME, KDE и LXDE, и все ссылки начинает открывать в браузере по умолчанию. Для решения данной проблемы выполняем следующие команды:
Последнюю команду необходимо будет повторять после каждого обновления xdg-utils или в synaptic запретить обновления.