megaplasmoid — виджет MEGA для KDE Plasma 6

 

megaplasmoid — виджет MEGA для KDE Plasma 6

У облака MEGA нет официального виджета для Plasma. А родной GUI, MEGAsync, не показывает ни FUSE-монтирования, ни размер локального кэша, который эти монтирования незаметно копят на диске, пока ты просто листаешь файлы в облаке. Написал виджет поверх MEGAcmd, который закрывает обе дыры сразу.

 

Что умеет:

  • Статус синхронизаций — пауза/резюме каждого синка, открыть локальную папку.
  • FUSE-монтирования — примонтировать/отмонтировать, открыть в файловом менеджере.
  • Настройка прямо из виджета. Configure MEGA… → Folders добавляет и удаляет и синки, и монтирования: локальная папка выбирается файловым диалогом, облачная — просмотром дерева MEGA. Терминал нужен только один раз, для первого логина.
  • Живые трансферы — направление, прогресс, статус каждого активного файла.
  • FUSE-кэш — текущий размер плюс кнопка «Очистить кэш», которая останавливает сервер, чистит кэш и запускает его снова. Кнопка недоступна, пока есть очередь трансферов — иначе можно потерять данные, которые ещё не долетели до облака через запись в mount.
  • Уведомления — семь типов событий, каждое включается отдельно в System Settings.
  • Значок в трее прячется под стрелкой-разворачивателем, пока всё в порядке — это фича, а не баг установки.

Технически самое интересное — как виджет опрашивает MEGAcmd, у которого нет никаких push-уведомлений об изменениях:

  • адаптивный интервал — раз в 2 секунды, пока панель открыта, и до 3 минут в свёрнутом виде на батарее;
  • строго последовательная очередь команд — один процесс mega-exec в любой момент времени вместо 5–8, которые наивная реализация запускала бы на каждый тик, плюс дедупликация одинаковых команд;
  • кнопка паузы — полностью останавливает таймер: ни процессов, ни пробуждений, обновление только по кнопке «Refresh now».

Из ограничений: MEGAcmd вообще не отдаёт цифры по квоте трафика, поэтому их в виджете нет — показывать угадайку хуже, чем не показывать ничего. Ещё нет истории (MEGAcmd отдаёт только снапшот, лога синхронизаций не существует) и логина из UI — это осознанное решение, виджет никогда не просит и не хранит пароль.

Отдельно накопился документ PLASMOID-UI-GUIDELINE.md (на русском) — заметки о граблях при написании Plasma-виджетов, каждая со ссылкой на исходники plasma-workspace или на замер. Например: апплет в системном трее не должен объявлять свой собственный header — трей сам рисует общий заголовок (стрелка назад, тайтл, кнопки высокого приоритета, гамбургер, шестерёнка настроек, пин), а header самого апплета просто добавляется второй строкой поверх него.

Репозиторий: github.com/metallcorn/megaplasmoid

Комментарии

Популярные сообщения из этого блога

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

HP2727 сканирование в сеть

Mikrotik и Ubiquiti

Ubuntu без Unity. Как все начиналось, и что имеем сейчас

Xubuntu Unity-like