Автор Тема: Power Manager для легких DE  (Прочитано 1058 раз)

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Power Manager для легких DE
« : 19.02.2024 12:50:22 »
В больших DE есть свои. И то , кстати в mate не понял, как сделать suspend по таймеру
xfce4-power-manager - наверное как-то можно еще приспособить , но потянет кучу ненужных зависимостей и т.п.
Нашел DE независимый https://github.com/rodlie/powerkit. Скомпилил. Пробовал прикрутить в регулярке icewm - не получилось
Смотрел в легких дистрибах : puppy porteus antix - тоже ничего нет

Получается - только крутить какую-то свою обвязку вокруг xset + xss-lock + systemd (п.2.1.2) или что-то есть? Желательно с GUI на gtk3
« Последнее редактирование: 25.02.2024 09:32:34 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE ?
« Ответ #1 : 25.02.2024 09:32:12 »
Получается - только крутить какую-то свою обвязку вокруг xset + xss-lock + systemd
Сделал
power-man
Внутри bash и yad , т.е. будет работать везде. Другими инструментами не владею, да здесь и не нужно.
Принцип работы :
В $HOME/.config/power-man.conf сохранены параметры, которые устанавливаются в GUI (yad).
При старте системы /etc/xdg/autostart/screen_lock.desktop читает power-man.conf,.
устанавливает время DPMS (xset) и при необходимости запускает xss-lock с нужными параметрами.
xss-lock срабатывает по DPMS и запускает suspend или выбранный хранитель экрана (внутри пример для i3lock-color).
Права на suspend юзеру даны через /etc/sudoers.d/power-man
Хранитель экрана запускается при suspend через /etc/systemd/system/suspend.service

power-man-24.04.05-alt1.noarch.rpm
power-man-24.04.05-alt1.src.rpm

Если кому нужен пакет под Arch - он в src, deb

Не реализовано:
1. hibernate. Сложные замуты со swap и лотерейный результат. Не планирую
2. Управление кнопками и крышкой ноута через /etc/systemd/logind.conf. Пока написал в help. Сделать можно по тому же принципу (sed -i). Может у кого есть альтернативные идеи...
3. Интернационализация. Внутри GUI рус. яз. и .po не сформировано. Сделать не сложно. Посмотрим как вообще приживется. Если кто-то поможет хотя бы с англ. - буду рад
4. Дополнительно к systemd можно прикрутить и к acpi. Для ОС без systemd

Проблемы и особенности использования


cbatticon-gui
Для мониторинга батареи в трее можно использовать : laptop-detect cbatticon
Написал
cbatticon-gui-24.03.03-alt1.src.rpm
cbatticon-gui-24.03.03-alt1.noarch.rpm
Если кому нужен пакет под Arch - он в src, deb

Принцип работы :
В $HOME/.config/cbatticon.conf сохранены параметры, которые устанавливаются в GUI (yad).
После нажатия в GUI OK - cbatticon перезапускается с новыми параметрами
Если вы прописываете действия, которые потребуют ввод пароля для sudo -  настройте беспарольное исполнение как в /etc/sudoers.d/power-man
При старте системы /etc/xdg/autostart/cbatticon.desktop читает cbattery.conf и запускает с этими параметрами cbatticon
При наличии laptop-detect проверяется наличие батареи. Если ее нет - запуск cbatticon не происходит
« Последнее редактирование: Вчера в 16:55:36 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #2 : 25.02.2024 19:24:17 »
А зачем понадобилось отделять часы от минут? И какой сакральный смысл для часов и минут применять разные крутилы?
Не помешал бы ещё и выбор действий при критическом разряде батареи. И там лучший вариант poweroff, а не гибридный сон как в upower по дефолту.
« Последнее редактирование: 25.02.2024 19:34:09 от stranger573 »

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #3 : 25.02.2024 20:29:52 »
зачем понадобилось отделять часы от минут? И какой сакральный смысл для часов и минут применять разные крутилы?
В основном поэкспериментировал с возможностями yad. В нем особого полета фантазии не получится. Ограничений много. Например ползунок только 0-100. Можно часы вообще убрать
Не помешал бы ещё и выбор действий при критическом разряде батареи.
$ cbatticon --help
Использование:
  cbatticon [ПАРАМЕТР…] [BATTERY ID]
Параметры приложения:
...
  -l, --low-level                  Задать низкий уровень заряда батареи (в процентах)
  -r, --critical-level             Задать критический уровень заряда батареи (в процентах)
  -o, --command-low-level          Command to execute when low battery level is reached
  -c, --command-critical-level     Выполнить при критическом уровне заряда батареи
  -x, --command-left-click         Выполнить по щелчку левой кнопки мыши на значке в трее
  -n, --hide-notification          Скрыть всплывающие уведомления
  -t, --list-icon-types            Список доступных значков
  -p, --list-power-supplies        Список доступных источников (батареи и сеть)
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #4 : 25.02.2024 21:10:39 »
В основном поэкспериментировал с возможностями yad. В нем особого полета фантазии не получится. Ограничений много. Например ползунок только 0-100. Можно часы вообще убрать
Тогда уж лучше убрать ползун и оставить числовое поле для целых минут, чтобы можно было ввести 210 мин, например.

$ cbatticon --help
Так это можно использовать и просто в консоли, также как и logind.conf и пр. Но вы же менеджер питания задумали. Не лучше его сделать полноценным?

