Вдогонку к предыдущей заметке… Многие наверняка знают про Quicklaunch (в русской локализации «Панель приложений») — виджет для размещения значков запуска на панели. Хотя сейчас это можно сделать и без посторонних виджетов, Quicklaunch тоже может иногда пригодится. Например, когда нужно расположить значки в несколько рядов или убрать часть из них во всплывающую панель (popup).
Поддавшись всеобщему увлечению, я несколько недель назад решил тоже воочию увидеть, что же такого наворотили разработчики, вытянул исходники KDE SC из trunk и приступил к сборке по инструкциям здесь. Надо заметить, что описанный там способ даже удобнее обычных пакетов, т.к. позволяет одновременно держать и стабильную, и тестовую ветки. Главное не использовать новый KDEPIM вместе со старой версией Akonadi (1.3), если не хотите получить несколько сотен процессов akonadi_*. :) Ну-с, начнём.
Сейчас рынок нетбуков представлен самыми разнообразными моделями, с различными форм-факторами, размерами экранов и мощностью. Насколько Plasma Netbook удобна в использовании на таких разных устройствах?
Ответ на этот вопрос вместе с обзором новых возможностей можно найти в двух скринкастах от Marco Martin. На них показана работа Plasma Netbook на трёх различных устройствах — нормальном нетбуке, маленькой таблетке 800 МГц под управлением Moblin и таблетище с процессором Via 1 ГГц.
На первом видео показан контейнер «Поиск и запуск», в котором было исправлено множество недочётов, связанных с расположением элементов и их поведением. Появилась поддержка drag’n'drop, что полезно на устройствах с тачскрином, а в диалоге настройки (не показан на видео) добавилась новая вкладка «Главное меню», на которой можно указать список отображаемых разделов меню. Кроме того, содержимое самих разделов теперь более точно соответствует названию (больше никаких «левых» пунктов вперемешку с приложениями!).
Есть интересные изменения и в «Газетном виде». Как и другие места в Plasma, которые можно прокручивать щелчком/касанием, он использует новый код Zack Rusin, позволяющий эти самые щелчки/касания гораздо лучше обрабатывать. Ну а чтобы необходимость в прокрутке возникала как можно реже, виджет, с которым сейчас работает пользователь, автоматически растягивается на всю высоту экрана. Можно вообще убрать полосы прокрутки из виджетов, растянув их все сразу (кнопка «растянуть виджеты» на панели настройки), тогда прокрутка останется только у самого контейнера. Всё это и кое-что ещё смотрите на втором видео:
Кстати, Aaron Seigo перенёс скриптовый движок из plasma-desktop в libplasmagenericshell. А это значит, что скриптовые виджеты будут доступны и на Plasma Netbook, и на будущем плазменном фронтэнде для KDM!
Но главное новшество оболочки — это скорость. Заметьте, что на видео выше используется самый обычный vesa-драйвер! Это стало возможно благодаря нескольким оптимизациям в Plasma Netbook вообще и в «Поиске и запуске» в частности, а также в Qt (особенно в QGraphicsView).
Правда, на некоторых нетбуках быстродействие этой оболочки всё-равно оставляет желать лучшего. Дело в том, что Plasma (точнее, X11-бэкенд Qt) активно использует функции XRender, реализация которого в некоторых драйверах далека от идеальной. Кроме того, у драйвера Intel есть проблемы с клиппингом виджетов больших размеров.
В таких случаях Marco советует переключиться на raster-бэкенд Qt, который достаточно быстр для этой задачи. Для этого нужно запустить Plasma Netbook с ключом ‘-graphicssystem raster’, либо выполнить ‘kwriteconfig –file plasma-netbookrc –key GraphicsSystem raster’. Оценить действенность метода можно на ещё одном видео:
Ограничение размеров значков, расположенных на панелях Plasma, до 32×32 пикселей вызвало волну возмущения. Иван Чукич говорит, что причиной подобного ограничения послужил запрос от пользователей панелей с вертикальным форм-фактором — такие панели обычно делаются более широкими, чем стандартные. В следствии этого иконки также растут, вплоть до 300х300 пикселей, оккупируя львиную долю полезного пространства.
В общем случае, задание максимально возможного размера является хорошим решением, но минусом реализации явилось то, что конкретные цифры были зашиты непосредственно в коде приложения. Хотя в «Параметрах системы» есть опция для изменения размера значков, но точно также задать размеры иконок на панели было нельзя.
Теперь же, благодаря патчу Mike Kasick, эта опция доступна и она даже работает. Вообще, Майка заслуженно можно отнести к идеальному типу пользователей: он, не являясь контрибутором в проект Plasma (похоже, у него даже нет SVN-аккаунта), написал и отослал патч разработчикам, а впоследствии учёл все замечания Plasma-хакеров, регулярно выкладывая на обсуждения новые ревизии.
В итоге, Иван Чукич и Аарон Сейго видоизменили финальную версию патча Майка так, чтобы он лучше вписывался в существующую кодовую базу, и включили его в состав грядущего KDE SC 4.5.
После релиза KDE SC 4.5, загляните в «Параметры системы» → «Внешний вид» → «Значки» → «Дополнительно» → «Панель».
Sebastian Kügler анонсировал улучшения, сделанные в виджете Network Management. Прежде всего, теперь при клике по сетевому интерфейсу показывается дополнительная информация об этом интерфейсе и некоторые данные о трафике. Благодаря SystemMonitor DataEngine и Plasma::SignalPlotter потребовалось всего 50 строчек кода, чтобы осуществить это. Также виджет получил новое оформление, улучшения в размещении элементов и несколько исправлений.
В своё время новый Обозреватель Виджетов, который заменил соответствующий диалог в KDE SC 4.4, вызвал немало флеймов и недовольства среди пользователей (в том числе меня). В 4.5 у этих пользователей появится альтернатива — достаточно будет просто набрать название в KRunner или Lancelot и перетащить один из найденных виджетов на рабочий стол или панель.

