Làm cách nào tôi có thể tự động cập nhật bố cục màn hình của mình trong XFCE?


9

Tôi có một máy tính xách tay thường được gắn vào một màn hình lớn. Khi cập bến, tôi muốn sử dụng màn hình lớn làm màn hình chính, với màn hình máy tính xách tay làm màn hình phụ ở bên phải. Khi không khóa, màn hình máy tính xách tay là màn hình duy nhất.

XFCE dường như không có loại hỗ trợ đa màn hình được tích hợp. Tôi đã tìm thấy ARandR , cho phép tôi thiết lập màn hình theo cách tôi muốn. Tôi có thể sử dụng ARandR để lưu cấu hình cho các cấu hình được neo và không bị khóa (thực sự chỉ là các tập lệnh shell gọi xrandr ).

Nhưng làm thế nào để tôi có được các cấu hình đó để tự động áp dụng khi máy tính xách tay được gắn và tháo chốt? Tôi có nên cố gắng tạo quy tắc udev phát hiện trạm nối không? Có cách nào tốt hơn?


Chưa thử nghiệm nó, nhưng x-on-resize được phát triển bởi một trong những nhà phát triển X để thực hiện chính xác điều này.
Mikel

Câu trả lời:


5

Một cách là tạo quy tắc udev, nhưng vì tôi muốn thứ gì đó dễ mang theo hơn, tôi có tập lệnh bash này. Nó dựa vào hỗ trợ inotifywait, không có một số loại vòng và được coi là hiệu quả.

bên ngoài-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 

Đừng quên làm cho tập tin thực thi ( chmod +x external-lcd.sh). Sau đó, chỉ cần bắt đầu nó bất cứ khi nào bạn khởi chạy DE của bạn.

Tôi đang sử dụng điều này trên archlinux vì vậy tôi nghĩ rằng nó nên hoạt động. Bạn có thể thay đổi các tham số xrandr hoặc hoán đổi nó để sử dụng cấu hình arandr.

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.