Xfce

Xfce — свободная среда рабочего стола для UNIX-подобных операционных систем, таких, как GNU/Linux, NetBSD, OpenBSD, FreeBSD, Solaris и т. п. Конфигурация данной среды полностью управляется мышью, конфигурационные файлы скрыты от пользователя.

Xfce — лёгкое настольное рабочее окружение для различных UNIX-подобных систем. Разработанное с целью повысить производительность, оно позволяет загружать и выполнять приложения быстро, сохраняя ресурсы системы

— Оливье Фурдан, создатель Xfce

Библиотеки Xfce также используются в программном обеспечении третьих сторон, самыми известными из которых является текстовой редактор Mousepad, аудио-проигрыватель xfmedia и эмулятор терминала Terminal.

Xfce основана на GTK+ 2 и использует менеджер окон Xfwm. Первоначально Xfce очень напоминала коммерческую версию CDE, но с каждой выпущенной версией отходит от данной системы (Xfce была полностью переписана дважды — между версиями 2 и 3 и между версиями 3 и 4).

Xfce воплощает в себе традиционную философию UNIX, а именно концепции модульности и возможности многократного использования. Функциональные компоненты вынесены в отдельные приложения, и пользователь имеет возможность конфигурировать систему оптимальным образом.

Файловым менеджером по умолчанию начиная с версии 4.4 является Thunar. Он напоминает Nautilus, приоритетами при разработке заявлены быстродействие и экономное использование ресурсов.

В версии 4.6 настройки будут храниться в реестре xfconf, организованном наподобие GConf, который используется в среде Gnome. Эта новость вызвала протесты у многих сторонников использования конфигурационных файлов. Разработчики объясняют свой шаг тем, что с помощью реестра станет проще конфигурировать Xfce и писать под неё приложения, используя готовую библиотеку работы с реестром.

KDE vs GNOME: еще одно размышление на вечную тему

KDE vs GNOME: еще одно размышление на вечную тему

Алексей Федорчук

15 августа 2006 г

Все пользователи POSIX-совместимых систем делятся на две категории - тех, кто использует интегрированные графические среды (так называемые десктопы) и тех, кто их не использует. Есть, конечно, еще и стойкие прFиверженцы консоли, не признающие графического интерфейса вообще, но с каждым годом (и ростом числа новообращенных POSIX’ивистов) относительное их число все более сокращается.

С теми, кто интегрированные среды не использует, все ясно: в их распоряжении изобилие менеджеров окон, имя которому - легион. А вот у приверженцев интеграции выбор совсем невелик. И до недавнего времени он вообще сводился к альтернативе, вынесенной в заголовок. Правда, можно ожидать, что скоро к KDE и GNOME добавится XFce, обретающий постепенно качества истинно интегрированного десктопа, однако пока он до этого звания еще не дотягивает.

Полноты картины ради отмечу, что есть еще несколько программ, претендующих на звание интегрированной среды - о них можно прочитать здесь: http://xwinman.org/otherdesktops.php. Однако это либо а) самосборные среды на базе менеджера окон и разнородных приложений (FVWM-Crystal), либо б) сугубо экспериментальные разработки (3D-Desktop или UDE), либо в) либо “недо-десктопы”, крутящиеся вокруг одно приложения (как ROX - в сущности, просто файловый менеджер, хотя и удобный).

Для начала - пара слов о том, чем десктопы отличаются от менеджеров окон. Главной задачей последних, как явствует из их названия, является управление поведением окон - открытием и закрытием, перемещением, масштабированием, передачей фокуса и переключением между окнами. И есть немало оконных менеджеров, функциональность которых этим и ограничивается. - не от бедности, а, так сказать, от жадности (точнее,экономного отношения к наличным ресурсам). Однако большинство широко используемых оконных менеджеров предоставляет и дополнительные функции - как минимум, средства для запуска приложений и навигации по ним. Кроме того, в них часто включаются собственные конфигураторы, средства управления внешним видом окон, а также мелкие утилиты типа часов, системных мониторов и тому подобных облегчающих жизнь мелочей.

