Linux: Bagaimana menjalankan skrip ketika monitor eksternal terhubung?

10

Bagaimana saya bisa mendeteksi ketika monitor eksternal terhubung di linux?

Saya perlu menjalankan berbagai skrip untuk mengatur ruang kerja saya.

Apakah ada cara cerdas untuk memulai skrip ketika kondisi monitor berubah?

Saya menggunakan driver tampilan Nvidia.

Joernsn
sumber
Cara hackish adalah dengan menulis skrip yang meminta perubahan dalam output xrandrsetiap beberapa detik, dan menjalankan skrip jika memperhatikan perbedaan.
new123456
Idealnya Anda dapat memberitahu udev untuk menjalankan skrip. Saya tidak berharap untuk bekerja dengan driver nvidia sampai KMS didukung, walaupun saya belum mencobanya. stackoverflow.com/questions/5469828/…
Andy

Jawaban:

3

Ada satu set alat yang disebut read-edid yang dapat mengurai data identifikasi tampilan yang diperluas (EDID). Jika monitor eksternal Anda benar-benar terdeteksi oleh alat-alat ini, Anda mungkin dapat secara berkala memeriksa deteksi dan menggunakan output untuk memulai skrip, dll.

Anda tidak menyebutkan apakah Anda perlu melakukan ini terlepas dari apakah X berjalan.

Rolf
sumber
Benar, saya hanya memerlukannya di X. Saya punya beberapa alat lain juga yang akan mendeteksi tampilan (seperti disper), tetapi saya berharap untuk menghindari keharusan menulis daemon :)
Joernsn
1

Saya mencari jawaban yang sama: /
Saya menggunakan disper ( http://willem.engen.nl/projects/disper ) dan gconftool untuk mengaktifkan / menonaktifkan monitor kedua saya bersama-sama dengan panel gnome kedua di atasnya.
Disper -l mencantumkan semua monitor yang terhubung, sehingga Anda dapat memilih itu sebagai pilihan terakhir.

# only primary display
disper -s
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen -- -1


# dual display (nvidia twinview)
disper -e
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen 0
killall gnome-panel
Vindolin
sumber
0

Mengingat bahwa, pada 270.18, driver biner nVidia tampaknya masih belum mengimplementasikan XRandR modern, Anda mungkin harus menggunakan saran new123456 untuk memilih alat seperti xrandruntuk perubahan ukuran layar.

Di sistem saya, saya belum menemukan cara untuk membuat nVidia mengumumkan dengan benar xrandrbahwa saya memiliki dua monitor 1280x1024, daripada satu 2560x1024 satu ... yang, seperti dapat Anda tebak, membuat game layar penuh terpusat di kedua monitor ketika saya melarang mereka dari mengubah resolusi. (Ini mengacaukan perekat desktop saya)

ssokolow
sumber