web-dev-qa-db-ja.com

コマンドラインから(またはスクリプト経由で)LCD輝度を変更する方法は?

バグ#1005495 (ホットキーでLCD輝度を変更することはできません)を回避するには、LCDの輝度を上げるためのコマンドラインクエリと、輝度を下げるためのコマンドラインクエリがあります。次に、このクエリのそれぞれにホットキーをマップできます。

問題は、コマンドラインでLCD輝度を増減する方法がわからないことです。あなたは?

162
user69748

これを行う必要があるもう1つの方法は、xbacklightという名前の別の新しいプログラムを使用して、ターミナルを開いてこれを入力することです

Sudo apt-get install xbacklight

次に、このxbacklight -set 50と入力します

明るさの範囲を表す50があり、0から100まで取得できます。

現在の明るさから指定されたレベルまで明るさを増減することもできます。既に述べたように、現在の明るさの値から10%に増やしたい場合は、

xbacklight -inc 10

10%減らすためにこれを与えることができます

xbacklight -dec 10 

警告xbacklightはIntelでのみ動作し、Radeonでは正しく動作せず、モード設定ドライバでは動作しません( source )。

156
rɑːdʒɑ

ターミナルを開いてこれを入力してください

xrandr -q | grep " connected"

次のように出力されます

LVDS1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 331mm x 207mm

ディスプレイ用のLVDS1スタンドがあります。だから今、あなたは

xrandr --output LVDS1 --brightness 0.5

0.5は輝度レベルを表し、範囲は0.0〜1.0です。 0.0->完全な黒。したがって、必要な明るさの値を選択する必要があります。

このは、ハードウェアレベルで輝度を変更しませんrandr manual から:

--brightness brightness出力に現在接続されているcrtcの gamma 値を指定された浮動値に乗算します。明るすぎる、または薄暗い出力に役立ちます。ただし、これはソフトウェアのみの変更です。ハードウェアが実際に明るさを変更するサポートを持っている場合は、おそらくxbacklightを使用することをお勧めします。

147
rɑːdʒɑ

以下は私のために働く:

echo 400 | Sudo tee /sys/class/backlight/intel_backlight/brightness

可能な最大値は/sys/class/backlight/intel_backlight/max_brightnessファイルにあると思います。

intel_backlightをアスタリスクに置き換えて、すべてのバックライトに適用します。

109
palacsint

ラップトップの場合、

Sudo setpci -s 00:02.0 F4.B=80

80[0-FF]ずつ変更して、最低から最高の輝度を取得します。指定された値は16進数であるため、80は最大輝度の50%を提供します。

デスクトップで ガンマ補正 を作成するには(私はテストしていません)、

xgamma -gamma .75
12
Gaurav Gandhi

このスクリプトを作成します。

set-brightness.sh

#!/bin/bash
TARGET="acpi_video0"
cd /sys/class/backlight
MAX="$(cat "${TARGET}/max_brightness")"
# The `/1` at the end forced bc to cast the result 
# to an integer, even if $1 is a float (which it 
# should be)
LOGIC="$(echo "($1 * ${MAX})/1" | bc)"
for i in */; do
    if [[ "${TARGET}/" != "$i" && -e "${i}brightness" ]]; then
        cat "${i}max_brightness" > "${i}brightness"
    fi
done
echo "$LOGIC" > "${TARGET}/brightness"

0から1までの任意の値で、rootとして実行します。

Sudo ./set-brightness.sh 0.5
  • システムに/sys/class/backlight/acpi_video0がない場合は、デバイス固有のディレクトリが少なくとも1つ必要です(たとえば、radeon_bl0もあります)。
  • 他にも値がある場合は、それらの値がスタックすることに注意してください(ループが発生するため、すべてのother値を1.0にプッシュしてから、ターゲット値を目的の値に設定します)。
  • acpi_video0shouldは常に機能しますが、物理的な明るさの全範囲が常に利用できるとは限りません。それぞれを試して、最大の色域を持つものを「ターゲット」として使用してください
4
Fordi

GnomeでDBusを使用

キーボード制御の明るさのステップは、この方法でも実装できます。

# Step up:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp

# Step down:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown

ノート

4
Pablo Bianchi

ターミナルでこれを試してください:

xrandr --output LVDS1 --brightness 0.9

最後の値は好きなように変更できます。 0.2

4
ripu

@palacsintが言ったように、echo 244 > /sys/class/backlight/intel_backlight/brightnessパスは私のために機能します。

ただし、最大値と最小値は、それぞれ/sys/class/backlight/intel_backlight/max_brightnessおよび/sys/class/backlight/intel_backlight/bl_powerファイルに再送信されます。

また、コンピューターが現在実行している実際の明るさは/sys/class/backlight/intel_backlight/actual_brightnessにあります

3
user281989

KDE 4.12:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55

KDEプラズマバージョン:5.14.3:

