ทำไมการแก้ไข lightdm.conf ไม่ส่งผลต่อความละเอียดหน้าจอเดสก์ท็อปของฉัน


13

1366x768ผมอยากจะเปลี่ยนความละเอียดของหน้าจอเดสก์ทอปของฉันไป แต่ฉันVESA drivers(AMD REDWOOD)ไม่พบความละเอียดนั้น ดังนั้นฉันจึงสร้างเชลล์สคริปต์ดังนี้: -

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

ฉันบันทึกไว้lightdmxrandr.shใน/usr/binและทำให้มันใช้งานได้ จากนั้นฉันเพิ่มบรรทัดต่อไปนี้ลงไป/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(ซึ่งเทียบเท่ากับที่รู้จักกันดี/etc/lightdm/lightdm.confฉันกำลังใช้ไฟล์ด้านบนในขณะที่ฉันอยู่ที่ 14.04 ซึ่งไม่มีหมายเลข/etc/lightdm/lightdm.conf): -

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

และบันทึกไว้ 1366x768ในทฤษฎีนี้ควรมีการเปลี่ยนแปลงทั้งความละเอียดหน้าจอเข้าสู่ระบบและความละเอียดหน้าจอเดสก์ทอป แต่น่าแปลกใจที่นี่เปลี่ยนเฉพาะความละเอียดหน้าจอการเข้าสู่ระบบ ความละเอียดของเดสก์ท็อปไม่เปลี่ยนแปลง หลังจากนั้นฉันเพิ่มสคริปต์ลงในแอปพลิเคชันเริ่มต้นและนั่นเปลี่ยนความละเอียดเดสก์ทอปของฉัน

ดังนั้นฉันต้องการทราบว่าทำไมการแก้ไขที่ฉันทำกับlightdm.confไฟล์ (หรือมากกว่า50-ubuntu.confไฟล์) ไม่มีผลต่อความละเอียดเดสก์ท็อปของฉัน นี่เป็นข้อผิดพลาดบางอย่างที่ต้องรายงานที่ launchpad หรือผิดที่จะบอกว่าการแก้ไขใน lightdm จะส่งผลต่อหน้าจอเดสก์ท็อปหรือไม่

PS: - ในความคิดของฉันนี้ไม่เฉพาะกับ Ubuntu 14.04

คำตอบ:


11

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

  1. lightdm เรียกใช้สคริปต์ของคุณอย่างถูกต้อง
  2. นี่เป็นการตั้งค่าความละเอียดที่คุณต้องการ
  3. Unity เปิดตัวอ่านการตั้งค่าและเปลี่ยนกลับเป็นความละเอียดเริ่มต้นที่คุณมี
  4. ความละเอียดของคุณจะกลับไปเป็นเหมือนเดิม

ตอนนี้เกิดขึ้นเพราะไดรเวอร์ VESA ตรวจไม่พบความละเอียดที่คุณต้องการโดยอัตโนมัติ ซึ่งหมายความว่าเมื่อคุณเปลี่ยนความละเอียดจากส่วนการแสดงผลของการตั้งค่าความสามัคคีคุณจะให้ความละเอียดที่ไม่สามารถใช้ได้เว้นแต่คุณจะเรียกใช้xrandrคำสั่ง ดังนั้นนี่จะถูกละเว้นในครั้งถัดไปที่คุณรีสตาร์ทและ Unity จะเปลี่ยนกลับเป็นความละเอียดเริ่มต้น

ดังนั้นสิ่งที่คุณต้องทำคือทำให้ความละเอียดพร้อมใช้งานสำหรับ Unity จากนั้นตั้งค่าเป็นค่าเริ่มต้นและปล่อยให้จัดการได้ ในการทำเช่นนั้นคุณต้องเพิ่มบรรทัดนี้ใน/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf:

session-setup-script=/usr/bin/lightdmxrandr.sh

จากนั้นตรวจสอบให้แน่ใจว่า/usr/bin/lightdmxrandr.shมีลักษณะดังนี้:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  

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


วิธีการทางเลือก:

  1. สร้าง/etc/X11/xorg.confไฟล์ที่แสดงความละเอียดที่คุณต้องการ บางสิ่งเช่นนี้

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. เพิ่มสคริปต์ที่รันxrandrคำสั่งลงในแอปพลิเคชันเริ่มต้นของเซสชันของคุณ


การแก้ไขไฟล์ภายใต้ /usr/share/lightdm/lightdm.conf.d/ เป็นวิธีที่ไม่ถูกต้องในการเปลี่ยน lightdm.conf หน้าโครงการ LightDM บอกว่าผู้ดูแลระบบสามารถลบล้างการกำหนดค่าเริ่มต้นใน /etc/lightdm/lightdm.conf.d/ หรือ /etc/lightdm/lightdm.conf คุณไม่ควรแก้ไขไฟล์ใน / usr / share / lightdm / เพราะในขณะที่ อาจใช้เวลาสักครู่ในการรับการเขียนทับโดยการอัปเดตแพคเกจที่มา: หน้าโครงการ LightDM freedesktop.org/wiki/Software/LightDM โปรดแก้ไขคำตอบของคุณ
happyskeptic

3
ฉันไม่มีชื่อเสียงพอที่จะเพิ่มความคิดเห็นง่ายๆ แต่ฉันต้องการที่จะชี้ให้เห็นว่าไฟล์ sh จะต้องได้รับอนุญาตให้ดำเนินการ OP กล่าวว่าเขา / เธอทำสิ่งนี้ แต่คำตอบของ terdon ไม่ได้รวมไว้ในขั้นตอน หากไม่สามารถใช้งานได้คุณจะต้องเลื่อนไปที่พรอมต์คำสั่งเนื่องจากจะไม่เข้าสู่ระบบ (อย่างน้อยก็ไม่ใช่สำหรับฉัน) มันเป็นการกำกับดูแลที่เรียบง่ายในส่วนของฉัน แต่ในกรณีที่คนอื่นมองข้ามขั้นตอนนั้นฉันก็อยากจะย้ำที่นี่
Kirk Spencer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.