awesome (Русский)
С официального сайта:
"awesome - это полностью настраиваемый современный оконный менеджер для X. Он очень быстрый, расширяемый и распространяется под GNU GPLv2 лицензией.
Ориентирован на опытных пользователей, разработчиков, людей, занимающихся вычислениями и на тех, кто желает иметь полный контроль над графической средой."
Contents
- 1 Установка
- 2 Запуск awesome
- 3 Конфигурация
- 4 Темы оформления
-
5 Советы и хитрости
- 5.1 Использование awesome в GNOME в качестве оконного менеджера
- 5.2 Эффект развертывания окон как в compiz
- 5.3 Скрыть/показать wibox в awesome
- 5.4 Снимки рабочего стола
- 5.5 Динамические теги
- 5.6 Space Invaders
- 5.7 Naughty для всплывающих уведомлений
- 5.8 Контекстное меню
- 5.9 Еще виджеты для awesome
- 5.10 Прозрачность
- 5.11 Автозапуск программ
- 5.12 Передача информации виджетам при помощи awesome-client
- 5.13 Использование другой панели в awesome
- 5.14 Запретить Nautilus'у отображать рабочий стол (Gnome3)
- 5.15 Переход с GNOME 3
- 5.16 Не менять теги колесом мыши
- 6 Устранение неисправностей
- 7 Смотрите также
Установка
Awesome доступен в community:
pacman -S awesome
Git-based версия также доступна в AUR, смотрите awesome-gitAUR.
Запуск awesome
Без использования менеджера входа в систему
Для запуска awesome без логин менеджера просто добавьте exec awesome
в ваш скрипт запуска графического окружения (например в ~/.xinitrc.)
Подробнее смотрите xinitrc.
Также возможен автозапуск awesome после авторизации пользователя из виртуальной консоли. Смотрите Запуск X при входе.
С использованием менеджера входа в систему
Для запуска awesome из логин менеджера смотрите эту статью.
После установки awesome автоматически создаст конфигурационный файл для этих оконных менеджеров, дающий возможность выбрать awesome при входе в систему.
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
Конфигурация
Awesome неплохо работает «из коробки», но рано или поздно вы захотите изменить что-нибудь. Конфигурация на языке Lua находится в ~/.config/awesome/rc.lua
.
Создание файла конфигурации
Во-первых, создайте новый каталог. В нем будет храниться файл конфигурации.
$ mkdir -p ~/.config/awesome/
Awesome попытается использовать конфигурацию, которая содержится в файле ~/.config/awesome/rc.lua. Он не создается автоматически, поэтому скопируйте шаблон:
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
Синтаксис файла конфигурации часто изменяется при обновлении awesome. Поэтому повторите эту команду, если с awesome произошло что-то непонятное или же вы хотите изменить конфигурацию.
Чтобы получить дополнительную информацию о настройке awesome, посмотрите Awesome 3 configuration wiki
Источники для файлов конфигурации
Отличные примеры файлов rc.lua можно найти по следующим ссылкам:
- http://git.sysphere.org/awesome-configs/tree/ - конфигурации Awesome 3.4 от Adrian C. (anrxc)
- http://pastebin.com/f6e4b064e - конфигурация Darthlukan'а для awesome 3.4.
- http://www.calmar.ws/dotfiles/dotfiledir/dot_awesomerc.lua
- http://www.ugolnik.info/downloads/awesome/rc.lua (screen) - Awesome 3 с маленькими строками заголовка и состояния.
- http://github.com/nblock/config/blob/master/.config/awesome/rc.lua
- Пользовательские конфигурационные файлы на http://awesome.naquadah.org/wiki/User_Configuration_Files
Отладка файла rc.lua при помощи Xephyr
Этот способ редактирования конфигурации предпочтителен, потому что он не изменяет текущий рабочий стол. Для начала скопируйте файл rc.lua в другой файл:
$ cp ~/.config/awesome/rc.lua ~/.config/awesome/rc.lua.new
Затем можете изменить его как Вам необходимо. Теперь запускайте новый экземпляр awesome в Xephyr (эта программа позволяет запускать вложенный Х-сервер, screenshot), используя файл конфигурации rc.lua.new:
$ Xephyr -ac -br -noreset -screen 1152x720 :1 & $ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new
Преимущество такого подхода в том, что если изменить rc.lua.new, то не нарушится работа текущего экземпляра рабочего стола awesome (а также не потеряются все несохраненные данные, не закроются все экземпляры приложений и т.п.). Как только новые настройки Вас устроят, просто переместите новый файл с конфигурацией на место rc.lua:
$ cp ~/.config/awesome/rc.lua.new ~/.config/awesome/rc.lua
и перезапустите оконный менеджер.
Темы оформления
Beautiful — это библиотека lua, которая позволяет Вам задавать темы оформления для awesome из внешних файлов. С ее помощью весьма легко изменить «на лету» цвета или обои awesome без внесения изменений в файл rc.lua.
Тема по-умолчанию содержится в /usr/share/awesome/themes/default. Скопируйте ее и другие темы:
$ cp -r /usr/share/awesome/themes/ ~/.config/awesome/themes/
Затем измените путь к теме оформления в файле rc.lua:
$ nano ~/.config/awesome/rc.lua
Найдите строку beautiful.init('/usr/share/awesome/themes/default/theme.lua')
и замените путь на /home/$USER/.config/awesome/themes/default/theme.lua.
Подробности здесь.
Примеры тем здесь.
Установка обоев рабочего стола
Beautiful может управлять обоями рабочего стола. Это позволяет задать различные для каждой темы обои. Настройки темы содержатся в файле theme.lua.
Например, вы можете задать обои, изменив путь в строке
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }
Случайные фоновые изображения
Чтобы случайно менять фоновые изображения, просто закомментируйте строку из пункта выше и добавьте следующие строки в .xinitrc:
while true; do awsetbg -r <path/to/the/directory/of/your/wallpapers> sleep 15m done &
Советы и хитрости
Не стесняйтесь добавлять советы и хитрости, которыми бы Вы хотели поделиться с другими пользователями.
Использование awesome в GNOME в качестве оконного менеджера
Преимущество GNOME в том, что он сразу работает как нужно. Вы можете использовать awesome для отрисовки окон, а GNOME оставить всю "теневую" работу. За подробностями - в awesome wiki.
Эффект развертывания окон как в compiz
Развертывание представляет возможность увидеть все открытые в данный момент рабочие столы.
Подробная информация здесь.
Скрыть/показать wibox в awesome
Чтобы привязать комбинацию Modkey + b для показа/скрытия строки состояния на активном рабочем столе (как в awesome 2.3), добавьте сочетание клавиш в rc.lua:
awful.key({ modkey }, "b", function () mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible end),
Снимки рабочего стола
Чтобы активировать функцию снимков рабочего стола в awesome, Вам нужна программа для захвата экрана. Для этой цели подойдет scrot - легкая в использовании утилита, которая доступна в репозиториях Arch.
Достаточно выполнить:
# pacman -S scrot
Также Вы можете установить необязательные пакеты, идущие вместе с этим пакетом, если необходимо.
Затем нужно узнать название клавиши PtrScr, обычно это "Print", но лучше убедиться в этом.
Запускаем:
# xev
Нажмите кнопку PtrScr, вывод программы будет выглядеть примерно так:
KeyPress event .... root 0x25c, subw 0x0, ... state 0x0, keycode 107 (keysym 0xff61, Print), same_screen YES, ....
В нашем случае кнопка называется Print.
Теперь приступим к конфигурации awesome.
В блоке с назначениями клавиш (globalkeys) наберите:
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),
Неплохой идеей будет разместить эту строку ниже сочетания для открытия терминала.
awful.util.spawn(terminal)
Эта функция сохраняет снимки рабочего стола в каталог ~/screenshots/, поэтому измените путь, если необходимо.
Динамические теги
Eminent - это маленькая lua библиотека, которая позволяет быстро привязывать окна к тегам в стиле оконного менеджера wmii. Однако, eminent нацелен на то, чтобы сделать привязку к тегам максимально простой. В действительности, Вам даже не придется менять ваш rc.lua файл, eminent сделает это за Вас.
Shifty - это расширение для awesome 3, которое также осуществляет динамическую привязку к тегам. Вместе с самим расширением поставляется конфигурация, позволяющая ВАМ быть хозяином своего рабочего стола, изменив всего-то пару переменных в конфигурации и поменяв сочетания клавиш.
Space Invaders
Space Invaders - программа-демонстрация для иллюстрации возможностей Awesome Lua API.
Учтите, что этот пакет не поставляется вместе с пакетом Awesome с релиза 3.4-rc1.
Naughty для всплывающих уведомлений
См. awesome wiki.
Контекстное меню
По-умолчанию, в awesome3 есть контектсное меню, и настроить его очень просто. Но если вы используете awesome версии 2.x, взгляните на awful.menu.
Пример конфигурации меню для awesome3:
myawesomemenu = { { "lock", "xscreensaver-command -activate" }, { "manual", terminal .. " -e man awesome" }, { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" }, { "restart", awesome.restart }, { "quit", awesome.quit } } mycommons = { { "pidgin", "pidgin" }, { "OpenOffice", "soffice-dev" }, { "Graphic", "gimp" } } mymainmenu = awful.menu.new({ items = { { "terminal", terminal }, { "icecat", "icecat" }, { "Editor", "gvim" }, { "File Manager", "pcmanfm" }, { "VirtualBox", "VirtualBox" }, { "Common App", mycommons, beautiful.awesome_icon }, { "awesome", myawesomemenu, beautiful.awesome_icon } } })
Еще виджеты для awesome
Виджеты в Awesome - это объекты, которые можно размещать на панелях и в заголовках окон, они могут предоставлять различную информацию о системе и очень полезны для получения доступа к этой информации прямо из оконного менеджера. Виджеты легко использовать и они обладают большой гибкостью. -- источник [Wiki:Widgets(rus)]
Библиотека виджетов Wicked (совместима с awesome вплоть до версии 3.4) добавляет новые виджеты, такие как MPD виджет, загрузка ЦП, использование оперативной памяти и т.д. Дополнительная информация на странице Wicked.
В качестве альтернативы Wicked в awesome 3.4 можно использовать:
- Vicious. Для vicious есть отличная документация.
- Obvious
- Bashets
- Blingbling
Прозрачность
У awesome есть поддержка эффекта прозрачности через xcompmgr. Учтите, что Вам вероятно понадобится git-версия xcompmgr, которую можно найти на AUR.
Добавьте эту строчку в ~/.xinitrc
exec xcompmgr &
Посмотрите man xcompmgr или xcompmgr для дополнительной информации.
В awesome версии 3.4, прозрачность окна можно установить динамически, используя сигналы. Например, файл rc.lua может содержать следующие строки:
client.add_signal("focus", function(c) c.border_color = beautiful.border_focus c.opacity = 1 end) client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal c.opacity = 0.7 end)
Если возникнет ошибка про add_signal, замените его на connect_signal.
Учтите, что при использовании conky, Вы должны указать, что он должен создавать собственное окно, а не использовать рабочий стол. Чтобы сделать это, отредкактируйте ~/.conkyrc:
own_window yes own_window_transparent yes own_window_type desktop
В противном случае можно пронаблюдать, как все окна станут полностью прозрачными.
Начиная с версии awesome 3.1, имеется встроенная поддержка псевдопрозрачности для wibox'ов. Чтобы ее включить, добавьте 2 шестнадцатеричные цифры к цветам в файле конфигурации Вашей темы (~/.config/awesome/themes/default ,обычно является копией /usr/share/awesome/themes/default), как показано в примере:
bg_normal = #000000AA
где "AA" - это значение прозрачности.
ImageMagick
У вас может возникнуть проблема при попытке установить обои командой display из пакета imagemagick (не очень хорошо работает с xcompmgr). awsetbg будет использовать display, если не найдет ничего более подходящего. Установите habak, feh, hsetroot или что-нибудь другое (список можно посмотреть командой grep -A 1 wpsetters /usr/bin/awsetbg).
Автозапуск программ
См. также страница автозапуска на Awesome wiki.
В awesome есть несколько функций для запуска программ (в качестве дополнения к стандартной библиотеке Lua os.execute
). Чтобы иметь возможность запускать программы при старте, как в GNOME или KDE, установите dex из AUR, а затем включите строку в Ваш файл rc.lua:
os.execute"dex -a"
Если Вам нужно просто задать список программ для запуска при старте awesome, создайте таблицу со всеми командами:
do local cmds = { "swiftfox", "mutt", "consonance", "linux-fetion", "weechat-curses", --and so on... } for _,i in pairs(cmds) do awful.util.spawn(i) end end
(Вы также можете запускать программы с помощью os.execute
с окончанием '&
', но рациональней будет задать функцию для запуска.)
Чтобы запустить программу, если она еще не запущена, воспользуйтесь командой оболочки pgrep
, которая запустит программу только в том случае, если не обнаружит процесса с таким же именем:
function run_once(prg) awful.util.spawn_with_shell("pgrep -u $USER -x " .. prg .. " || (" .. prg .. ")") end
Таким образом, для запуска, например, parcellite
, только если он уже не запущен:
run_once("parcellite")
Передача информации виджетам при помощи 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:
sudo pacman -S xfce4-panel
Конечно, другие панели тоже подойдут. После установки добавьте в автозапуск в rc.lua (прочтите выше, как это сделать). Также можно закомментировать секцию, которая создает wibox'ы для каждого экрана (начинается с "mywibox[s] = awful.wibox({ position = "top", screen = s })"), однако это не обязательно. Не забудьте проверить rc.lua на наличие ошибок командой
awesome -k rc.lua
Если нужна сторонняя программа запуска, например, Xfrun4, bashrun, посмотрите секцию оконного менеджера Openbox. Можно также сменить сочетание клавиш для него на "modkey+R". Не забудьте добавить
properties = { floating = true } }, { rule = { instance = "$yourapplicationlauncher" },
в rc.lua.
Запретить Nautilus'у отображать рабочий стол (Gnome3)
Запустите dconf-editor. В разделе org->background снимите галочку с "draw-background" и "show-desktop-icons". Все.
Стоит также слинковать /usr/bin/nautilus со скриптом, который выполняет 'nautilus --no-desktop', пропуская все аргументы.
Переход с GNOME 3
Запустите 'gnome-session-properties' и удалите ненужный программы (Bluetooth Manager, Login Sounds и т.д.).
Если вы хотите избавиться от GDM, убедитесь, что в /etc/rc.conf в секции DAEMONS есть "dbus" (и "cupsd", если у вас есть принтер). Рекомендуется поставить другой логин менеджер (SLiM). Если не хотите этого делать, убедитесь, что верно отредактировали .xinitrc и поставьте что-нибудь типа devmon (AUR).
Чтобы сохранить удобные апплеты в системном лотке, а также тему оформления GTK, добавьте в rc.lua:
function start_daemon(dae) daeCheck = os.execute("ps -eF | grep -v grep | grep -w " .. dae) if (daeCheck ~= 0) then os.execute(dae .. " &") end end
procs = {"gnome-settings-daemon", "nm-applet", "kupfer", "gnome-sound-applet", "gnome-power-manager"} for k = 1, #procs do start_daemon(procs[k]) end
Не менять теги колесом мыши
В файле rc.lua, секцию Mouse Bindings замените на
-- {{{ Mouse bindings root.buttons(awful.util.table.join( awful.button({ }, 3, function () mymainmenu:toggle() end))) -- }}}
Устранение неисправностей
Кнопка Mod4
По-умолчанию, кнопкой Mod4 является Win. Если по каким-то причинам она не работает, проверьте код Вашей кнопки Mod4:
$ xev
Должно быть 115 для левой кнопки Win. Затем включите строку в файл ~/.xinitrc:
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L" exec awesome
Mod4 key vs. IBM ThinkPad users
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-приложениях.
Исправление для Java приложений (серый интерфейс)
Взято с [1].
- Установите wmname.
- Выполните следующую команду или добавьте ее в {Filename|.xinitrc}}:
wmname LG3D
Brasero не определяет диски
Если Brasero не определяет диски при запуске в awesome, но отлично работает в GNOME, попробуйте запустить его командой:
$ dbus-launch brasero
Смотрите также
- http://awesome.naquadah.org/wiki/FAQ - ЧаВо
- http://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/ - Обзор
- http://compsoc.tardis.ed.ac.uk/wiki/AwesomeWM_guide - Гайд по Awesome
- https://bbs.archlinux.org/viewtopic.php?id=88926 - поделитесь своим awesome!
- http://help.ubuntu.ru/wiki/awesome - Отличная русскоязычная документация