Raspberry Pi ちょっと便利なコマンドボタン(X DPMS)

Raspberry Pi OSは無操作が一定時間続くとモニターの画面をオフにします。
モニターの消費電力はボード自体より遥かに多いので省電力の観点からは有効な機能と言えます。但し動画を視聴している時やモニターの画面を見ながら考え事をしている時に真っ暗になるのは頂けません。ターミナルからコマンドを実行することで解除できるのですが肝心のコマンドをど忘れしたりしたら顰蹙者です(よく忘れる・・当サイトの住人です!!)
前回のコマンドボタンの続きということで少しだけスマートに実行してみたいと思います。

xset dpms

https://wiki.archlinux.jp/index.php/Display_Power_Management_Signaling
DPMS を無効にして画面が消えないようにする

$ xset s off -dpms


上記のコマンドを実行することで解除できます。
時間は秒単位になっていますね。

前回のapp-menu.pyにボタンを追加してDPMSの有効(無効)を切り替えるようにします。


2つのアイコンを用意 x-color.png x-mono.png サイズ32×32

app-menu.py

xset qからDPMSを読んでボタンアイコンを表示します。
DPMSに変更があればapp-menu.pyを再起動してアイコンを切り替え
dvilspie2を実行してウインドウを巻き上げ(shade)
~/bin/app-menu.py 追記

# Button901 x-DPMS
command = ("xset -q | grep 'DPMS is Disabled'")
proc = (subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
if proc == "":
    x = 'x-color.png'; y = 0
else:
    x = 'x-mono.png'; y = 1
def x901():
    if y == 0:
        proc = messagebox.askyesno('Confirmation','X --DPMS (無効)')
        if proc == True:
            subprocess.run("xset s off -dpms", shell=True)
            exit()
        else:
            reload()
    if y == 1:
        proc = messagebox.askyesno('Confirmation','X +DPMS (有効)')
        if proc == True:
            subprocess.run("xset +dpms", shell=True)
            exit()
        else:
            reload()
icon901 = PhotoImage(file=dir+x)
button901 = ttk.Button(frame1,image=icon901,command=x901)
button901.grid(row=1,column=4)


デフォルトはDPMS有効で起動しています。
実行するとDPMS無効にするかと聞いてくるので Yes
app-menu.pyを再起動してアイコンを取り替えます。


DPMS Disabled アイコンが変わります。

Noはそのまま静かにウインドウを巻き上げます。