Lenovo ThinkPad X1 Yoga OLED Brightness

13

Saya menjalankan 16,04 pada OLED Yoga X1 saya.

Saya tidak dapat mengubah kecerahan layar sama sekali, sepertinya selalu pada kecerahan maksimum. Saya sudah mencoba:

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

Saya menggunakan GNOME Shell di Xorg.

Semoga daftar perangkat lunak dan versi yang berguna, beri tahu saya di komentar jika Anda membutuhkan lebih banyak.

gnome-shell 3.18.5-0ubuntu0.1
tlp         0.9-1~xenial
tp-smapi    0.41-1
joar
sumber
1
Saya memiliki laptop yang sama dan masalah yang sama, mencoba metode ini tetapi saya mendapatkan: xrandr --output eDP1 --brightness .5 peringatan: output eDP1 tidak ditemukan; mengabaikan xrandr: Perlu crtc untuk mengaktifkan gamma.
user240891
Pembaruan yang mungkin bermanfaat - ada solusi yang berfungsi di Wayland sekarang, github.com/udifuchs/icc-brightness ; icc-brightness watchdan kemudian gunakan tombol kecerahan biasa. Yay!
orangenarwhals

Jawaban:

11

Tidak ada cahaya latar dengan layar OLED. Jadi metode normal tidak berfungsi. Sesuaikan kecerahan layar dengan cara:

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

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

jumlahnya bisa antara 0 dan 1

P.Meyer
sumber
Ini benar. Saya bertanya-tanya apakah GNOME / pengelola driver telah mengatasi masalah antarmuka pengguna "Saya berharap layar saya redup ketika saya menekan tombol SUN_ICON MINUS_SIGN." belum, dan jika dan kapan itu akan tiba di 16.04.
joar
Saya memiliki laptop yang sama dan masalah yang sama, mencoba metode ini tetapi saya mendapatkan: xrandr --output eDP1 --brightness .5 peringatan: output eDP1 tidak ditemukan; mengabaikan xrandr: Perlu crtc untuk mengaktifkan gamma.
user240891
3
Saya baru saja menginstal Distribusi Linux baru dan harus mencari jawaban sendiri, jadi saya menemukan komentar Anda. Jika perangkat Anda dipanggil secara berbeda, maka cukup masukkan xrandr dengan sendirinya. Ini akan, antara lain, menampilkan nama perangkat. Milik saya dipanggil sekarang: eDP-1 misalnya.
P.Meyer
11

Saya telah mencari cara untuk menjalankan perintah xrandr ketika menekan tombol kecerahan. Saya membuat acara acpi khusus untuk itu (info lebih lanjut tentang itu di sini: https://help.ubuntu.com/community/LaptopSpecialKeys ). Ini masih merupakan peretasan dan tidak ada solusi yang tepat, tetapi ini berfungsi untuk saya:

Saya membuat tiga file, / etc / acpi / events / yoga-brightness-up:

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

dan / etc / acpi / events / yoga-brightness-down:

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

dan akhirnya /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"

yang sangat terinspirasi oleh file asus-keyboard-backlight.sh dan informasi tentang https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/660901 untuk xrandr root- masalah akses.

Jangan lupa untuk me-restart acpi dengan mengetik

sudo service acpid reload

Saya harap ini membantu ;-)

Ivo Blöchliger
sumber
Saya memiliki laptop yang sama dan masalah yang sama, mencoba metode ini tetapi saya mendapatkan: xrandr --output eDP1 --brightness .5 peringatan: output eDP1 tidak ditemukan; mengabaikan xrandr: Perlu crtc untuk mengaktifkan gamma.
user240891
2
Saya mendapatkan ini untuk bekerja, tetapi harus menentukan "eDP1" bukannya "eDP-1". Juga, perlu disebutkan bahwa Anda perlu melakukan "chmod a + rx /etc/acpi/yoga-brightness.sh". Terima kasih!
Dan Christensen
5

Kontrol Kecerahan Halus

( Pembaruan: Saya telah mengunggah skrip ketentuan untuk mengotomatisasi ini ke Github.)

Script ini didasarkan pada solusi oleh Ivo Blöchliger . Saya benci laptop mahal saya terlihat murah, jadi saya perlu transisi yang mulus antara nilai-nilai kecerahan untuk bersaing dengan rekan non-linux saya.

Ini dibuat untuk dan diuji pada Linux Mint 18.3 dan Ubuntu 16.04.3 pada Lenovo ThinkPad X1 Yoga (2nd Gen) dengan panel OLED.

/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

Hapus penanganan kecerahan sebelumnya, dan akhirnya, lakukan sudo service acpid reload

Redsandro
sumber
Saya memperbarui skrip di atas untuk menjadi multi-pengguna yang mampu dan menangani lokasi xauthority GDM, gist.github.com/jackinloadup/c98682416f0363b9a6c6d4daf13c6c32
user9221
3

UPDATE - 12 Juli 2019 -

Sekarang ada skrip yang bagus untuk Wayland, dan saya bisa menggunakan tombol kecerahan saya.

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

Script hack di bawah ini juga akan meningkatkan layar ke kecerahan penuh ketika beralih landscape ke mode potret (atau sebaliknya) dan tidak menanggapi kontrol kecerahan layar sentuh-GUI. Sangat senang dengan solusi Wayland.

Tua

Saya perlu beberapa penyesuaian untuk membuat solusi @Redsandro berfungsi pada Ubuntu 18,10 saya instal.

Secara khusus, solusi root Xauth tidak berfungsi (terima kasih telah menyebutkan bahwa @Ivo B!) Sebagai .Xauthorityfile tidak ada lagi. Untuk menemukan lokasi file baru:

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

Karena itu kami mengubah baris yang relevan:

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

Selain itu, saya juga harus berubah eDP1menjadi eDP-1.

Total ini menyebabkan perubahan pada tiga baris.


Catatan tambahan

Untuk men-debug, saya menggunakan

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

mis. untuk dua kesalahan masing-masing yang saya temukan (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.

CATATAN juga, solusi ini tidak berfungsi di jalan! Karena xrandr tidak bekerja di darat. Jadi pastikan ketika Anda masuk, Anda memilih xorg, bukan wayland),

(Agak disayangkan bagi saya, firefox touch events hanya berfungsi di Wayland, jadi saya harus memilih antara brightness vs firefox touchscroll. Belum yakin mengapa itu belum).

(Jawaban ini mungkin komentar tapi saya kurang kredit.)

orangenarwhals
sumber
1

Saya melakukan hal serupa dengan yang di atas di Ubuntu MATE 17.04:

  1. cat $MYDIR/scrbr.property= 0.5 (scrbr = kecerahan layar)
  2. Membuat skrip 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. Remap kunci WinKey + Upuntuk scrbr.sh --up, dan sama untuk --down.

  2. Keuntungan.

vivri
sumber