Иван Чукич, автор оригинальной заметки, также отметил, что это новшество стало возможно благодаря другому, гораздо более серьёзному нововведению, сделанному Marco Martin aka notmart. Правда, Иван предпочёл держать это нововведение в секрете, до появления заметки от самого notmart.
Некоторые ругают KDE SC за тенденцию переноса функциональности из приложений в виджеты на рабочем столе (или панели). И в общем-то приложения тоже никуда не делись, но анонимус всё равно выскажет своё негодование!
А между тем, никто не запрещает вам наоборот «запустить» виджет в отдельном окне с помощью plasmoidviewer. Впрочем, plasmoidviewer — это в первую очередь инструмент разработчиков, но как пишет Аарон Сейго, Marco Martin сейчас экспериментирует над утилитой plasma-windowed, которая предназначена для удобного запуска виджетов в окне. Вот как это выглядит:

На этом скриншоте виджеты часов и микроблоггинга запущены в отдельных окнах (с выключенными декорациями), а на фоне видно окно Konversation. По правому клику доступно стандартное меню опций, в котором добавлен пункт «Выход» для закрытия виджета. Также можно включить или выключить декорации окон, а перемещение и изменение размера окна совершается с помощью стандартного перетаскивания.
Основная задача Марко — создание инфраструктуры для запуска виджетов на мобильных устройствах, поэтому основное внимание уделяется экономии ресурсов (в частности, все виджеты запускаются в одном процессе).
Приложение сейчас находится в kdereview, и готовится ко включению в основную поставку KDE SC к релизу 4.5.
Замечательный человек по имени Aurélien Gâteau представил на проходящим сейчас Maverick Ubuntu Developer Summit (UDS) новую реализацию глобального меню. Сама поддержка осуществлена в виде патча для Qt, а значит нет зависимости от стилей и библиотек KDE. Но главная «вкусность» этой реализации в другом: поскольку она основана на DBusMenu (ещё одно детище Aurélien, позволяющее передавать содержимое меню и управлять им через DBus), то может показывать меню не только Qt-, но и GTK-приложений! Аналогично, меню приложений Qt и GTK могут отображаться в Gnome (нативно!), да и вообще в любой среде, для которой написан соответствующий апплет.

Всё ближе и ближе дата выхода долгожданной первой бета-версии KDE SC 4.5. Как и ожидалось, в этот раз у Plasma не будет такого же обширного и серьёзного списка изменений, как это было во время 4.4. Но всё же разработчикам есть, чем порадовать, а нам — о чём рассказать пользователям этой замечательного окружения.
Так, Фредерик Гладхорн (Frederik Gladhorn) анонсировал новую возможность, которой многим так долго нехватало, — показ событий KOrganizer в виджете «Календарь». Сам Фредерик написал Calendar DataEngine, дающий апплетам доступ к событиям Akonadi, а Aaron Seigo добавил его поддержку в Календарь.
Уже имеются и первые скриншоты:

