ฉันจะรันxrandr
คำสั่งต่อไปนี้เมื่อเริ่มต้นได้อย่างไร
xrandr
cvt 1368 768
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00
ฉันจะรันxrandr
คำสั่งต่อไปนี้เมื่อเริ่มต้นได้อย่างไร
xrandr
cvt 1368 768
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00
คำตอบ:
โดยทั่วไปคุณสามารถเพิ่มคำสั่งเพื่อเริ่มทำงาน (เข้าสู่ระบบ) โดยเลือก: Dash> แอปพลิเคชันเริ่มต้น> เพิ่ม ในกรณีนี้คุณมีคำสั่งที่ซับซ้อนในการเรียกใช้
มีสองตัวเลือกในการทำเช่นนี้:
เขียนสคริปต์แยกต่างหาก:
#!/bin/bash
cvt 1368 768
# xrandr only works in X11 sessions, not Wayland
[ "$XDG_SESSION_TYPE" = x11 ] || exit 0
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00
คัดลอกสคริปต์ลงในไฟล์ว่างเปล่าบันทึกเป็นset_monitor.sh
และเพิ่มคำสั่งต่อไปนี้ลงในแอปพลิเคชันเริ่มต้นตามที่อธิบายไว้ข้างต้น
/bin/bash /path/to/set_monitor.sh
เชื่อมคำสั่งเข้ากับคำสั่งเดียว (ยาวมาก):
/bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"
ในกรณีนี้การใช้&&
ระหว่างคำสั่งจะทำให้แต่ละคำสั่งทำงานทันที (และถ้า) คำสั่งก่อนหน้านี้ทำงานได้อย่างประสบความสำเร็จเช่นเดียวกับที่พวกเขาอยู่บนบรรทัดแยกกัน
จากนั้นเพิ่มคำสั่งลงในแอปพลิเคชันเริ่มต้นตามที่อธิบายไว้ข้างต้น
การเพิ่มxrandr
คำสั่งในการเริ่มต้นอาจเป็นเรื่องยาก บางครั้งมันอาจหยุดทำงานหากทำงานเร็วเกินไปก่อนที่เดสก์ท็อปจะโหลดเต็มที่ ดังนั้นคุณอาจ (อาจ) ต้องเพิ่มตัวแบ่งเล็กน้อยลงในคำสั่งเพื่อ (เรียกใช้) เรียกใช้สคริปต์หรือคำสั่งเช่น (ในกรณีสุดท้าย):
/bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"
คุณอาจจำเป็นต้องเล่นนิดหน่อยsleep 15
เพื่อหาเวลาที่เหมาะสม
ฉันออกจากบรรทัดแรก:
xrandr
เนื่องจากมันไม่ได้ทำอะไร แต่แสดงข้อมูลบางอย่างในการตั้งค่าหน้าจอของคุณ :)
cvt
คำสั่งหากคุณรู้จักแบบจำลองของคุณอยู่แล้ว
/bin/bash -c "..."
ห่อนั้นใช้กลอุบายสำหรับฉัน :)
sleep
ส่วนใน 'Startup applications' โดยเลือกตัวเลือก "Before Session startup"
# xrandr only works in X11 sessions, not Wayland
ปีที่แล้ว อนาคตที่ดีพิสูจน์อักษรกลับมาแล้ว
ตามนี้ที่ตอนนี้มันได้โดยอัตโนมัติเมื่อเข้าสู่ระบบส่วนผมได้ทำสคริปต์ของตัวเองและวางมันลงไป45custom_xrandr-settings
/etc/X11/Xsession.d/
มันใช้งานได้ดีสำหรับฉันภายใต้ Ubuntu 14.04 LTS คุณสามารถวางรหัสด้านล่างหลังจากcase
คำสั่งที่อธิบายไว้ในส่วนนั้น
PRI_OUTPUT="DVI-0";
# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'Modeline\K.*') && #grep evrything after 'Modline'
myNewModeName=\"$(echo $myNewMode | grep -oP '"\K[^"\047]+(?=["\047])' )\" && #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;
xrandr --addmode $PRI_OUTPUT $myNewModeName;
ฉันเชื่อว่าสิ่งที่กล่าวมาเป็นสิ่งที่คุณกำลังมองหา คุณสามารถดูผลลัพธ์ที่มีอยู่ได้ง่ายๆเพียงรันxrandr
คำสั่ง ผลที่อาจจะVGA
, VGA-0
, DVI-0
, หรือTMDS-1
DisplayPort-0
นี่คือสคริปต์ที่สมบูรณ์ที่ฉันทำ
# To configure xrandr automatically during the first login,
# save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings:
# If an external monitor is connected, place it with xrandr
# External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"
# More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2
PRI_OUTPUT="DVI-0";
SEC_OUTPUT="DisplayPort-0";
SEC_LOCATION="left"; # SEC_LOCATION may be one of: left, right, above, or below
case "$SEC_LOCATION" in
left|LEFT)
SEC_LOCATION="--left-of $PRI_OUTPUT"
;;
right|RIGHT)
SEC_LOCATION="--right-of $PRI_OUTPUT"
;;
top|TOP|above|ABOVE)
SEC_LOCATION="--above $PRI_OUTPUT"
;;
bottom|BOTTOM|below|BELOW)
SEC_LOCATION="--below $PRI_OUTPUT"
;;
*)
SEC_LOCATION="--left-of $PRI_OUTPUT"
;;
esac
# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'Modeline\K.*') && #grep evrything after 'Modline'
myNewModeName=\"$(echo $myNewMode | grep -oP '"\K[^"\047]+(?=["\047])' )\" && #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;
xrandr --addmode $PRI_OUTPUT $myNewModeName;
# Activate secondary out (display port)
xrandr | grep $SEC_OUTPUT | grep " connected "
if [ $? -eq 0 ]; then
# xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
else
xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
fi