ฉันจะอัพเดตเลย์เอาต์มอนิเตอร์ของฉันใน XFCE โดยอัตโนมัติได้อย่างไร?


9

ฉันมีแล็ปท็อปที่เชื่อมต่อกับจอภาพขนาดใหญ่ เมื่อเชื่อมต่อฉันต้องการใช้จอภาพขนาดใหญ่เป็นจอแสดงผลหลักโดยที่หน้าจอแล็ปท็อปเป็นจอแสดงผลรองไปทางขวา เมื่อไม่ได้ปลดล็อคหน้าจอแล็ปท็อปจะเป็นเพียงจอแสดงผลเท่านั้น

XFCE ดูเหมือนจะไม่มีการรองรับหลายจอภาพในตัวฉันพบARandRซึ่งให้ฉันตั้งค่าจอภาพตามที่ฉันต้องการ ฉันสามารถใช้ ARandR เพื่อบันทึกโปรไฟล์สำหรับการกำหนดค่าที่เชื่อมต่อและไม่ได้แยกส่วน (ซึ่งจริงๆแล้วเป็นเพียงเชลล์สคริปต์ที่เรียกใช้xrandr )

แต่ฉันจะทำให้โปรไฟล์เหล่านั้นใช้งานอัตโนมัติได้อย่างไรเมื่อแล็ปท็อปเชื่อมต่อและปลดล็อคแล้ว? ฉันควรลองสร้างกฎ udev ที่ตรวจจับสถานีติดตั้งหรือไม่? มีวิธีที่ดีกว่า?


ยังไม่ได้ทดสอบ แต่x-on-resizeได้รับการพัฒนาโดยหนึ่งในนักพัฒนา X เพื่อทำสิ่งนี้
มิเคล

คำตอบ:


5

วิธีหนึ่งคือการสร้างกฎ udev แต่เมื่อฉันต้องการสิ่งที่พกพาได้มากขึ้นฉันมีสคริปต์ทุบตีนี้ มันขึ้นอยู่กับการสนับสนุนที่ไม่คาดคิดรอคอยไม่มีลูปบางชนิดและถือว่ามีประสิทธิภาพ

external-lcd.sh

#!/bin/sh
# inspired of:                                                                                            
#   http://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration-   when-external-display-is-p                                                                                
#   http://ozlabs.org/~jk/docs/mergefb/                                                                   
#   http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes/181543#181543  

export MONITOR2=/sys/class/drm/card0-VGA-1/status                                                         

while inotifywait -e modify,create,delete,open,close,close_write,access $MONITOR2;                        

dmode="$(cat $MONITOR2)"                                                                                  

do                                                                                                        
    if [ "${dmode}" = disconnected ]; then                                                                
         /usr/bin/xrandr --auto                                                                           
         echo "${dmode}"                                                                                  
    elif [ "${dmode}" = connected ];then                                                                  
         /usr/bin/xrandr --output VGA1 --auto --right-of LVDS1                                            
         echo "${dmode}"                                                                                  
    else /usr/bin/xrandr --auto                                                                           
         echo "${dmode}"                                                                                  
    fi                                                                                                    
done 

อย่าลืมทำให้ไฟล์นั้นทำงานได้ ( chmod +x external-lcd.sh) จากนั้นเริ่มต้นเมื่อใดก็ตามที่คุณเปิดใช้ DE ของคุณ

ฉันใช้สิ่งนี้กับ archlinux ดังนั้นฉันคิดว่ามันน่าจะใช้ได้ คุณสามารถเปลี่ยนพารามิเตอร์ xrandr หรือสลับเป็นใช้การกำหนดค่า arandr

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