Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Плагины/индикаторы для индикации статуса синхронизации с Yandex-disk  (Прочитано 933715 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Погонял d-bus версию в ubuntu|kubuntu|lubuntu|xubuntu 22.04 в виртуалке.

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

По-сему принял волевое решение замержить D-bus ветку в мастер.

В ассетах последнего релиза можно взять бинарик или собрать его самостоятельно (нужен только установленный golang v1.18+)

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

Пользователь добавил сообщение 20 Мая 2022, 17:53:15:
Проект yd-qgo решил полностью заморозить - он просто теряет хоть какую-то актуальность после перевода yd-go на работу через d-bus.

На github перевел репу yd-qgo в архив и убрал все упоминания о нем из заглавного сообщения этой темы.
« Последнее редактирование: 20 Мая 2022, 17:53:15 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
О, я умудрился забыть одну набившую мне в прошлом оскомину проблему с Last synchronized: если в пути или имени файла оказывается подчеркивание (_), то почти все библиотеки, которые прорисовывают меню используют следующий символ как shortcut - т.е. кнопку, нажатие на которую приводит к активации этого пункта.
 
Более того, поведение этих библиотек обычно не описано для нескольких таких знаков (эффекты бывают разные).

В списке последних синхронизированных путь+имя файла являются названиями пунктов меню и это еще искажает имена файлов.

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

В yd-go я почему-то забыл про это. В нем была повторен только механизм укорачивания пути+имени файла, что бы из него получался лейбл разумной длинны (а не на весь экран).

В последнюю версию yd-go я добавил подмену подчеркивания при формировании под-меню последних синхронизированных.

ЗЫ за одно добавил в вывод утилиты-эмулятора yandex-disk имена с подчеркивания, что бы была возможность протестировать это. Погонял новую сборку на Xubuntu|Ubuntu|Kubuntu|Lubuntu 22.04 в виртуалке - все работает как положено.

ЗЫЫ руки пока не доходят до иконок. Но по функционалу и стабильности библиотеки systray у меня уже не осталось идей по улучшению. Поэтому постараюсь на иконках сосредоточиться.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн olegorov

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Спасибо, пока что всё работает. Правда, иногда падает. Погоняю ещё последнюю версию. У меня Kubuntu 22.04.

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

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
olegorov, большое спасибо за отзыв.

Не могли бы вы по-подробнее про вот это:
иногда падает
- как именно падает, что-то есть в логах?

И, кстати, обязательно скачайте свежую версию из latest релиза - я там довольно много всяких вещей в библиотеке systray сделал что бы не было паник (именно из-за паник может что-то "падать", если я правильно понял что вы называете этим словом).


По поводу перескакивания меню со стороны на строну - сам наблюдаю такое при тестировании плагина в kubuntu(виртуалка), но к сожалению ничего с этим поделать не могу, в версии, которая общается с плагином нотификаций через d-bus нет никакой возможности повлиять на работу этого плагина. А меню прорисовывает этот самый плагин.

У меня вот в XFCE(Xubuntu) меню последних синхронизированных вообще иногда не прорисовывается (небольшая черточка появляется и все). Я думал что-то не так отдаю плагину через d-bus, пробовал и так и этак, и вдоль и поперек, никакого результата. Только найду вроде бы стабильное решение, но перезапущу индикатор раз 10 и пару раз меню сломается. Бился. бился, а потом вспомнил, что у меня на github много лет висит ишью про это.... посмотрел его, вспомнил что и через интерфейс AppIndicators эти же проблемы были и именно такие - трудно-воспроизводимые. Т.е. проблема скорее всего даже не в самом плагине, а где-то сильно глубоко в GTK.

.... Я кажется стал понимать почему очень многие решения сейчас отказались от всяких подменю ... :idiot2:
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Добрались руки до иконок в yd-go.

Попробовал иконки размером 48х48 передать через D-BUS. Если не играться с цветами и полу-прозрачностями, то вроде бы получше выглядят иконки.

Однако оказалось, что я уже не сохранил оригинальные иконки в размерах более чем 22х22.

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

Зато теперь иконки стали более четкими и красивыми.

Прикола ради усадил в тарелку, которая на сообщениях, гофера :) Ну все-таки индикатор на Go написан - пусть будет 8).

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

А так - качайте последний релиз и наслаждайтесь новыми иконками.
« Последнее редактирование: 27 Мая 2022, 10:30:01 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Вот какие мысли стали меня посещать....

