Nhận độ phân giải màn hình từ dòng lệnh cho Linux Desktop


32

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 rdesktopvà 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:


37

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 '*'

Bạn có thể nối một số đầu ra mẫu cho câu trả lời? Và tôi đoán xrandr |g grep \*là lừa?
Ehtesh Choudhury

11

Giải pháp thay thế : xdpyinfo | grep dimensions. xdpyinfocũ 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.


2
Thật vậy, nhưng một số (tất cả?) Thiết lập đa màn hình xuất hiện dưới dạng một màn hình trong xdpyinfokhi xrandrliệ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.
Stéphane Gourichon

Lưu ý: trong khi xdpyinfodườ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, xdpyinfonói rằng độ phân giải là 96x96 chấm trên mỗi inch.
Ruslan

7

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

1
xdpyinfo | awk -F '[x] +' '/ kích thước: / {in $ 3, $ 4}'
Peter.O

@ Peter.O, cảm ơn. Đây là một hình thức nhỏ gọn tốt đẹp của lệnh. Tôi đã cập nhật câu trả lời.
crayzeewulf

Thật vậy, nhưng một số (tất cả?) Thiết lập đa màn hình xuất hiện dưới dạng một màn hình trong xdpyinfo trong khi xrandr liệt kê chính xác cá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.
Stéphane Gourichon

5

Tôi nên nhìn một chút khó khăn hơn trước khi đăng. xrandrsẽ 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]\*\+'

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.