回避するには、バグ#1005495(不可能ホットキーを経由してLCDの明るさを変える)、私は私のLCDの明るさを減少させるための1つのコマンドラインを高めるためのクエリと1を持っているしたいと思います。次に、このクエリのそれぞれにホットキーをマップできます。
問題は、コマンドラインでLCDの輝度を増減する方法がわからないことです。あなたは?
回避するには、バグ#1005495(不可能ホットキーを経由してLCDの明るさを変える)、私は私のLCDの明るさを減少させるための1つのコマンドラインを高めるためのクエリと1を持っているしたいと思います。次に、このクエリのそれぞれにホットキーをマップできます。
問題は、コマンドラインでLCDの輝度を増減する方法がわからないことです。あなたは?
回答:
これを行う必要があるもう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)では動作しません。
xbacklight +10; xbacklight -10; xbacklight =50;
ターミナルを開いてこれを入力してください
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->フルブラック.so必要な明るさの値を選択する必要があります。
これはハードウェアレベルで明るさを変えません。randr
マニュアルから:
--brightness brightness
乗算ガンマ現在指定されているフローティング値に出力するように取り付けられたCRTCに値。明るすぎる、または薄暗い出力に役立ちます。ただし、これはソフトウェアのみの変更であり、ハードウェアが実際に輝度を変更するサポートを持っている場合は、おそらくxbacklightを使用することをお勧めします。
次は私のために働く:
echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness
可能な最大値は/sys/class/backlight/intel_backlight/max_brightness
ファイルにあると思います。
intel_backlight
すべてのバックライトに適用するには、アスタリスクに置き換えます。
echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness
。
sudo echo 400 > /sys/class . .. ./brightness
リダイレクトを行うときの@Ray は、エコーではなくシェルによって行われます。また、シェルはsudoではなく通常のユーザーとして実行されます。それが許可を拒否する理由です。ルート権限でファイルに書き込むユーティリティが必要tee
です。これが機能する理由です。
echo 400 | sudo tee /sys/class/backlight/radeon_bl0/brightness
ラディオンAPUとカードの場合
sudo chmod 0646
なりbrightness
ますので、sudo
明るさを設定する必要はありません。
ラップトップの場合、
sudo setpci -s 00:02.0 F4.B=80
を変更80
し[0-FF]
て、最低から最高の明るさを取得します。指定された値は16進数であるため、最大の明るさ80
が得られます50%
。
デスクトップでガンマ補正を行うには(私はテストしていません)、
xgamma -gamma .75
setpci
しませんでしたが機能xgamma
しました。
キーボード制御の明るさのステップは、この方法でも実装できます。
# 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
/sys/class/backlight
方法とは異なり。xbacklight
常に機能するとは限りません。xrandr
ガンマ補正をするだけxrandr
ガンマおよび輝度スクリプトで既に制御されている外部モニターには影響しません。
このスクリプトを作成します。
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
たとえば、もあります)。 acpi_video0
なければならない、常に動作し、それは常に使用可能な物理明るさの完全な範囲を持っていません。それぞれを試して、最大の色域を持つものを「ターゲット」として使用してください/sys/class/backlight/*/brightness
にハードコーディングacpi_video0
する代わりに、使用することを検討してください。ファイルへのパスを一般化することができますが、これは異なる場合がintel_backlight
ありacpi_video0
ます。それは私が私の中で使用されてきたものだ、ここでスクリプト
@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
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55
上記のコードはまだ有効です。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
参照:qdbus、solid、brightness
目をリラックスさせるのに役立つ短いラインを以下に示します。その行でcrontaabを作成するか、スクリプトを作成するだけです
xrandr --output VGA1 --brightness 0.5; sleep 20; xrandr --output VGA1 --brightness 1
上記の回答を使用して、ディスプレイの明るさを変更するためにこのスクリプトを作成しました(ホームディレクトリに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
elif
またはより良いをcase
。また、google.github.io / styleguide / shell.xmlのようなスタイルガイドを読んで、シェルチェックのようなリンターを試してみることをお勧めします。私が何年も前にスクリプトを書き始めたときに、誰かがこれを教えてくれたらと思います。:)
ddccontrolは、外部モニターのバックライトを制御する別のオプションです。ここで、外部モニターのバックライトをその電力の50%に設定できます。
ddccontrol -p -r 0x10 -w 50
この問題の可能な解決策を探して、Redshiftが輝度の変化を処理する方法を改善しました。そこから、Linuxカーネル用のパッチセットがあり、デバイス間の互換性を改善し、ラップトップと外部画面が同様に機能することがわかりましたsysfs
。
それまでの間、ddccontrolはここで私のために機能する唯一のものです。いつものように、Arch wiki にはトピックに関する総合的なドキュメントもあります。
使用するインタラクティブなncursesのようなUI xbacklight
貧しい男の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
)
絶対輝度を設定するには(ラップトップユーザーの場合):
BRIGHTNESS=50 # 0 to 100
dbus-send \
--session \
--type=method_call \
--dest="org.gnome.SettingsDaemon.Power" \
/org/gnome/SettingsDaemon/Power \
org.freedesktop.DBus.Properties.Set \
string:"org.gnome.SettingsDaemon.Power.Screen" \
string:"Brightness" \
variant:int32:$BRIGHTNESS