Lenovo ThinkPad X1 Yoga OLEDの明るさ


12

X1 Yoga OLEDで16.04を実行しています。

画面の明るさをまったく変更できません。常に最大の明るさになっているようです。私はもう試した:

  • Fn+ F5/F6
  • xbacklight -set 50(および100、および0、および20、...)/xbacklight -dec 10

XorgでGNOME Shellを使用しています。

ソフトウェアとバージョンの便利なリストを願っています。もっと必要な場合はコメント欄で教えてください。

gnome-shell 3.18.5-0ubuntu0.1
tlp         0.9-1~xenial
tp-smapi    0.41-1

1
私は同じラップトップと同じ問題を抱えており、この方法を試しましたが、次のようになります:xrandr --output eDP1 --brightness .5 warning:output eDP1 not found; xrandrを無視:ガンマをオンにするにはcrtcが必要です。
user240891

更新が役立つと思われる場合があります。現在、Waylandで機能するソリューションがあります。github.com / udifuchs / icc-brightness ; icc-brightness watchその後、通常の輝度キーを使用します。わーい!
orangenarwhals

回答:


10

OLEDスクリーンにはバックライトはありません。したがって、通常の方法は機能しません。次の方法で画面の明るさを調整します。

xrandr --output eDP1 --brightness .5  # dim to half 

xrandr --output eDP1 --brightness 1  # no dimming

番号は0から1までの任意の値にすることができます


正解です。GNOME /ドライバーメンテナーが、「SUN_ICON MINUS_SIGNキーを押すと画面が暗くなると思われる」というユーザーインターフェースの問題に取り組んでいるのだろうか。まだ、16.04に到着するかどうか、いつ到着するか。
ジョア

私は同じラップトップと同じ問題を抱えており、この方法を試しましたが、次のようになります:xrandr --output eDP1 --brightness .5 warning:output eDP1 not found; xrandrを無視:ガンマをオンにするにはcrtcが必要です。
user240891

3
新しいLinuxディストリビューションをインストールしたばかりで、自分の答えを調べる必要があったので、コメントを見つけました。デバイスの呼び出し方法が異なる場合は、xrandrのみを入力してください。とりわけ、デバイス名を出力します。私の名前はeDP-1などです。
P.Meyer

11

輝度ボタンを押したときにxrandrコマンドを実行する方法を探していました。そのためのカスタムacpiイベントを作成しました(詳細はhttps://help.ubuntu.com/community/LaptopSpecialKeysをご覧ください)。これはまだハックであり、適切な解決策ではありませんが、私にとってはうまくいきます:

/ etc / acpi / events / yoga-brightness-upの3つのファイルを作成しました。

event=video/brightnessup BRTUP 00000086
action=/etc/acpi/yoga-brightness.sh up

および/ etc / acpi / events / yoga-brightness-down:

event=video/brightnessdown BRTDN 00000087
action=/etc/acpi/yoga-brightness.sh down

そして最後に/etc/acpi/yoga-brightness.sh:

#!/bin/sh

# Where the backlight brightness is stored
BR_DIR="/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/"


test -d "$BR_DIR" || exit 0

MIN=0
MAX=$(cat "$BR_DIR/max_brightness")
VAL=$(cat "$BR_DIR/brightness")

if [ "$1" = down ]; then
    VAL=$((VAL-71))
else
    VAL=$((VAL+71))
fi

if [ "$VAL" -lt $MIN ]; then
    VAL=$MIN
elif [ "$VAL" -gt $MAX ]; then
    VAL=$MAX
fi

PERCENT=`echo "$VAL / $MAX" | bc -l`

export XAUTHORITY=/home/ivo/.Xauthority  # CHANGE "ivo" TO YOUR USER
export DISPLAY=:0.0

echo "xrandr --output eDP-1 --brightness $PERCENT" > /tmp/yoga-brightness.log
xrandr --output eDP-1 --brightness $PERCENT

echo $VAL > "$BR_DIR/brightness"

これは、asus-keyboard-backlight.shファイルとhttps://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/660901のxrandrルートに関する情報に大きく影響を受けています。アクセスの問題。

入力してacpiを再起動することを忘れないでください

sudo service acpid reload

これが役立つことを願っています;-)


私は同じラップトップと同じ問題を抱えており、この方法を試しましたが、次のようになります:xrandr --output eDP1 --brightness .5 warning:output eDP1 not found; xrandrを無視:ガンマをオンにするにはcrtcが必要です。
user240891

2
これを機能させましたが、「eDP-1」ではなく「eDP1」を指定する必要がありました。また、「chmod a + rx /etc/acpi/yoga-brightness.sh」を実行する必要があることも言及する価値があります。ありがとう!
ダンクリステンセン

5

スムーズな輝度制御

更新:これ自動化するプロビジョニングスクリプトをGithubにアップロードました。)

このスクリプトは、IvoBlöchligerによる回避策に基づいています。高価なラップトップが安く見えるのが嫌いなので、Linux以外の同僚と競争するには、輝度値間のスムーズな移行が必要です。

これは、OLEDパネルを搭載したLenovo ThinkPad X1 Yoga(第2世代)上のLinux Mint 18.3およびUbuntu 16.04.3用に作成およびテストされています。

/etc/acpi/events/oled-brightness-up (644):

event=video/brightnessup BRTUP 00000086
action=/etc/acpi/oled-brightness.sh up

/etc/acpi/events/oled-brightness-down (644):

