LINUX.ORG.RU

SDE is back, ретрограды снова в деле

 , ,


0

6

Здравствуй, ЛОР. Не только лишь все знают, что devzero - это на самом деле geekless. Как некоторые из вас помнят, был у меня полуживой проект DE на gtk2.

Планы и желание писать код-то по-прежнему есть, а времени - нет. Ну в общем, посмотрим, как оно пойдёт.

Гитхаб: https://github.com/sde-gui

Что есть сейчас:

Приложения:

  • stuurman - файловый менеджер
  • stuurman-desktop - менеджер иконок и фона рабочего стола
  • waterline - фреймворк апплетов рабочего стола
  • spicview - средство просмотра изображений
  • rainbow-cm - менеджер буфера обмена

Библиотеки:

  • libsde-utils - унифицированные средства резолвинга путей к ресурсам и файлам конфигурации; средства ведения отладочного лога; некоторые вспомогательные функции
  • libsde-utils-x11 - вспомогательные функции для работы с X11
  • libsde-utils-gtk - вспомогательные функции для работы с Gtk
  • libsde-utils-jansson - вспомогательные функции для работы с Jansson
  • libsmfm-core - средства работы с файлами, не зависящие от графического тулкита
  • libsmfm-gtk - средства работы с файлами, зависящие от Gtk

Changelog:

spicview
	На базе исходного кода gpicview 0.2.3, форк в апреле 2012 года.
	* Реализация кэша загруженных изображений и предзагрузки изображений:
		* Предзагружать и удерживать в кэше следующее и предыдущее изображение в списке. (Опция отключается в
		  настройках.)
		* Регулировать максимальный размер кэша на основании полного объема ОЗУ и объема доступной ОЗУ.
		* Сокращать размер кэша при повышении потребления памяти другими приложениями.
	* Интеграция с файловым менеджером (библиотека libsmfm) :
		* Использовать libsmfm для резолвинга путей.
		* Отображать контекстное меню файла как часть контекстного меню открытого изображения.
		* Поддержка libsmfm может быть отключена при сборке приложениях.
	* Автоматически подстраивать цвет фона приложения под цвета изображения для улучшения визуального
	  восприятия изображения. (Опция отключается в настройках.)
	* Множество улучшений и исправлений в интерфейсе, в том числе:
		* Реорганизация диалога настроек.
		* Возможность указать в настройках фильтр, используемый для масштабирования изображения.
		* Блокировать операции (и соответствующие кнопки панели) изменения, удаления и сохранения файла в
		  режиме слайдшоу.
		* Блокировать операции (и соответствующие кнопки панели), не доступные из текущего состояния
		  приложения.
		* Отображать имя удаляемого файла в диалоге подтверждения удаления.
		* Операция Save As переименована в Save a Copy и больше не приводит к переключению просмотра на
		  каталог сохранения файла.
		* Во время сохранения файла отображать уведомление в заголовке окна, блокировать кнопки панели и
		  переводить указатель мыши в режим GDK_WATCH.
		* При запуске программы всегда использовать режим масштабирования Zoom Fit. Автовыбор режима
		  масштабирования удален, т.к. противоречил принципу наименьшего удивления и мог выглядеть как баг
		  приложения.
		* Возможность показа/скрытия панели инструментов клавишей T или из диалога настроек.
		* Состояние отображения/скрытия панели инструментов запоминается отдельно для полноэкранного и
		  неполноэкранного режимов.
		* Возможность отображения панели инструментов в верхней части окна. (Опция включается в настройках.)
		* Выход из приложения по нажатию ESC. (Опция отключается в настройках.)
		* Отображать контекстное меню по нажатию клавиш MENU или F10.
		* При передаче каталога в качестве аргумента командной строки, загружать изображения из этого
		  каталога.
		* При запуске без аргументов отображать изображения из текущего каталога.
		* В диалоге About отображать информацию о поддерживаемых форматах файлов и об опциях, с которыми было
		  собрано приложение.
		* Добавлен ключ запуска --about, выводящий в stdout тот же текст, что отображается в диалоге About.
	* Прочее:
		* Ресурсы компилируются как часть исполняемого файла, а не загружаются из отдельных файлов при запуске
		  приложениях. Единственными загружаемыми ресурсами в настоящий момент являются файлы локализации.
		* Исправление падений.
		* Чистка и рефакторинг кода.

