LINUXTALKS.CO

Выпуск библиотеки Libadwaita 1.4 для создания интерфейсов в стиле GNOME

 

L


0

0

Проект GNOME опубликовал выпуск библиотеки Libadwaita 1.4, включающей набор компонентов для стилевого оформления интерфейса пользователя, соответствующего рекомендациям GNOME HIG (Human Interface Guidelines). Библиотека включает в себя готовые виджеты и объекты для построения приложений, соответствующих общему стилю GNOME, интерфейс которых может адаптивно подстраиваться под экраны любого размера. Код библиотеки написан на языке Си и распространяется под лицензией LGPL 2.1+.

Библиотека libadwaita используется в сочетании с GTK4 и включает компоненты используемой в GNOME темы оформления Adwaita, которые были вынесены из GTK в отдельную библиотеку. Вынос элементов визуального оформления GNOME в отдельную библиотеку позволяет развивать необходимые для GNOME изменения отдельно от GTK, что даёт возможность разработчикам GTK сосредоточиться на базовых вещах, а разработчикам GNOME более быстро и гибко продвигать необходимые для себя изменения стилевого оформления, не затрагивая сам GTK.

В библиотеку входят типовые виджеты, охватывающих различные элементы интерфейса, такие как списки, панели, блоки редактирования, кнопки, вкладки, формы поиска, диалоговые окна и т.п. Предложенные виджеты позволяют создавать универсальные интерфейсы, которые органично функционируют как на крупных экранах ПК и ноутбуков, так и на небольших сенсорных экранах смартфонов. Интерфейс приложений динамически меняется в зависимости от размера экрана и доступных устройств ввода. Библиотека также включает набор стилей Adwaita, приводящих внешний вид в соответствие с рекомендациями GNOME, без необходимости выполнения ручной адаптации.

Основные изменения в libadwaita 1.4:

  • Предложены новые адаптивные виджеты, подстраивающиеся под размер видимой области. В новом наборе обеспечена корректная поддержка вложенного изменения размера (например, когда изменение размера боковой панели, влечёт за собой изменение размера кнопок и переключателей), решены проблемы с анимированными эффектами при переключении режимов, переделана обработка изменения ширины, повышена гибкость использования (например, в версии для мобильных устройств можно перенести часть виджетов из заголовка в нижнюю панель). Старые адаптивные виджеты AdwLeaflet, AdwFlap, AdwSqueezer и AdwViewSwitcherTitle объявлены устаревшими и со временем должны быть заменены на новые.
    \
  • Реализована система точек останова (класс Breakpoint), позволяющая менять интерфейс пользователя произвольным образом в зависимости от размера окна. Точки останова могут использоваться с классами AdwWindow, AdwApplicationWindow и AdwBreakpointBin. Среди прочего, точки останова могут определяться декларативным способом через UI-файлы.
  • В виджете AdwNavigationView реализован шаблон браузинга, пришедший на смену виджету AdwLeaflet в режиме "can-unfold=false", предоставляющий стек навигации, который может настраиваться статически (через UI-файлы) или динамически, и поддерживающий действия navigation.push и navigation.pop для помещения страниц напрямую из UI-файла.
  • В виджет AdwHeaderBar добавлена возможность автоматического показа корректного заголовка для каждой страницы навигации, а также показа кнопки "назад" для перехода к прошлой странице или вывода меню для выбора страниц для перехода.
  • Добавлен виджет AdwNavigationSplitView, имеющий два дочерних элемента - боковую панель и содержимое, которые выводятся бок о бок. Размер боковой панели может выбираться как определённый процент от общей ширины видимой области.
  • Добавлен виджет AdwToolbarView, включающий виджет с содержимым и несколько верхних и нижних панелей (например, AdwHeaderBar, AdwTabBar, GtkSearchBar, GtkActionBar или GtkBox со стилем .toolbar).
  • Добавлен виджет для вывода переключателей AdwSwitchRow, реализованный как подкласс AdwActionRow, содержащий GtkSwitch.
  • Добавлен виджет AdwSpinRow c реализацией строки списка, включающей GtkSpinButton.
  • Добавлен новый класс стилей ".property" для отображения свойств.
  • Добавлена функция adw_about_window_new_from_appdata() для упрощения создания окон с информацией о программе.
  • В виджете AdwComboRow реализована поддержка полей поиска.
  • Добавлено свойство AdwPreferencesPage:description для показа описания в верхней части страницы.
  • В виджете AdwTabOverview значительно переделана обработка миниатюр для лучшей работы с WebKitWebView.
  • Цвет заголовков и панелей инструментов в светлых темах заменён на белый вместо серого. Серый цвет теперь задействован в боковых панелях.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

