Плазмоид + qt GUI для netctl

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

Проект содержит 5 подпроектов:
  • data engine (т.к. netctl не имеет API - откуда? Набор скриптов же - то пришлось писать свое. Совместимо с любой другой программой (даже и не виджетом))
  • собственно виджет со свисто-перделками (просто картинка не интересно)
  • гуи на qt5 (или qt4, если хотите), который не зависит от KDE и KDE-шных компонентов в принципе
  • библиотека, предоставляющая взаимодействие с netctl
  • демон-хелпер, предоставляющий DBus интерфейс и позволяющий работать без ввода паролей
Можно собрать разные части (только виджет тянет за собой dataengine).

Скрины:
DataEngine

Виджет

Приложение




Функционал возможно расширится (если будут предложения/пожелания). Из дополнительных плюшек - стараюсь следовать qt coding style. По крайней мере, верблюдоПодобныеПеременные уже есть. Русский перевод полный.

Страница проекта.
Репозиторий.
AUR (бинарные пакеты доступны в моем репозитории).
PGP 0x31361F01
arcanisrepo
arcanis, а сам netctl уже юзабелен? Я просто тыкал его палочкой с пол-года назад, были непонятные проблемы. Я так понял он иногда оставлял или свои или файлы своих детишек в /run и отказывался перезапускаться. У матушки на ноутбуке удалось настроить вафлю только через [email protected], через netctl enable <profile> вафля отваливалась и не переподнималась.
P.S. Поймите правильно, дело благое, доброе делаете.. я не для спорить, а для потомучто интересно.
naszar
arcanis, а сам netctl уже юзабелен? Я просто тыкал его палочкой с пол-года назад, были непонятные проблемы. Я так понял он иногда оставлял или свои или файлы своих детишек в /run и отказывался перезапускаться. У матушки на ноутбуке удалось настроить вафлю только через [email protected], через netctl enable <profile> вафля отваливалась и не переподнималась.
ну на этапе появления его в репах он правда был довольно сыроват. Сейчас гораздо лучше, в принципе, я только им и пользуюсь. Хотя, автозагрузку профиля сейчас отключил, раньше работало без проблем
PGP 0x31361F01
arcanisrepo
Немного скринов с работы над гуем. Окно выбора профиля:

Окно подключения к вафле. При этом моя реализация слизана с wifi-menu, поэтому в вашей системе не будет необходимости в wireless_tools, только в wpa_supplicant. Проблему доступа решил через группу (настраивается).

Пример команды запуска wpa_supplicant (для сканирования). Все опции настраиваются (но расширенные будут убраны в окошечко Advanced). Команда sudo настраивается (любая на ваш вкус, хоть gsudo). В пакете прилагается 2 скрипта, которые только запускают wpa_supplicant и netctl с указаными параметрами для того, чтобы их можно было вписать в sudoers с опцией NOPASSWD.
PGP 0x31361F01
arcanisrepo
Закончена работа над гуем. С вашего позволения, показывать вкладку создания профиля полностью не буду, а вот, например, только основные настройки с advanced выглядят так:

Опции вылизаны все с мана, в большинстве случаев так или иначе учел условия (типа обязательного bind для bridge соединений), также постарался учесть ограничения на вводимый текст, там где это нужно (маки, айпишники, числа). Для всех опций добавлены тултипы.
Русский перевод местами может лажать.
В планах на ближайшее время более обстоятельное тестирование и допиливание там где нужно
PGP 0x31361F01
arcanisrepo
вроде работает =) в бинарном виде также доступен в моем репозитории
PGP 0x31361F01
arcanisrepo
Обновил топик, залил актуальные скрины. Из нового в проекте - его (гуй) можно собрать с qt5. По дефолту с аура именно с ним и собирается.
Если какие то компоненты не нужны, при сборке проекта открыть pkgbuild и раскомментить в самом верху нужные строки:
#_use_qt5=0 - использовать qt4 вместо qt5
#_build_gui=0 - не собирать GUI
#_build_plasmoid=0 - не собирать виджет
Все зависимости должны автоматически поправиться на нужные.

PS фич реквесты приветствуются =) вон, один понасоздавал для другого моего плазмоида, все было реализовано.
PGP 0x31361F01
arcanisrepo
Немного отчетов. Версия 1.2.0 содержит ряд важных изменений. Среди них стоит выделить:
  • поддержка netctl-auto (вроде полная)
  • полное отделение бекенда от фронтенда, в AUR теперь доступна библиотека libnetctlgui, которая предоставляет взаимодействие с netctl. Правда, на текущий момент, у меня нет планов удалять зависимость от qt из библиотеки, поскольку я использую ряд фич, которые они предоставляют (типа QMap, он же dict). Но, по хорошему, надо бы. Документация прилагается.
  • добавлены контекстные меню (был фич реквест) и меню приложения
  • много новых опций, автодополнения для шеллов ({z,ba}sh) прилагаются
  • исправления для netctl
  • нескучные обои иконки

Текущая версия помечена, как пререлиз, полноценный релиз планируется с обновлением плазмоида под актуальную плазму.
PGP 0x31361F01
arcanisrepo
в разработке:
* улучшение виджета (больше возможных переменных может быть показано), адаптация виджета под трей
* переписаны вызовы в dataengine
* интеграция с DBus, опциональные хелпер в виде демона, возможность работать без пароля (при участии юзвера в группе network). Возможна интеграция с polkit. Документация по API и небольшие соображения безопасности прилагаются
* переписаны вызовы в библиотеке, часть функций добавлена. часть убрана
* улучшения в графическом интерфейсе - например, полная интеграция в системный трей и поддержка демонизации, что позволит пользователям других окружений (lxqt) использовать гуй, как аналог виджета

// стартовый топик обновлю по выходу 1.3.0
PGP 0x31361F01
arcanisrepo
релиз 1.3.0, обновил топик
PGP 0x31361F01
arcanisrepo
 
Зарегистрироваться или войдите чтобы оставить сообщение.