awesome (Русский)
С официального сайта:
"awesome - это полностью настраиваемый современный оконный менеджер для X. Он очень быстрый, расширяемый и распространяется под GNU GPLv2 лицензией.
Ориентирован на опытных пользователей, разработчиков, людей, занимающихся вычислениями и на тех, кто желает иметь полный контроль над графической средой."
Установка
Установите awesome. Разрабатываемая версия awesome-gitAUR, считается нестабильной и может иметь различные настройки API.
Для запуска awesome из Xinitrc, добавьте exec awesome
в ~/.xinitrc
. Для того, чтобы использовать входящий в комплект файл xsession, смотрите Экранный менеджер.
KDM
Создайте от суперпользователя:
/usr/share/apps/kdm/sessions/awesome.desktop
[Desktop Entry] Name=Awesome Comment=Tiling Window Manager Type=Application Exec=/usr/bin/awesome TryExec=/usr/bin/awesome
GNOME
Вы можете настроить GNOME использовать awesome как визуальный интерфейс, но держать GNOME работющем в фоновом режиме. Для подробностей смотрите awesome wiki.
Настройка
Основанный на языке программирования lua, файл настроек находится в ~/.config/awesome/rc.lua
.
Создание файла настроек
Во-первых, создайте новый каталог, необходимый в следующем шаге:
$ mkdir -p ~/.config/awesome/
Awesome попытается использовать настройки, которые содержится в файле ~/.config/awesome/rc.lua. Он не создается автоматически, поэтому скопируйте шаблон:
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
Синтаксис файла настроек часто изменяется при обновлении awesome. Поэтому повторите эту команду, если с awesome произошло что-то непонятное или же вы хотите изменить настройки.
Чтобы получить дополнительную информацию о настройке awesome, посмотрите Awesome 3 configuration wiki
Примеры
Отличные примеры файлов rc.lua можно найти по следующим ссылкам:
- https://github.com/setkeh/Awesome-3.5 - Setkeh'а 3.5 Настройки.
- https://awesomewm.org/wiki/User_Configuration_Files/ru - Коллекция пользовательских настроек на домашней странице awesome.
Расширения
Несколько расширений доступных для awesome (3.5+):
Расширение | Функционал |
---|---|
Поверхностный просмотр всех открытых клиентов | |
Динамические тэги | |
Всплывающие уведомления | |
Дополнительные виджеты | |
Запустит программу если она не запущена, иначе перейдёт на неё |
Автозапуск программ
Смотрите [1] и Автозапуск.
Выбор раскладки клавиатуры
Смотрите awesome wiki и Keyboard configuration in Xorg.
Темы оформления
Beautiful библиотека lua, которая позволяет Вам задавать темы оформления для awesome из внешних файлов. С ее помощью весьма легко изменить «на лету» цвета или обои awesome без внесения изменений в файл rc.lua
.
Тема по-умолчанию содержится в /usr/share/awesome/themes/default
. Скопируйте её ~/.config/awesome/themes/default
и измените theme_path
в rc.lua
.
beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")
Обои рабочего стола
Beautiful может обрабатывать ваши обои, поэтому вам не нужно устанавливать их в ваших файлах .xinitrc
или .xsession
. Это позволяет иметь конкретные обои для каждой темы.
Начиная с версии Awesome 3.5 больше не поддерживает команду awsetbg, вместо этого он имеет модуль gears. Вы можете установить обои внутри theme.lua
при помощи
theme.wallpaper = "~/.config/awesome/themes/awesome-wallpaper.png"
Чтобы загрузить обои, убедитесь, что ваш rc.lua
содержит
beautiful.init("~/.config/awesome/themes/default/theme.lua") for s = 1, screen.count() do gears.wallpaper.maximized(beautiful.wallpaper, s, true) end
Для случаных обоев, добавьте [4] в rc.lua
(v3.5+). Вместо этого, для автоматического извлечения изображений из данного контекста каталога [5].
Советы и рекомендации
Скрыть / показать wibox
Чтобы привязать комбинацию Modkey + b для показа/скрытия строки состояния на активном рабочем столе (как в awesome 2.3), добавьте в ваш globalkeys в rc.lua:
awful.key({ modkey }, "b", function () mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible end),
Скриншот (снимок экрана)
Смотрите Дополнительные клавиши для правильного назначения кнопки PrtSc
. Затем установите программу создания скриншота например scrot
Добавьте в массив globalkeys
:
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),
Эта функция сохраняет скриншоты внутри ~/screenshots/
, измените путь/папку при необходимости.
Удаление пробелов окна
Начиная с версии awesome 3.4, можно удалить небольшие зазоры между окнами; в awful.rules.rules таблице есть раздел properties, добавьте к нему
size_hints_honor = false
Прозрачность
Смотрите composite manager.
В 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)
Conky
If using conky, you must set it to create its own window instead of using the desktop. To do so, edit ~/.conkyrc
to contain
own_window yes own_window_transparent yes own_window_type desktop
Otherwise strange behavior may be observed, such as all windows becoming fully transparent. Note also that since conky will be creating a transparent window on your desktop, any actions defined in awesome's rc.lua
for the desktop will not work where conky is.
wibox'ы
Начиная с версии Awesome 3.1, есть встроенная поддержка псевдо-прозрачности. Чтобы задействовать её, добавьте 2 шестнадцатеричные цифры к цветам в вашем файле темы (~/.config/awesome/themes/default
, который, как правило, копия /usr/share/awesome/themes/default
), как показано здесь:
bg_normal = #000000AA
где "AA" это значение прозрачности.
Чтобы изменить прозрачность для фактического выбранного окна, нажмите Modkey + PgUp/PgDown
вы также можете использовать transset-dfAUR и следующие изменения в вашем rc.lua
:
globalkeys = awful.util.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), -- Другое ваше сочетание клавиш [...] )
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#Application launchers. Не забудьте добавить:
properties = { floating = true } }, { rule = { instance = "$ваше_запускаемое_приложение" },
в ваш rc.lua
.
Каталоги приложений в строке меню
awesome содержит menubar. По умолчанию, нажав Mod+p
откроется меню приложений, подобно dmenu в верхней части экрана. Тем не менее, это меню только ищет файлы .desktop
в /usr/share/applications
и /usr/local/share/applications
.
Чтобы изменить это, добавьте следующую строку в rc.lua
, в идеале, в разделе Menubar configuration:
app_folders = { "/usr/share/applications/", "~/.local/share/applications/" }
Следует заметить что файлы .desktop
перечитываются каждый раз, при запуске awesome, тем самым замедляя запуск. IЕсли вы предпочитаете другие средства запуска программ, то строка меню может быть отключена в rc.lua
путём удаления local menubar = require("menubar")
и дургих ссылок на переменную menubar
.
Всплывающие меню
Существует простое меню в awesome 3, - упрощённое пользовательское меню. [6] Если вы хотите меню freedesktop.org, смотрите тут awesome-freedesktop. Смотрите примеры для awesome3 [7].
Меню приложений
Если вы предпочитаете видеть более традиционное меню приложений, когда вы щёлкаете по иконке Awesome, или делаете щелчёк правой кнопкой мышки по пустому участку рабочего стола, вы можете воспользоваться инструкциями приведёнными в Xdg-menu#Awesome. Однако это меню не обновляется при добавлении или удалении программ. Поэтому не забывайте выполнять команду для обновления вашего меню. Она может выглядеть примерно так:
xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu >~/.config/awesome/archmenu.lua
Заголовки окон (titlebars )
Включить заголовки окон в awesome легко, просто установите в файле настроек переменную titlebars_enabled в true. Тем не менее, вы можете захотеть иметь возможность включения или отключения заголовков окон. Для этого вы можете назначить горячие клавиши:
awful.key({ modkey, "Control" }, "t", function (c) -- toggle titlebar awful.titlebar.toggle(c) end)
Сначала скройте строки заголовков. Для этого добавьте сразу после создания строки заголовка:
awful.titlebar.hide(c)
Уведомление состояния батареи
Смотрите [8] простое уведомление о состоянии батареи в rc.lua
. Заметьте что этому способу нужны возможности для уведомлений (установленные по умолчанию в версии3.5). Другой пример доступен в wiki awesome
Решение проблем
Нахождение и устранение ошибок 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.
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
Файл журналов
Если вы используете LightDM, awesome будет записывать ошибки в `$HOME/.xsession-errors`. Если вы используете .xinitrc
для запуска awesome, эта запись FAQ будет полезной.
Клавиша Mod4
Awesome рекомендует переназначить mod4
, которой по умолчанию является Win key. Если по какой-то причине она не распознаётся как 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
Клавиша Mod4 против пользователей IBM ThinkPad
IBM ThinkPad не поставлялись с кнопкой Win (хотя компания Lenovo уже изменила этой традиции). Кнопка Alt по-умолчанию не используется в комбинациях, описанных в rc.lua. Это позволит Вам заменить ею кнопку Win. Чтобы сделать это, необходимо отредактировать rc.lua, заменив:
modkey = "Mod4"
на:
modkey = "Mod1"
Если Вы не хотите менять стандартные сочетания для awesome, Вы можете использовать другую кнопку. Например, Caps Lock используется нечасто, поэтому можно использовать ее в качестве Mod4. Измените ~/.Xmodmap:
clear lock add mod4 = Caps_Lock
и (пере)загрузите файл. Это действие изменит Caps Lock на кнопку Mod4 и Вы сможете воспользоваться стандартными настройками awesome. Вдобавок, это позволит использовать Caps Lock как Mod4 и в других X-приложениях.
Recent updates of xorg related packages break mentioned remapping the second line can be replaced by (tested on a DasKeyboard and IBM Model M and xorg-server 1.14.5-2):
keysym Caps_Lock = Super_L Caps_Lock
Исправление для Java приложений (серый интерфейс)
Смотрите awesome wiki и [9].
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"
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 } },
Смотрите [10].
Запретить колесу прокрутки мыши менять теги
В вашем rc.lua, измените раздел Mouse Bindings на следующий;
-- {{{ Mouse bindings root.buttons(awful.util.table.join( awful.button({ }, 3, function () mymainmenu:toggle() end))) -- }}}
Запуск консольных клиентов на определённом теге
Это не работает, когда консольное приложение запускается из терминала GTK (например LXTerminal). URxvt как известно работает.
Не работает мышка в не латинской раскладке клавиатуры
Сразу после установки Awesome, или после обновления системы, вы вероятно сталкивались с такой проблемой. Мышка не работает в не латинской раскладке клавиатуры (например при Русской раскладки клавиатуры, щелчки мышью по тэгам не обрабатываются, также вы не можете вызвать меню Awesome). Смотрите подробно об этой ошибке (Англ.).
Для решения этой проблемы, отредактируйте файл /usr/share/X11/xkb/compat/basic
, и закомментируйте (при помощи //
) в нём эти строки, как указано ниже:
//group 2 = AltGr; //group 3 = AltGr; //group 4 = AltGr;
Смотрите также
- https://archlinux.org.ru/forum/topic/11748/ - Анатомия awesome
- https://archlinux.org.ru/forum/topic/15184/ - Установка Awesome 3.5.6 и доведение его до рабочего состояния
- https://awesome.naquadah.org/wiki/Main_Page/ru - Русскоязычная wiki awesome
- http://awesome.naquadah.org/wiki/FAQ - ЧаВо
- https://www.lua.org/pil/ - Программирование на Lua
- http://awesome.naquadah.org/ - Официальный сайт awesome
- http://awesome.naquadah.org/wiki/FAQ/ru - страница awesome wiki
- http://www.penguinsightings.org/desktop/awesome/[устаревшая ссылка 2020-12-20] - Обзор
- http://compsoc.tardis.ed.ac.uk/wiki/AwesomeWM_guide[устаревшая ссылка 2020-08-02] - Гайд по Awesome
- https://bbs.archlinux.org/viewtopic.php?id=88926 - поделитесь своим awesome!
- https://help.ubuntu.ru/wiki/awesome - Отличная русскоязычная документация