rainbow-cm
	На базе исходного кода parcellite 2.5. Форк в январе 2015 года.
	* Удалено множество избыточных, бесполезных или проблемных функций:
		* Удалена опция confirm_clear. Всегда спрашивать подтверждение при очистке истории.
		* Удалена опция single_line. (Теперь всегда включена.)
		* Удалена опция reverse_history.
		* Удалена опция persistent_on_top. Persistent history items всегда отображаются в конце списка.
		* Удалена опция current_on_top. (Теперь всегда включена.)
		* Удалена опция case_search. Всегда выполнять поиск без учета регистра символов.
		* Удалена опция icon_name.
		* Удалена опция daemon mode и соответствующий режим.
		* Удалена опция persistent_history. (Теперь всегда включена.)
		* Удалена опция hyperlinks_only.
		* Удалены опции trim_newline и trim_wspace_begend.
		* Удалены опции data_size и item_size.
		* Удалён невероятно сумасшедший способ обнаружения запущенного экземпляра приложения через анализ
		  содержимого /proc. Также удалена опция multi_user.
		* Удалена возможность автоматической вставки текста в активное окно и все связанные с этой
		  возможностью опции. Не существует надежного способа реализации.
		* Удалена возможность отображать persistent history items в отдельном меню.
		* Удалена возможность Copy All to Clip, предназначавшаяся для вставки в буфер обмена всех пунктов
		  истории разом.
		* Удалена возможность правки пунктов меню истории во встроенном диалоге редактирования.
		* Удалены возможности, аналогичные xclip. Код настолько ужасен, что не поддаётся рефакторингу, и
		  второй xclip не нужен, когда есть первый.
		* Удалено управление программой через fifo-файлы.
		* Удалена поддержка определяемых пользователем действий.
		* Удалена поддержка Ubuntu Appindicator.
	* Улучшения и исправления в интерфейсе:
		* Реорганизация диалога настроек.
		* Если меню истории активировано горячей клавишей, отображать его в левом верхнем углу активного окна,
		  а не под указателем мыши.
		* В меню истории добавлены всплывающие подсказки.
		* Реализация возможности Search-As-You-Type переписана с использованием GtkIMContext, что позволяет
		  производить поиск на любом языке.
		* Изменена настройка горячих клавиш по умолчанию:
			* Mod4 + Insert - вызов меню истории.
			* Ctrl + Mod4 + Insert - вызов меню приложения.
		* Переименованы опции:
			* use_copy -> track_clipboard_selection
			* use_primary -> track_primary_selection
			* nonprint_disp -> display_nonprinting_characters
		* Команда Clear History перенесена из меню истории в меню приложения.
		* В меню приложения добавлена команда-флажок Enabled, позволяющая удобным способом временно отключить
		  слежение за буфером обмена.
		* В меню приложения удалены иконки и добавлены всплывающие подсказки.
		* Команда Save History, сохраняющая историю в текстовый файл, теперь использует более человекочитаемый
		  формат файла.
		* Persistent history items переименованы в интерфейсе в Pinned history items.
	* Рефакторинг, чистка и упрощение кода.
	* Полностью переписан код слежения за буфером обмена. Не пытаться отслеживать изменения в буфере поллингом
	  по таймауту, отслеживать событие изменения владельца буфера.
	* Исправление падений и утечек памяти.

waterline
	Основана на коде lxpanel 0.5.6, форк в июне 2011 года.
	Количество изменений не поддаётся перечислению, если делать раззвёрнутый Changelog, он будет длиной в
	несколько страниц. За эти годы было выполнено 996 коммитов.
	
stuurman + stuurman-desktop + libsmfm
	Основаны на коде pcmanfm и libfm 1.2.0, форк в мая 2013 года.
	Множество улучшений и исправлений, и еще больше предстоит. Пока еще довольно глючен.
	Самой важной выполненной доработкой является, пожалуй, оптимизация процесса чтения каталогов. Об этом я,
	видимо, напишу развёрнутый материал, когда у меня найдётся время поднять для проекта сайт.

Сборочные скрипты для Арча: https://github.com/sde-gui/pacman.sde-git Для более других дистрибутивов готовых сборочных рецептов пока нет.

Компилируйте, тестируйте, шлите баг-репорты и пулл-реквесты, устраивайте срач в комментах.

Вечером, как доберусь до домашнего компа, поделюсь планами на будущее и роадмапом. Запарился набирать текст в этой их винде, без нормального редактора.

Deleted

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

Тут проблема в том, что GTK+2 не умеет в современные HiDPI-дисплеи

насколько я понимаю, эта проблема спокойно решается допиливанием движка какой-нибудь темы, типа murrine.

ananas ★★★★★
()
Ответ на: комментарий от b-adblack-

А если абстрагироваться и заместить реализацию другими вызовами? Или там напрямую всё дёргается?

Объем кода увеличится раза в три. Смотри, придётся написать:

  • Абстрагированный от реализации слой.
  • Прослойку под Linux.
  • Прослойку под Windows.

