Lenovo ThinkPad X1 Yoga OLED Parlaklığı


13

X1 Yoga OLED'imde 16.04 kullanıyorum.

Ekranın parlaklığını hiç değiştiremiyorum, her zaman maksimum parlaklık üzerinde görünüyor. Denedim:

  • Fn+ F5/F6
  • xbacklight -set 50(ve 100 ve 0 ve 20, ...) /xbacklight -dec 10

Xorg'da GNOME Shell kullanıyorum.

Umarım faydalı yazılım ve sürüm listesi, daha fazlasına ihtiyacınız varsa yorumlarda bana bildirin.

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

1
Aynı dizüstü bilgisayar ve aynı sorun var, bu yöntemi denedim ama elde: xrandr - çıkış eDP1 - parlaklık. 5 uyarı: çıkış eDP1 bulunamadı; xrandr yoksayılıyor: Gama ayarı için crtc gerekir.
user240891

Bazıları yararlı bulabilecek bir güncelleme - şimdi Wayland'da çalışan bir çözüm var, github.com/udifuchs/icc-brightness ; icc-brightness watchve normal parlaklık tuşlarınızı kullanın. Yaşasın!
orangenarwhals

Yanıtlar:


11

OLED ekranlı arka ışık yoktur. Yani normal yöntemler işe yaramıyor. Ekran parlaklığını şu yollarla ayarlayın:

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

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

sayı 0 ile 1 arasında herhangi bir şey olabilir


Doğru. GNOME / sürücü yöneticilerinin "SUN_ICON MINUS_SIGN anahtarına bastığımda ekranımın kararmasını bekliyorum" kullanıcı arayüzü sorununu çözüp çözmediğini merak ediyorum. henüz 16.04'te gelip gelmeyecek ve ne zaman gelecek.
joar

Aynı dizüstü bilgisayar ve aynı sorun var, bu yöntemi denedim ama elde: xrandr - çıkış eDP1 - parlaklık. 5 uyarı: çıkış eDP1 bulunamadı; xrandr yoksayılıyor: Gama ayarı için crtc gerekir.
user240891

3
Yeni bir Linux Dağıtımı kurdum ve kendi cevabımı aramak zorunda kaldım, bu yüzden yorumunuzu buldum. Cihazınız farklı şekilde çağrılırsa, kendi başına xrandr girin. Diğer şeylerin yanı sıra, aygıt adını çıktılar. Benimkine şimdi denir: örneğin eDP-1.
P.Meyer

11

Parlaklık düğmelerine basarken xrandr komutunu çalıştırmanın bir yolunu arıyordum. Bunun için özel acpi etkinlikleri oluşturdum (burada daha fazla bilgi: https://help.ubuntu.com/community/LaptopSpecialKeys ). Bu hala bir hack ve uygun bir çözüm değil, ama benim için çalışıyor:

Üç dosya oluşturdum / etc / acpi / events / yoga-brightness-up:

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

ve / etc / acpi / events / yoga parlaklığını azaltma:

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

ve son olarak /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"

hangi ağır dosya asus-keyboard-backlight.sh ve bilgi esinlenerek https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/660901 xrandr Kök- için erişim sorunu.

Yazarak acpi'yi yeniden başlatmayı unutmayın

sudo service acpid reload

Umarım bu yardımcı olur ;-)


Aynı dizüstü bilgisayar ve aynı sorun var, bu yöntemi denedim ama elde: xrandr - çıkış eDP1 - parlaklık. 5 uyarı: çıkış eDP1 bulunamadı; xrandr yoksayılıyor: Gama ayarı için crtc gerekir.
user240891

2
Ben işe yaradı, ama "eDP-1" yerine "eDP1" belirtmek zorunda kaldı. Ayrıca, "chmod a + rx /etc/acpi/yoga-brightness.sh" yapmanız gerektiğini belirtmek gerekir. Teşekkürler!
Dan Christensen

5

Pürüzsüz Parlaklık Kontrolü

( Güncelleme: Bunu Github'a otomatikleştirmek için provizyon betiğini yükledim .)

Bu komut dosyası, Ivo Blöchliger'in geçici çözümüne dayanmaktadır . Pahalı dizüstü bilgisayarımın ucuz görünmesinden nefret ederim, bu yüzden linux dışı meslektaşlarımla rekabet etmek için parlaklık değerleri arasında yumuşak bir geçişe ihtiyacım var.

Bu, OLED panelli bir Lenovo ThinkPad X1 Yoga'da (2. Nesil) Linux Mint 18.3 ve Ubuntu 16.04.3 için oluşturulmuş ve test edilmiştir.

/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

Önceki parlaklık işleyicilerini çıkarın ve son olarak sudo service acpid reload


Yukarıdaki komut dosyasını çok kullanıcılı olacak şekilde güncelledim ve GDM xauthority location gist.github.com/jackinloadup/c98682416f0363b9a6c6d4daf13c6c32
user9221 1:18 '

3

GÜNCELLEME - 12 Temmuz 2019 -

Şimdi Wayland için güzel bir senaryo var ve parlaklık tuşlarımı kullanabilirim.

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

Aşağıdaki komut dosyası kesmek, manzarayı dikey moda geçirdiğinde (veya tam tersi) ekranı tam parlaklığa yükseltir ve dokunmatik ekran GUI parlaklık kontrolüne yanıt vermez. Wayland çözümünden gerçekten memnunum.

Eski

Ubuntu 18.10 kurulumumda @Redsandro çözümünün çalışması için birkaç ince ayar yapmam gerekiyordu.

Özellikle, Xauth kök geçici çözümü artık çalışmıyor (@Ivo B! 'Dan bahsettiğiniz için teşekkürler) .Xauthority. Yeni dosya konumunu bulmak için:

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

Bu nedenle ilgili satırı değiştiriyoruz:

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

Ayrıca, ben de değiştirmek eDP1zorunda kaldı eDP-1.

Toplamda bu, üç hatta değişikliklere neden oldu.


Ek Notlar

Hata ayıklamak için kullandım

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

örneğin bulduğum iki hata için (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.

NOT ayrıca, bu çözüm wayland çalışmıyor! Xrandr yollarda çalışmadığı için. Giriş yaptığınızda, wayland yerine xorg'u seçtiğinizden emin olun),

(Benim için biraz talihsiz, firefox touch etkinlikleri sadece Wayland'da çalışıyor, bu yüzden parlaklık vs firefox touchscroll arasında seçim yapmak zorundayım. Bunun neden olduğundan emin değilim).

(Bu cevap bir yorum olurdu, ancak kredim eksik.)


1

Ben Ubuntu MATE 17.04 yukarıdakine benzer bir şey yaptım:

  1. cat $MYDIR/scrbr.property= 0.5 (scrbr = ekran parlaklığı)
  2. Bir senaryo oluşturuldu 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. İçin anahtarları WinKey + Upyeniden eşleme scrbr.sh --upve için aynı --down.

  2. Kar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.