К сожалению, создавать события из виджета пока нельзя.
Тем временем, бразильский программист Bruno Abinader добавил в Plasma новый визуальный эффект Water, имитирующий водяные волны на поверхности указанного виджета. Увидеть эффект в действии можно на этом видео. А Marco Martin aka notmart поведал нам о ещё одной новинке — использование в Plasma свежеиспечённого Blur-эффекта KWin. В частности, во всплывающих сообщениях:

Всё тот же notmart анонсировал также несколько интересных изменений в Системном Лотке. Во-первых, создатели тем Plasma теперь могут указывать свои значки в трее вместо используемых приложением. Так, в показанной выше теме Air используются новые монохромные иконки. Эта возможность стала ещё одним плюсом, полученным от использования нового протокола лотка.
Во-вторых, скрываемые значки теперь показываются не в одной куче, вместе с остальными (что порой бывает неудобно), а в отдельном всплывающем меню (о чём коллега solshark уже писал). Это также добавит удобства тем, кто развёртывает трей только для каких-либо разовых операций (теперь им не нужно каждый раз опять скрывать значки). По крайней мере, с точки зрения разработчиков. :)

В-третьих, значок уведомления стал отдельным виджетом. По умолчанию он по-прежнему отображается внутри лотка (как встроенный апплет), но его можно легко отключить и добавить (или не добавлять) в любое удобное место. Сам виджет также получил новую возможность — удалённые уведомления. Достаточно разрешить удалённый доступ в диалоге настройки — и вот с других машин можно легко следить за Вашими задачами и уведомлениями. Версия KDE SC на удалённой системе также должна быть не ниже 4.5. Беспокоящиеся о безопасности могут настроить шифрование с доступом по паролю (возможно, в будущем также добавится фильтрация). Как обычно, notmart приложил демонстрационное видео.
Но не нужно думать, что разработчики KDE занимаются только красивостями и новыми возможностями! Замечательный человек по имени Michael Pyne исправил легендарную ошибку №182026, повинной в большей части падений Plasma (в частности, при смене темы) и других приложений. Корень зла находился в функции KPixmapCache::discard(), которая выполняет очистку и реинициализацию кэша, но при этом не использует никаких блокировок. Поскольку к одному и тому же кэшу одновременно могут обращаться множество процессов и потоков, отсутствие блокировок порой приводило к конфузам. Исправленная версия уже вошла в trunk и 4.4.2.
Однако, текущая реализация всё равно не устраивает Майкла, поэтому сейчас он вовсю работает над KSharedDataCache — новой, более правильной моделью работы с кэшем, которую мы должны увидеть либо в KDE SC 4.5, либо, скорее всего, в 4.6. Интересующиеся могут прочесть эту статью, где подробно описаны текущая реализация, её недостатки и причины создания новой KSharedDataCache.
Мы уже не раз писали о Lancelot — альтернативном меню для KDE SC, обладающим широким функционалом и настраиваемостью. Его разработчик Иван Чукич (Ivan Čukić) представил в своём блоге список улучшений этого меню, которые мы увидим в KDE SC 4.5.
Прежде всего, в Lancelot появился показ непрочитанных сообщений (через Akonadi) и доли занятого пространства на носителях. Занятое пространство отображается в виде круговых диаграмм на значке носителя (что вызвало в комментариях бурный флейм на тему «Прогресс-бар vs. круговые диаграммы»).

Те, кому кнопки разделов кажутся слишком широкими, теперь могут сделать их уже, кликнув по ним правой кнопкой и выбрав «Make buttons narrower».

В своё время Kickoff и Lancelot немало критиковали за неумение открывать подменю во всплывающей панели (как в обычном меню), многим не нравилось новое поведение меню. Специально для консерваторов Иван добавил опцию, возвращающую старое поведение. Заветная галочка находится на вкладке «Приложения» диалога настройки.

Кроме того, пользователь может теперь сам выбирать, какие модули поиска использовать (напомню, что строка поиска Lancelot уже давно может использовать модули KRunner). Сама строка научилась запоминать запросы и дополнять их из истории, для соглашения с предложенным вариантом дополнения следует нажать кнопку End (для полного подтверждения) или стрелку вправо (для частичного, по «словам»). Теперь Lancelot можно использовать как полноценную замену KRunner!
Ну и кратко об остальном:
- Апплет «Компонент Lancelot» переименовался в более наглядное «Ящик» и обзавёлся настройкой содержимого.
- Новая иконка.
- Улучшена анимация и поведение.
- Уменьшено потребление памяти.
- Исправлено множество ошибок.


