個々のモニターの制御は、xset(および実際にはX11)では不可能です
タイトルが示すように、ビルド方法 xset
とX11関数が使用するため、これは不可能です。ソースコードを見て、xset
呼び出しDPMSForceLevel(dpy,DPMSModeSuspend)
(行557)を行うと、表示変数dpy
はXOpenDisplay()
関数(行203)から取得されます。これは定義によります。
サーバーは、その画面および入力デバイスとともに、ディスプレイと呼ばれます。
つまり、xset
個々の画面ではなく、ディスプレイ全体に設定をグローバルに適用します。これを機能xset
させるには、ソースコードを変更する必要があります。DPMS拡張自体は、ほとんどの場合、個々の画面ではなく、ディスプレイ全体のみを呼び出すように見えるため、X11ライブラリを使用してカスタムコードを作成することもできません。
/sys
サブシステムを介してその設定を手動で制御することも機能していないようです
$ sudo bash -c 'echo Off > /sys/class/drm/card0-VGA-1/dpms'
[sudo] password for admin:
bash: /sys/class/drm/card0-VGA-1/dpms: Permission denied
キーまたはマウスイベントが発生すると、画面もDPMSモードから外れるため、マウスを移動したりキーボードを使用したりすることを考えると、これらのアクションのいずれかによってモニターがDPMSモードを終了します。
代替の回避策
最良の代替手段(および実際に物理的に機能するソリューション)はxrandr
、個々の「出力」を制御するために使用できます。特に、
xrandr --output VGA-1 -off
その出力をオフに設定します。はい、あなたはそれが十分に速くないのであなたがこの解決策を使いたくないと述べました、しかし今のところそれは利用可能な最高のものです。これにはいくつかの利点があります。
- キーおよびマウスイベントの影響を受けない
- 独立してアウトパスを制御します
xset
xrandr --output VGA-1 --brightness 0.1
にもかかわらず、それがオフに見えるような方法で画面を色付けします--brightness
ディスプレイが実際にハードウェアレベルで淡色表示されていないので、ソフトウェア・ソリューションである、またそれは、ハードウェアレベルでオフになっています。ただし、画面を非表示にする機能があり、キー/マウスイベントにも耐性があります。
どちらもGNOMEスクリーンセーバーのフォークであるMateおよびBudgieスクリーンセーバーのソースコードを調べましたが、どちらの場合も、ソースコードにDPMSの記述がないため、ソフトウェアソリューションのように見えます。