Создатели Ubuntu, одного из самых популярных дистрибутивов Linux, не устают экспериментировать с графическим интерфейсом системы. В прошлой версии они добавили механизм под названием Unity, который заменил обыкновенную панель задач подобием «дока» Mac OS X. Теперь настала пора второй волны изменений, и куда более значительных.
Одной из особенностей Unity были унифицированные меню приложений, расположенные не в шапках окон, а у верхнего края экрана. Такие меню экономят экранное пространство, да и работать с ними проще: можно не «целиться». Не успели пользователи привыкнуть к новововведению, а Марк Шаттлуорт, руководящий разработкой Ubuntu, уже придумал ему замену. Новое детище Шаттлуорта называется Ubuntu HUD и представляет собой нечто среднее между поисковой и командной строками.
Об идеях, которые стоят за Ubuntu HUD, Шаттлуорт подробно рассказывает в своём блоге; там же можно найти и видео, демонстрирующее концепцию.
Итак, что же мы тут видим? Сперва нам показывают, как при помощи Ubuntu HUD осуществляется поиск по истории браузера, затем точно так же вызывается один из пунктов меню. Следом те же операции выполняются в графическом редакторе Inkscape. Затем перед нами появляются мессенджер, где при помощи HUD можно, к примеру, изменить статус, набрав «away» или «availible», и плеер Banshee, в котором посредством HUD легко набрать название нужного трека. По ходу дела демонстрируются и системные команды, среди которых есть, к примеру, создание письма в почтовой программе. В финале мы узнаём, что с Ubuntu HUD можно работать и из командной строки (это полезно для интеграции).
Получается, что HUD даёт возможность, во-первых, легко находить пункты меню, зачастую запрятанные в замысловатой иерархии подменю, во-вторых, искать такие вещи, как музыкальные композиции в плеере или закладки в браузере, в-третьих — выполнять некоторые общесистемные команды, не переключаясь из приложения в приложение. Первый пункт будет работать в любых программах, использующих графические библиотеки Gtk или Qt; доработка не понадобится. Второй (куда более интересный), наоборот, требует дополнительных усилий. Шаттлуорт рекомендует разработчикам, которые хотят видеть поддержку своих приложений в Ubuntu HUD, подготовиться заранее, ведь чем больше приложений будут предоставлять собственные данные этой «командной строке нового поколения», тем полезней она окажется. Третий пункт (общесистемные команды), скорее всего, будет встроен в Ubuntu, но возможность расширить список команд наверняка найдётся.
Примеры интерфейсов, напоминающих Ubuntu HUD, уже встречались. И речь даже не о классической командной строке UNIX, до сих пор используемой в Linux. Попытки скрестить текстовые команды с графическим пользовательским интерфейсом тоже периодически предпринимаются.
Один из самых ярких примеров — программа Enso Launcher для Windows, сделанная компанией Humanized, которой руководил Аза Раскин, сын знаменитого специалиста по интерфейсам Джефа Раскина. У Джефа была целая теория о превосходстве командных интерфейсов над графическими. В книге «Интерфейс» он в подробностях описал устройство операционной системы, управляемой текстовыми командами, но доступной и удобной для обычных пользователей.
Компьютер, предложенный Раскиным-старшим, имел специальную кнопку, которую можно было зажать, чтобы ввести команду. Команда исполнялась, стоило отпустить кнопку. Такая схема позволяла избавиться от явного командного режима, вход и выход из которого заставляет пользователя задумываться лишний раз.
Программа Enso работала именно так, используя для активации клавишу Tab и принимая текстовые команды. Увы, на данный момент разработка заброшена. Та же участь ждала и Ubiquity — плагин для Firefox с похожей функциональностью, который Аза Раскин сделал, работая в Mozilla.
Второй важный пример — Quicksilver. Этот лаунчер для Mac OS X, полностью управляемый при помощи клавиатуры, интересен тем, что он позволяет не только запускать приложения, но и управлять их работой. Так, при помощи Quicksilver можно не просто вызвать музыкальный плеер или найти на диске файл с треком, но и приказать плееру воспроизводить тот или иной трек или, к примеру, остановить воспроизведение. Точно так же, не выходя из Quicksilver, можно отправить документ по почте или выполнить ещё какую-нибудь сложную последовательность действий.
Такая гибкость обеспечивается благодаря двум важным составляющим: развитой системе плагинов (в базе данных Quicksilver есть практически все популярные «маковские» приложения), а также мощным средствам, которые предоставляет разработчикам сама Mac OS X. Последнее требует пояснения: дело в том, что программы, написанные с использованием Cocoa (современный фреймворк для разработки программ для «мака»), предоставляют системе доступ как к своим функциям, так и к содержимому. В результате одна программа может «попросить» другую выполнить то или иное действие или предоставить информацию об открытом документе. Если интерфейс Ubuntu HUD станет популярным, это поможет приблизить появление подобной интеграции графических приложений и системы в Linux.
Шаттлуорт пишет, что в перспективе Ubuntu HUD должен полностью вытеснить стандартные меню. Пока что они будут возвращены в окна приложений, чтобы освободить место для текстовой командной строки. Однако пользователи смогут по желанию отключать показ меню и использовать исключительно HUD. Марк Шаттлуорт считает появление HUD исключительно важным шагом в развитии Ubuntu. В будущем этот интерфейс пригодится при реализации голосового управления (в частности, оно пригодится телевизионной версии Ubuntu).
У Ubuntu HUD есть один явный недостаток, который признаёт и сам Шаттлуорт. Дело в том, что традиционное меню помогает не только отдавать команды программам, но узнавать, какие именно команды программа способна выполнить. Иными словами, в меню можно разобраться самостоятельно, не зная о приложении ничего, а вот с HUD так не выйдет. Потому он и подаётся лишь в качестве дополнения к существующей системе. Однако, по словам Шаттлуорта, его команда нашла элегантное решение этой проблемы. Узнать, в чём оно заключается, было бы очень и очень интересно.