Интегрированные среды могут иметь собственные менеджеры окон, как KDE и XFce. Но это для них как раз не обязательный компонент - в частности, GNOME собственного WM не содержит, а может пользоваться возможностями ряда совместимых оконных менеджеров. Главными же компонентами десктопов оказываются а) средства собственного конфигурирования и б) базовый набор приложений, объединяемых сквозным интерфейсом. Единство интерфейса обеспечивается использованием определенных наборов библиотек, которые, таким образом, оказываются неотъемлемой частью десктопа.

Идея интегрированных сред пришла в мир Open Source из проприетарных Unix-систем, где с давних пор развивался декстоп под названием CDE, основанный на библиотеке Motif. Ни сама CDE, ни ее базовая библиотека не были свободными программами, и потому их использование в Linux или BSD оказывалось невозможным. И потому во второй половине 90-х годов начали развиваться проекты по созданию свободных интегрированных сред.

И тут дело в первую очередь упиралось в разработки собственных библиотек - единственная полнофункциональная графическая библиотека, Motif, как я уже говорил, в те годы не была свободной. А ее свободный клон, Lesstif, использовавшийся во многих менеджерах окон, по своей функциональности сильно не дотягивал до прототипа. И тут помощь пришла со стороны: в 1996 году началась разработка растрового графического редактора Gimp, под который была создана библиотека Gtk (GIMP ToolKit). Именно она и легла в основу первого свободного десктопа - GNOME, который довольно быстро стал рабочей средой по умолчанию в ряде популярных дистрибутивов (в частности, Red Hat).

Вторым путем к созданию интегрированной среды - оказалась возможность использования кросс-платформенной библиотеки Qt, созданной норвежской фирмой Trolltech (на ней основывалась и основывается известный барузер Opera). Сама по себе эта библиотека не была свободной, но ее лицензия допускала бесплатное использование в некоммерческих проектах, в том числе и проектах Open Source. Она-то и легла в основу второй интегрированной среды - KDE. Правда, вследствие коммерческого характера базовой библиотеки отношение к ней было сначала очень сдержанное. И первым дистрибутивом, в который KDE была включена как десктоп по умолчанию, стал Mandrake (1998 год).

Дальнейшее развитие десктопов шло в разных направлениях. Хотя, применительно к GNOME, говорить о каком-либо определенном направлении достаточно сложно. Первоначальный замысел его создателей, насколько я его понимаю, был - создать среду, не похожую ни на что. Этой цели было подчинено все - вплоть до оконного менеджера по умолчанию, каковым выступал Enlightenment, невероятно эффектный, но, по крайней мере в те годы, не очень удобный в настройке и использовании.

Затем вектор развития сменился на противоположный - и в устах основоположников проекта стали проскальзывать слова о создании Windows-подобной среды, которая будет большим Windows, чем прототип. Третья же парадигма, действующая и поныне, - создать простую среду для простого пользователя, не доучая ему “моралью строгой” - то есть многочисленными настройками, которые, как и плезиозавры, народу не нужны

Развитие же KDE было скучным, плоским, даже линейным. Версии первой его ветки, которые мне довелось увидеть в 1998-1999 годах, не поражали воображение ни дизайнерскими изысками, ни какими-то сверхъестественными фичами. Навевая ассоциации с унылым индустриальным пейзажем, видным из окон микрорайона современного мегаполиса. Но они отличались одной особенностью - все в них работало, работало стабильно и, по сравнению с GNOME, относительно быстро.

Вторая ветка KDE привнесла в эту среду оригинальность с точки зрения функционала: именно в ней убогий IE-подобный kfmanager сменяется покорителем файловых пространств konqueror’ом, а место удручающих kedit и kwrite занял kate. Впрочем, во всей красе они развернулись только в третьей ветке, каковая и является на данный момент текущей. И которая подарила миру десктопов функции, ранее обеспечивавшиеся только X-серверами - в частности, управление шрифтами и клавиатурой. Кстати, и с эстетической стороны KDE претерпело разительные изменения от первой до третьей ветки. Правда, следы “индустриального” происхождения можно видеть в ней и по сию пору.

