Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Yuriy Al. Shirokov ([info]yushi)
@ 2008-12-14 20:16:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
awesome: ещё один шаг к идеальному wm
Создатели большинства оконных сред (Windows, GNOME, KDE) очень высокого мнения о пользователях. Они считают своих пользователей ловкими, внимательными, трудолюбивыми, аккуратными и спокойными людьми с хорошей памятью. По крайней мере, именно на таких людей расчитан интерфейс Windows, KDE и GNOME.

Мне не повезло: я не такой. Мне трудно совершать ювелирно точные движения мышкой: попасть в границу окна или в кнопки закрывания-сворачивания для меня — разражающе сложная задача. Я невнимателен: если на экране больше трёх-четырёх открытых окон, я в них путаюсь (а благодаря плохой памяти я путаюсь и в свёрнутых окнах). Я ленив: мне неохота каждый раз залезать в стартовое меню, чтобы запустить нужное приложение. И настраивать рабочий стол/иконки быстрого запуска/док в соответствии с текущим списком часто запускаемых приложений тоже неохота. Хуже того: мне неохота каждый раз регулировать размер окон на экране и даже снимать руки с клавиатуры! И ещё я раздражителен и нетерпелив: необходимость копаться в меню, прицельно тыкать мышкой в двухмиллиметровую полоску на экране, раз за разом совершать одни и те же сложные действия меня бесит. В общем, я не соответствую высоким стандартам пользователя Windows-подобных сред: я хочу работать за компьютером, а не демонстрировать свои (отсутствующие, как уже было сказано) таланты. Чем менее заметна оконная среда, тем для меня, в принципе, лучше.

Судя по количеству пользователей Windows, GNOME и KDE, мои проблемы достаточно нетипичны: большинство пользователей ловчее, внимательнее и терпеливее меня. Им дальнейшее вряд ли будет интересно. Ну, а мои немногочисленные товарищи по несчастью могут читать дальше.

Итак, если у вас те же проблемы, что у меня, давайте подумаем вместе: чего мы хотим от оконной среды? У меня получился такой список:

  • возможность управлять размером и положением окон без необходимости совершать прицельные движения мышью, а в идеале вообще без помощи мыши;

  • возможность группировать окна (например, по решаемым задачам) и делать видимой в определённый момент только одну из групп;

  • банально, но — автозапуск часто используемых приложений;

  • возможность запомнить расположение и тип окна для определённых приложений;

  • возможность быстро запустить произвольное приложение.


Кое-что из этого знакомо пользователям Маков, однако меня лично Мак не устраивает по другим причинам (например, ставить/удалять программы и обновлять систему гораздо сложнее, чем в Linux). Я уже много лет использую Window Maker — среду, имитирующую интерфейс NeXTSTEP. Но и её я не могу назвать идеальной — скорее наименее раздражающей из всего, что мне довелось попробовать: например, возможности по управлению с помощью клавиатуры там оставляют желать.

Некоторое время назад (кажется, от пользователя [info]gogabr, уже не помню точно) я узнал о tiling window managers (мозаичных оконных менеджерах), и сразу подумал, что это как раз примерно то, что мне нужно. Главный принцип интерфейса мозаичных wm — как раз отказ от прицельных движений мышью. В мозаичных оконных менеджерах нет перекрывающихся окон: все запущенные приложения видны на экране одновременно, занимая всё пространство экрана; обрамления, в которое нужно было бы тыкать курсором, у окон нет. Описание может кому-то показаться пугающим, но на самом деле такой способ работы гораздо нагляднее и интуитивнее обычного (с перекрывающимися и сворачивающимися окнами) особенно в сочетании с виртуальными рабочими столами, хорошо знакомыми пользователям большинства оконных сред (собственно, кажется, сейчас они в том или ином виде есть везде, кроме Windows). Я, естественно, сразу попытался использовать те мозаичные оконные менеджеры, которые смог найти (Ion, larswm, wmii), но ни один из них меня не устроил. Причём не то, чтобы что-то конкретное сильно раздражало — скорее, просто ожидаемый выигрыш в удобстве показался не заслуживающим усилий по освоению.

