18.03.09 09:18 booley

Оконные менеджерыAwesome 3

Awesome - тайловый оконный менеджер, основанный на dwm. Обладает, на мой взгляд неплохим интерфейсом (в тех рамках, в которых это может делать tiling window manager)

Для начала приведу скриншот GIMP в awesome
Скриншот (GIMP in Awesome3)


Теперь, если вы продолжили читать, я немного опишу свои впечатления от awesome. Если быть правдивым, мне нравится. Описал свои впечатления, идем дальше. Мне нравился dwm и мне нравится awesome. Упростив до минимума, awesome - dwm improved, или, говоря по-русски, улучшенный dwm. Основное отмеченное мною отличие:
dwm не имеет конфигурационного файла, awesome имеет таковой на языке Lua. Таким образом, если вы владеете Lua, рекомендую попробовать awesome, вы сможете настроить все и даже больше :) Но даже если вы не владеете Lua (об этом говорил Юрий), вы сможете подправить конфиг под свои нужды.

В Awesome существует 4 layouts, tiling, max, magnifier и floating (как в других wm). Тайловый (основной) режим очень полезен, когда у вас открыто хотя бы два-три окна :) окна делятся на два типа: одно главное и остальные. Главное окно занимает основную часть экрана (слева, снизу, справа, сверху, на выбор), остальные все оставшееся пространство.

Также в awesome реализованы следующие стандарты freedesktop.org: EWMH, XDG Base Directory, XEmbed, Desktop Notification, System Tray

Awesome первый оконный менеджер, работающий через xcb, а не через Xlib. Условно, можно сравнить это с переходом от cp866 к Unicode, но разница здесь еще больше: xcb - асинхронная библиотека, что делает awesome быстрее других оконных менеджеров.

Официальный сайт

Данный wm имеется в debian/unstable. Для тех, кто решил компилировать из исходников (мало ли что), выкладываю список зависимостей:
libc6, libcairo2, libdbus-1-3, libev3, libglib2.0-0, libimlib2, liblua5.1-0, libncurses5, libpango1.0-0, libreadline5, libx11-6, libxcb-atom1, libxcb-aux0, libxcb-event1, libxcb-icccm1, libxcb-image0, libxcb-keysyms0, libxcb-property1, libxcb-randr0, libxcb-render-util0, libxcb-render0, libxcb-shm0, libxcb-xinerama0, libxcb-xtest0, libxcb1, menu, x11-xserver-utils



l1feh4ck3r 18.03.09 09:52 # +0
Может я не прав, но в debian/experimental лежит awesome второй версии, а поддержка конфигов на lua только с третьей версии.
booley 18.03.09 09:58 # +0
Да, он лежит в unstable, ошибся.

tim@debian:~$ aptitude show -t unstable awesome
Пакет: awesome
Новый: да
Состояние: установлен
Автоматически установлен: нет
Версия: 3.2-1
Приоритет: необязательный
Раздел: x11
Сопровождающий: Julien Danjou <acid@debian.org>
Размер в распакованном виде: 1745k
Зависимости: libc6 (>= 2.1), libcairo2 (>= 1.6.4-5~), libdbus-1-3 (>= 1.0.2), libev3 (>= 3.0), libglib2.0-0 (>= 2.12.0), libimlib2, liblua5.1-0, libncurses5
(>= 5.6+20071006-3), libpango1.0-0 (>= 1.22.0), libreadline5 (>= 5.2), libx11-6, libxcb-atom1 (>= 0.3.3), libxcb-aux0 (>= 0.3.3),
libxcb-event1 (>= 0.3.3), libxcb-icccm1 (>= 0.3.3), libxcb-image0 (>= 0.3.3), libxcb-keysyms0 (>= 0.3.3), libxcb-property1 (>=
0.3.3), libxcb-randr0, libxcb-render-util0 (>= 0.3.3), libxcb-render0, libxcb-shm0, libxcb-xinerama0, libxcb-xtest0, libxcb1 (>=
1.1.92), menu
Рекомендуются: x11-xserver-utils
Предоставляют: x-window-manager
Описание: highly configurable, next generation framework window manager for X
Highly configurable window manager for X. It is primarly targeted at power users, developers and any people dealing with every day computing tasks and want
to have fine-grained control on its graphical environment.

awesome is very extensible and programmable using the Lua programming language. It provides an eaasily usable and very-well documented API to configure and
define the behaviour of your window manager.

