LINUX.ORG.RU

Мнение Мартина из 2010-ого года или почему Client Side декорации — говно

 , , ,


0

2

http://blog.martin-graesslin.com/blog/2010/05/open-letter-the-issues-with-cli...

Собственно, никто из гномеров его не послушал. Ну и вот вам результат.



Последнее исправление: journald (всего исправлений: 5)

На ЛОРе нехватает обычая добавлять год в тайтл для топиков-ссылок на баяны.

Хороший же вброс.

Поговорим с копипастой

it is impossible to have the same behavior for both CSD and wm decos.

4.2. Единственная проблема — зоопарк. Доказательства примерами — не доказательства, как подсказывает формальная логика.

the point is already obvious: a client-side-decorated window cannot know how the layout of decoration buttons in the window manager decorations is set.

4.2.

You click the close button in the decoration and the window manager will notice that the application does not response any more and will offer to forcefully close the window. With CSD this is impossible.

4.2. А вот опровержение контрпримером — вполне нормально. И контрпример — оффтопик.

I can’t see how a non-KDE application wants to be in sync with KDE’s context menu.

Вот именно: проблема — зоопарк. Решение проблемы — установка стандартов, но в зоопарке это может и не сработать. С другой стороны, уже многие вещи делаются кроссдесктопно и формального доказательства того, что сделать кроссдесктопно и это невозможно — нет.

Коротко о чём я:

1. Если взять часть кода декораций в WM и перенести его, пропатчив, в shared-библиотеку, используемую клиентом для CSD, половина проблем ВНЕЗАПНО исчезнет.

2. Оставшаяся проблема — зоопарк, поскольку не весь софт будет юзать ЭТУ shared-библиотеку.

3. Но можно определить какие-нибудь декларативные правила описания декораций и записывать их в любом удобном формате. В конце концов, в декорациях нечего особо программировать (код может быть в WM, если каждый клиент знает, как его вызвать).

4. Автор копипасты мягко говоря не сильно авторитетнее гномодевелоперов

Ну а подобные результаты типичны для зоопарка и наплевательского отношения к стандартам, которые царят в линуксах. Пройдёт немного времени и всё поправят (сломав ещё что-нибудь). Это нормально, истерики неуместны.

x3al ★★★★★
()
Последнее исправление: x3al (всего исправлений: 1)

Это больше похоже на обмазывание говном, т.к тогда получается, что у каждого по желанию его левой пятки будут другие заголовки, другое поведение, и например, никакого тайлинга, ага.

journald
() автор топика
Ответ на: комментарий от journald

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

Плюсы расскажут вейлендофилы, они же любят СКОРОСТЬ и ПЕРЕПИСЫВАТЬ ВСЁ. Мне — лень.

x3al ★★★★★
()
Ответ на: комментарий от anonymous

Если софт перестаёт отвечать, то ему принудительно вместо содержимого окна «WM» (точнее, то, что за него в оффтопике) рисует (возможно уменьшенный) последний скриншот (композитинг же, поэтому у «WM» всегда есть скриншот) и принудительно же декорирует серверсайд поверх этого скриншота. Клиент начал отвечать — ок, он заслужил клиентсайд, возвращаем обратно.

x3al ★★★★★
()

То что внутри рамки квина... Это так теперь заголовки gtk3 выглядят? Похоже на хелловорлд из примеров, лол.

Adjkru ★★★★★
()
Ответ на: комментарий от x3al

Ты ничего не понял.

Wayland сам ничего по CSD не говорит. Оно есть только в Weston.

После этого гномерам очень понравилось и они немедленно запилили себе это непотребство по-умолчанию.

А единообразие управление окнами, тайлинг, не то? Что-то ты это пропустил и не отвечаешь.

journald
() автор топика
Ответ на: комментарий от x3al

И да, текущее состояние гнома — жуть. Похоже, что минимально юзабельный гном — не бета и не релиз, а версия из последнего стабильного RHEL.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Какие-то костыли жуткие. За-чем? И правда убого будет, если каждая программа Васи Пупкина будет рисовать как хочет

journald
() автор топика
Ответ на: комментарий от journald

Декорации к _управлению_ окнами и тайлингу не имеют отношения.

Ты не умеешь читать? Если _весь_ CSD-софт будет слушать сигнал «отключи декорации» и будет уметь единый формат тем (включая тот же порядок кнопок) и единый протокол общения с WM (реакция на кнопки/нажатия по ним) — особых проблем не будет. Можно даже предусмотреть «место для клиентских кнопок», где каждый клиент рисует что хочет. Проблема — за внедрением этих единых форматов и протоколов, в линуксах такое маловероятно.

x3al ★★★★★
()
Ответ на: комментарий от journald

И правда убого будет, если каждая программа Васи Пупкина будет рисовать как хочет

Слишком толсто. CSD делают не для «рисовать как хочет». CSD позволяет это сделать, но не заставляет. Проблема в Васе Пупкине, а он всегда найдёт, как сделать свой софт неюзабельным и SSD тут не помеха.

x3al ★★★★★
()
Последнее исправление: x3al (всего исправлений: 1)
Ответ на: комментарий от x3al

Если _весь_ CSD-софт будет слушать сигнал «отключи декорации» и будет уметь единый формат тем (включая тот же порядок кнопок) и единый протокол общения с WM (реакция на кнопки/нажатия по ним) — особых проблем не будет

Но ведь он не будет. Пусть не по техническим причинам, но не будет.

tailgunner ★★★★★
()
Ответ на: комментарий от x3al

Отлично, проблема с CSD есть, и ее можно даже героически преодолеть. Но какие мы с этого получим плюшки? Те, кто хотят творить непотребства, и с SSD могут создать безрамочные окна и нарисовать им любые псевдодекорации.

