Инициатива по переводу приложений на декорирование окон на стороне клиента
Разработчики GNOME выступили с инициативой по переводу как можно большего числа приложений на декорирование окон на стороне клиента (CSD, Client Side Decoration), при котором заголовок и рамки окна отрисовываются не оконным менеджером, а самим приложением. CSD позволяет задействовать занимающее впустую пространство заголовка окна для размещения меню, кнопок панели и других значимых элементов интерфейса.
Для унификации оформления на основе CSD предлагается придерживаться общих рекомендаций, таких как отказ от отдельной панели для заголовка окна, размещение типичных кнопок закрытия/раскрытия/сворачивания окна, предоставление штатного контекстного меню, вызываемого при клике правой кнопкой мыши, поддержка настроек для размещения кнопок в левой или правой части окна. Из достоинств перехода на CSD упоминается экономия вертикального экранного пространства в условиях преобладания широкоформатных экранов и более широкие возможности интеграции с содержимым окна.
Инициатива распространяется как на приложения GMOME, так и на любые другие графические программы, в том числе написанные с использованием Qt. В качестве первичных задач отмечена работа по реализации CSD для Chromium, Firefox, Blender, LibreOffice, GIMP, Inkscape, GNOME Terminal, Skype и Telegram. Среди менее приоритетных проектов упомянуты VLC, Krita, Kdenlive, Darktable, VirtualBox, Transmission и Thunderbird. Для упрощения портирования не-GTK приложений рассматривается возможность подготовки средств для применения CSD в стиле GNOME для приложений на базе Electron и Qt.
Мартин Грэсслин (Martin Gr&228;&223;lin), ведущий разработчик оконного менеджера KWin, не согласился с предложением разработчиков GNOME и посчитал его лукавством. При классической отрисовке служебных областей окна на стороне сервера (SSD, Server Side Decoration) гораздо проще привести к единому стилю оформление окон всех приложений. В случае применения CSD потребуется отдельно адаптировать интерфейс к каждому графическому окружению и достаточно трудно добиться того, чтобы приложение не выглядело чужеродно в разных пользовательских окружениях.
Грэсслин считает надуманным упоминание того, что Wayland вынуждает переводить приложения на CSD, так как ничто в Wayland не обязывает применять CSD. CSD требуют GNOME Shell и Weston, но работающие поверх Wayland окружения KDE Plasma и Sway не привязаны с CSD. Разработчики KDE подготовили протокол, который уже поддерживается в GTK, позволяющий согласовывать с композитным сервером Wayland использование CSD или SSD. Переход на CSD достаточно трудоемкая работа и не желающие ее выполнять разработчики тулкитов с тем же успехом могут призвать GNOME реализовать декодирование на стороне сервера, тем более, что они сами нуждаются в ее поддержке для XWayland.