Tôi đang tìm kiếm một phương pháp báo cáo độ phân giải màn hình. Tôi muốn thiết lập các tập lệnh để khởi chạy rdesktop
và tôi muốn khởi chạy nó trên một số máy có độ phân giải khác nhau, vì vậy tôi muốn có một cách để tự động xác định nó.
Tôi đang tìm kiếm một phương pháp báo cáo độ phân giải màn hình. Tôi muốn thiết lập các tập lệnh để khởi chạy rdesktop
và tôi muốn khởi chạy nó trên một số máy có độ phân giải khác nhau, vì vậy tôi muốn có một cách để tự động xác định nó.
Câu trả lời:
Sử dụng lệnh xrandr
. Không có bất kỳ đối số nào, nó sẽ hiển thị các độ phân giải có sẵn và độ phân giải hiện tại (có dấu hoa thị), ví dụ:
$ xrandr | fgrep '*'
xrandr |g grep \*
là lừa?
Giải pháp thay thế : xdpyinfo | grep dimensions
. xdpyinfo
cũ hơn xrandr
, vì vậy có thể dễ mang theo hơn nếu bạn sử dụng bản phân phối rất cũ hoặc một số máy chủ X khác.
xdpyinfo
khi xrandr
liệt kê chính xác màn hình và độ phân giải của chúng. Điều này có thể hoặc không thể là một vấn đề tùy thuộc vào bối cảnh.
xdpyinfo
dường như báo cáo kích thước chính xác bằng pixel, nó báo cáo độ phân giải sai (DPI). Ví dụ, trên màn hình của tôi với các số liệu 3840x2160 (bản địa và thực tế) và kích thước 708mm x 399mm như báo cáo xrandr
, xdpyinfo
nói rằng độ phân giải là 96x96 chấm trên mỗi inch.
Bạn có thể nhận được độ phân giải ngang và dọc bằng lệnh sau:
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
hoặc, ở dạng nhỏ gọn hơn (theo đề xuất của Peter.O trong bình luận này ):
xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}'
Đối với exmaple, trên màn hình 1600x900, điều này sẽ tạo ra đầu ra sau:
1600 900
Sau đó, bạn có thể đặt các giá trị vào các biến riêng biệt bằng cách sử dụng lệnh:
read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')
Hiển thị các giá trị của các biến trên bằng lệnh:
echo $RES_X, $RES_Y
Trên màn hình 1600x900, đầu ra là:
1600, 900
Tôi nên nhìn một chút khó khăn hơn trước khi đăng. xrandr
sẽ lặp lại các cài đặt hiển thị hiện tại, nếu không đưa ra bất kỳ đối số nào khác.
Theo mặc định, điều này sẽ kết xuất tất cả các cài đặt hiển thị có thể, điều này có thể được lọc như sau:
xrandr | egrep '^[^ ]|[0-9]\*\+'
xrandr
Đầu ra để sử dụng hình ảnhxrandr |grep \* |awk '{print $1}'