OLED Яскравість Lenovo ThinkPad X1 для йоги


13

Я бігаю 16.04 на моєму X1 йоді OLED.

Я взагалі не можу змінити яскравість екрана, він, здається, постійно працює на максимальній яскравості. Я спробував:

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

Я використовую Shell GNOME в Xorg.

Сподіваємось, корисний список програмного забезпечення та версій, скажіть мені у коментарях, якщо вам потрібно більше.

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

1
У мене той самий ноутбук і та ж проблема, я пробував цей метод, але я отримую: xrandr - вихідний eDP1 - яскравість .5 попередження: вихід eDP1 не знайдено; ігнорування xrandr: Вам потрібен crtc, щоб увімкнути гаму.
користувач240891

Оновлення, яке може виявитися корисним - є рішення, яке зараз працює на Wayland, github.com/udifuchs/icc-brightness ; icc-brightness watchа потім скористайтеся звичайними клавішами яскравості. Так!
orangenarwhals

Відповіді:


11

Підсвічування з екраном 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.
Joar

У мене той самий ноутбук і та ж проблема, я пробував цей метод, але я отримую: xrandr - вихідний eDP1 - яскравість .5 попередження: вихід eDP1 не знайдено; ігнорування xrandr: Вам потрібен crtc, щоб увімкнути гаму.
користувач240891

3
Щойно я встановив новий дистрибутив Linux, і мені довелося шукати власну відповідь, тому я знайшов ваш коментар. Якщо ваш пристрій викликається по-іншому, просто введіть xrandr самостійно. Він, серед іншого, виведе ім'я пристрою. Шахта називається зараз: наприклад, eDP-1.
P.Meyer

11

Я шукав спосіб запустити команду xrandr при натисканні кнопок яскравості. Я створив для цього власні події acpi (більше інформації про це тут: https://help.ubuntu.com/community/LaptopSpecialKeys ). Це все ще хак і не належне рішення, але це працює для мене:

Я створив три файли / etc / acpi / події / йога-яскравість:

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

та / etc / acpi / події / яскравість йоги:

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 - вихідний eDP1 - яскравість .5 попередження: вихід eDP1 не знайдено; ігнорування xrandr: Вам потрібен crtc, щоб увімкнути гаму.
користувач240891

2
Я почав це працювати, але повинен був вказати "eDP1" замість "eDP-1". Також варто згадати, що вам потрібно зробити "chmod a + rx /etc/acpi/yoga-brightness.sh". Спасибі!
Ден Крістенсен

5

Плавний контроль яскравості

( Оновлення: я завантажив скрипт забезпечення, щоб автоматизувати це в Github.)

Цей сценарій заснований на вирішенні Іво Блохлігера . Мені б не подобалося, щоб мій дорогий ноутбук виглядав дешево, тому мені потрібен плавний перехід між значеннями яскравості, щоб конкурувати з моїми колегами, які не є Linux.

Це створено для тестування на Linux Mint 18.3 та Ubuntu 16.04.3 на Lenovo ThinkPad X1 Yoga (2-й ген.) З панеллю 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

Видаліть усі попередні обробники яскравості та, нарешті, зробіть sudo service acpid reload


Я оновив вищезазначений сценарій, щоб він міг працювати з декількома користувачами і обробляти GDM xauthority location gist.github.com/jackinloadup/c98682416f0363b9a6c6d4daf13c6c32
user9221

3

ОНОВЛЕННЯ - 12 липня 2019 року -

Зараз є хороший сценарій для Wayland, і я можу використовувати свої клавіші яскравості.

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

Злом сценарію нижче також дозволить збільшити екран на повну яскравість при переході пейзажу в портретний режим (або навпаки), а не відповідати на керування яскравістю сенсорного екрана та графічного інтерфейсу. Тож дуже задоволений рішенням Wayland.

Старий

Мені потрібно було декілька налаштувань, щоб рішення @Redsandro працювало на моїй установці ubuntu 18.10.

Зокрема, вирішення кореня Xauth не працює (дякую, що згадуєте, що @ Ivo B!), Оскільки .Xauthorityфайл більше не існує. Щоб знайти нове розташування файлу:

$ 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.

Загалом це призвело до змін у трьох рядках.


Додаткові нотатки

Для налагодження я використав

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

наприклад, для знайдених двох відповідних помилок (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, а не wayland),

(Трохи прикро, як на мене, події дотику до 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 + Upдо scrbr.sh --upі те саме для --down.

  2. Прибуток.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.