Кстати, к sudo лучше не приколачивать, в альтах по умолчанию su.
« Последнее редактирование: 25.02.2024 21:13:42 от stranger573 »

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #5 : 25.02.2024 21:48:24 »
убрать ползун и оставить числовое поле для целых минут
Да. Пожалуй как универсально
Но вы же менеджер питания задумали. Не лучше его сделать полноценным?
Я задумал сделать хоть что-то легкое. Я не программер. Чудес кода от меня не ждите. Для стационара меня результат устроил.
К cbatticon тоже можно GUI на yad написать. Такое осилю. Надо?
к sudo лучше не приколачивать, в альтах по умолчанию su
Как тогда лучше юзеру разрешить suspend ?
1. Через спрашивалку пароля - нужно без участия юзера
2. suid bit
3. polkit - не хотелось бы утяжеления
« Последнее редактирование: 25.02.2024 23:25:48 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #6 : 25.02.2024 22:07:25 »
Я задумал сделать хоть что-то легкое. Я не программер. Чудес кода от меня не ждите. Для стационара меня результат устроил.
К cbatticon тоже можно GUI на yad написать. Такое осилю. Надо?
Это просто предложение. Было бы неплохо в одном GUI.

Как тогда лучше юзеру разрешить suspend ?
1. Через спрашивалку пароля
2. suid bit
3. polkit - не хотелось бы утяжеления
А как реализовано выключение компьютера в том же icewm? Там же обходится без sudo и запроса пароля. В остальных дистрибутивах тоже.

В xfce с systemd, например, юзеру уже разрешены systemctl reboot, systemctl poweroff, systemctl suspend и т.д. Хотя нет, если пользователей больше одного (и другой логинился) — будет запрос. От рута надо выполнять.
« Последнее редактирование: 25.02.2024 23:14:00 от stranger573 »

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #7 : 25.02.2024 23:16:03 »
Было бы неплохо в одном GUI.
Можно и так
как реализовано выключение компьютера в том же icewm? Там же обходится без sudo и запроса пароля
Посмотрел регулярку icewm в live режиме. Похоже через sudo. Но так , наверное только в live.
polkit запущен - наверное через него
- загасил их - все равно работает. Загадка
Не очень понимаю - чем sudo плохо. Особенно по сравнению с моим самопалом :)
« Последнее редактирование: 25.02.2024 23:24:30 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #8 : 25.02.2024 23:50:33 »
Не очень понимаю - чем sudo плохо. Особенно по сравнению с моим самопалом :)
Не то, чтобы sudo само по себе плохо.
Если в политике сборок ничего не поменялось, sudo по дефолту есть только в simply. В остальных дистрибутивах его нет или не настроено. Ежели sudo влетает по зависимостям с каким-то пакетом, надо это не прозевать и лезть настраивать. Поскольку может быть совсем не настроенным или с бог знает какими настройками. А вот это уже плохо.

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #9 : 26.02.2024 18:07:02 »
sudo по дефолту есть только в simply.
В регулярке icewm тоже есть.
Втихоря вкатывать свое правило в sudoers.d пожалуй не хорошо. Может есть возможность как-то сообщить об этом при установке (еще не разбирался).

К cbatticon тоже можно GUI на yad написать. Такое осилю
Добавил скрин и архив во 2е сообщение темы. Опакетить и проверить на ноуте не успел. Кто проверит - напишите...
Не уверен что склеивать  power-man про cbatticon-gui вместе - хорошая идея. Программы разные . Можно использовать поодиночке
Можно написать в power-man про cbatticon. И достаточно
« Последнее редактирование: 26.02.2024 18:09:09 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #10 : 28.02.2024 14:35:34 »
убрать ползун и оставить числовое поле для целых минут
Сделал. Опакетил cbatticon-gui
Подробности во 2м сообщении темы
Больше идей по улучшению нет
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #11 : 28.02.2024 17:18:14 »
Вполне прилично. Теперь будет и для лёгких сборок. :-)
Только ссылочку бы на cbatticon-gui в src.
« Последнее редактирование: 28.02.2024 17:26:56 от stranger573 »

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #12 : 01.03.2024 10:28:48 »
ссылочку бы на cbatticon-gui в src
Добавил выше
А вообще все о чем я пишу на этом форуме - в моей репе в моей подписи. Там же инструкция по подключению.
Там много чего есть и такого , о чем еще не успел написать. ;)
« Последнее редактирование: 01.03.2024 10:31:00 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #13 : 02.03.2024 14:17:43 »
При установке вылезла проблема:
file /etc/sudoers.d from install of power-man-24.02.28-alt1.noarch conflicts with file from package sudo-1:1.9.15p5-alt1.x86_64Решил так :
%post
if [ ! -f %_sysconfdir/sudoers.d/power-man ]; then
    echo "ALL ALL=(root) NOPASSWD: /sbin/systemctl suspend,/usr/bin/systemctl suspend" > %_sysconf
dir/sudoers.d/power-man
fi
Или как в Альте такое принято делать?
Перезалил
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #14 : 05.03.2024 09:31:08 »
cbatticon-gui-24.03.03-alt1.noarch.rpm - добавил категорию в ярлык и help
power-man-24.03.03-alt1.noarch.rpm - исправил логическую ошибку в power-exe
cbatticon-gui-24.03.03-alt1.src.rpm
power-man-24.03.03-alt1.src.rpm
С 1.1.2024 на Alt из патриотических соображений. Мой репо