Однако, на днях я встретил в комментах у [info]k001 упоминание ещё одного tiling wm, awesome:

Imagecatap.ru:
а не хочешь awesome посмотреть?

Он настолько хорош, что я его даже не конфигурял. Или я не помню что бы это делал :)


Я решил продолжить давние эксперименты и поставил awesome. И не пожалел. Это фантастически удобная штука. Несмотря на ряд крупных недостатков (о которых ниже), этот оконный менеджер на голову выше всего, что я пробовал до этого.


awesome после старта

Рис. 1. При первом запуске может показаться, что awesome оправдывает своё название…

В awesome, как и в других tiling wm, окна занимают весь экран — одно развёрнуто на его бóльшую часть, другие выстроены вдоль края (возможно несколько вариантов мозаики, они легко переключаются). А вот людей, привыкших к виртуальным рабочим столам, ждёт сюрприз: вместо них в awesome применяется более гибкая система тегов. Каждое приложение помечается каким-то тегом, и становится видно только тогда, когда выбран его тег. Отличие от виртуальных рабочих столов, например, в том, что можно выбирать несколько тегов одновременно. По-моему, это гениальное решение.


панель тегов в awesome

Рис. 2. Главная фишка awesome — теги.


Естественно, awesome легко управляется с клавиатуры. Клавиатурные привязки начинаются с клавиши Mod4, которая у меня оказалась привязана к правой клавише "Windows" — я не стал это менять, ни для чего другого я её не использую. Команды выбраны настолько удачно, что я запомнил их почти сразу — сейчас, через сутки использования, я уже не подглядываю в документацию и, наборот, по привычке тянусь к Mod4 в других оконных менеджерах.


gimp в awesome

Рис. 3. GIMP, всегда, честно говоря, раздражавший меня своим многооконным интерфейсом, в awesome оказывается вполне юзабельным и даже не так плохо выглядящим.


Естественно, чудес не бывает — есть у awesome и недостатки. Прежде всего это чрезвычайно сложный процесс настройки. Файл настроек awesome, ~/.config/awesome/rc.lua, представляет собой, по сути, скрипт на языке Lua, создающий большую часть элементов интерфейса. Соответственно, чтобы изменить настройки, приходится переписывать код, ответственный за нужную тебе функциональность. Автор программы пишет в руководстве по настройке:
We're talking about Lua, so first, learn Lua. Don't want to? Do not use awesome 3 and stop reading right now. (Alternatively fetch a config file from the source tarball or from someone, and just tweak it accordingly, which should work even without any lua language knowledge).

For people who are still reading, nice! Lua is a simple language. On the other hand, if you're not familiar at all with computer languages, i.e. if you do not know what objects, methods and arguments are, well, you're too lost for this document, learn some basics and come back!

I'm being elitist: awesome 3 is designed for power users with a minimum computer science background, However, if you're really motivated, you can learn enough basics to configure and control awesome.

С другой стороны, вот меня тошнит от любой формы "элитизма", я не знаю Lua и не собираюсь его учить, и уж подавно у меня нет никакого "minimum computer science background", но awesome я настроил, потратив на это около пары часов. Для этого, действительно, оказалось достаточным взять стандартный конфиг, добавить туда несколько кусков кода из wiki проекта и немного поработать напильником. Синтаксис Lua более или менее self-explanatory, так что человек, в общих чертах представляющий, что такое цикл и ветвление, за несколько попыток может поменять практически любое место конфига.

Кроме того, awesome не работает с Java-приложениями. Мне это пофигу, я не использую в повседневной работе ни одно приложение на Java, но кому-то это может оказаться критичным. Впрочем, есть вроде решение этой проблемы, хотя и довольно кривое.

