Lenovo ThinkPad X1 Yoga OLED Яркость

Установите flash в любом случае ... но только для видео, чтобы «загрузить» на странице ... затем перейдите в / tmp / и для видео (подсказка: выполните поиск предварительного просмотра видео) и откройте загруженное видео например, в VLC: P Возможно, вы захотите также добавить «блокировщик Flash» в свой браузер, чтобы предотвратить нежелательные нежелательные объекты ...

1
задан 14 September 2016 в 21:31

3 ответа

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

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

event=video/brightnessup BRTUP 00000086
action=/etc/acpi/yoga-brightness.sh up
[d3 ] и / 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://help.ubuntu.com/community/LaptopSpecialKeys для проблемы с root-доступом xrandr.

[d7 ] Не забудьте перезапустить acpi, набрав

sudo service acpid reload

Надеюсь, это поможет; -)

9
ответ дан 23 May 2018 в 06:08
  • 1
    У меня такой же ноутбук и та же проблема, попробовал этот метод, но я получаю: xrandr --output eDP1 --brightness .5 предупреждение: выход eDP1 не найден; игнорирование xrandr: требуется crtc для включения гаммы. – user240891 14 April 2017 в 22:42
  • 2
    Я получил это, чтобы работать, но должен был указать «eDP1». вместо «eDP-1». Кроме того, стоит упомянуть, что вам нужно сделать «chmod a + rx /etc/acpi/yoga-brightness.sh" ;. Благодаря! – Dan Christensen 27 May 2017 в 01:05

Smooth Brightness Control

(Обновление: я загрузил сценарий предоставления, чтобы автоматизировать его в 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): [!d8 ]

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

2
ответ дан 23 May 2018 в 06:08

В Ubuntu MATE 17.04 я сделал аналогичную вещь:

cat $MYDIR/scrbr.property = 0.5 (scrbr = яркость экрана) Создал скрипт 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
cat $MYDIR/scrbr.property = 0.5 (scrbr = яркость экрана) Прибыль.
1
ответ дан 23 May 2018 в 06:08

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

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