Чтение онлайн

на главную - закладки

Жанры

Журнал «Компьютерра» №32 от 06 сентября 2005 года
Шрифт:

Большинство оконных менеджеров довольно близки по функциональности, слегка отличаясь способами настройки, поведением, оформлением и скоростью работы. Выбор из них - скорее вопрос привычек и вкуса. Тем удивительнее было встретить среди представителей этого вида нечто совершенно новое. Речь идет о менеджере под названием Ion, который его автор позиционирует как поиск «годного к употреблению» графического интерфейса

Наткнулся я на эту разработку как раз в тот момент, когда меня постигло разочарование. Я полностью разочаровался в среде Gnome, случайно обнаружив, что эмулятор терминала xterm под минималистичным оконным менеджером Fluxbox на машине уровня Pentium 250 запускается быстрее, чем тяжеловесный gnome-terminal под «родным» для него Gnome[Gnome не является оконным менеджером, он представляет собой графическую среду, включающую помимо собственно менеджера (сейчас это metacity) множество

разнообразных приложений. Но без большинства из них можно спокойно обойтись] на ноутбуке с гигагерцовым Pentium M. Пришлось искать альтернативу - тут-то на глаза и попался Ion. Пройти мимо было невозможно. Описание было столь заманчивым, что даже отсутствие rpm-пакета и необходимость собирать его из исходников меня не остановили. Пришлось скачать пару дополнительных программ и отредактировать несколько конфигурационных файлов, однако затем все собралось, и - после заветного make install - я оказался в совершенно необычной среде (рис. 1)[Статья основана на стабильной второй версии. С сайта Ion’а можно скачать также текущие «снимки» (development snapshot) с разрабатываемой третьей версии].

Рамки и закладки

Как и положено программе, рассчитанной на эффективность, а не на пресловутую интуитивную понятность, Ion встретил меня своим man’ом - краткой инструкцией по эксплуатации. Из нее стало известно, например, что окон в менеджере нет (по крайней мере, таких, к которым все привыкли). Честно говоря, в нем еще много чего нет. Например, нет кнопки «Пуск» или ее аналога, нет иконок на рабочем столе, нет трея (по крайней мере, по умолчанию), нет панели задач, нет часиков в углу экрана… Ion - это «чистый» window manager, без лишних наворотов.

Главный принцип работы - разделяй, объединяй и властвуй. Экран разбивается на несколько частей, именуемых рамками, или фреймами (frame), в которых и запускаются программы. В одном фрейме можно запустить сколько угодно приложений, но отображаться в каждый момент времени будет только одно «окно», развернутое на весь размер рамки, а от остальных останутся лишь закладки на заголовке, - аналогично поступают Firefox и Opera с отдельными веб-страницами. Естественно, фреймы не могут пересекаться и накладываться друг на друга, зато их размеры меняются согласованно, можно разделить текущий фрейм на два или удалить, склеив с другим, переместить окно из одного в другой и т. д. Все операции доступны с клавиатуры (еще бы!), но и мышка не отправлена на свалку истории - несмотря на отсутствие привычных трех кнопок в углу окна, правый клик вызывает контекстное меню, в котором можно поискать нужную функцию.

Конечно, в Ion’е есть понятие рабочего места (workspace). Юниксоидам не нужно объяснять, что это такое, а вот Windows-пользователи вряд ли знакомы с этим полезным объектом. Грубо говоря, каждый workspace - это просто независимый «стол», на котором размещаются окна. Например, на одном рабочем месте можно поместить браузер и ICQ-клиент и назвать его «Сеть», на другом - заниматься разработкой программ, на третьем - проверять почту, переключаясь между ними в случае необходимости. Для Ion’а обычный workspace - это что-то вроде набора фреймов со своими приложениями, и не более того.

Несмотря на логичность предлагаемого интерфейса, не всем программам нравится жить в его жестких рамках (в прямом и переносном смысле). Если браузер или текстовый процессор LyX, в котором пишутся эти строки, совсем не против подобной философии, то, например, четыре окошка графического редактора Gimp (палитра, выбор цвета, список слоев и само редактируемое изображение), помещенные в один фрейм, смотрятся довольно забавно: чтобы выбрать, например, зеленую кисть заданного размера, нужно три или четыре раза переключаться между табами. Для борьбы с подобными программами в Ion’е предусмотрен специальный тип рабочего места - WFloatWS, в котором присутствуют уже классические «плавающие» окна, поддерживающие, однако, табы (рис. 2).

***

Есть еще несколько «вкусностей», которые придутся по душе любителям клавиатурных интерфейсов. В первую очередь, встроенная командная строка (query, строка запроса), появляющаяся в низу текущего фрейма по нажатию F3. Конечно, это не полноценный shell, но она поддерживает дополнение с помощью кнопки Tab и вполне подходит для быстрого запуска нужного приложения. Столь же легко можно открыть произвольный man, подключиться к удаленной машине по ssh, открыть или отредактировать файл - причем автодополнение каждый раз будет работать наиболее разумным образом, предлагая выбирать только из подходящих для текущей операции объектов.

