外部モニターのバックライトをどのように変更しますか?

外部モニターのバックライトをどのように変更しますか?

HDMI(出力名)を介して接続された外部モニター付きのノートパソコンがありますHDMI1。このコマンドは、マイxbacklightホーム画面(ノートブック画面など)でのみ機能します。

-display HDMI1RANDR Query Version returned error -1パラメータ(エラーが発生した場合)または--display HDMI1(ヘルプメッセージが表示されます)を使用して実行しようとしても機能しません。

私はこれを見たことがあります -外部モニターのバックライトを消す- 質問なのに変更方法だけ言及されています。明るさ、いいえバックライト

編集:このオプションは-displayマニュアルページに文書化されていませんが、xbacklightソースコードを少し見てから見つけました。それはどこで使用されますか?xcb_connectその機能から実際の画面名ではなくXディスプレイを表します。

答え1

ddcutil前述したように、次のようにしてこれを行うことができます。ここしかし、それほど敏感ではなく、root権限が必要です。

# ddcutil capabilities | grep Brightness
  Feature: 10 (Brightness)

# ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =    60, max value =   100

# ddcutil setvcp 10 70

バックライトの構成はハードウェアによって異なるため、「すべての用途に合った」ソリューションはないと思います。ノートパソコンのモニターが内蔵されていてもバックライトを制御できない場合もあります。

答え2

代替ddutil(例:モニターがDDC / CIをサポートしていない場合、または追加のカーネルモジュール()をロードしたくない場合、またはi2c-devアクセスできない場合/dev/i2c-*赤い片

Redshiftは色温度を制御しますが、画面の明るさも制御します。

昼と夜に異なる明るさ(必要に応じて色温度を含む)を持つようにプロファイルを設定したり、コマンドラインからすぐに変更したりできます。

コマンドラインでは、マルチモニタの状況でこの-mフラグを使用する必要があります。デフォルトのモニターはcrtc=0外部モニターですcrtc=1。指定された表示名を使用することもできますxrandr

たとえば、外部モニターの明るさを70%に設定するには、次のようにします。

redshidft -m randr:crtc=1 -b 0.7 &

構成ファイルを使用している場合は、以下を追加します。

[randr]
screen=0
crtc=1

(これはcrtc=0プライマリモニタのプロファイルに使用されます。この問題扱いました。 )

ホーム画面ですでにredshiftを使用している場合は、モニターごとに2つのredshiftインスタンスを異なる設定で実行できます。 2つの異なる設定ファイルを持つこともできます(-c2番目の設定ファイルへのパスを提供するフラグを使用して2番目のredshiftインスタンスをロードします)。

1つの注目すべき点は、redshiftインスタンスを終了しても、これらの設定はアクティブなままです。通常の設定に戻るには実行する必要がありますredshift -x(外部モニタの場合redshift -m randr:crtc=1 -x)。あるインスタンスを終了した後に最初にこのコマンドを実行せずに別のインスタンスを起動すると、設定は累積されます。これは少し奇妙な動作ですが、実際にはいくつかの利点があります。場合によっては、2つの同時インスタンスが起動方法に応じて点滅を生成することがあります。これが発生した場合は、単に(または両方)を終了して問題を解決できます。設定はそのまま残ります。

これらすべてが非常に複雑に見えるかもしれませんが、慣れ親しんで、いくつかのプロファイル、エイリアス、またはキーバインディングを設定すると、実際にはかなりうまく機能します。たとえば、Redshiftインスタンスを実行すると、.xinitrc夕暮れと夕暮れに合わせて明るさが自動的に調整されるため、再操作する必要はありません。


編集する: Redshiftが死んだ後、デフォルトのモニタ値をリセットしないという私の意見は私の間違いでした。

  • kill -15 <pid>シグナル15(たとえば、デフォルトのシグナル値)でシャットダウンとクリーンアップをスムーズに要求すると、kill実際にクリーンアップの一部としてアイテムがリセットされます。

  • 信号9(例kill -9 <pid>:)で終了すると、何もリセットせずに停止します。

これは言葉になりますが、私はそれを実現しませんでした。複数のRedshiftインスタンスが点滅している状況で、私はそれを利用して起動し、すぐに新しいインスタンスを終了しました(一部の機能を使用して)。あまりきれいではないかもしれませんが…これまでは私にとってとてもうまくいきます。

答え3

xbacklightはあなたの答えになることができます:

https://wiki.archlinux.org/index.php/backlight#xbacklight

明るさとバックライトは同じようです。その場合はxrandrすべての出力がサポートされますので、進めてください。

関連情報