event=video/brightnessdown BRTDN 00000087
action=/etc/acpi/oled-brightness.sh down

/etc/acpi/oled-brightness.sh (755):

#!/bin/bash
# Smooth brightness control
# Change "redsandro" in the line below to your username
export XAUTHORITY=/home/redsandro/.Xauthority
export DISPLAY=:0.0

OLED_BR=`xrandr --verbose | grep -i brightness | cut -f2 -d ' '`
CURR=`LC_ALL=C /usr/bin/printf "%.*f" 1 $OLED_BR`

MIN=0
MAX=1.2

if [ "$1" == "up" ]; then
    VAL=`echo "scale=1; $CURR+0.1" | bc`
else
    VAL=`echo "scale=1; $CURR-0.1" | bc`
fi

if (( `echo "$VAL < $MIN" | bc -l` )); then
    VAL=$MIN
elif (( `echo "$VAL > $MAX" | bc -l` )); then
    VAL=$MAX
else
    if [ "$1" == "up" ]; then
        for I in {1..10..1}; do xrandr --output eDP1 --brightness `echo "scale=2; $I/100+$CURR" | bc` 2>&1 >/dev/null | logger -t oled-brightness; done
    else
        for I in {1..10..1}; do xrandr --output eDP1 --brightness `echo "scale=2; $CURR-$I/100" | bc` 2>&1 >/dev/null | logger -t oled-brightness; done
    fi
fi

# Set Intel backlight to fake value
# to sync OSD brightness indicator to actual brightness
INTEL_PANEL="/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/"
if [ -d "$INTEL_PANEL" ]; then
    PERCENT=`echo "scale=4; $VAL/$MAX" | bc -l`
    INTEL_MAX=$(cat "$INTEL_PANEL/max_brightness")
    INTEL_BRIGHTNESS=`echo "scale=4; $PERCENT*$INTEL_MAX" | bc -l`
    INTEL_BRIGHTNESS=`LC_ALL=C /usr/bin/printf "%.*f" 0 $INTEL_BRIGHTNESS`
    echo $INTEL_BRIGHTNESS > "$INTEL_PANEL/brightness"
fi

以前の明るさハンドラを削除し、最後に、 sudo service acpid reload


上記のスクリプトをマルチユーザー対応に更新し、GDM xauthority location gist.github.com/jackinloadup/c98682416f0363b9a6c6d4daf13c6c32
user9221

3

更新-2019年7月12日-

Waylandには素晴らしいスクリプトがあり、輝度キーを使用できます。

https://github.com/udifuchs/icc-brightness and ./icc-brightness watch

以下のスクリプトハックは、横向きから縦向きモードに切り替えたときに(またはその逆に)画面を最高の明るさに傾斜させ、タッチスクリーンGUIの明るさ制御に応答しません。Waylandソリューションに本当に満足しています。

古い

@Redsandroソリューションをubuntu 18.10インストールで機能させるには、いくつかの調整が必要でした。

具体的には、.Xauthorityファイルが存在しないため、Xauthルートの回避策は機能しません(@Ivo B!に言及してくれてありがとう)。新しいファイルの場所を見つけるには:

$ xauth info
Authority file:       /run/user/1000/gdm/Xauthority

したがって、関連する行を変更します。

-OLD: export XAUTHORITY=/home/redsandro/.Xauthority
+NEW: export XAUTHORITY=/run/user/1000/gdm/Xauthority

さらに、私もに変更eDP1する必要がありましたeDP-1

これにより、合計で3行の変更が行われました。


その他の注意事項

デバッグするために、私は使用しました

rui@chaiX1YG2:/var/log$ $ tail -f /var/log/syslog | grep oled-br

例えば、私が見つけた2つのそれぞれのエラー(XauthorityとeDP)

Jan 16 13:03:01 chaiX1YG2 oled-brightness: Can't open display :0.0
Jan 16 13:03:01 chaiX1YG2 oled-brightness: No protocol specified
Jan 16 13:23:46 chaiX1YG2 oled-brightness: warning: output eDP1 not found; ignoring
Jan 16 13:23:46 chaiX1YG2 oled-brightness: xrandr: Need crtc to set gamma on.

また、このソリューションはウェイランドでは機能しません!xrandrはウェイランドでは機能しないため。したがって、ログインするときは、ウェイランドではなくxorgを選択してください)、

(私にとっては少し残念ですが、FirefoxのタッチイベントはWaylandでのみ機能するため、明るさを比較するか、Firefoxのタッチスクロールを選択する必要があります。その理由はまだわかりません)。

(この答えはコメントだっただろうが、私は信用に欠けている。)


1

Ubuntu MATE 17.04で上記と同様のことを行いました。

  1. cat $MYDIR/scrbr.property= 0.5 (scrbr =画面の明るさ)
  2. スクリプトを作成しましたscrbr.sh

`` `

#!/bin/bash

ACTION=$1

PROP_FILE=$MYDIR/scrbr.property
BRIGHT=$(cat $PROP_FILE)

if [[ "$ACTION" == "--up" ]]; then
        SYM="+"
elif [[ "$ACTION" == "--down" ]]; then
        SYM="-"
fi

BRIGHT=$(echo "$BRIGHT $SYM 0.1" | bc)

# Not less than 0
[[ $BRIGHT == -* ]] && BRIGHT=0

echo $BRIGHT > $PROP_FILE

xrandr --output eDP-1 --brightness $BRIGHT
  1. キーWinKey + Upscrbr.sh --upに再マップし、についても同じです--down

  2. 利益。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.