นี่เป็นเวอร์ชันล่าสุดของคำตอบก่อนหน้าของฉันซึ่งเกี่ยวข้องกับ Ubuntu 12.04 ใน 16.04 (Xenial) 3 ขั้นตอนจำเป็นต้องตั้ง DPI ให้ถูกต้องแทนที่จะเป็น 2
ฉันจะอธิบายเกี่ยวกับตัวอย่างของระบบกับ Ubuntu 12.04 กับ Gnome Classic และจอภาพที่มีความละเอียด 1680x1050 การตั้งค่าเริ่มต้นของฉัน: xdpyinfo | grep dots
รายงาน96x96 dots
, xrdb -query | grep dpi
รายงานXft.dpi: 96
, รายงานการตั้งค่าบางลางgrep DPI /var/log/Xorg.0.log
NOUVEAU(0): DPI set to (90, 88)
ใน 16.04 เอาต์พุตของคำสั่งทั้ง 3 คำสั่งเหล่านี้มีความสอดคล้องกันและมีค่าเท่ากับ 96 ถึงแม้ว่าฉันทามติดังกล่าวจะดีกว่าความผิดปกติของ 12.04 แต่ค่าที่รายงานนั้นเป็นรหัสฮาร์ดโค้ดและห่างไกลจากค่า DPI จริง
ลองคำนวณ DPI ที่เหมาะสมที่สุดสำหรับมอนิเตอร์ของฉัน ขนาดที่แท้จริงของหน้าจอสามารถพบได้ด้วยคำสั่งxrandr | grep -w connected
(แปลงผลลัพธ์เป็นเซนติเมตร) หรือด้วยไม้บรรทัดยาวด้วยมือ ในกรณีของฉัน: X = 47.4cm
; Y = 29.6cm
. หารด้วย 2.54 เพื่อให้ได้ขนาดเป็นนิ้ว: X ~ 18.66in
; Y ~ 11.65in
. สุดท้ายหารจำนวนจุดจริง (ขึ้นอยู่กับความละเอียดของคุณ) โดยขนาดเป็นนิ้ว: X = 1680/18.66 ~ 90dpi
; Y = 1050/11.65 ~ 90dpi
. ดังนั้น dpi ที่แท้จริงของฉันคือ 90
ถูกเตือนวิธีการวัดแบบแมนนวลอาจมีความแม่นยำมากกว่าเอาท์พุทของคำสั่งxrandr | grep -w connected
เนื่องจากรุ่น X ที่ใหม่กว่าของเซิร์ฟเวอร์ละเว้นขนาดรายงานโดย EDID และคำนวณขนาดโดยใช้ความละเอียดหน้าจอและค่า hardcoded ของ DPI (ข้อมูลเพิ่มเติมที่นี่ )
วิธีการอีกวิธีในการค้นหาขนาดของจอภาพคือการอ่าน EDID โดยตรง ติดตั้งread-edid
แพ็กเกจและรันคำสั่งsudo get-edid | parse-edid | grep DisplaySize
ในเทอร์มินัล เอาต์พุตจะให้ขนาดที่แท้จริงของจอภาพเป็นมิลลิเมตร ถ้าไม่ - ใช้ไม้บรรทัด
มาเริ่มซ่อม DPI กันเถอะ:
1)ในการรัน 12.04 gksudo gedit
ให้เปิด/etc/lightdm/lightdm.conf
และเพิ่มพารามิเตอร์ภายใต้[SeatDefaults]
ส่วน:
xserver-command=X -dpi 90
ไม่มีไฟล์ดังกล่าวใน 16.04 โดยค่าเริ่มต้นเพื่อให้คุณจะต้องสร้างด้วยตนเองและใส่ลงในlightdm.conf
/etc/lightdm/lightdm.conf.d/
เนื้อหาของไฟล์นี้เหมือนกัน:
[SeatDefaults]
xserver-command=X -dpi 90
รีสตาร์ทคอมพิวเตอร์ของคุณหรือรีสตาร์ท X ตอนนี้grep DPI /var/log/Xorg.0.log
จะแสดงการตั้งค่าที่ต้องการ
2)ในการตอบอดีตของฉันฉันเสนอให้สร้างไฟล์ในที่มีสตริง/etc/X11/Xsession.d/
xrandr --dpi 90
สิ่งนี้ใช้ได้ใน 12.04 แต่ใน 16.04 การตั้งค่านี้ไม่คงอยู่ ในระบบที่ใหม่กว่าเราสามารถเพิ่มมูลค่าที่ต้องการเมื่อเริ่มเซสชัน เรียกใช้ "แอปพลิเคชันเริ่มต้น" กดปุ่ม "เพิ่ม" ตั้งชื่อมันว่า "แก้ไข DPI" และตั้งคำสั่งxrandr --dpi 90
ในฟิลด์ บันทึกการเปลี่ยนแปลงและล็อกอินอีกครั้ง ตอนนี้จะรายงานxdpyinfo | grep dots
90x90 dots
หากxdpyinfo
ยังคงแสดงให้เห็นว่า 96 xrandr
แล้วเพิ่มหมดเวลาก่อนที่จะใช้ แก้ไขคำสั่งใน "แอปพลิเคชันเริ่มต้น" และเปลี่ยนเป็น:
bash -c "sleep 15; xrandr --dpi 90"
การอ้างอิง
ขั้นตอนที่ 2 เป็นทางเลือกสำหรับ 12.04 เพราะในระบบเก่าขั้นตอนที่ 1 แก้ไขทั้งสองXorg.0.log
และxdpyinfo
ค่า
3)ในการตั้งค่า GNOME3 DPI นั้นฮาร์ดโค้ดเป็น 96 และไม่สามารถเปลี่ยนแปลงได้โดยตรง แต่สามารถปรับขนาดข้อความแทนได้ คำนวณตัวคูณที่ต้องการ: desired_DPI / 96
(ในกรณีของฉัน90/96 = 0.9375
) ตอนนี้รันคำสั่ง (หรือใช้dconf
ถ้าคุณต้องการ):
gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375
การเปลี่ยนแปลงจะถูกนำมาใช้ในครั้งเดียว จะรายงานที่ต้องการxrdb -query | grep dpi
Xft.dpi: 90
PSมีวิธีอื่นในการแก้ไขปัญหาการตั้งค่า DPI ซึ่งเป็นเรื่องยากมากขึ้นและเป็นที่อธิบายไว้ในนี้คู่มือ ฉันได้ลองแล้วและผลลัพธ์ก็เหมือนกัน (อย่างน้อยใน 12.04)
Afterword:มีเพียงผู้พัฒนา Ubuntu เท่านั้นที่สามารถพูดได้อย่างแน่นอนว่าค่าที่แก้ไขโดยขั้นตอนที่ 1 & 2 มีความสำคัญใน Ubuntu รุ่นใหม่หรือไม่หรือถูกเพิกเฉยอย่างเงียบ ๆ เฉพาะขั้นตอนที่ 3 เท่านั้นที่สร้างการเปลี่ยนแปลงซึ่งสามารถสังเกตได้ทันที ผู้ใช้ที่พิจารณาว่าแอพบางตัวอาจยังคงใช้การตั้งค่าเซิร์ฟเวอร์ X ขอแนะนำให้ดำเนินการทั้ง 3 ขั้นตอนที่อธิบายไว้ข้างต้น สำหรับส่วนที่เหลือขั้นตอนที่ 3 นั้นเพียงพอ - นั่นเป็นวิธีเดียวในการปรับแต่งที่นำมาใช้ใน distros Ubuntu รุ่นใหม่