紧急通知未在全屏模式下显示

紧急通知未在全屏模式下显示

我在 Ubuntu 18.04 上。我进行了全新安装,一切都很好,而且相当稳定,但我无法在全屏模式下看到紧急通知(例如 Google Chrome 中的 YouTube 视频、MPV、Totem 或 VLC 上的电影)。我尝试使用--urgency-critical-u critical,我发现它们在正常使用中可以正常工作,因为我必须单击 X 按钮才能删除它们,但是此命令不会像在 17.10 中那样将它们置于顶部。我不明白这是 Gnome Shell 的错误还是我必须做一些新的事情。这真的很烦人,因为我看不到电池电量不足通知,而且每次看电影时我的笔记本电脑都会关机。我不得不控制自己,真的很不舒服。有人知道解决方法吗?

答案1

是的,这很烦人。为了解决这个问题,我使用zenitywarning对话框。它的优点是即使在全屏应用程序中也会弹出:

zenity --warning --text='Battery Low' --no-wrap

通过脚本以编程方式获取当前电池百分比非常容易,但由于系统和制造商之间存在差异,因此需要您进行一些研究。从这里


这是我的脚本设置:

这是电池电量计算工具

#!/bin/bash

upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep percentage | sed -r 's/[^0-9]*([0-9]+).*/\1/'

这是电池状态.sh

#!/bin/bash

upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep state | sed -r 's/.*\:\ +(.*)/\1/'

最后,这是电池信息通知工具

#!/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

相关内容