С первых же дней сосуществования GNOME и KDE между приверженцами этих сред развернулись чуть ли не религиозные войны, усугубившиеся идеологическими соображениями. К настоящему времени идеологическая составляющая этого противостояния оказалась исчерпанной. Библиотека Qt, кроме сугубо коммерческой лицензии, распространяется также (для некоммерческого использования) и под открытой лицензией QPL, совместимость которой с GPL не ставится под сомнение даже самыми строгими пуристами от свободного софта. Однако технологическая сторона противостояния GNOME vs KDE не только не сгладилась, но даже несколько обострилась. Правда, в основном со стороны их пользователей. Майнтайнеры универсальных дистрибутивов ныне включают оба десктопа в штатные свои комплекты, как правило, предоставляя выбор между ними на стадии инсталляции. А разработчики сторонних программ, вне зависимости от используемых базовых библиотек, все чаще предусматривают интеграцию своих продуктов в обе среды.

Эта заметка - еще один вклад в священную войну десктопов. Сразу оговорюсь - в ней я даже не пытался быть беспристрастным. Потому как использую KDE с самых первых ее версий (тех, что были в Mandrake 5.1 и 6.0/RE), правда, с перерывами, вызванными увлечением WindowMaker и всяческими box’ами. И полагаю эту среду вполне подходящей как для начинающих пользователей, так и для тех, кому надоели работы по сборке собственного десктопа.

Что же до GNOME… начиная с того же 1998-го, неоднократно ставил его, пытаясь проникнуться величием этого десктопа - и каждый раз безуспешно. И даже недавнее обсуждение этого вопроса на http://forum.posix.ru не изменило моего мнения. Так что можете считать эту заметку апологией KDE. Буду рад, если она подвигнет кого-либо на сочинение, продемонстрирующее, наконец, несравненные достоинства GNOME и, особенно, его приложений.

Итак, по каким критериям можно сравнивать десктопы? Во-первых, по удобству выполнения элементарных действий - запуска программ, манипуляции окнами и запущенным приложениями, и так далее.

Во-вторых, по богатству и удобству средств собственного конфигурирования.

И в-третьих, и, с моей точки зрения, главных, - по набору штатных приложений и их функциональности. Потому что

именно ими и определяется целесообразность использования интегрированных сред - собрать свой десктоп из подходящих программ разного происхождения, на базе любого оконного менеджера, может каждый.

Начнем с так называемого удобства. Так называемого - потому что понятие это весьма субъективное, и во многом зависит просто от сложившихся привычек. Кроме того, вид и поведение интерфейсных элементов обеих сред могут быть модифицированы в очень широких пределах. Не говоря уже о том, что они во многом определяются текущим менеджером окон - а и в GNOME (своего менеджера окон, как мы помним, не имеющего), и в KDE заменить их можно достаточно легко.

И наконец - понятие удобства использования утрачивает смысл, когда вступает в противоречие с критически важной функциональностью. Согласитесь, что лучше иметь возможность выполнить позарез нужную операцию неудобным способом, чем не иметь возможности выполнить ее вообще (пусть все остальное и будет замечательно удобным).

Так что любые сравнительные оценки удобства использования KDE и Gnome носят абсолютно субъективный характер. Так что позволю себе и я высказать свое сугубо субъективное мнение: KDE существенно удобнее в использовании, чем Gnome. Правда, не в умолчальном своем состоянии, а после некоторых настроек, как то (рис. 1):

1. перенесения главной панели в верхнюю часть экрана (для сокращения амплитуды перемещения мыши между нею и меню запущенной программы)
2. уменьшения размера пиктограмм;
3. сокращения длины панели до 90% от ширины экрана (зачем скоро станет ясным);
4. выноса на панель наиболее часто используемых приложений и командной строки минитерминала;
5. ликвидации сакраментальной кнопки K - запуск приложений осуществляется из контекстного меню рабочего стола по щелчку правой кнопкой мыши;
6. увеличения количества рабочих столов по потребностям.

