Я нахожусь на Ubuntu 18.04. Я сделал чистую установку, все хорошо и довольно стабильно, но я не вижу срочные уведомления в полноэкранном режиме (es. Видео YouTube в Google Chrome, фильмах на MPV, Тотеме или VLC). Я пытался использовать --urgency-critical
и -u critical
, и я видел, что они работают в нормальной эксплуатации, поскольку я должен нажать на X кнопок для удаления их, но эта команда не помещает их на вершину как в 17,10. Я не понимаю, является ли это Gnome ошибка Shell, или я должен сделать что-то новое. Это является действительно раздражающим, потому что я не вижу батарею, которую низкое уведомление и мой ноутбук выключают каждый раз, я смотрю кино. Я должен управлять мной, не удобный, действительно. Кто-либо знает обходное решение или что-то?
Да это является очень раздражающим. Для обходного решения я использую zenity
warning
диалоговое окно. Это обладает преимуществом появления даже по полноэкранным приложениям:
zenity --warning --text='Battery Low' --no-wrap
Получение текущего процента батареи программно с помощью сценария очень легко, но потребует определенного исследования с Вашей стороны из-за изменчивости среди систем и производителей. Запустите отсюда.
Вот моя установка сценария:
Это - batteryLevel.sh:
#!/bin/bash
upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep percentage | sed -r 's/[^0-9]*([0-9]+).*/\1/'
Это - batteryStatus.sh:
#!/bin/bash
upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep state | sed -r 's/.*\:\ +(.*)/\1/'
Наконец, это - batteryInfoNotify.sh:
#!/bin/bash
upperThreshold=99
lowerThreshold=20
echo upperThreshold=$upperThreshold
echo lowerThreshold=$lowerThreshold
zenity --info --text='Battery level monitoring started...' --no-wrap 2>&1 >/dev/null
while [[ true ]]; do
status=$(~/Scripts/batteryStatus.sh)
level=$(~/Scripts/batteryLevel.sh)
msg="Battery Level now is $level%"
echo "Battery $level% and $status"
case $status in
charging | fully-charged)
if [[ $level -gt $upperThreshold ]]; then
echo 'Upper threshold crossed...'
zenity --warning --text="$msg" --no-wrap --timeout=8 >/dev/null 2>&1
espeak -v en+m7 -p 60 "$msg"
fi
;;
discharging)
if [[ $level -lt $lowerThreshold ]]; then
echo 'Lower threshold crossed...'
zenity --warning --text="$msg" --no-wrap --timeout=8 >/dev/null 2>&1
espeak -v en+m7 -p 60 "$msg"
fi
;;
*)
echo unexpected battery status
;;
esac
sleep 30s
done
Все они находятся в моем ~/Scripts
и batteryInfoNotify.sh
назван при запуске сессии каждый раз, потому что я настроил его так в GNOME Startup Appications
.