Пакет YDtools (Python/обновления через Launchpad) довольно широко используется (на сколько я понимаю), но он завязан на GTK и с версией для QT уже много лет все никак не получается...

yd-go (Golang/обновление вручную с github) после последнего этапа переделок стал полностью независим от DE и это дает ему явные преимущества перед YDtools.

Собственно расклад получается такой:
пакетраспространениеязыкзависимостиобъем кода/производительностьподдерживаемые DE
YDtoolsapt+launcpad автоматическиPythonGTK,Appindicator,...довольно большой, большей частью это сам Python
 медленно (интерпретация)
GTK-based only
yd-goвручнуюGolangD-Busмизерный(компиляция)
 очень высокая
ЛЮБЫЕ

Если посмотреть с точки зрения функционала то yd-go не дотягивает до YDtools по следующим пунктам:
1. нет поддержки части языков (только русский и английский)
2. нет интерактивных настроек индикатора (только руками в файле)
3. нет расширений для ФМ
4. нет утилиты/обертки для настроек yandex-disk в GUI
5. нет GUI-настроек для yandex-disk

Причем я вот очень критично смотрю на последний пункт: не очень я согласен с идеей делать довольно сложные настройки для сторонней утилиты. А ведь yandex-disk это именно такая утилита с точки зрения индикатора.

Предпоследний пункт легко выносится в скрипт который будет проверять настройки и запускать либо сразу индикаотр либо диалог настройки yandex-disk.

П.3 лучше тоже не затаскивать в GUI - это в принципе делается 1,5 раза :) при первичной настройке. Поэтому можно вообще настройку делать отдельным скриптом или все тем же скриптом которым вызывается настройка yandex-disk.

По сему вырисовывается вот какой план:
1. добавляем поддерживаемые языки
2. добавляем настройки индикатора в подменю: смена темы иконок, включение/отключение уведомлений, запуск демона при старте индикатора и остановка демона при выходе из индикатора.
3. Перетаскиваем из кода ydtools настройки файловых расширений в отдельный скрипт
4. Приписываем скрипт запуска который: проверяет установку и настройку yandex-disk и либо сообщает что нужно установить yandex-disk, либо предлагает настроить его, либо запускает индикатор.
5. Делаем обновление через launchpad

И вот по последнему пункту есть мысли заменить старый пакет YDtools содержимым доработанного yd-go.
Это потребует некоторых усилий т.к. кроме моей публикации на launchpad есть еще пара сборок в RPM, но там вроде бы вполне адекватные майнтейнеры, с которыми ранее вопросы обновления вполне успешно решались.
___________________

Проджект вырисовывается довольно объемный, и меня терзают смутные сомнения что никто мне в этом помогать не станет, а сам я это сделать быстро не смогу. Но дорогу осилит идущий.
« Последнее редактирование: 28 Мая 2022, 20:16:58 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн MaKcuMoB

  • Участник
  • *
  • Сообщений: 110
    • Просмотр профиля
    • Профиль в Google
Для 22.04 в репах пока ничего нет?
Kubuntu 19.04

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
    • Web-разработчик
Для 22.04 в репах пока ничего нет?
Используйте версию для 22.10 или 21.10, любая будет работать. Я использую версию для 22.10
Ubuntu Mate 22.04.3 64 bit

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
MaKcuMoB, в репах (launcpad) для 22.04 есть только Python версия (GTK). Там один и тот же код для всех актуальных версий (и довольно старый, надо сказать).

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

Если вам для kubuntu то лучше берите бинарь yd-go из последнего релиза на github или соберите из исходников его сами (нужен только golang).

Из обозначенного выше плана сегодня сделал п.2 - настройки индикатора в меню (уже в последнем релизе).

С добавлением языков что-то пока не срослось - что-то сломалось и как раньше я обновлял языковые пакеты - сейчас - не получается... надо еще копать...

Добавить yd-go в репу на LP - в принципе не сложно, но это тоже надо посидеть-поковыряться немного. 

 
« Последнее редактирование: 28 Мая 2022, 20:31:41 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
    • Web-разработчик
Sly_tom_cat, решил посмотреть у себя как выглядит go версия, у меня иконка не отображается и выглядит так

