ผมติดปัญหาพยายามย้ายแพ็กเกจไปใช้ Flatpak เพราะมันเสี่ยงพังน้อยกว่าแพ็กเกจของระบบเอง แต่ติดปัญหาเจ้ากรรมที่ตัวโปรแกรมของ Flatpak มันไม่ยอมใช้ฟอนต์ Default ของระบบเลย (ปกติผมใช้ DroidSans) แล้วคือฟอนต์ที่มันใช้นั้นอ่านโคตรยาก เลยพยายามเปลี่ยนที่อยู่ฟอนต์ใหม่แต่มันก็ไม่ยอมดึงฟอนต์มาใช้สักที จนปัญญาสุด ๆ แล้ว
ตัวอย่างภาพของปัญหา
flatpak มีปัญหาร้อยแปดกับ fontconfig อ่ะนะครับ https://github.com/flatpak/flatpak/issues/3947
แนะนำเท่าที่นึกออก แนวทางทั่วไปในการ diagnostic ปัญหาคือ
เช็คว่า fontconfig ตั้งค่าโอเคก่อน (ขั้นนี้ไม่เกี่ยวอะไรกับ flatpak) เช่น ถ้ารัน
fc-match -s sans-serif:lang=th | head
แล้วฟอนแรกๆในลิสออกมาเป็นฟอนต์ที่เราต้องการ. ถ้าขั้นนี้ทำงานปกติ แสดงว่าโปรแกรมอื่นๆในเครื่องที่ไม่ใช่ flatpak ต้องแสดงฟอนต์ปกติเช็คว่า flatpak app ที่ต้องการใช้สามารถเข้าถึง fontconfig ในเครื่องได้ ลองค้นวิธีในกูเกิ้ลเอา โดยทั่วไปสเตปพื้นฐานคือเช็ตด้วย flatseal ให้มีสิทธิเข้าถึง *.conf ของ fontconfig ได้
ราวๆนั้นครับ วิธีละเอียดๆลองค้น ArchWiki อ่าน ถ้าต้องลงลึกจริง อาจต้องตามอ่านถึง fontconfig sources เพราะ fontconfig docs รายละเอียดบางอย่างไม่มี 555 (ขึ้นชื่อมาก)
ลองใช้ฟอนต์อื่นดู กลุ่มฟอนต์จากทาง tlwg น่าจะไม่มีปัญหา
ตัวอย่างภาพนี่คืออย่างฮา
..: เรื่อยไป
สรุปแล้วไม่มีทางแก้ปัญหานี้ได้เลย แต่ด้วยความที่ว่าเข้าสู่ช่วงว่างงานแล้วคึก Distro Hop อีกครั้ง (แล้ว Elementary OS ก็ทรยศได้อย่างน่าเจ็บใจมาก) เลยได้ลองกลับมาแก้ปัญหานี้อีกครั้ง
แทบจะทุกแอปพลิเคชัน Flatpak นั้น ไม่มีแอปไหนยอมอ่าน
fontconfig
ของระบบเลย ต้องเอามาเองเท่านั้น บางคนเคลมว่าไม่ใช่บั๊ก แต่เป็นข้อจำกัดของ Flatpak เอง (ความเห็นส่วนตัว: ถุย) วิธีแก้คือต้องคัดลอกfontconfig
ของระบบ "ไปไว้ทุกแอปที่ใช้งาน" โดยปกติจะอยู่ที่/etc/fonts
ให้คัดลอกมาทั้งโฟลเดอร์เลย แล้วเอาไปไว้~/.var/app/ชื่อแอป/config/
(ถ้าไม่มีโฟลเดอร์ไหนก็สร้างขึ้นมาเอง) แล้วก็เปลี่ยนชื่อโฟลเดอร์ที่เพิ่งคัดลอกมา เช่นจากfonts
เป็นfontconfig
เป็นอันเสร็จสิ้นถ้าอยากสะดวกกว่านี้ หรือคัสตอมไว้ ก็ใช้ Symlink ไปยังโฟลเดอร์นั้น แล้วให้ Flatseal อนุญาตโฟลเดอร์
fontconfig
ของเราไว้เป็น Read-only สำหรับ Global Config เป็นอันจบกระบวนการปล. มีคนทำ Automated Script ไว้แต่ขี้เกียจเอามาลงตอนนี้
ขอบคุณสำหรับการแบ่งปันครับ 🙏👍