awesome also supports tiled window management, multi-head, use XCB instead of Xlib for better performance, does not need mouse (can be fully keyboard
driven) and implements many of the Freedesktop standards. It also use tags instead of workspace, which gives better flexibility on windows display.

Remote control is possible via a socket or D-Bus.
Сайт: http://awesome.naquadah.org
xcr 18.03.09 10:58 # +1
Тема тайлов не раскрыта.
Таким образом, если вы владеете Lua, рекомендую попробовать awesome

"Таким образом, если вы владеете C, рекомендую написать патч к ядру".
Для начала приведу скриншот GIMP в awesome

Не это, ИМХО, нужно показывать.

ЗЫ: юзаю awesome3 сейчас, но вовсе не по тем причинам, которые вы перечислили.
Ginz 18.03.09 11:45 # +2
а что ты думал увидеть в посте это автора? =)
l1feh4ck3r 18.03.09 15:05 # +1
Но даже если вы не владеете Lua (об этом говорил Юрий), вы сможете подправить конфиг под свои нужды.

Вообще-то, как говорил Юрий, как говорил автор программы:
We're talking about Lua, so first, learn Lua. Don't want to? Do not use awesome 3 and stop reading right now.

Что в вольном переводе означает: Мы говорим о Lua. Во-первых, выучите Lua. Не хотите? Не пользуйтесь awesome 3 и перестаньте читать этот текст прямо сейчас.
booley 18.03.09 15:28 # +-1
Он цитировал автора программы, а сам добавил что не знает луа и его убивает "элитариность"
Cucumber 18.03.09 19:18 # +0
Оба-на! Официальный сайт Awesome переехал на мылинукс :)
Скоро тайлингисты перестанут показывать GIMP, так как он станет однооконным.
booley 18.03.09 19:29 # +0
Спасибо, пофиксил
vitroot 18.03.09 19:33 # +3
меня, конечно, тайлинги немного интересуют, но пока не пробовал даже настраивать. Как-то все сложно. Нет, не для меня, я-то разберусь, вообще сложно. Можно, думаю, и проще все сделать.

Тема, конечно, не раскрыта, но задуматься и лишний раз почитать подробности заставляет.
Зависимости пакета можно было и лучше сформировать по одной на строку, так визуально проще.
А вообще, с таким кол-вом зависимостей такой пакет, имхо, плохо. Там с каждой либы используется по 5-10 функций. можно было и нативными их реализовать, а не ставить такое жудкое награмождение зависимостей.
booley 18.03.09 19:37 # +0
Скорее всего это build-dep, хотя я не уверен. Для обычного использования нужно, скорее всего, меньше, хотя я с вами согласен.
l1feh4ck3r 20.03.09 06:34 # +0
Глянь мой пост про ион3 и убедись, что ничего сложного в настройке нет. Да там настройки-то почти нет.
vitroot 18.03.09 19:37 # +3
надо бы немного про Lua почитать Интересно, как они в него инклудят Си'шщные функции с либ :)
booley 18.03.09 19:42 # +0
C - включения

С С-функцией можно ассоциировать некоторые значения, это делается с помощью механизма С-включений. Такие значения называеются внешними значениям и доступны в функции независимо от того, где она вызвана (смотрите lua_pushcclosure).

Откуда бы C-функция не вызывалась, эти внешние значения доступны через специальные псевдо-индексы. Их можно получить с помощью lua_upvalueindex. Первое ассоциированное с функцией значение доступно по индексу lua_upvalueindex(1), и так далее. В случае вызова lua_upvalueindex(n), где nбольше количества внешних значения этой функции, вернется допустимый с точки зрения стека индекс (но он будет указывать неизвестно на что).

Из документации Lua 5.1

А так, lua_pushcfunction
vitroot 18.03.09 19:46 # +2
мдя.. поскольку я с Lua не знаком, мне пока что, к сожалению, это мало о чем говорит. Само собой, прослойка между языками должна быть, интерпритировать функции как-то необходимо, а вот саму реализацию посмотреть интересно (здесь ее можно не приводить :)
Посты Комментарии
Последние посты
Посты Комментарии
Последние комментарии
Посты Комментарии
Изменения
Посты Комментарии Изменения Черновики Избранное
Черновики (все)
Посты Комментарии Изменения Черновики Избранное
Избранное (всё)
Посты Комментарии Изменения Черновики Избранное
Лучшие блоги (все 127)
Элита (все 2421 из 196 городов)
welinux.ru