Йога Lenovo ThinkPad X1 яркость OLED

Я работаю 16.04 на моей Йоге X1 OLED.

Я не могу изменить яркость экрана вообще, это, кажется, находится на максимальной яркости все время. Я попробовал:

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

Я использую GNOME Shell в Xorg.

Надо надеяться, полезный список программного обеспечения и версий, скажите мне в комментариях при необходимости в больше.

gnome-shell 3.18.5-0ubuntu0.1
tlp         0.9-1~xenial
tp-smapi    0.41-1
11
задан 14 September 2016 в 11:31

6 ответов

Нет никакой подсветки с экраном OLED. Таким образом, нормальные методы не работают. Скорректируйте яркость экрана посредством:

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

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

число может быть чем-либо между 0 и 1

10
ответ дан 23 November 2019 в 03:53

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

я создал три файла,/etc/acpi/events/yoga-brightness-up:

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 / + ошибка/660901 для xrandr проблемы корневого доступа.

не забывают перезапускать acpi путем ввода

sudo service acpid reload

, я надеюсь, это помогает ;-)

9
ответ дан 23 November 2019 в 03:53

Я сделал подобную вещь к вышеупомянутому в ПОМОЩНИКЕ Ubuntu 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. Прибыль.

1
ответ дан 23 November 2019 в 03:53

ОБНОВЛЕНИЕ - 12 июля 2019 -

существует теперь хороший сценарий для Уэйленда, и я могу использовать свои ключи яркости.

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

взлом сценария ниже также сползал бы экран к максимальной яркости, когда среда переключателя к режиму портрета (или наоборот) и не отвечает на регулировку яркости GUI с сенсорным экраном. Настолько действительно довольный решением Уэйленда.

Старый

мне были нужны несколько тонких настроек, чтобы заставить @Redsandro решение работать над моей установкой человечности 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, не Уэйленд),

(Немного неудачный что касается меня, сенсорные события Firefox только работают в Уэйленде, таким образом, я должен выбрать между яркостью по сравнению с Firefox touchscroll. Не уверенный, почему это все же).

(Этот ответ был бы комментарием, но я испытываю недостаток в кредитах.)

2
ответ дан 23 November 2019 в 03:53

Гладкая регулировка яркости

(Обновление: я загрузил сценарий условия для автоматизации этого к GitHub.)

Этот сценарий основан на обходном решении Ivo Blöchliger. Я не хотел бы в свой дорогой ноутбук выглядеть дешевым, таким образом, мне нужен плавный переход между значениями яркости для конкуренции с моими коллегами не-Linux.

Это создается для и тестируется на Linux Mint 18.3 и Ubuntu 16.04.3 на Йоге Lenovo ThinkPad X1 (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

4
ответ дан 23 November 2019 в 03:53

После 4 лет использования различных решений в этой ветке пришло время отблагодарить сообщество и предложить свою лучшую альтернативу.

Многие из решений здесь включают перехватчики ACPI, которые, хотя и являются «хорошим взломом», они просто компрометируют. Если вы применяете изменения яркости мгновенно, вы ставите под угрозу плавную яркость. Если вы делаете плавную яркость, вы ставите под угрозу надежность (вы получаете мерцание, когда вы нажимаете кнопки яркости до того, как закончились эффекты предыдущего нажатия), и что, если яркость изменяется не с помощью клавиш яркости, а средой рабочего стола (например, затемнение дисплея, если простоя)?

oled-linux — это проект, целью которого является решение всех этих и многих других проблем: плавная регулировка яркости, надежность, поддержка ночного освещения, поддержка нескольких дисплеев и, в довершение всего, имеет хорошую документацию в README.md.

Теперь мы можем полностью раскрыть потенциал наших замечательных OLED-дисплеев и в Linux. Я не могу выразить достаточно радости, которую я испытал, когда увидел, что дисплей тускнеет из-за таймера простоя среды рабочего стола ^.^

0
ответ дан 12 May 2020 в 18:40

Другие вопросы по тегам:

Похожие вопросы: