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)
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gnome Add GNOME support
gnome-keyring Enable support for storing passwords via gnome-keyring
gtk-doc Build and install gtk-doc based developer documentation for dev-util/devhelp, IDE and offline use
luajit Use dev-lang/luajit instead of dev-lang/lua (ineffective with USE=-lua)
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

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),
-- )}}}

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