Критический уровень батареи и полноэкранное приложение

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#1

25 июл 2022, 13:49

Hi! All, может быть я просто туплю, но вопрос такой: имеем ноутбук, "LMDE 5", и приложение работающее в полноэкранном режиме, приложение довольно прожорливое в смысле питания. Периодически приходится его запускать "в поле" когда ноут работает от акб, обычно все обходилось нормально, но вот на днях пришлось им пользоваться дольше обычного и ноут просто выключился (данные работы приложения сохранить не успели), вот и прошу подсказать либо настройку, либо прогу чтоб предупреждала о критическом разряде, желательно всплывающим окошком т.к. звук чаще всего выключен. В "управлении электропитанием" есть только варианты: бездействовать или сразу выключить. Попробовал настроить гибернацию, не получилось, так хоть какое предупреждение организовать чтоб "пробивало" полноэкранный режим....

Аватара пользователя

hellonet
Сообщения: 2866
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1083 раза
Поблагодарили: 468 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#2

25 июл 2022, 14:00

Хороший вопрос, тоже бывают такие проблемы с неожиданным выкл. ноута. Как победить тоже не знаю

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#3

25 июл 2022, 14:44

самый простой вариант наверное завести скрипт по крону с несложной логикой, который
1. достанет цифру текущего заряда
2. сравнит полученное значения с триггером, скажем в 10%
3. Далее уже от фантазии:
3.1 отправит уведомляху, если в полноэкранном нотификации не порежутся (notify-send)
3.2 принудительно свернет приклад на переднем плане (wmctrl)
...
3.X отправит систему спать или в шатдаун (pm)
Изображение
   
Изображение

no avatar

велес
Сообщения: 9
Зарегистрирован: 14 май 2020, 07:53
Решено: 1
Поблагодарили: 3 раза
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#4

25 июл 2022, 18:30

Делал себе такой скрипт для LM Cinnamon,инфу брал от сюда https://ask-ubuntu.ru/questions/726597/ ... buntu-1804 ,но там на заряд,нужно установить acpi и sox(для звукового оповещения).Чтобы проверить заменить в текстовом редакторе 16 на 99.
Сам скрипт :
#!/bin/bash
while true
do
export DISPLAY=:0.0
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
if [ $battery_level -le 16 ]; then #check if the battery level is over 16%
notify-send -u critical "подключи зарядку" "Battery level: ${battery_level}% (charged above 16%)" -i battery-low-charged; play /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
fi
sleep 30 #wait for 30 seconds before checking again
done

no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#5

26 июл 2022, 00:02

велес, у меня что то не отрабатывает статус, правила срабатывают при любом (уровни тестовые). acpi не ставил, вроде можно и без него, но наверно придется пробовать и такой вариант.
Разобрался, нужны пробелы до и после "=" в строке $battery_status="Discharging"

#!/bin/bash
while true
do
export DISPLAY=:0.0
battery_level=`cat /sys/class/power_supply/BAT1/capacity`
battery_status=`cat /sys/class/power_supply/BAT1/status`
if [ $battery_status="Discharging" ]; then
if [ $battery_level -le 100 ]; then
notify-send -u critical "ВНИМАНИЕ !! Низкий уровень заряда" "Battery level: ${battery_level}% (При 5% переход в ждущий режим)" -i battery-full-charged
fi
if [ $battery_level -le 80 ]; then
systemctl suspend
fi
fi
sleep 300
done

no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#6

26 июл 2022, 14:30

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

Аватара пользователя

hellonet
Сообщения: 2866
Зарегистрирован: 11 окт 2016, 12:58
Решено: 11
Откуда: Новосибирск
Благодарил (а): 1083 раза
Поблагодарили: 468 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#7

26 июл 2022, 15:04

alek_j писал(а):
26 июл 2022, 14:30
Если кому интересно, могу выложить финальный вариант скрипта
Интересно

no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#8

26 июл 2022, 19:06

Тогда вот:

Код: Выделить всё

#!/bin/bash
while true
   do 
        export DISPLAY=:0.0
        battery_level=`cat /sys/class/power_supply/BAT1/capacity`
        battery_status=`cat /sys/class/power_supply/BAT1/status`
        if [ $battery_status = "Discharging" ]; then
            if [ $battery_level -le 15 ]; then
            notify-send "ВНИМАНИЕ !! Низкий уровень заряда" "Заряд: ${battery_level}% (При 5% переход в ждущий режим)" -i battery-level-20-symbolic
            fi
                 if [ $battery_level -le 5 ]; then
            notify-send -u normal "ПОДГОТОВКА К ПЕРЕХОДУ В ЖДУЩИЙ РЕЖИМ" -i battery-level-10-symbolic
                sleep 7                   
                    systemctl suspend
                 fi
        fi
        sleep 60
    done

