LINUX.ORG.RU

Простота кастомизации.

Десятки форков гномотехнологий не дадут соврать:

  • GNOME
  • Panteon
  • Budgie
  • Mate
  • Cinnamon
  • XFCE
  • COSMIC
  • Unity
  • Забыл ещё что-то?

И в каждом из них собственная была CSS-тема как того хотелось создателям дистрибутивов и этих окружений. Без CSS достичь этого было бы очень сложно.

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

Удобство использования, сейчас посмотрел свой gtk.css, так там только одна gtk специфичная строка, остальное обычный css.
Т.е. имея базовые навыки работы с css, можно без гугления что-нибудь себе накостамизировать.
Да и какие собственно претензии к css, как будто там до него что-то хорошее было.

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

Да и какие собственно претензии к css, как будто там до него что-то хорошее было.

Вы видели как выглядели GTK2 приложения? сколько потребуется фронт-эндеров чтобы сделать что-нибуть подобное хотябы для одного приложения на CSS?

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

Можно подумать, раньше было сложнее. Десятки gtk2-engine-*, с десятками качественных тем на каждом движке. И при чем тут форки гномотехнологий? Panteon это DE из Elementary OS, которая ЕМНИП начиналась как тема GTK2, иконок и патченого Nautilus, а первый релиз на базе Ubuntu выкатили, когда никакого GTK3 с CSS еще в помине не было.

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

Щито?
Я может чего то не понимаю, можно пример такого gtk2 приложения, от которого все фронт-эндеры порвутся?
Вроде как с переходом с gtk2 на gtk3 только пользователи ретро железа стали ныть что тормозит, а внешне ничего не поменялось.
Или я что-то упускаю?

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

сколько потребуется фронт-эндеров чтобы сделать что-нибуть подобное хотябы для одного приложения на CSS?

Там уже все сделано, все элементы интерфейса, а css лишь придает стиль этим элементам. Называйте не GTK-тема, а GTK-стиль, так ближе к истине.

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

Под gtk2 было дохрена уникальных тем, от плоских минималистичных до анимированных во все места, и фантазия разрабов была ничем не ограничена. Потому что тема задавалась не только описанием на gtkrc, а полноценным движком на Си (по желанию; можно было и на дефолтных движках творить всякое).

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

стали ныть что тормозит

Офигенный прогресс: мы стали иметь меньше фич ценой повышения системных требований. Скайп-стаил девелопмент.

wandrien ★★
()

Кто нибуть знает какие либо обьективные причины внедрения CSS для поддержки тем в GTK приложениях?

Объективная причина такова - юзеры хотят кастомизировать внешний вид GTK приложений. Каким образом этого достичь? Можно упороться и заставить пользователей ковыряться в коде и компилировать программули из исходников, каждый раз, когда они захотят поменять цвет кнопок. Разумнее предоставить текстовый конфиг, который определяет стиль приложения. Этот текстовый конфиг должен быть достаточно гибким, чтобы вместить тысячи возможных крутилок и не порваться. Когда-то давно, лет 30 назад изобрели CSS как раз для подобных нужд. Изобретать что-то подобное заново, нет никакой необходимости, потому что уже изобретено. Поэтому CSS

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

анимированных во все места, и фантазия разрабов была ничем не ограничена

Это экзотика, которой мало кто пользовался и еще меньше кто мог такое сам сделать.

Офигенный прогресс: мы стали иметь меньше фич ценой повышения системных требований

А ты уверен что gtk3 стало тормознее именно из за css, я вот нет, то что было до него ничем принципиально не отличается.
И да это прогресс, теперь условный Вася, не gtk извращенец, может себе что-нибудь настроить без особого пердоленья.

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

И да это прогресс, теперь условный Вася, не gtk извращенец, может себе что-нибудь настроить без особого пердоленья.

ЧТО, м…ть, настроить???

