Độ sáng OLED của Lenovo ThinkPad X1


12

Tôi đang chạy 16.04 trên OLED X1 Yoga của mình.

Tôi hoàn toàn không thể thay đổi độ sáng của màn hình, dường như nó luôn ở độ sáng tối đa. Tôi đã thử:

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

Tôi đang sử dụng Gnome Shell trong Xorg.

Hy vọng danh sách hữu ích của phần mềm và phiên bản, cho tôi biết trong phần bình luận nếu bạn cần thêm.

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

1
Tôi có cùng một máy tính xách tay và cùng một vấn đề, đã thử phương pháp này nhưng tôi nhận được: xrandr --output eDP1 --brightness .5 cảnh báo: không tìm thấy eDP1; bỏ qua xrandr: Cần crtc để đặt gamma.
user240891

Một bản cập nhật có thể thấy hữu ích - hiện có một giải pháp hoạt động trên Wayland, github.com/udifuchs/icc-brightness ; icc-brightness watchvà sau đó sử dụng các phím độ sáng thông thường của bạn. Yay!
đười ươi

Câu trả lời:


10

Không có đèn nền với màn hình OLED. Vì vậy, các phương pháp bình thường không hoạt động. Điều chỉnh độ sáng màn hình bằng cách:

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

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

số có thể là bất cứ thứ gì từ 0 đến 1


Chính xác. Tôi tự hỏi liệu các nhà bảo trì trình điều khiển / Gnome đã giải quyết vấn đề giao diện người dùng "Tôi hy vọng màn hình của mình bị mờ khi nhấn phím SUN_ICON MINUS_SIGN." chưa, và nếu và khi nào nó sẽ đến vào 16.04.
tham gia

Tôi có cùng một máy tính xách tay và cùng một vấn đề, đã thử phương pháp này nhưng tôi nhận được: xrandr --output eDP1 --brightness .5 cảnh báo: không tìm thấy eDP1; bỏ qua xrandr: Cần crtc để đặt gamma.
dùng240891

3
Tôi vừa cài đặt một bản phân phối Linux mới và phải tìm kiếm câu trả lời của riêng tôi, vì vậy tôi đã tìm thấy nhận xét của bạn. Nếu thiết bị của bạn được gọi khác đi, thì chỉ cần nhập xrandr. Nó sẽ, trong số những thứ khác, xuất ra tên thiết bị. Của tôi được gọi ngay bây giờ: eDP-1 chẳng hạn.
P.Meyer

11

Tôi đã tìm cách để chạy lệnh xrandr khi nhấn các nút độ sáng. Tôi đã tạo các sự kiện acpi tùy chỉnh cho điều đó (thông tin thêm về điều đó tại đây: https://help.ubfox.com/community/L mỏi SpecialKeys ). Đây vẫn là một hack và không có giải pháp thích hợp, nhưng nó hoạt động với tôi:

Tôi đã tạo ba tệp, / etc / acpi / event / yoga-Bright-up:

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

và / etc / acpi / event / yoga-độ sáng xuống:

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

và cuối cùng /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"

được lấy cảm hứng rất nhiều từ tệp asus-keyboard-backlight.sh và thông tin trên https://bugs.launchpad.net/ubfox/+source/xserver-xorg-video-intel/+bug/660901 cho root xrandr- vấn đề truy cập.

Đừng quên khởi động lại acpi bằng cách gõ

sudo service acpid reload

Tôi hi vọng cái này giúp được ;-)


Tôi có cùng một máy tính xách tay và cùng một vấn đề, đã thử phương pháp này nhưng tôi nhận được: xrandr --output eDP1 --brightness .5 cảnh báo: không tìm thấy eDP1; bỏ qua xrandr: Cần crtc để đặt gamma.
user240891

2
Tôi đã làm việc này, nhưng phải chỉ định "eDP1" thay vì "eDP-1". Ngoài ra, điều đáng nói là bạn cần thực hiện "chmod a + rx /etc/acpi/yoga-brightness.sh". Cảm ơn!
Dan Christensen

5

Kiểm soát độ sáng mịn

( Cập nhật: Tôi đã tải lên tập lệnh cung cấp để tự động hóa tập lệnh này cho Github.)

Kịch bản này dựa trên cách giải quyết của Ivo Blöchliger . Tôi ghét chiếc máy tính xách tay đắt tiền của mình trông rẻ tiền, vì vậy tôi cần một sự chuyển đổi suôn sẻ giữa các giá trị độ sáng để cạnh tranh với các đồng nghiệp không phải linux của tôi.

Điều này được tạo và thử nghiệm trên Linux Mint 18.3 và Ubuntu 16.04.3 trên Lenovo ThinkPad X1 Yoga (Thế hệ 2) với tấm nền 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

Loại bỏ bất kỳ xử lý độ sáng trước đó, và cuối cùng, làm sudo service acpid reload


Tôi đã cập nhật tập lệnh ở trên để trở thành nhiều người dùng có khả năng và xử lý vị trí xa xa GDM gist.github.com/jackinloadup/c98682416f0363b9a6c6d4daf13c6c32
user9221

3

CẬP NHẬT - ngày 12 tháng 7 năm 2019 -

Giờ đây đã có một kịch bản hay cho Wayland và tôi có thể sử dụng các phím độ sáng của mình.

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

Việc hack tập lệnh bên dưới cũng sẽ khiến màn hình chuyển sang độ sáng tối đa khi chuyển chế độ ngang sang chế độ dọc (hoặc ngược lại) và không đáp ứng với điều khiển độ sáng của màn hình cảm ứng-GUI. Vì vậy, thực sự hài lòng với giải pháp Wayland.

Tôi cần một vài điều chỉnh để làm cho giải pháp @Redsandro hoạt động trên bản cài đặt Ubuntu 18.10 của tôi.

Cụ thể, cách giải quyết gốc Xauth không hoạt động (cảm ơn vì đã đề cập rằng @Ivo B!) Vì .Xauthoritytệp không còn tồn tại. Để tìm vị trí tệp mới:

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

Do đó, chúng tôi thay đổi dòng có liên quan:

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

Ngoài ra, tôi cũng phải đổi eDP1sang eDP-1.

Tổng cộng điều này dẫn đến những thay đổi trên ba dòng.


Ghi chú bổ sung

Để gỡ lỗi, tôi đã sử dụng

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

ví dụ: đối với hai lỗi tương ứng tôi đã tìm thấy (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.

LƯU Ý, giải pháp này không hoạt động trong wayland! Vì xrandr không hoạt động trên wayland. Vì vậy, hãy chắc chắn rằng khi bạn đăng nhập, bạn chọn xorg, không phải wayland),

.

(Câu trả lời này sẽ là một nhận xét nhưng tôi thiếu tín dụng.)


1

Tôi đã làm một điều tương tự như trên trong Ubuntu MATE 17.04:

  1. cat $MYDIR/scrbr.property= 0.5 (Scrbr = độ sáng màn hình)
  2. Tạo một kịch bản 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. Phím Remap WinKey + Upđể scrbr.sh --up, và tương tự cho --down.

  2. Lợi nhuận.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.