небольшие пояснения, "BAT1" проверяется по указанному пути, у многих "BAT0". Ждущий режим выбран т.к. гибернация у меня не заработала (вообще, а не в скрипте). Выбранные иконки могут отсутствовать в вашей сборке линя. Все это задумывалось для работы с полноэкранным режимом, у меня оповещение не закрывалось "Х" поэтому от критического режима пришлось отказаться.
Последний раз редактировалось пользователем 1 rogoznik; всего редактировалось раз: 26
Причина: bbcode

Аватара пользователя

madesta
Сообщения: 1988
Зарегистрирован: 11 июн 2017, 21:47
Решено: 28
Откуда: BY
Благодарил (а): 79 раз
Поблагодарили: 425 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#9

26 июл 2022, 21:55

alek_j писал(а):
26 июл 2022, 19:06
Выбранные иконки могут отсутствовать в вашей сборке линя
Так не проблема, можно задать даже сторонний значок. Например:
#!/bin/bash
i=путь_к папке_со_значком
...
notify-send --icon=$i/значок.png "текст сообщения"

Только его размеры должны быть "вменяемыми", например, 48x48.
alek_j писал(а):
26 июл 2022, 19:06
у меня оповещение не закрывалось
Насколько понял, не закрывается нотификация? А если попробовать её запускать с параметром длительности отображения в миллисекундах?
notify-send -t=...
alek_j писал(а):
26 июл 2022, 00:02
sleep 300
Я верно понял, что скрипт постоянно висит в задачах, но отработка самой задачи с интервалом в 5 минут?

no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#10

26 июл 2022, 22:51

madesta писал(а):
26 июл 2022, 21:55
Так не проблема,
я просто предупредил, что иконки могут пропасть
madesta писал(а):
26 июл 2022, 21:55
Насколько понял
именно так, "-t" отрабатывает не во всех случаях, например не работает вместе с "-u critical", в некоторых сборках, в гноме (если верить ману)
madesta писал(а):
26 июл 2022, 21:55
скрипт постоянно висит в задачах
да, мне показалось, что так проще чем через крон

no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#11

27 июл 2022, 12:43

После "полевых испытаний" вылезла проблема: без "-u criticfl" не все полноэкранные сообщения "пробиваются" уведомлениями, соответственно и не проходит уведомление о переходе в ждущий режим, и, если в это время двигается мышь или нажимаются клавиши, то переход в ждущий режим нормально не происходит (сразу будится не успев перейти), следовательно теряется весь смысл для полноэкранного режима. Подкинте идею куда копать....

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#12

27 июл 2022, 13:25

Это стандартное поведение что клавомышь выводит из ждущего.
можно отключить и wakeup на них, но вопрос насколько это удобно.

Как уже предлагал в #2 - можно свернуть нафиг все полноэкранное и через несколько секунд задержки тушить сеанс, будет тебе триггер что руки с мыши лучше скинуть
Или воспроизвести звуковой алерт что вот-вот через минуту настанет печаль, будет время подготовиться к экстренному отключению)
Изображение
   
Изображение

no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#13

27 июл 2022, 19:05

Chocobo, для себя любимого может так бы и сделал, но пользуюсь не только я один, а так пугать народ - чересчур. Нашел на просторах пост с подобной проблемой, там говорится о xmessage и aosd_cat которые пробивают полный экран, и опять "но", первый жуть по внешнему виду и не дружит с русским, хотя может мало пытался настроить, второго в моей сборке не было, и, хотя пытался все сделать без установки доп пакетов, все же поставил, но так и не смог добиться от него вывода на дисплей.
Да, по текущему скрипту: если к "-u" добавить "-t", то уведомления из "колокольчика" будут сами пропадать.

PS xmessage у меня полный экран не пробил

Аватара пользователя

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#14

07 сен 2023, 10:21

alek_j писал(а):
26 июл 2022, 19:06
capacity
видимо, появляется при непосредственной работе от АКБ?
cat: /sys/class/power_supply/BAT0/capacity: Нет такого файла или каталога

no avatar

Автор темы
alek_j
Сообщения: 47
Зарегистрирован: 27 май 2022, 12:50
Решено: 1
Благодарил (а): 6 раз
Поблагодарили: 6 раз
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#15

07 сен 2023, 10:46

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

Аватара пользователя

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

Критический уровень батареи и полноэкранное приложение

#16

07 сен 2023, 10:54

alek_j, у меня везде сдохшие акб ) видимо, потому и нет файла ))) Праздное любопытство )

Ответить

Вернуться в «Вопрос новичка и FaQ»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей