วิธีการตั้งค่าความละเอียดที่กำหนดเอง?


77

ฉันพยายามใช้xrandrเพื่อตั้งค่า 1680x1050 เป็นโหมดใหม่เป็นเอาต์พุต VGA แต่มันบอกว่า:

sudo xrandr --addmode VGA-0 1680
X Error of failed request:  BadMatch (invalid parameter attributes)
Major opcode of failed request:  140 (RANDR)
Minor opcode of failed request:  18 (RRAddOutputMode)
Serial number of failed request:  35
Current serial number in output stream:  36

คำตอบ:


128

ขั้นแรกให้สร้าง "modeline" โดยใช้cvt
Syntax คือ: cvt width height heightrate

cvt 1680 1050 60

สิ่งนี้ให้คุณ:

# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
Modeline "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

ตอนนี้บอกสิ่งนี้กับxrandr :

xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

จากนั้นคุณสามารถเพิ่มลงในตารางความละเอียดที่เป็นไปได้ของผลลัพธ์ที่คุณเลือก:

xrandr --addmode VGA-0 1680x1050_60.00

การเปลี่ยนแปลงจะหายไปหลังจากรีบู๊ตเพื่อตั้งค่าความละเอียดอย่างต่อเนื่องให้สร้างไฟล์ที่~/.xprofileมีเนื้อหา:

#!/bin/sh
xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
xrandr --addmode VGA-0 1680x1050_60.00

21
VGA-0อุปกรณ์เชื่อมต่ออาจจะไม่ หากคุณได้รับข้อความxrandr: cannot find output "VGA-0"ให้ลองเรียกใช้คำสั่งต่อไปนี้: xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/"(source: xrandr on ArchWiki ) ผลลัพธ์ของคำสั่งนั้นควรเป็นตัวระบุอุปกรณ์ที่ถูกต้อง
สาม

10
คุณไม่จำเป็นต้องมี sudo กับ xrandr
Panther

2
ฉันต้องการเพิ่มว่าฉันมีข้อผิดพลาดเดียวกัน - และข้างต้นไม่สามารถแก้ปัญหาได้เลย
TellMe ทำไม

3
หากคุณอยู่บน VM จอแสดงผลมักจะVirtual1แทน VGA-0
CyberEd

5
คุณต้องเปลี่ยน VGA-0 ด้วยการเชื่อมต่อจอภาพของคุณ xrandr --listmonitorsใช้ ดูวิธีการแก้ไขข้อผิดพลาด 'xrandr: ไม่พบเอาต์พุต“ VGA1”'
Hooman

14

วิธีการตั้งค่าความละเอียดที่กำหนดเองที่ระบุไว้ก่อนหน้า หลังจากดำเนินขั้นตอนอื่น ๆ ที่กำหนดไว้เพื่อสร้างความละเอียดแล้วให้รัน:

xrandr -s 1680x1050

4

วิธีการตั้งค่าความละเอียดที่กำหนดเองก่อนหน้านี้ระบุเมื่อทำงานจอภาพหลายจอ หลังจากดำเนินขั้นตอนอื่น ๆ ที่กำหนดไว้เพื่อสร้างความละเอียดแล้วให้รัน:

xrandr --output DVI-0 --mode 1680x1050

แทนที่DVI-0ด้วยรหัสอุปกรณ์ของคุณเช่นVGA-0


3

ขอขอบคุณที่Thomและthirdenderนี้เป็นพื้นการกำหนดค่าคำสั่งเดียวขึ้นอยู่กับคำตอบที่ได้รับการโหวตมากที่สุด

RES="1920 1200 60" && \
DISP=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") && \
MODELINE=$(cvt $(echo $RES) | grep -e "Modeline [^(]" | sed -r 's/.*Modeline (.*)/\1/') && \
MODERES=$(echo $MODELINE | grep -o -P '(?<=").*(?=")') && \
cat > ~/.xprofile << _EOF
#!/bin/sh
xrandr --newmode $MODELINE
xrandr --addmode $DISP $MODERES
_EOF

คำสั่งดังกล่าวจะสร้าง~/.xprofileไฟล์ที่ต้องการ เพียงให้แน่ใจว่าคุณใช้ความละเอียด (เช่นRESตัวแปร) ของความชอบของคุณ ข้อมูลเพิ่มเติมที่นี่

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