
Ubuntu日本語フォーラム

ログインしていません。
後学のために質問したいのですが
現在ホットキーを利用してノートPCのモニタをon/offでトグルするスクリプトを作っています
この際にvbetoolを利用するのですがユーザー権限からvbetoolを使用することが出来ないため
ホットキーに対する動作としてsudo hogeとして起動自体はしています
visudoの設定でNOPASSWDを利用しているので動作に不満はないのですが
ホットキーに対してsudoでスクリプトを起動するのは方法として正しくない気がしています
もっとスマートな方法はないでしょうか?
オフライン
これはわりとどうしようもなくて、やるとすると以下でしょうか。
・vbetoolにまかせている必要な操作だけを切り出して別バイナリにし、そのバイナリをrootにsetuidする
・vbetoolにまかせている必要な操作をドライバに切り出して、かつそのドライバをsysfsなりprocfsなりからアクセスできるようにして、そのデバイスノードを一般ユーザーからアクセスできるパーミッションにする
・vbetool以外に特権無しで同じことができないか探してみる
・別にsudoでもいいやと諦める
オフライン
必ずしもすべての機種で動くというわけではありませんが: vbetool にこだわらない、かつ、DISPLAY 環境変数の値を正しく参照できる(ホットキーでということなのでこの点は不明です)なら
xset dpms force off
で display off,
xset dpms force on
で display on です。
老婆心ながら:上記がお使いのマシンで動くかどうかコマンドラインから試すときには
xset dpms force off ; sleep 30 ; xset dpms force on
のように自動で(上の例では 30 秒後) on になるようにしないと画面が真っ暗になったままで再び on にするのが困難になります。
オフライン
アドバイスありがとうございます
xset dpms force offの方が簡単でした
オフライン