上記のコードはまだ有効です。 KDEユーザーの場合にのみ機能します。ただし、その場合、追加のソフトウェアは必要ありません。 「バッテリーと輝度」ウィジェットを使用する場合とまったく同じ動作になります。私の知る限り、物理的なバックライトは変更されませんが、xrandrは変更されません。

上記の55は100の端数ではないことに注意してください。後者は最大の明るさです。代わりに、max_brightnessに関連しています。

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl brightnessMax

スクリプトで好む「サイレント」バージョンもあります。

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightnessSilent 2000

参照: qdbussolidbrightness

3
int_ua

上記の回答を使用して、ディスプレイの輝度を変更するために(ホームディレクトリにbrightness.shとして保存された)このスクリプトを作成しました(ラップトップのキーボードにお茶の問題がこぼれ、使用できなくなったため)。自由に使用してください(指定されたファイルがある場合は、そうでない場合は、それらのバリエーションを指すように調整する必要があります)。

#!/bin/bash
function main_menu
{
    Sudo clear
    cursetting=$(cat /sys/class/backlight/intel_backlight/brightness)
    maxsetting=$(cat /sys/class/backlight/intel_backlight/max_brightness)
    powersave=$((maxsetting/5))
    conservative=$((powersave*2))
    medium=$((powersave*3))
    performance=$((powersave*4))
    echo ""
    echo "----------------------- Brightness -----------------------"
    echo " 1. Set Display to Minimum (Powersave) brightness setting."
    echo " 2. Set Display to Low (Conservative) brightness setting."
    echo " 3. Set Display to Medium brightness setting."
    echo " 4. Set Display to High (Performance) brightness setting."
    echo " 5. Set Display to Maximum brightness setting."
    echo " 6. Exit."
    echo "----------------------------------------------------------"
    if [ $cursetting -eq $powersave ]; then
     cursetting='Minimum'
    else
     if [ $cursetting -eq $conservative ]; then
      cursetting='Conservative'
     else
      if [ $cursetting -eq $medium ]; then
       cursetting='Medium'
      else
       if [ $cursetting -eq $performance ]; then
        cursetting='Performance'
       else
        if [ $cursetting -eq $maxsetting ]; then
         cursetting='Maximum'
        fi
       fi
      fi
     fi
    fi
    echo "        Current Display Setting - "$cursetting;
    choice=7
    echo ""
    echo -e "Please enter your choice: \c"
}

function press_enter
{
    echo ""
    echo -n "Press Enter to continue."
    read
    main_menu
}

main_menu
while [ $choice -eq 7 ]; do
read choice

if [ $choice -eq 1 ]; then
 echo $powersave | Sudo tee /sys/class/backlight/intel_backlight/brightness
 main_menu
else
 if [ $choice -eq 2 ]; then
  echo $conservative | Sudo tee /sys/class/backlight/intel_backlight/brightness
  main_menu
 else
  if [ $choice -eq 3 ]; then
   echo $medium | Sudo tee /sys/class/backlight/intel_backlight/brightness
   main_menu
  else
   if [ $choice -eq 4 ]; then
    echo $performance | Sudo tee /sys/class/backlight/intel_backlight/brightness
    main_menu
   else
    if [ $choice -eq 5 ]; then
     echo $maxsetting | Sudo tee /sys/class/backlight/intel_backlight/brightness
     main_menu
    else
     if [ $choice -eq 6 ]; then
      exit;
     else
      echo -e "Please enter the NUMBER of your choice: \c"
      choice = 7
     fi
    fi
   fi
  fi
 fi
fi
done
2
Aaron Nichols

目をリラックスさせるのに役立つ短いラインを以下に示します。その行でcrontaabを作成するか、スクリプトを作成するだけです

xrandr --output VGA1 --brightness 0.5; sleep 20; xrandr --output VGA1 --brightness 1
2
Cristianpark

ddccontrol は、外部モニターのバックライトを制御するための別のオプションです。ここで、外部モニターのバックライトをその電力の50%に設定できます。

ddccontrol -p -r 0x10 -w 50

Redshift 処理 明るさの変化 の方法を改善するために、この問題の可能な解決策を探しました。そこから、デバイス間の互換性を向上させる Linuxカーネルのパッチセット があり、ラップトップと外部画面がsysfsを介して同様に機能することがわかりました。

それまでの間、ddccontrolはここで私のために機能する唯一のものです。いつものように、Arch wikiには 適切な全体的なドキュメント もあります。

1
anarcat

xbacklightを使用したインタラクティブなncursesのようなUI

貧しい男のncurses。 hを押すと10%減少し、lを押すと10%増加します。次に、現在の輝度を表示します。

xback() (
  done=false;
  echo "less: h, more: l, quit: q"
  while ! $done; do
    read -rsn1 key
    if [ "$key" = h ]; then
      xbacklight -dec 10
    Elif [ "$key" = l ]; then
      xbacklight -inc 10
    Elif [ "$key" = q ]; then
      done=true
    fi
    printf "\r$(xbacklight -get) "
  done
)