Awesome window manager windows

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 запретить обновления.

Читайте также:  Windows home premium различия
Оцените статью