Заснований Xfce Classic, форк Xfce без декорування вікон на стороні клієнта

Шон Анастасі (Shawn Anastasio), ентузіаст вільного ПЗ, який свого часу розробляв власну операційну систему ShawnOS і який займався портуванням Chromium і Qubes OS на архітектуру ppc64le, заснував проект Xfce Classic, в рамках якого має намір розвивати форки компонентів користувача оточення Xfce, що працюють без застосування декорування вікон на стороні клієнта (CSD, client-side decorations), при якому заголовок та рамки вікна малюються не віконним менеджером, а самим додатком.

Нагадаємо, що під час підготовки наступного випуску Xfce 4.16, реліз якого очікується у жовтні чи листопаді, здійснено переклад інтерфейсу на віджет GtkHeaderBar та застосування CSD, що дало можливість за аналогією з GNOME домогтися розміщення меню, кнопок та інших елементів інтерфейсу у заголовку вікна, а також забезпечити приховування рамок у діалогах. Новий механізм відтворення інтерфейсу інтегрований в бібліотеку libxfce4ui, що призвело до автоматичного застосування CSD для багатьох діалогів, без необхідності внесення змін до коду існуючих проектів.

У переходу на CSD знайшлися супротивники, Які вважають, що підтримка CSD повинна бути опціональною і користувач повинен мати можливість продовжити використання класичних заголовків вікон. З недоліків застосування CSD згадується занадто масивна область заголовка вікна, відсутність потреби переносити елементи програми в заголовок вікна, непрацездатність тем оформлення Xfwm4 та різнобій в оформленні вікон додатків Xfce/GNOME та програм, що не використовують CSD. Зазначається, що з причин неприйняття інтерфейсу GNOME деякими користувачами є застосування CSD.

Так як за 5 місяців не було зроблено спроб надати підтримку відключення CSD, Шон Анастасі вирішив взяти це питання у свої руки і створив форк бібліотеки libxfce4ui, у якому провів чищення прив'язки до CSD і повернув старий режим декорування за сервера (віконного менеджера). Для забезпечення сумісності з програмами, що використовують новий API libxfce4ui, та збереження ABI, підготовлені спеціальні обв'язки, що транслюють специфічні CSD-методи класу XfceTitledDialog на виклики класу GtkDialog. У результаті надано можливість позбавлення додатків Xfce від CSD шляхом заміни бібліотеки libxfce4ui без зміни коду самих додатків.

Додатково сформований форк панелі xfce4-panel, Що включає зміни повернення класичного поведінки. Для користувачів Gentoo підготовлено накладення для встановлення libxfce4ui-nocsd. Для користувачів Xubuntu/Ubuntu підготовлено PPA-репозиторій із готовими пакетами. Мотиви створення форка Шон Анастасі пояснив тим, що він уже багато років використовує Xfce і подобається інтерфейс даного оточення. Після прийняття рішення щодо зміни інтерфейсу, з якими він був незгодний, та відсутності спроб надати опцію для повернення старої поведінки, було вирішено самостійно вирішити свою проблему та поділитися рішенням з іншими людьми, які поділяють його думку.

З проблем при використанні Xfce Classic відзначається виникнення враження дублювання заголовків через відображення інформації, що повторюється, в заголовку і у вікні програми. Ця особливість відповідає поведінці Xfce 4.12 і 4.14 і не пов'язана з CSD. В одних додатках подібне дублювання виглядає нормально (наприклад, xfce4-screenshooter), але в інших явно недоречно. Для вирішення цієї проблеми не виключається додавання змінної оточення, що регулює відрисовку XfceHeading.

Заснований Xfce Classic, форк Xfce без декорування вікон на стороні клієнта

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

Джерело: opennet.ru

Додати коментар або відгук