การแก้ไขคำตอบของฉันเพื่อทำให้การติดตั้งง่ายขึ้น
ติดตั้ง autorandr เพื่อทำให้เค้าโครงหน้าจอเป็นแบบอัตโนมัติใน xrandr, รับ. deb ล่าสุดจากhttps://github.com/nalipaz/autorandr/releasesและเรียกใช้:
dpkg -i [file]
ตั้งค่า autorandr ด้วยเค้าโครงหน้าจอที่จัดเก็บไว้
autorandr --save [docked|mobile|home|etc]
ตัวอย่างเช่นบนแล็ปท็อปของฉันที่ไม่มีจอภาพเสียบอยู่ฉันตั้งค่า arandr ตามที่ฉันต้องการแล้ววิ่ง:
autorandr --save mobile
จากนั้นเสียบสาย hdmi ของฉันและกำหนดค่า arandr ใหม่แล้ววิ่ง:
autorandr --save docked
หลังจากตั้งค่าแต่ละเลย์เอาท์ของคุณคุณสามารถเรียกใช้ (แทนที่ 'มือถือ' ด้วยชื่อที่โปรดปรานก่อนหน้านี้ฉันใช้มือถือ):
autorandr --default mobile
หลังจากที่ autorandr เป็นการตั้งค่าทั้งหมดคุณสามารถทำให้กระบวนการโดยอัตโนมัติโดยการติดตั้งแพคเกจซึ่งจะสำรวจความคิดเห็นสำหรับจอแสดงผลที่เชื่อมต่อและเรียกใช้ autorandr --change
ตามการตรวจจับ ใช่ฉันรู้เกี่ยวกับ udev และคุณสามารถตั้งค่าได้ถ้ามันเหมาะกับคุณ แต่ในการทดสอบของฉัน udev ไม่ได้ทำงานสำหรับ hdmi ของฉันอย่างสม่ำเสมอ ใช้งานได้เพียง 1 จาก 20 ปลั๊ก / ถอดปลั๊กและบางครั้งก็หยุดโดยสิ้นเชิง
ดาวน์โหลด. deb ล่าสุดจากที่นี่: https://github.com/nalipaz/poll-xrandr/releases/จากนั้นติดตั้งด้วย
dpkg -i [file]
เป็นไปได้ว่าจำเป็นที่คุณจะต้องรันงานมากขึ้นเมื่อดำเนินการเสร็จสมบูรณ์autorandr --change
autorandr อนุญาตให้แทรกคำสั่งเหล่านี้ลงในไฟล์ชื่อ ~ / .autorandr / postswitch ทำดังนี้:
cd ~/.autorandr/ && touch postswitch && chmod +x postswitch
ตอนนี้แก้ไขไฟล์ postswitch เพื่อให้มีสิ่งที่คล้ายกับต่อไปนี้:
#!/bin/bash
if pidof conky > /dev/null 2>&1; then
killall conky
fi
(sleep 2s && xrandr-adjust-brightness restore -q) &
(sleep 2s && nitrogen --restore) &
(sleep 3s && conky -q) &
นอกจากนี้คุณอาจจะต้องการเพิ่ม autorandr และ poll-xrandr ใน startups ของคุณซึ่งคล้ายกับคำสั่งสองคำสั่งต่อไปนี้:
autorandr --change &
poll-xrandr &
ถอดปลั๊กหรือต่อจอภาพและดูเวทย์มนตร์!
udevadm monitor --property
จากเทอร์มินัลและเสียบจอแสดงผลด้วยการ์ดของฉันฉันเห็นเหตุการณ์เมื่อเสียบเข้ากับคุณอาจใช้กฎ + RUN ใน udev และสคริปต์ bash บางอย่างเพื่อให้ได้สิ่งที่คุณต้องการ อย่างไรก็ตามฉันไม่แน่ใจว่าคุณจะสามารถใช้สิ่งนี้ได้อย่างไรต่อผู้ใช้โดยใช้ udev