LINUX.ORG.RU

lxpanelx: совместимость с оригинальной lxpanel — быть или не быть?

 ,


0

1

Назрел такой вопрос к людям, которые пользуются моим форком. Не пора ли уже полностью отвязать проект от оригинальной панели и разделить всё: пути к конфигам, пути установки файлов, ABI плагинов?

Поддержка совместимости замедляет разработку и мешает внедрению новых фич. А единственный профит от неё: потенциально, если есть какой-то сторонний плагин для lxpanel, то его можно использовать и в lxpanelx. Но ведь в реальности таких плагинов нет. Все существующие плагины идут непосредственно с сорцами панели, сторонних никто не пишет.

И отдельный вопрос по конфигам: что вы думаете на тему, если конфиги от lxpanel будут нормально подходить к lxpanelx, а вот обратно — не будут. Т.е. конфиг от lxpanelx нельзя без ручной правки использовать в lxpanel.

Не пора ли уже полностью отвязать проект от оригинальной панели

Давно пора.

Debasher ★★★★★
()

если конфиги от lxpanel будут нормально подходить к lxpanelx, а вот обратно — не будут

Вполне нормальное решение.

Biga
()

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

насчет конфигов - это обязательно нужно, да. Но вот обратная совместимость тоже нужна. То есть lxpanel должен схавать lxpanelx тоже. А то будет так, что если кто-то хочет откатиться, то ему придется страдать правкой конфигов.

Ну или приделать к lxpanelx скрипт, который мог бы автоматом привести конфиг к совместимому с lxpanel виду.

dikiy ★★☆☆☆
()

конфиги от lxpanel будут нормально подходить к lxpanelx, а вот обратно — не будут.

а разве уже не так?

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

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

Если конфиги будут раздельные, не придётся. Старые-то никуда не денутся.

geekless ★★
() автор топика

кстати, а где feature list твоего проекта? А-то я им пользуюсь, а почему - уже и забыл :)

dikiy ★★☆☆☆
()

А еще можно сделать что-нибудь типа утилиты по миграции конфигов lxpanel <-> lxpanelx и между разными мажорными версиями lxpanelx, во избежание сегфолтов от несовместимостей например.

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

Сегфолтов быть не должно. Максимум — часть настроек забудется.

geekless ★★
() автор топика

Так. Переименовал все файловые пути. Бинарники теперь зовутся lxpanelx и lxpanelxctl. Каталоги с ресурсами и плагинами аналогично содержат элемент lxpanelx в пути.

Конфиги лежат в ~/.config/lxpanelx. Из ~/.config/lxpanel конфиги автоматически не переносятся, копируйте руками.

Вопрос относительно хранения значений в конфиге. В lxpanel попытка сохранить конфигурацию, содержащую перевод строки в значении переменной приводила к записи синтаксически некорректного конфига. У нас есть два пути: запретить сохранять такие строки или реализовать \-экранирование. Пока сделал первый вариант, т.е. просто игнорирую такие переменные при записи. Идея с экранированием выглядит вкусно, но... кому-нибудь оно надо?

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

кстати, а где feature list твоего проекта?

Я так и не осилил нормально сделать сайт проекту. Это ж скууучно :}

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

Идея с экранированием выглядит вкусно, но... кому-нибудь оно надо?

думаю надо. не сейчас, так кому-нибудь потом понадобится.

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

кстати, а где feature list твоего проекта?

Я так и не осилил нормально сделать сайт проекту. Это ж скууучно :}

ну блин, ты хоть на пальцах объясни. А-то непонятно, зачем я вообще его ставил :)

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

Тут еще вопрос интерфейсный.

  • Рекомендованным способом правки конфига является гуй.
  • Гуй у нас использует однострочные поля ввода, в которых символ \n отображается кракозябрами.

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

Лучший вариант — обрабатывать экранирвоание не при чтении/записи конфигов, а в самих плагинах. Но это сложное решение.

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

Гуй у нас использует однострочные поля ввода, в которых символ \n отображается кракозябрами.

