Бриз: Чому він не приходить за замовчуванням у KDE 5?

Як ми вже знаємо, KDE Next (або KDE 5, як вам подобається) вийшов стабільним кілька днів тому, і серед нових функцій, які він пропонує, однією з найбільш обговорюваних є нова робота під назвою Breeze.


Breeze

Ті, хто вже випробував цю нову версію або бачили відео, можливо, помітили, що у випадку з декоратором вікон, за замовчуванням використовується той, що є киснем, а не бризом. Так само Мартін Греслін пояснює нам у своєму блозі в чому причина такого рішення.

Оскільки стаття англійською мовою, я спробую запропонувати вам основну ідею цього.

Чому Breeze не приходить за замовчуванням?

Я починаю з пояснення того, як працюють декорації вікон у KWin 4. KWin - це так зване повторне виховання менеджерів вікон. Це означає, що кероване вікном X11 поміщається в інше вікно X11, яке забезпечує віконну раму. У KWin ми використовуємо QWidget для віконної рами. Тому ми також обмежуємося тим, що нам надає QWidget ... Наше рішення полягає в тому, щоб перехопити всі події розпису прикрас у QWidget і придушити це, викликати перефарбовування композитора та на етапі візуалізації гарантувати оздоблення тимчасового зображення, яке потім копіюється в текстуру.


Оздоблення вікон теми Breeze засноване на тематичному механізмі Aurorae. Оскільки я є головним автором полярних сяйв, я можу зачепити його в цьому дописі в блозі, не відчуваючи при цьому поганого відчуття. 🙂 Полярне сяйво було розроблено для того, щоб дуже легко створити прикрасу та використовувати нові функції напівпрозорості. Будучи рішенням, яке можна використовувати як декорацію за замовчуванням, але це ніколи не було їх метою. Ідея полягала в тому, щоб дозволити користувачам, які хочуть налаштувати цю функцію, тоді як більшість користувачів можуть використовувати рідні теми, які швидші. Полярні сяйва ніколи не були швидкими і вона не буде швидкими.


Зараз у KWin 5 використання QML є основною проблемою, яка ускладнює використання полярних сяйв. QtQuick використовує Scenegraph і використовує QWindows замість QWidget. Це неповноцінно для нашого API на основі QWidget. Ми скоригували внутрішнє використання для підтримки декорацій на основі QWindows, але це була досить складна дорога, оскільки існують відмінності у поведінці вікон. Оскільки він більше не заснований на QWidget, наше захоплення подій фарби порушено, і нам потрібно було нове рішення для нього. І це рішення навіть потворніше попереднього, оскільки QtQuick наразі працює через OpenGL. Через обмеження в програмі OpenGL Qt (може бути розглянуто в Qt 5.4), яку ми не можемо поділитися з контекстом OpenGL, що використовується QtQuick ... Це не тільки величезні накладні витрати при копіюванні вмісту з графічного процесора в оперативну пам'ять і назад до GPU, ви також втрачаєте багато пам'яті. У випадку розгорнутого вікна це не тільки рядок заголовка, але і все вікно. І це накладні витрати на кожне вікно.


Це одне може зробити Аврори абсолютно непридатними для використання. В даний час я використовую тему Breeze, і KWin потребує більше 200 Мб оперативної пам'яті - не дуже прийнятно. Але ситуація ще гірша. За допомогою QWindows ми не можемо знати, які області оновлено. Отже, коли, наприклад, кнопка оновлюється, ми повинні перефарбувати все вікно, включаючи повну копію вмісту прикраси. Це особливо в анімаційних ситуаціях є великою проблемою.


Отже, який шлях вперед? Я почав впроваджувати нову обробку для API, скасувавши обмеження оздоблення на основі добробуту з QWidget, і одночасно я почав впроваджувати оздоблення Breeze за допомогою цього нового API. Сподіваємось, ми можемо представити це в KWin 5.1.


І все так, панове. Сподіваюся, ви більш-менш розумієте, в чому проблема. Я збираюся запитати у Мартіна, чи не практичніше і швидше зробити рідну тему Бризу, як Oxygen, хоча на даний момент я не хвилююся, Oxygen, хоча це не наймиліша річ у світі, у неї є багато варіантів ..


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   іванбаррам - сказав він

    Я все читав, але нічого не розумів, сьогодні я повільний. У будь-якому випадку, я все ще не можу протестувати KDE 5 на своєму OpenSUSE 13.1. Це ламає мене через деякі "старі" залежності, які у мене є.
    Можливо, я дам вам ще один шанс з іншою ОС у віртуальній.

    Вітаю та дякую за вступ.

    1.    нано - сказав він

      Це непросто, в основному він намагається пояснити, що спосіб реалізації є складним, особливо для плагінів, і що, по суті, полярні сяйва - це ПОВІЛЬНІ, набагато більше, ніж кисень.

      Я не знаю, в цьому сенсі, частини декоратора вікон і всього, що мені здається таким

    2.    нано - сказав він

      Це непросто, в основному він намагається пояснити, що спосіб реалізації є складним, особливо для плагінів, і що, по суті, полярні сяйва - це ПОВІЛЬНІ, набагато більше, ніж кисень.

      Я не знаю, в цьому сенсі, частини декоратора вікон і всього, що мені здається, що KDE відстає від GNOME, і будьте обережні, я в кращому випадку шанувальник KDE, тільки що мені це не складно визнати щось, коли це правда.

    3.    Тхарран - сказав він

      Не знаючи нічого про цю тему, я, по суті, зрозумів, що полярні сяйва (движок, який використовує Breeze) тепер створює проблеми, оскільки Kwin5 більше не використовує qwidget, як у kwin4, а вікна поводяться не так. Натомість він використовує QML і QTquick, які працюють безпосередньо з opengl, і тому, схоже, деякі існуючі обмеження в qt 5.3 заважають старому двигуну та його темам погано працювати в новому Kwin.

  2.   mat1986 - сказав він

    Чи було б можливо створити (або адаптувати) Бриз до стилю чи способу роботи, який має кисень?

  3.   Сандекура - сказав він

    Хто-небудь уявляє, що буде з qtcurve?

    1.    Тхарран - сказав він

      Qtcurve-qt5 вже давно працює ідеально. Нова версія KDE діятиме як завжди.

      1.    айорія - сказав він

        Мені вже було дивно, що в Kaos, який завжди знаходиться на передньому краї сьогодні, тестування Kf5, тому відомо, що в плазмі Kaos linux next або kde 5 кисень надходитиме за замовчуванням. Ого, ви не знали, що були творцем полярних сяйв ...

        1.    Тхарран - сказав він

          Я творець полярних сяйв? O_o;

  4.   Серхіо Е. Дюран - сказав він

    Я створював замінник бризу також у полярних сяйвах, який називався наступним свіжим, який згодом буде свіжим бризом, але я не можу з адаптацією SVG до теми, тому його розвиток неактивний, elav, якщо у вас є можливість, я б вас дуже любив покажіть його творцеві теми вітер, щоб побачити, чи зможуть вони перенести ідею мого прикраси полярних сяйв на рідні прикраси KDE як альтернативу прикрасі вітерця

    https://drive.google.com/file/d/0B6VUkpZzqL7hbk1QbWN6eVcycU0/edit?usp=sharing

  5.   eliotime3000 - сказав він

    Я думаю, що KDE 5 буде на Fedora, Debian, Slackware та Arch, коли у мене є сім'я та діти, і мені близько 30 років.

    Коротше кажучи, продовжувати користуватися малою молодістю, яка залишилась у мене.