Ну а если использование одной лишь командной строки вам наскучило, можно нажать F12 и обнаружить меню, знакомое по другим менеджерам: выход и перезагрузка Ion’а, смена оформления, запуск терминала - привычные пункты здесь есть, а остальные можно добавить самостоятельно. Как именно? Об этом ниже.

Lua и доки

Если бы в Ion’е были только фреймы, о нем, наверное, все равно стоило бы написать - но вряд ли в нем можно было бы работать. Однако это далеко не все возможности, скрывающиеся за неказистым внешним видом и статусом «экспериментального проекта». Какие именно возможности? Да какие хотите! Как и многие другие свободные программы, Ion является не просто оконным менеджером, а эдаким конструктором по сборке оконных менеджеров. По тому же пути идет браузер Firefox, многие текстовые редакторы (Vim, Jed, Emacs), да и сам Linux порой называют «надстройкой над компилятором gcc» (в шутку, конечно). В качестве языка разработки Ion использует

[При этом сам Ion написан на C] - высокоуровневый объектно-ориентированный интерпретируемый язык, с которым я был знаком по его Palm-инкарнации Plua[См. «КТ» #498, «Сага о найденных мегагерцах»].

В простейшем случае Lua используется для базовой настройки буквально всего, что только можно настроить. Скажем, привязка горячих клавиш (keybinding) управляется конфигурационным файлом ion-bindings.lua, представляющим собой просто кусок lua-программы. Если вы хотите изменить стандартную «распальцовку» или добавить новые функции, вам именно сюда. Поначалу кажется, что синтаксис сложнее, чем обычно бывает в файлах настройки, но после нескольких экспериментов и анализа существующей конфигурации его правка превращается в сплошное удовольствие - особенно когда начинаешь понимать, какие возможности здесь открываются[Не стоит редактировать «глобальные» настройки, лежащие в /usr/local/etc/ion (или другом системном каталоге - зависит от установки); гораздо правильнее скопировать нужный файл в ~/.ion2/ и редактировать его там - в противном случае вы рискуете потерять ценные скрипты при переустановке или обновлении Ion’а].

Аналогичным образом, с помощью правки настроечных lua-файлов, можно изменять как поведение, так и внешний вид Ion’а. Скажем, мне пришлось сменить шрифты в выбранной теме оформления, чтобы они поддерживали Юникод и отображали русские буквы в заголовках окон, командных строках и меню[Настройка производится в файле draw.lua, а для запуска Ion’а в режиме unicode-совместимости следует использовать ключ -i18n].

***

Более того: помимо правки существующих элементов, можно создавать свои. Например, можно отредактировать системное меню, вызываемое по F12, а можно добавить свое собственное - и привязать его к какой-нибудь другой кнопке. Или сделать свою командную строку - с нужными вам элементами автодополнения. Или вот, допустим, захотелось вам иметь собственную консоль, по умолчанию не видимую, вызываемую на белый свет с помощью горячей клавиши, не привязанную ни к каким фреймам и не зависящую от текущего workspace. Думаете, придется править низкоуровневый исходный код Ion’а? А вот и нет! Все гораздо проще: в системе есть модуль dock, позволяющий размещать в фиксированных местах экрана окна произвольных программ (в частности, именно через него делается местный аналог трея). Достаточно создать такой «док», поместить в него терминал, а потом организовать его отображение/скрытие и передачу фокуса. Соответствующий код займет буквально десяток строчек, а вы получите в распоряжение все, о чем мечтали.

Открытое будущее

Безусловно, Ion не является заменой менеджерам «общего пользования» - по крайней мере, на текущий момент, - и я не думаю, что все читатели статьи побегут ставить Linux только ради того, чтобы перейти на этот диковинный интерфейс или попрактиковаться в программировании на Lua. Однако мне хотелось бы показать, что в мире существуют альтернативные точки зрения даже на такой, казалось бы, устоявшийся программный стереотип, как оконные системы. Порой эти альтернативы оказываются более удобными, чем общепринятые решения, - и кто знает, какими интерфейсами будут пользоваться наши потомки?

Поделиться:
Популярные книги

Ваше Сиятельство 3

Моури Эрли
3. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 3

Сиротка 4

Первухин Андрей Евгеньевич
4. Сиротка
Фантастика:
фэнтези
попаданцы
6.00
рейтинг книги
Сиротка 4

Последний попаданец 5

Зубов Константин
5. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 5

Неудержимый. Книга XV

Боярский Андрей
15. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XV

Мимик нового Мира 6

Северный Лис
5. Мимик!
Фантастика:
юмористическая фантастика
попаданцы
рпг
5.00
рейтинг книги
Мимик нового Мира 6

Неудержимый. Книга XII

Боярский Андрей
12. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XII

Шипучка для Сухого

Зайцева Мария
Любовные романы:
современные любовные романы
8.29
рейтинг книги
Шипучка для Сухого

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Таблеточку, Ваше Темнейшество?

Алая Лира
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Таблеточку, Ваше Темнейшество?

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Ученичество. Книга 1

Понарошку Евгений
1. Государственный маг
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ученичество. Книга 1

Лапочки-дочки из прошлого. Исцели мое сердце

Лесневская Вероника
2. Суровые отцы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Лапочки-дочки из прошлого. Исцели мое сердце