This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
awesome
awesome это высоконастраиваемый, динамичный оконный менеджер для X. Прежде всего он направлен на опытных пользователей, разработчиков, да и просто людей, заинтересованных в наличие контроля над различными аспектами графического окружения. Функционал можно увеличить с помощью языка программирования Lua.
Установка
USE-флаги
USE flags for x11-wm/awesome 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) |
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
Устанавливаем обои с использованием awsetbgtheme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }
Или просто настройте обои в параметрах темы:
~/.config/awesome/theme/theme.lua
Настройка определенной картинки фона рабочего стола с помощью определения wallpapertheme.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 при старте Xvolumeicon & 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_honorawful.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), -- )}}}
Внешние ресурсы
- Пользовательские конфигурации на wiki-страничке awesome