>>> Подробности

★★★☆☆

У меня приложения на Gtk4 открываются несколько секунд буквально, NVIDIA 3060, i9-10850k, NVMe.

Даже не знаю, нужно было топ покупать наверное, или сейчас обновиться на него? Представляю как все будет тормозить, когда контейнеров подвезут, в Ubuntu оставят Ubuntu Core Desktop, в Fedora свой проект разовьют, будет как в Windows, где блокнот открываться может секунд 10 если неудачно его запустить.

Жаль что в 2к23 разработчики не следят за отзывчивостью, даже сейчас все открывается очень медленно, а после открытия нередко тормозит как приложения в KDE. Хотя еще на GTK2 все было относительно быстро.

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

Linux / Chrome
Ответ на: комментарий от MOPKOBKA

я слышал такое писали. а потом кто-то опровергал. так и не понял, где правда. сам решил пересобирать софт и избавляться от gtk4 в системе. chrome пока на gtk3.

crypt@witch ~ $ apfind gtk[234]
Installed:
	gtk2
			 (2.24.33) 
		 Gimp Toolkit for X11 GUI (previous stable version)
	gtk3
			 (3.24.34) 
		 Gimp Toolkit for X11 GUI (current stable version)
	linux-c7-gtk2
			 (2.24.31) 
		 GTK+ library, version 2.X (Linux CentOS 7.9.2009)
	linux-c7-gtk3
			 (3.22.30_3) 
		 GTK+ library, version 3.X (Linux CentOS 7.9.2009)
Repository:
	gtk2
			 (2.24.33) 
		 Gimp Toolkit for X11 GUI (previous stable version)
	gtk3
			 (3.24.34) 
		 Gimp Toolkit for X11 GUI (current stable version)

2к23

мне казалось, в винде следят

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от crypt

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

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от MOPKOBKA

поди рендер где-то поломан и оно на процессоре рисуется или еще какой-нибудь очередной баг опенсорса

https://github.com/dreemurrs-embedded/Pine64-Arch/issues/175

а вообще у тебя на погонах винда и сидел бы на ней. че жизнь усложнять.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от crypt

а вообще у тебя на погонах винда и сидел бы на ней. че жизнь усложнять.

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

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от MOPKOBKA

типа медленно эмулируется fs на винде? ну так для этого проще удаленный линукс использовать. запустил виртуалку, собрал, скопировал на винду.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

FS медленная в Windows, очень плохо работает с маленькими файлами. Запущенный проект постоянно с ними работает.

WSL работает лучше, но к нему не подцепить IDE нормально, JetBrains все что то делает и делает, но лучше оно не становится, через их JetBrains Gateway все тормозит, виснет, не работает копирование в терминале (как? почему?).

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

Linux / Chrome
Ответ на: комментарий от MOPKOBKA

я твою проблему не секу. я понимаю так, что ты зашел по ssh удаленно, стянул из гита, запустил сборку…

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

У меня есть C: и D:, на D: у меня хранится проект. Если его начать копировать то займет это несколько часов по оценке Проводника. Но даже если его скопировать (я дождался), то запустив проект я получу ужасную производительность, недопустимую.

Если я делаю git clone в WSL, и запускаю его там, то я теряю IDE, я больше не могу ее запустить и открыть в ней проект, верней могу, но IDE будет работать отвратительно, каждые 5 минут придется ее перезагружать.