Иконка и меню приложения вверху слева справа. Запускал просто бинарник.
P.S. Пункт Открыть YandexDisk в браузере ведёт на disk.yandex.com и соответственно требуется авторизация.
« Последнее редактирование: 28 Мая 2022, 21:40:24 от Rootdiv »
Ubuntu Mate 22.04.3 64 bit

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
P.S. Пункт Открыть YandexDisk в браузере ведёт на disk.yandex.com и соответственно требуется авторизация.
Ну так и должно же быть. Если вы раньше авторизовались, то авторизацию не попросит, т.к. открывается новая вкладка в уже открытом браузере (и там всякие куки и т.п. могут подтянуться из другой закладки)

По поводу иконки: у вас ни в темной ни в светлой теме не показывается иконка?
Что у вас за дистрибутив? Тот что в подписи?
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
    • Web-разработчик
Ну так и должно же быть. Если вы раньше авторизовались, то авторизацию не попросит, т.к. открывается новая вкладка в уже открытом браузере (и там всякие куки и т.п. могут подтянуться из другой закладки)
Я авторизован только на disk.yandex.ru, Python версия открывает disk.yandex.ru.

ни в темной ни в светлой теме не показывается иконка?
Именно так.
Тот что в подписи?
Да, дистрибутив в подписи.
Ubuntu Mate 22.04.3 64 bit

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Я авторизован только на disk.yandex.ru, Python версия открывает disk.yandex.ru.
А, понял, не помню уже почему и как в yd-go оказался путь отличный от питоновой версии. Но поправлю это. Это тем более важно, что как писал выше подумываю подменить питоновскую версию на Go-шную в виду ее независимости от DE, а значит разница в поведении должна быть минимизирована. Но вот то, что у вас иконки не завелись - настораживает.

Я постараюсь поднять в виртуалке ваш дистрибутив и попробую разобраться, что там не так с иконками.
Основной подозреваемый - конечно-же Status Notification Plugin (так он у меня в XFCE по крайней мере называется). Он в каждом DE свой и реализации сильно отличаются. По крайней мере XFCE и KDE плагины используют разные запросы к индикатору через D-BUS для прорисовки меню. И глюки у этих плагинов - тоже разные: XFCE-ный любит портить подменю, а KDE-шный умудряется открыть подменю с той стороны где оно не умещается в экран (в сторону края экрана), но только один раз, потом уже открывает в другую сторону - к центру экрана).

В общем этот зоопарк плагинов может еще много крови выпить, но оно того стоит ИМХО т.к. лично мне было бы очень не приятно половину гнома по зависимостям тянуть в дистрибутив с не GTK-based DE для одного единственного индикатора. А питоновская версия именно так заводится в Kubuntu например.

Пользователь добавил сообщение 29 Мая 2022, 00:02:39:
Rootdiv, а кстати, у вас там вижу еще телеграм.

У меня левый клик по иконке открывает не меню иконки, а меню того плагина в котором эта иконка находится и там есть название этого плагина.
Не знаю точно как у вас такое-же посмотреть, но можете вы попробовать посмотреть - телеграм в том же плагине панели открывается что и yd-go или в другом? 
« Последнее редактирование: 29 Мая 2022, 00:02:39 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
    • Web-разработчик
У меня левый клик по иконке открывает не меню иконки, а меню того плагина в котором эта иконка находится и там есть название этого плагина.
Не знаю точно как у вас такое-же посмотреть, но можете вы попробовать посмотреть - телеграм в том же плагине панели открывается что и yd-go или в другом?
У меня так же, оба в одном плагине панели открываются.

P.S. Ещё заметил, что конфиг создаётся с правами -rwxrw-r--, по моему права на выполнение для конфига лишние.
« Последнее редактирование: 29 Мая 2022, 00:32:04 от Rootdiv »
Ubuntu Mate 22.04.3 64 bit

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Rootdiv, благодарю вас за важные замечания и детали.
Про права - вообще огонь - видимо какой-то нелепый копипаст  :idiot2: - пошел править.

Пользователь добавил сообщение 29 Мая 2022, 03:30:17:
Ну точно - оказалось копипастнул права с создания каталога.... хотя и для каталога там прав было многовато....

Поправил права, URL яндекса и добавил сохранение в конфига при принудительном закрытии приложения (ctrl+C = SIGINT).

Изменения уже в мастере, с иконкой пока еще не разбирался....
« Последнее редактирование: 29 Мая 2022, 03:34:02 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

Страница сгенерирована за 0.026 секунд. Запросов: 22.