я думаю пофиг. Если кому-то понадобиться это, то этот кто-то уж точно не будет пользовать для этого гуй :) Так что WONTFIX :)

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

Ну конкретно насчёт апплета панели задач:

  • Возможность показывать кнопку закрыть.
  • Возможность режима «только текущее окно», чтобы использовать панель задач вместо заголовка активного окна, если рамки окон спрятаны.
  • Полностью настраиваемые биндинги. 10 штук.
  • Расцветка кнопок под цвет иконки окна.
  • Подсветка кнопок для окон, чей заголовок изменился.
  • См. кучу опций на вкладке «поведение» и вообрази, сколько разных юзкейсов можно из этого апплета нарисовать.

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

В планах:

  • Доделать у панели задач показ миниатюр (сейчас он через задницу работает) и сделать вплывающие панели над скгруппированными окнами как в оффтопике и кедах.
  • Сделать режим свободного расположения панели, чтобы можно было её в самый низ стека окон засунуть наподобие коньков.
  • Реализовать управление плагинами через lxpanelxctl. Сейчас пока работает всего несколько команд типа lxpanelxctl panel top visible (вкл/выкл видимость панели). А можно будет делать, например, что-то типа lxpanelxctl panel top plugin taskbar windownr 2 activate.
geekless ★★
() автор топика
Ответ на: комментарий от geekless

А, да, при активном композитинге, она теперь умеет настоящую, а не фейковую, прозрачность.

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

Лучший вариант — обрабатывать экранирвоание не при чтении/записи конфигов, а в самих плагинах. Но это сложное решение.

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

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

Есть апплет Button, которым можно управлять из внешнего скрипта через пайп.

вот. именно из-за него я и ставил lxpanelx. Только все равно его не использую :)

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

Например, сейчас у апплета часов в поле формата можно использовать \n для разрыва строк. Этот \n обрабатывается самим апплетом и превращается в нормальный перевод строки.

У нас два пути:

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

Разрывы строк обрабатываются самими плагинами. В полях ввода в диалоге конфигурации вместо разрывов строк будет видна пара символов \n. Задача по работе этим экранированием полностью лежит на плагине.

geekless ★★
() автор топика

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

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

А как сделано в gtk? Ну то есть если я просто string запихну в какое-то свойство? Он же ж \n обработает как надо. Или он хочет реального ASCII кода для этого?

dikiy ★★☆☆☆
()

А почему не влить проект в настоящий lxpanel и стать настоящим разработчиком lxde, вместо того, чтобы двигать форк, которым пользуются четыре с половиной задрота с лора?

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

А. Реальный ASCII код, разумеется.

ну вообще мне кажется, что каждый плагин это должен делать сам. Ибо для человека привычно все таки, что он должен \n ставить, если перевода строки хочет.

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

А почему не влить проект в настоящий lxpanel и стать настоящим разработчиком lxde, вместо того, чтобы двигать форк, которым пользуются четыре с половиной задрота с лора?

вопрос, захотят ли разрабы lxpanel сливаться.

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

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

lxpanel мне в рамках lxde развивать совершенно не интересно.

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

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

Потому что это весьма непросто, скажем так. Мой патчик для исправления размера иконок, например, там так и не приняли (больше похоже, что просто пропустили мимо), хотя уже больше года прошло. А ещё у них всё это располагается на sourceforge. Дальше объяснять?

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

Вам виднее, но это было бы правильней и полезней.

doluphio
()

Главное чтобы панель отлично вписывалась в само DE, а совместимость со дефолтной панелью не нужна. На чём написан сей шедевр?

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

Кошерно. Я в pcmanfm одного всегда понять не мог, почему если у меня du -hs покажет, скажем, 15G, то pcmanfm возьмёт и от фонаря выдаст 72... Тот же дельфин в кедах всё кажет адекватно. Потом плюнул и свалил на awesome.

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

Ты имеешь ввиду содержимое (весь внешний вид настраивается из конфига) или синтаксис?

Внешний вид предполагается править средствами стилей gtk. А синтаксис и так практически идентичный: http://code.google.com/p/lxpanelx/source/browse/trunk/data/default/panels/pan...

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