Linux: Làm cách nào để chạy tập lệnh khi màn hình ngoài được kết nối?


10

Làm cách nào để phát hiện khi màn hình ngoài được kết nối trong linux?

Tôi cần chạy các tập lệnh khác nhau để thiết lập không gian làm việc của mình.

Có một số cách thông minh để khởi động một kịch bản khi trạng thái màn hình đã thay đổi?

Tôi đang sử dụng trình điều khiển hiển thị Nvidia.


Cách thức hackish sẽ là viết một tập lệnh truy vấn các thay đổi đầu ra trong xrandrmỗi vài giây và chạy (các) tập lệnh nếu nó nhận thấy sự khác biệt.
new123456

Lý tưởng nhất là bạn có thể bảo udev chạy một kịch bản. Tôi không mong đợi rằng sẽ hoạt động với trình điều khiển nvidia cho đến khi KMS được hỗ trợ, mặc dù tôi chưa thử. stackoverflow.com/questions/5469828/
Andy

Câu trả lời:


3

Có một bộ công cụ gọi là read-edid có thể phân tích dữ liệu nhận dạng hiển thị mở rộng (EDID). Nếu màn hình ngoài của bạn thực sự được phát hiện bởi các công cụ này, bạn có thể kiểm tra định kỳ để phát hiện và sử dụng đầu ra để bắt đầu tập lệnh, v.v.

Bạn đã không đề cập đến việc liệu bạn có cần phải làm điều này bất kể X có chạy hay không.


Đúng vậy, tôi chỉ cần nó trong X. Tôi cũng có một số công cụ khác sẽ phát hiện màn hình (như disper), nhưng tôi đã hy vọng tránh phải viết một daemon :)
Joernsn

1

Tôi đang tìm kiếm cùng một câu trả lời: /
Tôi đang sử dụng disper ( http://willem.engen.nl/projects/disper ) và gconftool để bật / tắt màn hình thứ hai của tôi cùng với bảng điều khiển gnome thứ hai trên đó.
disper -l liệt kê tất cả các màn hình được kết nối, vì vậy bạn có thể thăm dò ý kiến ​​đó như là phương sách cuối cùng.

# 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


0

Cho rằng, kể từ 270,18, trình điều khiển nhị phân nVidia dường như vẫn chưa triển khai XRandR hiện đại, bạn có thể phải đi với đề xuất của new123456 để thăm dò một công cụ như xrandrthay đổi kích thước màn hình.

Trên hệ thống của tôi, tôi vẫn chưa tìm được cách để nVidia thông báo chính xác xrandrrằng tôi có hai màn hình 1280x1024, thay vì một màn hình 2560x1024 ... mà bạn có thể đoán, làm cho trò chơi toàn màn hình trở thành trung tâm trên cả hai màn hình khi tôi cấm họ từ việc thay đổi độ phân giải. (Nó thu hút các stickies máy tính để bàn của tôi)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.