Awesome

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Awesome and the translation is 95% complete.


awesome — это гибко настраиваемый, динамичный оконный менеджер для X. Прежде всего он направлен на опытных пользователей, разработчиков, да и просто людей, заинтересованных в наличие контроля над различными аспектами графического окружения. Функционал можно расширить с помощью языка программирования Lua.

Требования

Сервисы

Выберите один из:

  • elogind: Standalone logind package, extracted from the systemd project for use with OpenRC or other init systems.
  • systemd: Uses the session tracker part of systemd. Users of systemd do not need to take any other initiative here.

Разное

  • D-Bus: Enables use of the D-Bus message bus system.
  • polkit: Enables the polkit framework for controlling privileges for system-wide services.
  • udisks: Enables support for some storage related services.

X-сервер

Следуйте инструкциям в Xorg/Guide для получения среды X.

Запуск X-сервера

One of the following methods can be used to start X:

Установка

USE-флаги

USE flags for x11-wm/awesome A dynamic floating and tiling window manager

dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gnome Add GNOME support
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Установка

Установите x11-wm/awesome:

root #emerge --ask x11-wm/awesome

Конфигурация

Запуск

Для запуска awesome обратитесь к разделу Запуск X-сервера или используйте команду startx.

Чтобы использовать startx с поддержкой elogind, установите elogind и создайте следующий файл:

ФАЙЛ ~/.xinitrc
exec dbus-launch --sh-syntax --exit-with-session awesome

Конфигурационный файл

Стандартный конфигурационный файл awesome находится в ~/.config/awesome/rc.lua. Если данный каталог или файл отсутсвует, его следует создать. Стандартная конфигурация поставляется в комплекте с awesome и находится по адресу /etc/xdg/awesome/rc.lua. Просто скопируйте его в домашний каталог пользователя.

Создадим каталог awesome/:

user $mkdir -p ~/.config/awesome/

И скопируем туда конфигурационный файл rc.lua:

user $cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua

Если не установлен x11-terms/xterm, то следует либо установить его, либо изменить терминал по умолчанию на тот, который представлен в системе. Ниже мы используем в качестве подобного терминала konsole, часть kde-apps/konsole.

ФАЙЛ ~/.config/awesome/rc.lua
-- Далее мы используем его как терминал по умолчанию.
terminal = "konsole"

После внесения изменений не помешает проверить файл на наличие ошибок:

user $awesome -k
✔ Configuration file syntax OK

Поддержка обоев рабочего стола очуществляется пакетом media-gfx/feh:

root #emerge --ask media-gfx/feh

Но можно установить обои и при помощи awsetbg, для чего следует добавить в ~/.config/awesome/theme/theme.lua следующую строку:

ФАЙЛ ~/.config/awesome/theme/theme.luaУстанавливаем обои с использованием awsetbg
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }

Или просто настройте обои в параметрах темы:

ФАЙЛ ~/.config/awesome/theme/theme.luaНастройка определенной картинки фона рабочего стола с помощью определения wallpaper
theme.wallpaper = ".config/awesome/themes/awesome-wallpaper.png"

Тэги

В awesome тэгами называются виртуальные рабочие столы, на которых запущены приложения. Можно присвоить им различные символы:

ФАЙЛ ~/.config/awesome/rc.lua
-- {{{ Tags
tags = {}
for s = 1, screen.count() do
    tags[s] = awful.tag({ "➊", "➋", "➌", "➍" }, s, layouts[1])
end
-- }}}

Меню

Рассмотрим пример меню awesome:

ФАЙЛ ~/.config/awesome/rc.lua
-- {{{ Menu
myawesomemenu = {
   { "инструкция", terminal .. " -e man awesome" },
   { "править конфиг", editor_cmd .. " " .. awesome.conffile },
   { "перезагрузка", awesome.restart },
   { "выход", awesome.quit },
   { "перезагрузка", "reboot" },
   { "выключения", "shutdown" }
}
 
appsmenu = {
   { "urxvt", "urxvt" },
   { "sakura", "sakura" },
   { "ncmpcpp", terminal .. " -e ncmpcpp" },
   { "luakit", "luakit" },
   { "uzbl", "uzbl-browser" },
   { "firefox", "firefox" },
   { "chromium", "chromium" },
   { "thunar", "thunar" },
   { "ranger", terminal .. " -e ranger" },
   { "gvim", "gvim" },
   { "leafpad", "leafpad" },
   { "htop", terminal .. " -e htop" },
   { "sysmonitor", "gnome-system-monitor" }
}
 
gamesmenu = {
   { "warsow", "warsow" },
   { "nexuiz", "nexuiz" },
   { "xonotic", "xonotic" },
   { "openarena", "openarena" },
   { "alienarena", "alienarena" },
   { "teeworlds", "teeworlds" },
   { "frozen-bubble", "frozen-bubble" },
   { "warzone2100", "warzone2100" },
   { "wesnoth", "wesnoth" },
   { "supertuxkart", "supertuxkart" },
   { "xmoto" , "xmoto" },
   { "flightgear", "flightgear" },
   { "snes9x" , "snes9x" }
}
 
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu },
                                    { "приложения", appsmenu },
				    { "игры", gamesmenu },
                                    { "терминал", terminal },
				    { "браузер", browser },
				    { "текстовый редактор", geditor }
                                  }
                        })
 
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
                                     menu = mymainmenu })
