Đây là phiên bản cập nhật của câu trả lời trước của tôi có liên quan đến Ubuntu 12.04. Trong 16.04 (Xenial) cần có 3 bước để đặt DPI chính xác thay vì 2.
Tôi sẽ giải thích về ví dụ của hệ thống với Ubuntu 12.04 với Gnome Classic và một màn hình có độ phân giải 1680x1050. Cài đặt bắt đầu của tôi: xdpyinfo | grep dots
báo cáo 96x96 dots
, xrdb -query | grep dpi
báo cáo Xft.dpi: 96
, grep DPI /var/log/Xorg.0.log
báo cáo một số cài đặt kỳ lạ NOUVEAU(0): DPI set to (90, 88)
.
Trong 16.04, kết quả đầu ra của cả 3 lệnh này đều nhất quán và bằng 96. Mặc dù sự đồng thuận như vậy tốt hơn so với rối loạn 12.04, giá trị được báo cáo là mã hóa cứng và khác xa giá trị DPI thực.
Hãy tính DPI tối ưu cho màn hình của tôi. Kích thước thực của màn hình có thể được tìm thấy bằng lệnh xrandr | grep -w connected
(chuyển đổi đầu ra thành centimet) hoặc bằng thước dài bằng tay. Trong trường hợp của tôi : X = 47.4cm
; Y = 29.6cm
. Chia chúng cho 2,54 để có kích thước tính bằng inch : X ~ 18.66in
; Y ~ 11.65in
. Cuối cùng chia số lượng chấm thực tế (dựa trên độ phân giải của bạn) cho kích thước tính bằng inch : X = 1680/18.66 ~ 90dpi
; Y = 1050/11.65 ~ 90dpi
. Vì vậy, dpi thực sự của tôi là 90.
Được cảnh báo , phương pháp đo thủ công có thể chính xác hơn so với đầu ra của lệnh xrandr | grep -w connected
vì các phiên bản mới hơn của máy chủ X bỏ qua kích thước được báo cáo bởi EDID và tính kích thước bằng độ phân giải màn hình và giá trị DPI được mã hóa cứng (xem thêm thông tin tại đây ).
Một phương pháp khác để tìm kích thước của màn hình là đọc EDID của nó trực tiếp. Cài đặt read-edid
gói và chạy lệnh sudo get-edid | parse-edid | grep DisplaySize
trong thiết bị đầu cuối. Đầu ra của nó sẽ cung cấp cho bạn kích thước thực tế của màn hình tính bằng milimét. Nếu không - sử dụng thước kẻ.
Hãy bắt đầu sửa chữa DPI:
1) Trong 12.04 chạy gksudo gedit
, mở /etc/lightdm/lightdm.conf
và thêm một tham số trong [SeatDefaults]
phần:
xserver-command=X -dpi 90
Không có tệp nào như vậy trong 16.04 theo mặc định, vì vậy bạn phải tạo lightdm.conf
thủ công và đặt nó vào /etc/lightdm/lightdm.conf.d/
. Nội dung của tệp này giống nhau:
[SeatDefaults]
xserver-command=X -dpi 90
Khởi động lại máy tính của bạn hoặc khởi động lại X. Bây giờ grep DPI /var/log/Xorg.0.log
sẽ hiển thị cài đặt mong muốn.
2) Trong câu trả lời trước đây của tôi, tôi đã đề xuất tạo một tệp /etc/X11/Xsession.d/
chứa chuỗi xrandr --dpi 90
. Điều này hoạt động trong 12.04, nhưng trong 16.04, cài đặt này không liên tục. Trong các hệ thống mới hơn, chúng tôi có thể thêm giá trị mong muốn khi bắt đầu phiên. Chạy "Ứng dụng khởi động", nhấn nút "Thêm", đặt tên là "Khắc phục DPI" và đặt lệnh xrandr --dpi 90
trong trường. Lưu các thay đổi và đăng nhập lại. Bây giờ xdpyinfo | grep dots
sẽ báo cáo 90x90 dots
.
Nếu xdpyinfo
vẫn hiển thị 96 thì thêm thời gian chờ trước khi chạy xrandr
. Chỉnh sửa lệnh trong "Ứng dụng khởi động" và thay đổi thành:
bash -c "sleep 15; xrandr --dpi 90"
Tài liệu tham khảo
Bước 2 là tùy chọn cho 12.04 vì trong các hệ thống cũ hơn Bước 1 sửa cả hai Xorg.0.log
và xdpyinfo
giá trị.
3) Trong cài đặt DPI của Gnome3 được mã hóa cứng thành 96 và không thể thay đổi trực tiếp, nhưng văn bản có thể được thu nhỏ thay thế. Tính hệ số nhân mong muốn: desired_DPI / 96
(trong trường hợp của tôi 90/96 = 0.9375
). Bây giờ hãy chạy lệnh (hoặc sử dụng dconf
nếu bạn thích):
gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375
Thay đổi sẽ được áp dụng cùng một lúc. xrdb -query | grep dpi
sẽ báo cáo mong muốn Xft.dpi: 90
.
PS Có một phương pháp khác để khắc phục cài đặt DPI khó khăn hơn nhiều và được mô tả trong hướng dẫn này . Tôi cũng đã thử nó và kết quả là như nhau (ít nhất là trong 12.04).
Afterword: Chỉ các nhà phát triển Ubuntu có thể nói chắc chắn liệu các giá trị được sửa đổi bởi Bước 1 & 2 có thực sự quan trọng trong Ubuntu hiện đại hay chúng bị âm thầm bỏ qua. Chỉ có Bước 3 tạo ra những thay đổi đáng chú ý ngay lập tức. Những người dùng cho rằng một số ứng dụng nhất định vẫn có thể dựa vào cài đặt máy chủ X được khuyến khích thực hiện cả 3 bước được mô tả ở trên. Đối với phần còn lại Bước 3 là đủ - đó là cách tùy chỉnh duy nhất được áp dụng trong các bản phân phối Ubuntu hiện đại.