Архитектура

Архитектура

В основе среды GNOME лежит ряд библиотек и технологий. Некоторые из них разрабатываются как часть самого проекта GNOME, иные же являются результатом работы других проектов (например, freedesktop.org) и используются в других рабочих средах (KDE, Xfce).

В основном GNOME написана на языке Си, однако для библиотек GNOME существуют механизмы (так называемые привязки, англ. bindings), позволяющие использовать их из других языков. Поэтому многие приложения для GNOME пишутся на языках C++, Python, C# и других.

[править] GTK+

Центральную роль в GNOME играет инструментарий GTK+, который предоставляет средства для создания графических интерфейсов. В состав GTK+ также входят вспомогательные библиотеки:

* GLib — библиотека удобных функций для программирования на Си;
* GObject — объектно-ориентированный каркас для программирования на Си;
* ATK — библиотека специальных возможностей для физически ограниченных пользователей;
* Pango — библиотека для вывода текста в широком спектре письменностей.

GTK+ написан на Си, однако в последнее время всё больше GNOME-приложений разрабатываются на языках более высокого уровня. Это стало возможным благодаря тому, что в GTK+ изначально предусмотрена возможность относительно простого построения интерфейсов для других языков. Официальными надстройками над GTK+ являются gtkmm, PyGTK, gtk2-perl и java-gnome.

[править] Взаимодействие между приложениями

Когда Мигель де Иказа создавал проект GNOME, он находился под впечатлением от компонентных технологий компании Майкрософт (COM и ActiveX). Планировалось сделать аналогичные технологии (на основе CORBA) важной частью GNOME[9]. Технология CORBA реализована в GNOME в виде брокера ORBit. Средства для создания графических компонентов, поддержки составных документов предоставляются библиотекой Bonobo.

Однако сегодня основным средством взаимодействия между приложениями[10] является D-Bus — облегчённый механизм межпроцессного взаимодействия, специально разработанный для настольного применения. От использования CORBA и Bonobo планируется со временем отказаться[11].

Происхождение

Происхождение

Проект GNOME был основан в августе 1997 г. Мигелем де Иказа и Федерико Мена как попытка создать полностью свободную рабочую среду для операционной системы GNU/Linux.

В то время единственной альтернативой для неискушённого пользователя являлась среда KDE. Но KDE основана на инструментарии Qt фирмы Trolltech, который тогда был собственническим продуктом. Чтобы не допустить ухудшения ситуации, была инициирована разработка GNOME — новой свободной рабочей среды на основе инструментария GTK+, созданного ранее для графического редактора The GIMP и распространяемого на условиях GNU LGPL.

В 2000 г. версия Qt 2.2 была выпущена на условиях GNU GPL[8], в результате чего лицензионные проблемы KDE были ликвидированы. Однако проект GNOME, к тому времени уже достаточно развитый, продолжил своё существование.

Организация

Как и большинство свободного ПО, проект GNOME не имеет строгой и чёткой организации. Обсуждение разработки GNOME происходит в нескольких списках рассылки, доступных для всех.

В августе 2000 г. был создан GNOME Foundation (фонд GNOME) для решения административных задач, общения с прессой и как точка взаимодействия с организациями, заинтересованными в разработке приложений для GNOME.

Платформы

Несмотря на то, что GNOME изначально была средой для GNU/Linux, сейчас она может быть запущена на большинстве UNIX-подобных систем: AIX, IRIX, разновидностях BSD, HP-UX; а также частично была адаптирована фирмой Sun Microsystems для ОС Solaris вместо устаревшего CDE. Sun Microsystems также выпустила Java Desktop System — рабочую среду на базе GNOME. Существует порт GNOME для Cygwin, способный работать под управлением Microsoft Windows.