Pull to refresh

Столпы KDE4: Plasma

Reading time 4 min
Views 7.1K
Hi there,

На хабре был цикл статей про столпы четвертой (актуальной на сегодня) ветки свободной среды рабочего стола KDE. В этих статьях рассказывалось про фреймворк для взаимодействия с аппаратным обеспечением Solid, фреймворк для мультимедиа приложений Phonon и фрейворк для приложений, работающих с VoIP-телефонией и быстрым обменом сообщений Decibel.

[ Update: автором вышеуказанных статей являюсь не я ]

Сегодня я хочу рассказать про еще один фреймворк этого современного DE (Desktop Environment — рабочее окружение) — Plasma.

image

Жизнь до Plasma

Немногие догадываются, что до KDE4 актуальной веткой KDE являлась KDE3. И в KDE3 героя этого топика — Plasma еще не существовало. В третьей ветки было три отдельных компонента для отображение рабочего стола и ближашейго окружения: KDesktop, SuperKaramba и Kicker.

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

В поле ответственности Kicker было отображение и работа панелей на рабочем столе. Кикер обладал хорошим свойством расширяться за счет небольших программок, которые получили название аплетов (applets). К сожалению, самым большим недостатком аплетов было то, что они ограничивались только C++. То есть разработчики могли создавать аплеты только на языке Страуструпа.

И если аплеты Kicker были ограничены размещаться в рамках самого кикера, то движок виджетов SuperKaramba позволял размещать интерактивные небольшие программки непосредственно на сам рабочий стол, тем самым улучшая жизнь пользователя за счет захламления рабочего места. =)
Такие программки получили название виджетов (widget). К счастью, SuperKaramba позволяла использовать не только C++, но и скриптовые языки программирования, такие как Python, Ruby и JavaScript. Изначально SuperKaramba была отдельной разработкой, но спрос на нее был настолько большим, что технологию приняли в состав KDE. Узнать виджет суперкарамбы довольно просто. Возьмите любой скриншот с KDE3, и если на рабочем столе есть отображение свободного места на жестких дисках (или другая информация о системе) или календарик, — это оно.

Время шло, дыры залатывались, новые виджеты писались… Компьютеры стали ну очень доступны домохозяйкам, что и навеяло моду гламура и других новшеств в пользовательском интерфейсе. Так, с приходом Microsoft Windows Vista, началась мода на красивые полупрозрачные блестящие интерфейсы, радующие глаз пользователя. И так уж получилось, что с выходом новой ветки другого фреймворка — Qt, на котором основывается весь проект KDE, разработчики кед (как ласково называют KDE его ненавистники и прочие) решили начать новую веху в развитии популярного DE. К сожалению для рядовых пользователей, а возможно и для прикладных разработчиков, дальнейшее развитие KDE пошло по пути не эволюционирования, а революционирования. Полностью уничтожив обратную совместимость между KDE4 и KDE3, разработчики приняли решение выстроить свое детище на нескольких основных столпах. И одним из них стала родившаяся Plasma.

Plasma

Плазма представляет собой специальный фреймворк для работы с рабочим столом KDE. С рождением плазмы больше нет нужды в отдельных приложениях — KDesktop, Kicker, SuperKaramba. Плазма просто захавала объединила все предыдущие технологии в единый движок.
Все программы, разрабатывающиеся под эгидой Плазмы, называются плазмоидами (plasmoids).

Больше не существует разделений на рабочий стол, панели, приложения. Теперь все находится в компетенции Плазмы. Если ты разработчик, то тебе не нужно больше думать, где будет работать твое творение. Создавай свой плазмоид, а пользователь уже сам разберется куда ему его «повесить».

Основная суть плазмы — функция «матрешки». Один плазмоид может содержать в себе множество других плазмоидов. Теперь рабочий стол и панель являются такими же плазмоидами, как и многовыстраданный календарик и аналоговые часы. По умолчанию Плазмоид рабочего стола содержит в себе плазмоид панели, а та в свою очередь плазмоид КМеню, Системный трей, Часы и др. В этом и заключается уникальность и универсальность Плазмы — любой плазмоид может находиться где угодно.
Плазмоид может содержать в себе не только другой плазмоид, но и все что угодно: графику (растровую или SVG), видео (OpenGL). Поэтому ничего не мешает тебе создать свой плазмоид с летающими утками. =)

Еще однм важным преимуществом Плазмы является возможность создавать плазмоиды, разделенные на две части: движок и интрефейс. Что это значит? Теперь можно написать ядро плазмоида, а затем создавать к нему интерфейсы на различный вкус и цвет, обладающие различными визуальными эффектами.

Между прочим, Плазма не имеет четкой привязки к определенному разрешению экрана. Поэтому плазмоиды будут одинаково хорошо вписываться в окружение как на 800х600, так и на 1900х1200. Это означает, что плазмоиды могут спокойно «на лету» менять свои размеры без потери функциональности.

В Плазме нет ограничений только на один язык программирования для создания плазмоидов. Помимо C++ разрабочик может использовать и скриптовые языки: JavaScript, Ruby или Python. А благодаря еще одному фреймворку KDE, имеющий название Kross, количество возможных к использованию языков существенно расширится.

Помимо своих родных плазмоидов, созданных специально для плазмы, новинка KDE4 поддерживает и другие различные интерактивные миниатюрные программки:

  • Виджеты Mac OS X Dashboard;
  • Виджеты SuperKaramba;
  • Виджеты Google Gadgets;
  • Различные веб-виджеты (HTML + JavaScript).

Также в будущем планируется поддежка виджетов Оперы (браузер такой).

__________________________________________________________________

Установи KDE и прикоснись к новейшим технологиям! Увидь описанное своими глазами!
(пафос-пафос)

kde.org

__________________________________________________________________

А вот и скриншот плазмоидов:

image

При написании этого поста использовался общедоступный публичный материал из англоязычной википедии, официального сайта Plasma, гугла. Кроме этого были использованы русский алфавит и собственные глаза. =)
Tags:
Hubs:
+46
Comments 29
Comments Comments 29

Articles