awesome

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

Other languages:
English • ‎Nederlands • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

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

Установка

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)

Emerge

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

root #emerge --ask x11-wm/awesome

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

Первоначальная настройка

Для запуска awesome используйте display manager или startx.

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

Файл ~/.xinitrc
exec ck-launch-session 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 })
-- }}}

Дата и время

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

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

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

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

root #emerge --ask media-sound/volumeicon

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

Файл ~/.xinitrcФоновый запуск volumeicon при старте X
volumeicon &
exec ck-launch-session dbus-launch awesome

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

Файл ~/.config/awesome/rc.luaНастройка клавиш громкости
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q sset Master 2dB-") end)
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q sset Master 2dB+") 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 внутри окна.

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

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

  • mod4+mouse1 = переместить клиент мышью
  • mod4+mouse2 = изменить размер клиента мышью
  • mod4+enter = открыть терминал
  • mod4+r = выполнить команду
  • mod4+shift+c = закрыть
  • mod4+m = развернуть
  • mod4+n = свернуть
  • mod4+ctrl+n = восстановить свёрнутые
  • mod4+f = полноэкранный режим
  • mod4+tab = переключиться на предыдущий клиент
  • mod4+ctrl+space = режим плавающих окон
  • mod4+j = подсветить левый
  • mod4+k = подсветить правый
  • mod4+shift+j = переместить вправо
  • mod4+shift+k = переместить влево
  • mod4+l = изменить размер тайлового окна
  • mod4+h = изменить размер тайлового окна
  • mod4+left / right = сменить тэг
  • mod4+1-9 = сменить тэг
  • mod4+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),
-- )}}}

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