Lenovo ThinkPad X1 Yoga OLED ความสว่าง


13

ฉันใช้ 16.04 กับ X1 Yoga 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

1
ฉันมีแล็ปท็อปเดียวกันและปัญหาเดียวกันลองใช้วิธีนี้ แต่ฉันได้รับ: xrandr - เอาท์พุท eDP1 - ความสว่าง 0.5 คำเตือน: เอาท์พุท eDP1 ไม่พบ; ไม่สนใจ xrandr: ต้องการ crtc เพื่อเปิดแกมมา
user240891

การอัปเดตบางอย่างอาจเป็นประโยชน์ - มีวิธีแก้ปัญหาที่ใช้งานได้บน 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 - ความสว่าง 0.5 คำเตือน: เอาท์พุท eDP1 ไม่พบ; ไม่สนใจ xrandr: ต้องการ crtc เพื่อเปิดแกมมา
user240891

3
ฉันเพิ่งติดตั้ง Linux Distribution ใหม่และต้องค้นหาคำตอบของฉันเองดังนั้นฉันจึงพบความคิดเห็น หากอุปกรณ์ของคุณถูกเรียกแตกต่างกันเพียงแค่ป้อน xrandr ด้วยตัวเอง มันจะเหนือสิ่งอื่นใดเอาท์พุทชื่ออุปกรณ์ ของฉันถูกเรียกตอนนี้: eDP-1 เช่น
P.Meyer

11

ฉันค้นหาวิธีเรียกใช้คำสั่ง 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

และ / etc / acpi / events / yoga-bright-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/+bug/660901สำหรับราก xrandr ปัญหาการเข้าถึง

อย่าลืมรีสตาร์ท acpi ด้วยการพิมพ์

sudo service acpid reload

ฉันหวังว่านี่จะช่วยได้ ;-)


ฉันมีแล็ปท็อปเดียวกันและปัญหาเดียวกันลองใช้วิธีนี้ แต่ฉันได้รับ: xrandr - เอาท์พุท eDP1 - ความสว่าง 0.5 คำเตือน: เอาท์พุท eDP1 ไม่พบ; ไม่สนใจ xrandr: ต้องการ crtc เพื่อเปิดแกมมา
user240891

2
ฉันได้งานนี้ แต่ต้องระบุ "eDP1" แทนที่จะเป็น "eDP-1" นอกจากนี้ยังเป็นมูลค่าการกล่าวขวัญว่าคุณต้องทำ "chmod a + rx /etc/acpi/yoga-brightness.sh" ขอบคุณ!
Dan Christensen

5

การควบคุมความสว่างที่ราบรื่น

( อัปเดต:ฉันได้อัปโหลดสคริปต์การจัดสรรเพื่อทำให้สิ่งนี้เป็นแบบอัตโนมัติไปยัง Github)

สคริปต์นี้จะขึ้นอยู่กับการแก้ปัญหาโดยIvo Blöchliger ฉันเกลียดแล็ปท็อปราคาแพงของฉันที่จะดูราคาถูกดังนั้นฉันต้องการการเปลี่ยนระหว่างค่าความสว่างเพื่อการแข่งขันกับเพื่อนร่วมงานที่ไม่ใช่ลินุกซ์ของฉัน

สิ่งนี้ถูกสร้างและทดสอบบน Linux Mint 18.3 และ Ubuntu 16.04.3 บน Lenovo ThinkPad X1 Yoga (2nd Gen) พร้อมแผง 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


ฉันอัปเดตสคริปต์ด้านบนเพื่อให้สามารถใช้งานได้หลายผู้ใช้และจัดการตำแหน่ง Xauthority GDM gist.github.com/jackinloadup/c98682416f0363b9a6c6d4daf13c6c32
9221

3

อัปเดต - 12 กรกฎาคม 2019 -

ตอนนี้มีสคริปต์ที่ดีสำหรับ Wayland และฉันสามารถใช้ปุ่มปรับความสว่างของฉัน

https://github.com/udifuchs/icc-brightness./icc-brightness watchและ

แฮ็คสคริปต์ด้านล่างจะปรับหน้าจอเป็นความสว่างเต็มเมื่อสลับแนวนอนเป็นโหมดแนวตั้ง (หรือกลับกัน) และไม่ตอบสนองต่อการควบคุมความสว่างหน้าจอสัมผัส GUI มีความสุขมากกับโซลูชั่น Wayland

เก่า

ฉันต้องการปรับแต่งเล็กน้อยเพื่อให้ @Redsandro solution ทำงานบน 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

นอกจากนี้ผมยังมีการเปลี่ยนแปลงไปeDP1eDP-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.

หมายเหตุด้วยวิธีนี้จะไม่ทำงานใน wayland! xrandr ไม่ทำงานบน wayland เพื่อให้แน่ใจว่าเมื่อคุณเข้าสู่ระบบคุณเลือก xorg ไม่ใช่ wayland)

(โชคร้ายเล็กน้อยสำหรับฉันเหตุการณ์ firefox touch ใช้งานได้ใน Wayland เท่านั้นดังนั้นฉันต้องเลือกระหว่างความสว่างกับ firescox touchscroll ไม่แน่ใจว่าทำไมถึงเป็นเช่นนั้น)

(คำตอบนี้จะเป็นความคิดเห็น แต่ฉันไม่มีเครดิต)


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. กำไร.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.