Tino Thamjarat

October 24, 2021

[TIL] เปลี่ยน font ภาษาไทยบน PopOS / Ubuntu

image.png


PopOS เป็นระบบปฏิบัติการคอมพิวเตอร์ (Operating System - OS) ที่สร้างโดยทีม System76 เพื่อใช้งานในแล็ปท็อปที่ตัวเองขาย ซึ่งมันเป็นการสร้างเพิ่มเติมจากระบบปฏิบัติการที่คนใช้งานเยอะอยู่แล้วอย่าง Ubuntu

ผมเพิ่งเริ่มใช้งานมันได้ไม่นานแต่รู้สึกถึงความ "คิดมาแล้ว" ในทุก ๆ feature เหมือนเอาสิ่งที่ผมชอบใน Windows มารวม macOS การ support โปรแกรมต่าง ๆ ที่ใช้งานอยู่เป็นประจำอย่าง Slack, VS Code หรือ Steam (ใช่ มันเล่นเกมได้) ก็ถือว่าทำได้อย่างน่าพอใจ ในระดับที่ลง OS เสร็จไม่ต้องทำอะไรเพิ่มเลย

สิ่งที่น่าหงุดหงิดอย่างเดียวก็คือ default font ของภาษาไทยมันสุดจะน่าเกลียด ไม่แน่ใจว่าเป็น font อะไรแต่มันน่าเกลียดเอามาก ๆ ซึ่งการเปลี่ยน font สำหรับภาษาแต่ละภาษาเป็นเรื่องนึงที่ไม่ค่อยตรงไปตรงมาเท่าไหร่ใน PopOS โดยมีสองวิธีหลัก ๆ ที่สามารถทำได้

1. เปลี่ยน system font ไปเลย

วิธีแรกคือการเปลี่ยน font ของทั้งระบบไปใช้ font ที่รองรับภาษาไทยไปเลย สำหรับท่านี้จะง่ายหน่อยเพราะสามารถใช้ GUI appจัดการได้

การเปลี่ยน system wide font สามารถทำได้ง่าย ๆ โดยการลง gnome-tweaks ซึ่งเป็น GUI app ที่ทำให้เราเลือกเปลี่ยน font ได้ง่าย ๆ เลย โดยวิธีการลงก็สุดแสนจะธรรมดา เปิด Pop! shop (app store ของ PopOS) แล้ว search ในกล่องด้านบนได้เลย
image.png

หรือสำหรับคนทีคุ้นเคยกับ terminal ก็สามารถลงด้วย apt ได้เช่นเดียวกัน

sudo apt install gnome-tweaks

หลังจากนั้นก็เปิดโปรแกรมขึ้นมา จะเห็นว่ามันมี tab Fonts อยู่ซึ่งเราก็สามารถเลือกใช้ font ต่างกันในแต่ละจุดได้ เช่น ใน document อยากให้เป็น font มีหัว แต่อยากให้บน interface เป็น font ไม่มีหัวอะไรแบบนี้
image.png

2. เปลี่ยนแค่สำหรับภาษาไทยเท่านั้น

วิธีนี้สำหรับคนที่ชอบ font ภาษาอังกฤษที่ตั้งค่าไว้แล้วอย่างผม คือ เราจะเปลี่ยนแค่สำหรับภาษาไทยเท่านั้น วิธีนี้จะใช้สิ่งที่เรียกว่า font config ซึ่งเป็นท่าที่ไม่มี GUI ต้องใช้ terminal อย่างเดียวเท่านั้น

โดยขั้นแรกเราจะต้องเขียน font config ขึ้นมาก่อน ซึ่ง syntax มันเป็น XML ที่ต้องใช้เวลาในการทำความเข้าใจหน่อย แต่ผมเขียนเอาไว้ให้แล้ว สามารถเข้าไปดูได้ที่นี่:

https://gist.github.com/vtno/7331396df19dd06d2df3a9edfeb17817

โดยคุณสามารถเปลี่ยนชื่อ font เป็นตัวอื่นที่อยากใช้ได้เลย ผมใช้เป็น Noto Thai เพราะมันมีใน PopOS อยู่แล้ว โดยวิธีการทำไปใช้งานก็สามารถทำได้โดยการรันคำสั่งต่อไปนี้ (ไม่ต้องพิมพ์ $ ข้างหน้านะ):

# Download config file from gist
$ curl -O https://gist.githubusercontent.com/vtno/7331396df19dd06d2df3a9edfeb17817/raw/6ada0ca121fd4e06fb301fbaea13d20e6709c1a5/90-thai.conf

# Move the config file to the system fonts dir
$ mv 90-thai.conf /etc/fonts/conf.d

# Check sans font for Thai lang
#
# It should show something like
# NotoSansThaiUI-Regular.ttf: "Noto Sans Thai UI" "Regular"
$ fc-match sans:lang=th

# Same for serif font
$ fc-match serif:lang=th

โดยหลังจากเช็คแล้วว่า font ถูกอ่านอย่างถูกต้อง ลองเปิดภาษาไทยบนเว็บหรือเขียนภาษาไทยในแอพต่าง ๆ จะเห็นว่า font จะเปลี่ยนเป็นตัวที่เราตั้งค่าไว้ และ font ภาษาอังกฤษยังเป็นตัวเดิม

image.png


บทความนี้เป็นบทความแรกในซีรี่ย์ TIL (Today I learned) ที่ผมเอาไว้แชร์สิ่งที่ผมได้เรียนรู้ใหม่ ๆ ให้ผู้อ่านและกันตัวเองลืมในอนาคต ถ้ามีหัวข้ออยากให้เล่า หรือ อยากติดต่อถึงผมสามารถ DM มาได้ที่ @v_tno บน Twitter ได้เลยครับ

แล้วเจอกันครับ