Еще я пробовал VirtualBox, VMWare, но там постоянно какие то артефакты графические, и скорость все же ниже.

Microsoft обещает поправить, сейчас в Insider сборках есть виртуальный диск как в WSL, но без WSL и с ReFS. Буду пробовать как станет стабильным.

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

Linux / Chrome
Ответ на: комментарий от MOPKOBKA

ты арендуешь виртуалку с линуксом. там делаешь git clone. IDE должны как-то через ssh уметь соединяться, либо делай push в основной репозиторий и стягивай в виртуалку.

имеет проект графическую оболочку или нет, я не понял. он на гтк4?

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 3)

FreeBSD / Chrome
Ответ на: комментарий от crypt

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

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от MOPKOBKA

Это просто более худший вариант WSL

не совсем. твоя основная проблема в том, что происходит амплификация записи на диск. следи за руками:

а) много мелких файлов -> много дисковых операций для обновления метаданных ФС
б) мы обновляем метаданные ФС в виртуалке -> задержки на медленном носителе x2
в) мы обновляем метаданные ФС на хост системе -> задержки x2

WSL - это наихудший вариант. Отца русской демократии спасет RAW-работа с дисками на хост-системе + наиболее подходящая ФС в виртулаке с линуксом.

хостеры не используют WSL по понятным причинам.

Я думаю диск с ReFS меня спасет

это copy-on-write fs с большими накладными. она только ухудшит ситуацию.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 3)

FreeBSD / Chrome
Ответ на: комментарий от crypt

В WSL работа с файлами очень быстрая (прям как под linux), если файлы находятся внутри виртуальной машины, наружу я их не выпускаю.

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

Linux / Chrome
Ответ на: комментарий от MOPKOBKA

ясно. мой текст не вместился в твой буффер. ну тогда нужно почаще повторять вслух текст ниже

В WSL работа с файлами очень быстрая

чем быстрее повторяешь, тем быстрее работает

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

У меня для измерения производительности ФС для проекта есть специальная программа с числовой оценкой. Зачем повторять когда я могу измерить?

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

Linux / Chrome
Ответ на: комментарий от MOPKOBKA

это хорошо. специальная программа - это очень хорошо. вообще специальные программы - это магия. они делают массу необъяснимых вещей!

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