Я тот самый Вася, который делал кастомные правки для gtk2 стилей, и они делали то, что мне нужно. В gtk3 с CSS можно просто сразу в окно выйти, вот и вся настройка. Хоть испердолься.

Харош заливать.

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

Ну, вообще-то, даже довольно ограниченные движки GTK2 позволяли менять цвета, как минимум. Clearlooks имел неплохой набор настроек. Murrine и pixbuf вместе давали, наверное, максимум возможностей без написания своего движка.

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

css - это очень странная и специфичная технология. И ключевое в ней «c» - это очень нужная вещь для печатных документов (и немного html), и но и самая тормозная вещь на свете. Подумай сам, почему и как.

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

В gtk3 с CSS можно просто сразу в окно выйти, вот и вся настройка

А так ты css не осилил, так бы сразу и сказал.
Я фронтэндом занимался от силы год, и то когда понадобилось настроить xfce, сделал это без гугла, чисто с GTK_DEBUG=interactive.
Единственную вещь которую пришлось загуглить это как символические иконки отключить во всех приложениях.

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

Можно подумать, раньше было сложнее. Десятки gtk2-engine-*

Конечно, сложнее. С CSS в GTK+ и Qt ты волен делать вещи вроде:

$ cat fix_shitty_kde_design.qss 
QMenuBar {
        height: 18px;
}

QMenuBar::item {
        padding: 0px 5px 0px 5px;
}

QMenuBar::item:selected {
        background: rgba(147, 206, 233, 1);
}

QMenuBar::item:pressed {
        background: rgba(61, 174, 233, 1);
        color: rgba(235, 238, 241, 1);
}

$ konsole -stylesheet fix_shitty_kde_design.qss

А со всеми эти «theme-engine» – пук-сереньк иди конпилируй тему. Пердолинг на ровном месте.

И при чем тут форки гномотехнологий?

Удобно кастомизировать и настраивать? Вот и появляются форки после как после дождя на любой вкус и цвет.

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

css - это очень странная и специфичная технология

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

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

пук-сереньк иди конпилируй тему

Уже бегу. Упс, это вовсе компилировать не надо:

style "clock"
{
        xthickness = 0
        ythickness = 3
        engine "murrine"
        {
                border_shades = { 1.1, 1.1} # draw a gradient on the border.
                border_colors = { "#687582", "#687582" }
                glowstyle = 0
                roundness = 0
                highlight_shade = 1.0
                lightborder_shade   = 1.0
                gradient_shades = {1.1,1.0,1.0,0.7}
        }
}       
wandrien ★★
()
Ответ на: комментарий от wandrien

В Qt тоже CSS, точнее точно так же как в GTK+ – его подмножество.

И это очень хорошо, потому что без подобных технологий для подобного фикса из поста выше мне пришлось бы пердолить и компилировать темы, скачивать несколько гигабайт исходников Qt Base.

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

Куда ты лезешь со своим Qt? Я делал темы GTK2, ничего не компилил.

Удобно кастомизировать и настраивать? Вот и появляются форки после как после дождя на любой вкус и цвет.

Ну да, разрабы пишут WM, панели, файловые менеджеры и еще 100500 наименований софта не из-за говенной лицензии Qt или еще каких-то серьезных причин, а из-за CSS в GTK. А, стоп, в своем примере ты правишь CSS в Qt и нахваливаешь эту возможность. Двоемыслие не жмет?

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

Чет это не очень похоже на валидный CSS:

We loosely follow the CSS value definition specification in the formatting of syntax productions.

Особенно эпичная часть:

@binding-set binding-set1 {
  bind "<alt>Left" { "move-cursor" (visual-positions, -3, 0) };
  unbind "End";
};

Вообщем не надо грязи, это некое подобие CSS, с доп. логикой под задачу оформления тем. И разумеется вы с ним еще наплачетесь.

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

Значит я был не прав и GTK+2 тоже позволял делать подобные CSS кастомизации без перекомпилирования кода. Это, кстати, очень инновационно было, потому что, к примеру, Qt 3 делать так не умел, а QSS там появились в Qt 4.3.