В заголовках некоторых окон с русскими названиями видны крокозябры. Впрочем, судя по всему, это связано с тем, что я до сих пор использую локаль koi8-r, у пользователей с юникодной локалью эта проблема вряд ли возникнет.

Если вы решили попробовать awesome, то вот набор клавиатурных привязок, которые я использую чаще всего, и несколько ссылок.


Mod4 + F1

Командная строка (запуск приложения)

Mod4 + 1..9

Переход на тег с заданным номером

Mod4 + j, Mod4 + k

Смена текущего приложения (также можно переместить курсор в нужное окно)

Mod4 + Ctrl + Enter

Сделать текущее приложение главным (занимающим большую часть места на экране)

Mod4 + h

Уменьшить размер главного приложения

Mod4 + l

Увеличить размер главного приложения

Mod4 + левая клавиша мыши + перемещение мыши

Смена положения "плавающего" (не уложенного в мозаику, короче, как в стандартных wm) окна

Mod4 + правая клавиша мыши + перемещение мыши

Смена размера "плавающего" окна

Mod4 + Shift + c

Закрыть окно

Mod4 + Ctrl + r

Перезапуск (удобно при правке конфига)

Mod4 + Shift + q

Выход


Мой файл rc.lua для awesome. Что я поменял относительно стандартного:

  • создал вместо тегов с номерами теги по решаемым задачам (веб, IM, графика и т.д.);

  • вместо часов с юниксовым time_t включил часы с нормальным человеческим временем;

  • определил тег для нескольких часто используемых приложений (Firefox, LogJam, Liferea и т.д.);

  • сделал окно psi плавающим — мне не нравится, когда окно пейджера разносит на весь экран;

  • переписал предлагаемую на wiki функцию автозагрузки таким образом, чтобы она понимала симлинки;

  • поменял местами Mod4 + j и Mod4 + h — исходное направление смены окон мне показалось неинтуитивным;

  • добавил возможность запирать экран, именно так, как это рекомендуется в FAQ.



Возможно, ещё что-то, если вспомню — напишу. Да, чтобы всё заработало как надо, пришлось переименовать исходный конфиг (/etc/xdg/awesome/rc.lua) в /etc/xdg/awesome/rc.lua.example.

Ссылки.
Сайт awesome: http://awesome.naquadah.org/
Wiki: http://awesome.naquadah.org/wiki/index.php?title=Main_Page
FAQ: http://awesome.naquadah.org/wiki/index.php?title=FAQ
Несколько статей на русском про другой мозаичный оконный менеджер, Ion. Кое-что, особенно общие слова, верно и для awesome:
http://www.computerra.ru/softerra/225966/
http://www.opennet.ru/docs/RUS/ion3/
http://my-cellar-door.blogspot.com/2005/08/window-managers-ion.html
http://iportnov.blogspot.com/2006/10/ion3.html

UPD Как тут совершенно верно замечают в комментах, смотреть в сторону tiling менеджеров имеет смысл только обладателям больших мониторов. На ноутбуках, и тем более нетбуках, смысла в тайлинге, мягко выражаясь, немного.

UPD2 Ниже в комментах с этим не соглашаются.


(Читать комментарии) - (Добавить комментарий)


[info]yushi
2008-12-16 17:48 (ссылка)
А пакет какой? awesome-3.0-alt1?

Угу.

Вообще, херово в нём то, что его можно легко и просто случайно завалить немного некорректной настройкой.

Результат скотского отношения автора к процессу настройки (и пользователям), ага.

Впрочем, awesome меня купил именно тем, что вполне функционален "из коробки".

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]evg-krsk.livejournal.com
2008-12-16 18:17 (ссылка)
Т.е. им пользуется уже второй (после меня) человек в Сизифе :-)

Значит, 3.1 не миновать ;-)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2008-12-17 04:21 (ссылка)
А, вы evg@..., мантейнер awesome в альте? Спасибо!

(Ответить) (Уровень выше)


(Читать комментарии) -