@Kaschenko, сегодня не мой день.:( вы мне все кажетесь какими-то странными.

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

Ее писал я, проблема тормозов не в метаданных или кеше, как уверяет разработчик из MS. Если в ReFS отвяжут все тормоза, то должно как раз таки очень помочь. Хотя возможно они просто врут и у них вся подсистема плохая.

https://github.com/microsoft/WSL/issues/873#issuecomment-425272829

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от MOPKOBKA

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

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

FreeBSD / Chrome
Ответ на: комментарий от crypt

Ты говоришь что WSL худший вариант, но на самом деле он такой же как Linux, по производительности ФС. Вся моя проблема с ним заключается в IDE, она плохо работает удаленно. Я пожалуй доверюсь цифрам бенчмарков.

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от MOPKOBKA

У меня приложения на Gtk4 открываются несколько секунд буквально

А я рад за тебя. А я вот до сих пор на gtk2 сижу.

odalist    
★★★★★★★
Linux / Firefox
Ответ на: комментарий от odalist

Какой браузер? Я сам думаю вернутся на gtk2 окружение. Это довольно просто Slackware 15 + немного пересборки (пакетов 5 максимум) + Xfce Tales, и будет все по старому https://www.linux.org.ru/gallery/screenshots/14951827

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

Linux / Chrome
Ответ на: комментарий от MOPKOBKA

Какой браузер?

Palemoon

Это довольно просто Slackware 15 + немного пересборки (пакетов 5 максимум) + Xfce Tales, и будет все по старому https://www.linux.org.ru/gallery/screenshots/14951827

Нормально так. А можно еще посмотреть в сторону пятой qt.

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

Linux / Firefox
Ответ на: комментарий от odalist

Qt5 тормозит, и насколько помню плохо интегрируется с gtk2 темами? Поэтому только Qt4, программ не так уж и много на Qt5, а популярные, такие как Qbittorrent могут собираться с новейшим libtorrent и Qt4 интерфейсом.

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от odalist

Ты уже устроился в айти? На чем пишешь? Самый главный тормоз из графического интерфейса у меня это IDE.

MOPKOBKA    
★★★★★
Linux / Chrome

На самом деле разделение gtk на gtk и libadwaita может быть хорошей идеей, так как может позволить отказаться от Гномовского стиля интерфейса без потери совместимости с GTK окружением.

Например можно попробовать сделать форк libadwaita с элементами в стиле Gnome2

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

А в чем разница? Тут меняешь код libadwaita, там меняешь код libgtk, и тут и там можно через LD_PRELOAD добавить оригинальный gtk.

Виджеты и тут и там это объекты, их можно реализовывать через другие виджеты.

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

Linux / Chrome
Ответ на: комментарий от MOPKOBKA

Тебе как опытному может и без разницы как делать, а новичку имхо желательно иметь как можно меньший объём кода и всяких последствий которые надо учитывать при внесении изменений.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от MOPKOBKA

плохо интегрируется с gtk2 темами?

Да нормальная интеграция. Можно посмотреть в сторону qt5-styleplugins

Qt5 тормозит

У меня нет, хотя машина слабая.

odalist    
★★★★★★★
Linux / Firefox
Ответ на: комментарий от odalist

Осваиваю Haskell.

И как оно?

Да нормальная интеграция. Можно посмотреть в сторону qt5-styleplugins

Да, вроде есть.

У меня нет, хотя машина слабая.

Возможно я так думаю потому что qBittorrent и SMplayer тормозят.

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от MOPKOBKA

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

fox_mulder    
★★★★★
Linux / Firefox
Ответ на: комментарий от MOPKOBKA

И как оно?

Тяжело, но продвигаюсь.

qBittorrent и SMplayer тормозят.

А что там тормозит? Тормозит под нагрузкой?

П.С.

Я вот недавно, на старую машину, Дебиан 12 установил, а поверх него установил kde-plasma-desktop, с опцией --no-install-recommends, и удивился, что тормоза отсутствуют (сессия на вяленом). Так что, фиг знает что там у тебя…может быть и дистро проблемы.

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

Linux / Firefox
Ответ на: комментарий от odalist

Возможно ты просто не замечаешь тормозов, или не так к ним чувствителен, для меня если я вижу что приложение не запустилось СРАЗУ после щелчка это уже тормоза, в KDE даже меню нормально не реагирует (не показывает пункты сразу после наведения или клика, есть задержка даже с выключенными анимациями).

MOPKOBKA    
★★★★★
Linux / Chrome
Ответ на: комментарий от odalist

Осваиваю Haskell

Тяжело, но продвигаюсь

Я бывший хаскелист-энтузиаст, кастуй если че

Учебник антона я практически весь прошёл + лекции Москвина + чё то своё пилил..

ThePlayerZero    
★★
Android / Chrome
Ответ на: комментарий от ThePlayerZero

Я бывший хаскелист-энтузиаст, кастуй если че

Спасибо. Буду иметь в виду.

odalist    
★★★★★★★
Linux / Firefox
Ответ на: комментарий от MOPKOBKA

Возможно ты просто не замечаешь тормозов

Ну да. Наверно ты прав.

для меня если я вижу что приложение не запустилось СРАЗУ после щелчка это уже тормоза

Да, но у меня старый добрый hdd, так что я привык.

в KDE даже меню нормально не реагирует

Но у меня меню открывается мгновенно. Chromium, Dolphin тоже. Firefox притормаживает…как то так.

есть задержка даже с выключенными анимациями

Может проблема в драйверах. Фиг знает. У каждого пользователя железо разное…

odalist    
★★★★★★★
Linux / Firefox
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90