jerk-of-all-trades
()
Ответ на: комментарий от jerk-of-all-trades

Но какие мы с этого получим плюшки?

Никаких кроме мифического прироста скорости (спрашивать у девелоперов вестона). Зато можно наслаждаться процессом героического преодоления проблем.

Нет, в теории можно будет сделать так, что непотребства будут вписываться в любую тему декораций окон (и это — вполне себе плюшка: не будет повода рисовать их как попало), но делать так на практике будут лет 6-7. И вряд ли доделают.

x3al ★★★★★
()
Последнее исправление: x3al (всего исправлений: 1)
Ответ на: комментарий от journald

Но разные.

Двойная рамочка — просто бага либо в кде, который не послушался гтк, либо в гтк, который не уведомил кде о том, что рамочку рисовать не надо.

PolarFox ★★★★★
()
Ответ на: комментарий от journald

Ну дак гтк поставило флаг окну о том, что рамочка не нужна? Если поставило, то виноват кде, если не поставило, виноват гтк.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Т.е если поставило, до оно должно отличаться от SSD?

Ясна. Не хочу такого дерьма на моем уютном лаптопе.

journald
() автор топика

Всё правильно сказал. Авторы сабжа содомиты, будет всё выглядеть вырвиглазно и мозговыносимо как в оффтопике.

anonymous
()
Ответ на: комментарий от journald

Т.е если поставило, до оно должно отличаться от SSD?

Ну в общем-то рисовать окна без декорации умеет любой приличный оконный менеджер.

PolarFox ★★★★★
()
Ответ на: комментарий от journald

А какой смысл тогда в SSD?

Никакого особого сакрального смысла в них нет. В винде, емнип, они рисуются тем, что называлось бы в иксах серверсайдом только тогда, когда приложение не отвечает, в остальное время клиентсайдом. В маке вроде бы также.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Но с сервер-сайдом сейчас работает и всё нормально. Зачем? На клиент-сайд линукс не пересядет весь, не то?

journald
() автор топика
Ответ на: комментарий от journald

Но с сервер-сайдом сейчас работает и всё нормально. Зачем?

Это был простейший способ засунуть дополнительные штуки в заголовок.

На клиент-сайд линукс не пересядет весь

А фиг знает, посмотрим.

PolarFox ★★★★★
()
Ответ на: комментарий от journald

Достаточно чтобы все тулкиты просто использовали одну и ту же лоулевельную либу с функциями рисования заголовка. Когда начнётся повальный вейленд, это будет несложно организовать.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Лучше, но сложнее декларативный формат темы + референсная лоулевельная либа. Позволит девелоперам реализовать больше извращений своими реализациями парсера этого формата темы, не слишком отходя от оригинальной темы.

x3al ★★★★★
()
Ответ на: комментарий от PolarFox

А напиханное в этот заголовок — это что, зачем и куда?

Если кнопочки, то должно быть в стиле мм.. движка gtk/qt, а не заголовка.

И да, например, Kwin под wayland уже с SSD. Так что зоопарк неизбежен. зачем тогда нужно?

journald
() автор топика
Ответ на: комментарий от journald

А напиханное в этот заголовок — это что, зачем и куда?

Ну вкладки в браузерах туда можно засунуть, кнопку с меню настроек итд.

Kwin под wayland уже с SSD

А референсный вейленд предполагает csd. Так что это кдешники начали зоопарк разводить.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Wayland не требует CSD. Их требуют упоротые разработчики Weston'a (это, правда, одни и те же люди). Ничего не мешает запилить собственный композитор для вейланда с серверными декорациями, что разработчики кед и делают.

equeim ★★
()
Ответ на: комментарий от PolarFox

Weston, дорогой.

А Wayland ничего об этом не говорит.

Как раз Weston начал, ибо всё, что раньше — SSD

journald
() автор топика
Ответ на: комментарий от journald

Если кнопочки, то должно быть в стиле мм.. движка gtk/qt, а не заголовка.

Вряд ли. Если бы тут те же кнопки были, например, обрамлены как в текущей теме gtk/qt, то был бы вырвиглаз.

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

Ссылку на оффтопик-интерфейс кидаю потому, что в линуксе client side-декорации сейчас сложнее найти.

x3al ★★★★★
()

Кедопроблемы.
//ваш кэп

ArtKun ★★★★★
()
Ответ на: комментарий от PolarFox

Достаточно чтобы все тулкиты просто использовали одну и ту же лоулевельную либу с функциями рисования заголовка.

Достаточно, чтобы гномовцы перестали жрать вещества. Только и всего. Сейчас я могу показывать/скрывать декорации динамически, по хоткею. С ССД для этого нужны будут километры еще не написанных и не утвержденных костылей.

baverman ★★★
()
Ответ на: комментарий от Adjkru

А, ну, это да. С версии 3.8 или 3.10, вроде, так. Выглядит забавно, и стиль сбивается, если запускаешь что-то, написанное на GTK2/Qt. Зато МЕСТО ЭКОНОМИТ. Наверное. Иначе я вообще не понимаю, зачем сие нужно.

Deleted
()
Ответ на: комментарий от Deleted

Зато МЕСТО ЭКОНОМИТ.

Особенно в дефолтной теме, да.

baverman ★★★
()

В чём проблема-то? Не умеют гномосекские программы нормально отрисовываться, да и хрен с ними, не?

anonymous
()
Ответ на: комментарий от anonymous

Не умеют гномосекские программы нормально отрисовываться, да и хрен с ними, не?

Увы, иногда без гномосятины обойтись не получается.

Valkeru ★★★★
()
Ответ на: комментарий от anonymous

Эмм. В моей ОС (оффтопик) клиент-сайд декорации уже давно подхватывают системную тему (в определённых пределах, естественно).

x3al ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.