-- }}}

Дата и время

Ниже приведён пример нестандартного формата времени. Для формата используется синтаксис %Y-%m-%d %H:%M, а 60 указывает интервал обновления.

ФАЙЛ ~/.config/awesome/rc.luaСоздание виджета текстовых часов
-- {{{ Wibox
-- Create a text-clock widget
mytextclock = wibox.widget.textclock(" %Y-%m-%d %H:%M ", 60)
-- }}}
Заметка
Чтобы узнать больше о различных форматах, запустите date --help.

Настройка громкости

media-sound/volumeicon позволяет использовать мультимедиа-клавиши и видеть уровень громкости при помощи иконки в трее.

root #emerge --ask media-sound/volumeicon

Автоматический запуск volumeicon из ~/.xinitrc:

ФАЙЛ ~/.xinitrcФоновый запуск volumeicon при старте X
volumeicon &
exec [...]

Или же можно добавить обработку мультимедиа-клавиш прямо в конфигурации awesome:

ФАЙЛ ~/.config/awesome/rc.luaНастройка клавиш громкости
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q sset Master 5%-") end)
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q sset Master 5%+") end)

Мультимедиа-клавиши MPD

Установите media-sound/mpc чтобы привязать мультимедия клавиши к MPD:

root #emerge --ask media-sound/mpc

И обновите конфиг awesome, чтобы присвоить мультимедиа-клавишам соответствующие команды:

ФАЙЛ ~/.config/awesome/rc.luaПривязка мультимедиа-клавиш
awful.key({ }, "XF86AudioNext",function () awful.util.spawn( "mpc next" ) end),
awful.key({ }, "XF86AudioPrev",function () awful.util.spawn( "mpc prev" ) end),
awful.key({ }, "XF86AudioPlay",function () awful.util.spawn( "mpc play" ) end),
awful.key({ }, "XF86AudioStop",function () awful.util.spawn( "mpc pause" ) end),

Удаление зазоров между окнами

Зазоры между окнами могут быть видимыми, наиболее заметно между окнами терминала. Их можно удалить, вставив свойство size_hints_honor=false в таблицу awful.rules.rules, например:

ФАЙЛ ~/.config/awesome/rc.luaУстановка свойства size_hints_honor
awful.rules.rules = {
    { rule = { },
      properties = { size_hints_honor = false, -- Remove gaps
                     border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
      ...

Отладка конфигурации при помощи Xephyr

Xephyr удобен для исправления ошибок, так как запускает X без клиентского окна.

user $Xephyr -ac -nolisten tcp -br -noreset -screen 800x600 :1

Создастся окно размерами 800x600. Чтобы запустить внутри него awsome, необходимо выполнить следующую команду:

user $DISPLAY=:1.0 awesome

Это запустит awesome внутри окна.

Горячие клавиши

Список наиболее полезных клавиш:

  • Super+Mouse1 = переместить клиент мышью
  • Super+Mouse2 = изменить размер клиента мышью
  • Super+Enter = открыть терминал
  • Super+r = выполнить команду
  • Super+Shift+c = закрыть
  • Super+m = развернуть
  • Super+n = свернуть
  • Super+Ctrl+n = восстановить свёрнутые
  • Super+f = полноэкранный режим
  • Super+Tab = переключиться на предыдущий клиент
  • Super+Ctrl+Space = режим плавающих окон
  • Super+j = подсветить левый
  • Super+k = подсветить правый
  • Super+Shift+j = переместить вправо
  • Super+Shift+k = переместить влево
  • Super+l = изменить размер тайлового окна
  • Super+h = изменить размер тайлового окна
  • Super+left / right = сменить тэг
  • Super+1-9 = сменить тэг
  • Super+Shift+1-9 = отправить окно на тэг

Для дальнейшей кастомизации awesome можно присвоить действия к комбинациям вроде Alt+Tab, чтобы, например, переключиться на предыдущее окно:

ФАЙЛ ~/.config/awesome/rc.luaПривязка клавиш Alt+TAB
-- {{{ Key bindings
globalkeys = awful.util.table.join(
...
    -- alt + tab
    awful.key({ "Mod1", }, "Tab",
        function ()
            awful.client.focus.history.previous()
            if client.focus then
                client.focus:raise()
            end
        end),
-- )}}}

Внешние ресурсы