Для каждого апплета.

Я хочу когда-нибудь портировать код под *BSD, для этого всего несколько апплетов требуют доработки. И то мне лень связываться с этим.

Deleted
()

Ого, geekless здесь. Спасибо за lxpanelx. Кажется это единственная панель с клавиатурной навигацией, и вообще реализация таскбара лучшая.

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

Очевидно, не умеет нормально скейлить ВСЕ элементы внутри окна в зависимости от DPI или scaling-factor переменной.

А все это какие? Текст и контейнеры скейлятся, отступы можно поправить в теме. Только что иконки мелкие будут. Я не видел правда вашего hidpi, но на 140 себе настроил неотличимо от 100.

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

Оно разве не мертво?

Шо, уже и оно рип? Ну дела.

Наверное, сорцы jit-компилятора не пропадут в небытие, он там очень годный. Кто-нибудь да приберёт к рукам.

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

Переходи на Qt. Там даже переход с 4 на 5 ветку обошёлся без кардинальной ломки исходников.

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

Кто-то еще помнит мои заметки семилетней давности. Я польщен. %-)

Статья не в формате сайта для проекта ПО, но если мне будет не лень завести персональный бложик на Github Pages, выложу разные материалы.

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

Переходи на Qt. Там даже переход с 4 на 5 ветку обошёлся без кардинальной ломки исходников.

Увы. У меня начинается изжога, когда я пишу на C++.

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

Посмотрел твои форумные темы — достойный уровень ретроградства! ^_^

Нет желания заняться портом SDE на OBSD?

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

Нет желания заняться портом SDE на OBSD?

я даже не знаю, что это, и в глаза не видел. зависимостей-то много?

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

gtk1

Я любопытства ради смотрел на днях в AUR-е список зависимых от gtk1 пакетов. Ничего интересного не нашел, но возможно это потому, что большая часть старых пакетов рипнулась после перехода AUR на Git.

я даже не знаю, что это, и в глаза не видел.

Ну на данный момент 80% от SDE - это панель апплетов для рабочего стола, а остальные 20% - наполеоновские планы на будущее.

зависимостей-то много?

Обычный гномостек: glib2, pango, gtk2 и прочие банальности. Но у waterline в апплетах куча линукс-специфичного кода, потому что о портируемости никто не думал, когда оно писалось.

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

Я любопытства ради смотрел на днях в AUR-е список зависимых от gtk1 пакетов

у нас в openbsd gtk1 только недавно из репов вынесли - я уже забыл, какой именно пакет от него зависел - по-моему, xmms, который вынесли вместе с ним

Ну на данный момент 80% от SDE - это панель апплетов для рабочего стола, а остальные 20% - наполеоновские планы на будущее.

ясно. пока не думаю, что будет юзербаза для этого :) у нас, кстати, ещё kde3 даже сохранилось - правда, koffice, kdepim и прочее из-за потенциальных проблем с безопасностью в текущем релизе удалили, остался только сам kde3 и kdegames. иногда ставлю на потрогать :)

Обычный гномостек: glib2, pango, gtk2 и прочие банальности.

Напиши Антошке: если объяснишь, что такое SDE, мож он и возьмёт к себе под крыло :) Тем более, из-за обилия *линаксизмов* в OpenBSD (как и в NetBSD, и, по-моему, во FreeBSD) нет LXDE, поэтому лайтвейт гтк окружение может и пригодилось бы - я не знаю, я в OpenBSD использую в основном XFCE.

http://openports.se/x11/gnome/desktop

Вот если бы на Qt было - это можно было к Вадиму обратиться. qt у нас, кстати, в репах, трёх версий - qt3, qt4, qt5 :) Так что если что на qt3 задумаете - велком, как говорится :) qt2 нет

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

если что на qt3 задумаете - велком

я сейчас под стол упаду, хорошо qt2 нет )))

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Deleted

Едва ли не единственное гнутое API, в котором уже 5 лет никто ничего не ломает?

ломали, и не раз. но после багрепортов, к счастью, оперативно чинили.

проблема в том, что gtk2 зависит от той же версии glib, что и gtk3 (т.е. последней).

glib регулярно подкручивают под gtk3, и ломают совместимость с gtk2.

не знаю даже, можно ли это назвать ломанием gtk2.

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

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

Приветствую.

ломали, и не раз. но после багрепортов, к счастью, оперативно чинили.

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

проблема в том, что gtk2 зависит от той же версии glib, что и gtk3 (т.е. последней).