Видимо разработчики GNOME решили этот движковый синтаксис привести к стандартному CSS, чтобы было удобно, но по пути как всегда что-то отвалилось.

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

А, стоп, в своем примере ты правишь CSS в Qt и нахваливаешь эту возможность. Двоемыслие не жмет?

Не знаю где ты тут увидел двоемыслие, потому что я говорил о том, что CSS как в Qt так и GTK+ решают ровно одну задачу – понижают порог входа дизайнеров к разработке тем как под один фреймворк, так и под другой.

Дизайнер/фронтендер и пр. знаком с CSS, но не знаком условным DSL, который использовался в GTK+2 Theme Enigines, чтобы снизить порог вхождения дизайнерам и стандартизировать всё это – выбрали CSS.

Ну а выбор CSS родил огромную кучу дизайнерских тем в тех дистрибутивах, которые я перечислил в своём первом посте в этой теме. От Adwaita до Yaru. При этом куски CSS от той же Adwaita с небольшими правками натягивались на Qt.

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

Ну а выбор CSS родил огромную кучу дизайнерских тем в тех дистрибутивах, которые я перечислил в своём первом посте в этой теме. От Adwaita до Yaru.

Плоское говнецо он родил с разноцветными кнопками. Воспроизведи тему Human из 8.04 на CSS, потом поговорим.

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

Это именно подобие CSS.

При чем в gtk2 это был отдельный язык описания стилей, предназначенный чисто для тулкита.

А в gtk3 из него сделали «подобие CSS».

Пофиг, что поменяли синтаксис. Суть в том, что выпилили возможности.

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

Дизайнер/фронтендер и пр. знаком с CSS, но не знаком условным DSL, который использовался в GTK+2 Theme Enigines, чтобы снизить порог вхождения дизайнерам и стандартизировать всё это – выбрали CSS.

Это высосанное из пальца «улучшение», которое только в голове разрабов GTK могло сойти за улучшение.

У нас в индустрии список «страшных слов» а ля технологий, которые нужно знать, скоро будет исчисляться тысячами для каждой вакансии. Вот приходишь ты буквально почти куда угодно, а от тебя требуют всё, начиная от банального умения работать с git, и заканчивая умением писать конфиги на yaml с закрытыми глазами наощупь.

И вот такой вот айтишник, у которого, как в том анекдоте «Чо сегодня сдаём? Китайский? Если методичка есть, то сдам», умение писать что угодно на чём угодно - ведущий софт скилл, должен якобы испугаться очередного DSL?

Ну а выбор CSS родил огромную кучу дизайнерских тем в тех дистрибутивах, которые я перечислил в своём первом посте в этой теме. От Adwaita до перекрашенной Adwaita.

Исправил цитату до сути.

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

банального умения работать с git, и заканчивая умением писать конфиги на yaml с закрытыми глазами наощупь.

Умение работать с git это фактически конг-фу, со своими мастерами и многолетними практиками ради достижения дзена.

А туда где спрашивают на собеседованиях про умение писать на yaml ходить не стоит. Там дураки, не надо на дураков работать.

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

уверен что gtk3 стало тормознее именно из за css, я вот нет,…

Например, #2165: Improve CSS rendering performance (24.09.2019):

For example, for rendering 10 000 elements GTK spent more than 300 seconds. That is exact reason why Gnome Nautilus hanging on opening big folders.

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

That is exact reason why Gnome Nautilus hanging on opening big folders.

Честно сказать, он и в версии GTK2 с этим плохо справлялся из-за достаточно низкого качества кода в самом ФМ.

Меня @alex0x08 просил записать видео работы старого ноута, вот как раз сейчас монтирую видео, где будет видно, как работает вменяемый файловый менеджер.

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

Каскадность стилей добавляет вычислительную нагрузку.

всё можно закешировать, там же стили не меняются динамически с частотой 120 кадров в секунду.

Shushundr ★★★
()