web-dev-qa-db-ja.com

緊急通知がフルスクリーンモードで表示されない

Ubuntu 18.04を使用しています。クリーンインストールを行いましたが、すべてがすばらしく安定していますが、フルスクリーンモードで緊急の通知を見ることができません(Google ChromeのYouTubeビデオ、MPVの映画、Totem、VLCなど)。 --urgency-critical-u criticalを使用してみましたが、Xボタンをクリックして削除する必要があるため、通常の使用で動作しているのがわかりましたが、このコマンドは17.10。 Gnome Shellのバグなのか、何か新しいことをしなければならないのかわかりません。バッテリーが少なくなったという通知が表示されず、映画を見るたびにラップトップの電源が切れるので、本当に迷惑です。私は本当に、快適ではなく、自分自身をコントロールしなければなりません。誰かが回避策または何かを知っていますか?

1
nplezka

はい、これは非常に迷惑です。回避策として、 zenitywarningダイアログボックスを使用します。フルスクリーンアプリケーションよりもポップアップするという利点があります。

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

スクリプトを使用してプログラムで現在のバッテリーパーセンテージを取得するのは非常に簡単ですが、システムやメーカーのばらつきのため、少しの調査が必要になります。 here から開始します。


スクリプトのセットアップは次のとおりです。

これは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
AneesAhmed777