Глава двадцать третья. Управители окон: извлечения из истории
Предыдущая глава была посвящена истории X Window System и её свободных реализаций, XFree86 и Xorg. Однако ни слова не было сказано об истории того, как эти протоколы, спецификации и реализации претворялись в те самые графические интерфейсы, с которыми непосредственно имеет дело пользователь.
Терминологическое введение
Протоколы, спецификации и реализации претворялись в виде двух классов программ – оконных менеджеров, иногда именуемых также диспетчерами окон (WM – Window Manager), и интегрированных графических рабочих сред (Graphic Deskton Environment), которые называют также средами рабочего стола (DE – Desktop Environment) или, в просторечии, десктопами.
Чтобы в дальнейшем не путаться среди многочисленных реализаций графических интерфейсов, дам краткую вводную установку. Оконный менеджер – это программа, обеспечивающая внешний вид и функциональность элементов графического интерфейса. Под видом интерфейсных элементов понимается оформление окон, включая панель заголовка, рамки, линейки прокрутки, управляющие кнопки и меню. Функциональность же – возможность минимизации, максимизации, сворачивания окон, их перемещения, изменения размера, вызова различных наборов контекстных меню.
По большому счёту от оконного менеджера ничего иного и не требуется. Однако, как мы скоро увидим, со временем развитые представители этого класса обрастали наборами привязанных к ним утилит и приложений, а также собственными средствами настройки и наборами предопределённых тем. Откуда оставался один шаг до интегрированных рабочих сред, то есть десктопов.
Десктопы также включают в себя средства оформления окон и управления ими, то есть оконные менеджеры, собственные (как в KDE и Xfce) или заимствованные (как в GNOME и LXDE). Однако средства собственного конфигурирования, наборы тем и стилей, штатные утилиты и приложения входят в них уже в обязательном порядке. Хотя количество последних может быть различным – от всеохватного в KDE до весьма скромного в Xfce или совсем уж бедного – в LXFE. Важно, что все штатные программы десктопов характеризуются единством интерфейса, настраиваемого собственными конфигураторами среды.
Настоящая статья, как и следующая за ней, будут посвящены истории менеджеров окон. В статьях же дальнейших я расскажу о драматической истории десктопов и о разворачивавшихся вокруг них «священных войнах».
Я не берусь рассказать про возникновение и развитие всех оконных менеджеров, когда-либо существовавших на свете – это задача непосильная для одного человека. Поэтому ограничусь только теми представителями семейства, с которыми работал непосредственно, или которые внимательно рассматривал на предмет практического применения.
Предтечи управителей
Практическая работа в X Window System без менеджера окон почти невозможна, или, по крайней мере, очень неэффективна Тому, кому доводилось видеть «голые Иксы», понятно, почему: это просто серое поле с курсором мыши в виде крестика. И никакое щёлканье мышиными кнопками не влечёт за собой ни малейшего результата.
Конечно, в пользовательском конфиге Иксового сеанса можно прописать автоматический запуск каких-либо приложений – например, собственного эмулятора терминала, xterm, и работать в его командной строке, как в текстовой консоли. Можно было открыть при старте Иксов много терминальных окон для одновременной работы. И я знаю применителей, которые вполне серьёзно полагали это главной сакральной функцией графического интерфейса – ибо ни в чём, кроме терминалов, не нуждались. Можно было, наконец, открыть много-много приложений – но радости это приносило мало: исключительно иксовыми средствами окна их нельзя было ни перемещать, ни масштабировать, ни даже закрывать, не говоря уж о сворачивании в пиктограммы.
Так что можно предполагать, что оконные менеджеры возникли одновременно с первыми реализациями X Windows System, однако память о них затёрлась. И первое о них упоминание обнаруживается только в X10 (конец 1985 года) под именами xwm и xnwm, но сведений о том, что они собой представляли, мне обнаружить не удалось. По косвенным данным можно предполагать, что управлялись они не мышью, а с клавиатуры комбинациями с участием клавиши Meta, и не имели средств конфигурирования.