Срочные уведомления, не обнаруживающиеся в полноэкранном режиме

Я нахожусь на Ubuntu 18.04. Я сделал чистую установку, все хорошо и довольно стабильно, но я не вижу срочные уведомления в полноэкранном режиме (es. Видео YouTube в Google Chrome, фильмах на MPV, Тотеме или VLC). Я пытался использовать --urgency-critical и -u critical, и я видел, что они работают в нормальной эксплуатации, поскольку я должен нажать на X кнопок для удаления их, но эта команда не помещает их на вершину как в 17,10. Я не понимаю, является ли это Gnome ошибка Shell, или я должен сделать что-то новое. Это является действительно раздражающим, потому что я не вижу батарею, которую низкое уведомление и мой ноутбук выключают каждый раз, я смотрю кино. Я должен управлять мной, не удобный, действительно. Кто-либо знает обходное решение или что-то?

1
задан 12 June 2018 в 19:24

1 ответ

Да это является очень раздражающим. Для обходного решения я использую 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.

2
ответ дан 7 December 2019 в 13:23

Другие вопросы по тегам:

Похожие вопросы: