จะเปลี่ยนแกมม่า / ความสว่าง Xorg ได้อย่างไร?


15

ฉันพยายามเล่นเกม (Deus Ex) ซึ่งฉันต้องแก้ไขความสว่างเนื่องจากมันมืดมากในบรรยากาศของฉัน เกมนี้มีการตั้งค่า "ความสว่าง" แต่เมื่อเร็ว ๆ นี้มันไม่ทำงาน ฉันพยายามที่จะคิดออกว่าจะเปลี่ยนมันและพบว่าทำผลที่คล้ายกันด้วยxgamma xgamma -gamma 5แต่เมื่อใดก็ตามที่ฉันเปลี่ยนการตั้งค่าจะย้อนกลับไปหลังจากผ่านไปเกือบหนึ่งวินาที (ใช่แล้วไฟหน้าจอของฉันก็สว่างขึ้น ฉันจะทำอย่างใดอย่างหนึ่งxgammaตั้งค่าถาวร (หรือถาวร) หรือฉันต้องใช้เครื่องมืออื่นได้อย่างไร

ระบบของฉันเป็นเดสก์ท็อป

ดูเหมือนxrandr --output DVI-0 --brightness 2จะทำแบบเดียวกัน แต่ก็ยังย้อนกลับไปที่ 0 ทุกครั้งที่ฉันใช้การตั้งค่า

ทุกครั้งที่ฉันพยายามเปลี่ยนผลลัพธ์เอาต์พุตต่อไปนี้เติมXorg.0.logไฟล์:

[ 14768.313] (II) RADEON(0): EDID vendor "HWP", prod id 9798
[ 14768.313] (II) RADEON(0): Using hsync ranges from config file
[ 14768.313] (II) RADEON(0): Using vrefresh ranges from config file
[ 14768.313] (II) RADEON(0): Printing DDC gathered Modelines:
[ 14768.313] (II) RADEON(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz eP)
[ 14768.313] (II) RADEON(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[ 14768.313] (II) RADEON(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)

ดังนั้นเห็นได้ชัดว่าจอแสดงผลของฉันได้รับการตรวจซ้ำในแต่ละครั้ง


จอภาพของคุณไม่มีตัวควบคุมฮาร์ดแวร์สำหรับสิ่งนั้น
จอร์แดน

@ jordanm ใช่พวกเขา maxed out หน้าจอไม่เริ่มสว่างมากนัก
Braiam

คำตอบ:


23

โง่ฉัน! ฉันมี xflux เมื่อเปิดใช้งาน fluxgui ทุกครั้งที่ฉันต้องการแก้ไขการตั้งค่า xflux จะเป็นไปตามที่ฉันต้องการ คำสั่งทั้งหมดใช้งานได้เพียงว่า xflux จะคืนค่ากลับคืน

ผู้ที่ต้องการเปลี่ยนแกมม่า / ความสว่าง:

ใช้xrandrเพื่อแสดงรายการผลลัพธ์ของคุณ:

$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
DVI-0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm

ตามที่คุณเห็นผลลัพธ์ของฉันคือDVI-0การเปลี่ยนความสว่าง:

xrandr --output DVI-0 --brightness 2

วิธีเปลี่ยนแกมม่า:

xrandr --output DVI-0 --gamma 2:2:1

3
มี GUI แบบโต้ตอบสำหรับการตั้งค่า xrandr เหล่านี้หรือไม่ ฉันไม่สามารถปรับได้
Fabio A.

@FabioA หากคุณยังไม่พบ GUI คุณอาจต้องการโพสต์คำถามใหม่บนไซต์นี้หรือถามไซต์ Ubuntu
WinEunuuchs2Unix

3

ฉันหวังว่าจะมีโปรแกรมแบบอินเทอร์แอคทีฟบางตัวสำหรับปรับการxrandrตั้งค่า (โดยเฉพาะแกมม่า / ความสว่าง) แต่หาอะไรไม่เจอ

ดังนั้นฉันจึงเขียนเชลล์สคริปต์นี้ซึ่งช่วยให้สามารถปรับความสว่าง / แกมม่าแบบโต้ตอบได้บ้างรวมถึงการบันทึก / เรียกคืนการตั้งค่า

บันทึกไฟล์ที่จะirandr.shทำที่จะทำให้มันปฏิบัติการและทำงานเป็นchmod u+x irandr.sh./irandr.sh <outputname>

d/ f/ D/ F/ j/ k/ J/ Kปุ่มปรับความสว่าง ( d/ f/ D/ F) หรือรังสีแกมมา ( j/ k/ J/ K) การตั้งค่าโดยขั้นตอนที่ 5 (กรณีที่ต่ำกว่า) หรือ 1 (กรณีบน.)

  • s บันทึกการตั้งค่าไปที่ dotfile
  • l โหลดการตั้งค่าจาก dotfile
  • r รีเซ็ตความสว่าง / แกมม่าเป็นค่าเริ่มต้น (1.0)
  • q ลาออก

dotfile ~/irandr-<outputname>.datสำหรับการส่งออกที่ได้รับคือ หากคุณเรียกใช้โดยไม่มีข้อโต้แย้งมันจะแสดงรายการxrandrผลลัพธ์ที่ถูกต้อง

คุณสามารถผนวก-setonlyอาร์กิวเมนต์เข้ากับบรรทัดคำสั่งซึ่งจะอ่านการตั้งค่าสำหรับ dotfile ของจอแสดงผลที่ได้รับอัปเดตจอแสดงผลและออก (อาจเป็นประโยชน์ใน~/.bashrcไฟล์เพื่อตั้งค่าแกมม่า / ความสว่างโดยอัตโนมัติ)

#!/bin/bash
# irandr.sh, by Dale Gass (dale@gass.ca)
# Wed Apr 10 16:43:22 EDT 2019

# Process arguments
if [ "$1" != "" ]
then
    output="$1"
else
    echo "Usage: irandr.sh <outputname> [-setonly]"
    echo "(Settings saved to ~/.xrandr-<outputname>.dat)"
    echo
    echo "Valid outputs:"
    xrandr | egrep -v '^( |Screen)'
    exit 1
fi
setonly=0
if [ "$2" = "-setonly" ]; then setonly=1; fi

# Initialize variables, read for dotfile if exists
cmdhelp="d/f/D/F=brightness j/k/J/K=gamma r=reset s=save l=load q=quit"
brightness=100
gamma=100
dotfile=~/.irandr-"$output".dat
if [ -s "$dotfile"  ]; then read brightness gamma <"$dotfile"; fi
if [ $setonly -eq 0 ]; then 
    echo $cmdhelp
    stty -echo raw intr $'\000' # Allow single character input
fi

# Main loop for setting adjustment
echo 'Bright Gamma'
while :
do
    b=$(bc <<< "scale=2; $brightness/100")  # Make 0.0-1.0
    g=$(bc <<< "scale=2; $gamma/100")
    xrandr --output "$output" --brightness "$b" --gamma "$g:$g:$g"
    printf "\r%4d %4d " $brightness $gamma
    if [ $setonly -eq 1 ]; then echo; exit 0; fi

    read -n1 ch     # Get input character from user
    case $ch in
    d) let brightness=brightness-5;; D) let brightness=brightness-1;;
    f) let brightness=brightness+5;; F) let brightness=brightness+1;;
    j) let gamma=gamma-5;;           J) let gamma=gamma-1;;
    k) let gamma=gamma+5;;           K) let gamma=gamma+1;;
    r) brightness=100; gamma=100;;
    s) echo "$brightness    $gamma" >"$dotfile" && echo -e "Saved\r";;
    l) read brightness gamma <"$dotfile"     && echo -e "Loaded\r";;
    q|$'\003') break;;
    *) echo -e "$cmdhelp\r";;
    esac
done

stty echo -raw intr $'\003' # Undo single character input
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.