К сожалению, от glib2 зависит вообще всё в гуях, поэтому есть у нас gtk2, нет у нас gtk2 - разница не велика. С очередным обновлением сломается gtk2, или же сломается в коде приложения что-нибудь - в любом случае чинить.

жаль что я уже не пользуюсь линуксом

О как. А что же говядина?

не смог его собрать из-за косячных cmake-файлов.

Я вернулся на столлманоугодный autoconf.

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

О как. А что же говядина?

пока стараюсь бэкпортировать все изменения, и делать релизы.

Я вернулся на столлманоугодный autoconf.

ого. даже такое бывает :)

waker ★★★★★
()

А быстрый терминал есть в планах? Как думаешь, иксы скоро того? Может стоит про вайланд добавить вариант?

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

А быстрый терминал есть в планах?

Меня в целом устраивает скорость терминала vte, на котором собраны lxterminal, terminator, lilyterm и прочие.

Конечно, разница есть: urxvt выводит миллион строк за 0.9 секунды, а vte - за 13. Но на практике разве это вызывает какие-то проблемы?

Как думаешь, иксы скоро того? Может стоит про вайланд добавить вариант?

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

Deleted
()

Arch, waterline, вчера из гита, таскбар-привязки-средняя кнопка, выбранное работает со смещением на один пункт вверх, то есть, выбираю 'Закрепить' - работает как 'На полный экран', при выборе в меню этого самого 'полного экрана' - работает как 'Раздекорировать'.

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

К сожалению, сейчас добавление новых возможностей в waterline не является для меня приоритетной задачей. (Не в ближайшие несколько месяцев точно.)

Однако, patches are welcome.

Deleted
()
9 ноября 2017 г.
Ответ на: комментарий от Deleted

А на что похожа разница между GTK2 и GTK3? На разницу между Qt3 и Qt4 (когда пришлось аж конвертор делать) или на разницу между Qt4 и Qt5 (когда только фонон и qtwebkit гикнулись)?

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

А на что похожа разница между GTK2 и GTK3?

Огромная часть API идентична, или может быть приведена к идентичному виду. Мой проект поддерживает обе версии. Бывают ifdefs конечно, но не так уж много (и их количество можно уменьшить). Сложнее обходить другие несовместимости, типа UI XML, GtkApplication, и прочие. Остальные отличия — новые виджеты и API для стилей.

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

Сложнее обходить другие несовместимости, типа UI XML

Вот этого сразу не заметил.

Т.е. там сломан формат XML, и для поддержки двух версий надо держать 2 комплекта файлов UI?

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

Т.е. там сломан формат XML, и для поддержки двух версий надо держать 2 комплекта файлов UI?

Вероятнее всего да.. Но меня эта проблема не затронула, т.к. я не использую UI XML / gtkbuilder.

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

А на что похожа разница между GTK2 и GTK3?

Разница больше в подходе, чем в конкретных API. Всё стало тормознее, а простые вещи стали сложнее. Много чего повыпилено, другое неожиданно глючит. При том положительные изменения, конечно, тоже есть.

В GTK3 ввели ПЯТЬ разных функций для получения желаемого размера виджетов — это маразм. В GTK4 их планируют заменить одним универсальным коллбеком.

Коллбеку рисования в GTK3 сломали совместимость API, засунув туда контекст cairo. cairo — это, конечно, хорошо, но и раньше всё вполне работало через cairo, просто был небольшой оверхед на получение контекста. В GTK4 эту часть API передалают полностью. То есть по сути, зря ломали совместимость, могли бы просто до 4-й ветки дотерпеть.

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

А скриншоты есть всего этого добра, чтоб оценить?

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

Не знаешь, они там собираются тормоза побороть? Это ж полный пинцет, и все хуже с каждым релизом. Еще 3.16 худо-бедно меня устраивал, сейчас пользоваться этим невозможно. А вот Qt5 летает, например. Начинаешь эту тему поднимать, набигают фанбои гнома, у которых все типа зашибись. Сами разрабы проблему тоже не осознают как я понял.

anonymous
()

оно Linux-only или подходит для других ОС?

не нашёл ни одного скриншота

а вообще, de на gtk2 это хорошо, ждём портов :)

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

Все виджеты в панели, имеющие дело с ядром (температура процессора, заряд батареи и т.п.), прибиты к линуксу. Это тяжкое наследие LXDE. В остальном обычный код на gtk-стеке библиотек.

Да... Пойду-ка я код писать, точно. Если после работы сегодня что-то соображать смогу. %)

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

не нашёл ни одного скриншота

Добавил скриншоты панели:

https://sde-gui.github.io/waterline/

Пишите, если слайдер со скриншотами глючит. Накалякал по-быстрому код CSS-слайдера без единой строчки JS.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.