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

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-15 12:55 (ссылка)
Представить можно много разных ситуаций, вопрос в том, какие из них реальны?

Админ, настроивший в "публичном интернет-кафе" пользовательский логин на работу с awesome, прежде всего дубина, а потом уже левша или правша. Почитай мои комментарии Мите: при работе в незнакомом интерфейсе нами прежде всего востребована левополушарная, вербальная информация. Следовательно, везде, где возможна работа неопытных пользователей, должна использоваться визуально- и вербально-ориентированная среда. Открою тебе страшную тайну: если я настраиваю новую машину, то некоторое время пользуюсь в качестве оконной среды KDE или IceWM. Именно потому, что на этапе знакомства с системой чем более вербально ориентирована среда, тем лучше.

Однако зачем мне левополушарная среда на моём домашнем компьютере под моим логином? Я там давно всё знаю, исследовать мне нечего, а вот необходимость снимать руки с клавиатуры раздражает. А ещё больше раздражает необходимость думать каждый раз, когда надо совершить типовое действие.

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


[info]dari_dac
2008-12-15 12:58 (ссылка)
>при работе в незнакомом интерфейсе нами прежде всего востребована левополушарная, вербальная информация.

Ты видел вчера маленькую Ульянку, которая успешно добивалась от компа нужных ей действий, не умея читать, и видя до этого только Винду *при нашем КДЕ). Вот это, имхо, хороший в освоении интерфейс :)

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


[info]yushi
2008-12-15 13:17 (ссылка)
Ага, правильно. Я видел вчера маленькую Ульянку, смотревшую клипы на YouTube путём кликанья на эти клипы. Как раз полный аналог tiling window managers, в которых ты переключаешься между окошками путём тыкания в эти окошки, а не в их текстовое представление в виде надписей в таскбаре. Вряд ли она смогла бы воспользоваться меню, правда?

Но вообще, замечу, что, кажется, никто из комментирующих не читает предыдущие комментарии. Я ведь уже писал Мите: путать простоту освоения и простоту использования это довольно глупая ошибка. Пока все возражения, которые я получил, сводятся именно ко сложности освоения. С этим тоже можно спорить, но я не буду, потому что я писал не про это, а про сравнительную простоту использования различных оконных сред.

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


[info]bart_igor
2008-12-15 13:11 (ссылка)
То что админ в кафе дубина мы не обсуждаем это почти всегда так.:-)
а вот то что наприме у завзятых геймеров вызывает раздрожение то что надо трывать руку от мыши....
а если уж осваивать новый интерфейс
для меня бы был навено идеальным интерфейс состоояшей из перчатки на првую руку, воспринимаюшй жесты и перемешения(вместо клавы) и лазерной указки совмешенной с устройством регестрируюшим маргания глаза:-)(одеваемым как гарнетура)
и самое главное что такие интерфейсы, нравяшиеся мне, давно есть только вот не распостранены и поэтому я не сталю его у себя дома:-) Так как потом будет сложно работать в усредненном месте.


Зы ЗЫ не навижу эрганомику она считает что средний человек ростом 172 давайте все на свете переделаем под людей ростом 190:-)

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


[info]yushi
2008-12-15 13:46 (ссылка)
а вот то что наприме у завзятых геймеров вызывает раздрожение то что надо трывать руку от мыши....

Верю. А чему из моих утверждений это противоречит?

Ещё раз. Вы с Дашей, кажется, оба путаете те общие положения, из которых я исхожу (некоторый набор самых общих психологических закономерностей) и свойства конкретной среды, этим положениям соответствующей. Я утверждаю не то, что awesome так уж хороша, а то, что традиционные среды откровенно плохи, потому что заставляют пользователя думать. Если завтра обнаружится среда, основанная на мышиных жестах, или голосовых командах, тоже позволяющая вырабатывать привычки — я с удовольствием посмотрю и на неё, на клавиатуре свет клином не сошёлся.

не навижу эрганомику она считает что средний человек ростом 172

Ну, как раз решение, которое заточено только под среднего человека, и будет неэргономичным, если ты считаешь, что эргономика требует расчитывать все устройства только на человека ростом 172 см., то кто-то тебя подло обманул.

А уж в справедливости общих утверждений конкретно про компьютерные интерфейсы каждый может убедиться самостоятельно.

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


[info]bart_igor
2008-12-15 19:20 (ссылка)

если ты считаешь, что эргономика требует расчитывать все устройства только на человека ростом 172 см., то кто-то тебя подло обманул.

Я не считаю я просто не помешаюсь в кресла в самолете (автобусе и ...) и стукаюсь лбом о поручни и потолок.:-))) так что обманули видимо не меня а тех кто разрабатывал например весь обшественный транспорт:-)

Мы может и путаем:-) А вы кажется переносите свою особенность на всех остальных:-) Мы согласны что думать над простыми действиями это зло:-) только вот нам приходится думать над клавиатурными превязками:-) а вот мышю попасть в линию поблем не вызывает:-)

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


[info]yushi
2008-12-15 20:03 (ссылка)
Мы может и путаем:-) А вы кажется переносите свою особенность на всех остальных

Какую особенность? Совершать привычные действия бессознательно?

только вот нам приходится думать над клавиатурными превязками

Прежде чем нажать Ctrl+O в mc, ты думаешь? Прежде чем нажать стрелку вверх для вызова предыдущей команды в bash, ты думаешь? Прости, не верю.

Кроме того, ещё раз: клавиатурные привязки — не единственный способ управлять компьютером, не включая сознание. Есть ещё мышиные жесты и много чего ещё. Важно, что использование только WIMP неэффективно, потому что не позволяет полностью сосредоточиться на задаче. Не по чьему-то субъективному мнению, а объективно, в силу особенностей психики Homo sapiens sapiens.

а вот мышю попасть в линию поблем не вызывает

Ну, и печатать можно двумя пальцами, глядя на клавиши. Пока тебе не потребовалось набрать действительно большой текст.

Речь-то о чём: в случае клавиатурных привязок есть принципиальная возможность не думать при их применении. А вот при использовании значительной части элементов парадигмы WIMP (тех же меню, например) такой возможности нет даже чисто теоретически.

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


[info]yushi
2008-12-15 20:41 (ссылка)
Собственно, обрати внимание: я с самого начала не только никому не навязывал awesome, но специально оговорил несколько раз, что речь идёт о моём специфическом опыте, а я фрик и мутант. И только когда Митя сделал несколько (глубоко неверных, на мой взгляд) предположений о том, что должна обеспечивать оконная среда — я начал писать о том, что она должна на самом деле. Не призывая никого, опять же, пользоваться только клавиатурными привязками, а просто рассуждая об общих закономерностях, подмеченных инженерной психологией: почему не надо путать лёгкость освоения с лёгкостью использования, почему разговор об удобстве интерфейсов не сводится ко классическому спору о вкусах, что в этой области бывает и чего не бывает, и почему.

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


(Анонимно)
2008-12-16 01:05 (ссылка)
> Если завтра обнаружится среда, основанная на мышиных жестах

Кстати, в браузерах вполне себе работает. Когда мне нужно закрыть страницу, я не думаю, я просто провожу мышью вниз, потом вправо. Рекомендую попробовать easystroke для других приложений.

Алсо, спасибо за комментарий поста mitajchik. Очень интересно и все верно. особенно в плане разницы между процессом освоения и удобством работы.

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


[info]yushi
2008-12-16 01:25 (ссылка)
О, easystroke. А я и не знал, что такое уже сделали. Спасибо за наводку, надо попробовать.

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


[info]booosh
2008-12-16 16:30 (ссылка)
> Если завтра обнаружится среда, основанная на мышиных жестах

Сколько угодно. Я их в FVWM лет пять назад пытался использовать.

А знакомые маководы gestures очень любят.

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


[info]blacklion.livejournal.com
2008-12-19 12:43 (ссылка)
\\а вот то что наприме у завзятых геймеров вызывает раздрожение то что надо трывать руку от мыши....\\
Именно по этому правша должен держать мышь левой рукой, а левша -- правой ;)

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


[info]bart_igor
2008-12-21 00:00 (ссылка)

Именно по этому правша должен держать мышь левой рукой, а левша -- правой ;)

Обсалютно согласен:-) Более того регулярно так проделываю:-) Хотя я тут не показатель так как Я левой пожалуй только пишу плоховато а так без проблем:-)




ЗЫ Я вобшем и правой пишу не фонтан:-)

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


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