แก้ไขปัญหาแอป Flatpak ไม่รองรับธีม GTK ใน Ubuntu 24.04

หากแอป Flatpak เปิดใช้งานด้วยธีม Adwaita ในขณะที่ส่วนอื่นๆ ของ Ubuntu 24.04 ใช้ Yaru ไฟล์ธีมที่ติดตั้งบนเดสก์ท็อปของคุณอาจไม่มีปัญหา Flatpak รันแอปในสภาพแวดล้อมแบบแซนด์บ็อกซ์ ดังนั้นโปรแกรมจึงไม่ได้อ่านไฟล์ธีมของโฮสต์ทุกไฟล์โดยอัตโนมัติ วิธีแก้ไขโดยทั่วไปคือตรวจสอบให้แน่ใจว่าธีมที่เลือกนั้นพร้อมใช้งานสำหรับรันไทม์ของ Flatpak และบริการการตั้งค่าเดสก์ท็อปสามารถสื่อสารตัวเลือกที่ใช้งานอยู่ได้

คู่มือนี้เริ่มต้นด้วยการตรวจสอบเบื้องต้นและค่อยๆ ไปสู่การแก้ไขปัญหาที่เจาะจงมากขึ้น โดยส่วนใหญ่จะใช้ได้กับแอปพลิเคชัน GTK 3 แอปพลิเคชัน GTK 4 และ libadwaita อาจมีกฎการจัดรูปแบบที่แตกต่างกัน ดังนั้นธีมที่ใช้ได้ในแอป Files หรือแอป GTK 3 อื่นๆ จึงอาจไม่สามารถใช้งานได้กับทุกหน้าต่างของ Flatpak

สิ่งที่คุณควรรู้ก่อน

ธีมGTKควบคุมลักษณะการแสดงผลขององค์ประกอบอินเทอร์เฟซ เช่น ปุ่มและเมนูในแอปที่ใช้ GTK ซึ่งเป็นชุดเครื่องมือสำหรับสร้างอินเทอร์เฟซแบบกราฟิกรันไทม์ Flatpakให้ไลบรารีที่ใช้ร่วมกันโดยแอปที่ทำงานในสภาพแวดล้อมแบบแซนด์บ็อกซ์ แซนด์บ็อกซ์จะแยกไฟล์ระบบของแอปออกจากระบบโฮสต์ ส่งผลให้ไฟล์ธีมของโฮสต์ที่อยู่ในตำแหน่งต่างๆ/usr/share/themesจะไม่ถูกคัดลอกไปยัง Flatpak ทุกเครื่องโดยตรง

แนวทางที่ Flatpak รองรับสำหรับธีม GTK 3 คือการใช้ส่วนขยายที่มีชื่อเดียวกับธีม โดยทั่วไปจะตามหลังorg.gtk.Gtk3theme.ThemeName. หากส่วนขยายนั้นมีอยู่ในรีโมตที่กำหนดค่าไว้สำหรับรันไทม์ของแอป Flatpak สามารถติดตั้งส่วนขยายนั้นพร้อมกับแอปหรือระหว่างการอัปเดตได้ เดสก์ท็อปต้องแสดงการตั้งค่าที่ใช้งานอยู่ด้วย: XSettings ใช้ใน X11 ในขณะที่พอร์ทัลการตั้งค่าจะให้ข้อมูลนี้ใน Wayland พอร์ทัลเป็นบริการเดสก์ท็อปที่ให้แอปที่ทำงานในสภาพแวดล้อมแบบแซนด์บ็อกซ์เข้าถึงฟังก์ชันและค่ากำหนดของเดสก์ท็อปที่เลือกได้อย่างจำกัด

ธีม Yaru ซึ่งเป็นธีมเริ่มต้นของ Ubuntu นั้นถูกติดตั้งไว้ในเครื่องโฮสต์แล้ว แต่ข้อเท็จจริงนั้นเพียงอย่างเดียวไม่ได้พิสูจน์ว่าจะมีส่วนขยายธีม Flatpak ที่เหมาะสมสำหรับทุกแอปและทุกรันไทม์เสมอไป ความพร้อมใช้งานอาจขึ้นอยู่กับชื่อธีม รีโมต Flatpak ที่กำหนดค่าไว้ สาขารันไทม์ และชุดเครื่องมือ Flatpak ระบุว่า Adwaita เป็นตัวเลือกสำรองเมื่อธีมหรืออินเทอร์เฟซการตั้งค่าไม่พร้อมใช้งาน

ขั้นตอนที่ 1: ยืนยันธีมโฮสต์และเซสชัน

ขั้นแรก ตรวจสอบว่าธีมนั้นถูกนำไปใช้กับแอปพลิเคชันบนเดสก์ท็อปทั่วไปหรือไม่ เปิดการตั้งค่า → ลักษณะที่ปรากฏจดบันทึกสไตล์ที่เลือกไว้ และเปิดแอปพลิเคชัน GTK ที่ติดตั้งไว้ล่วงหน้า หากแอปพลิเคชันหลักแสดงผลผิดปกติเช่นกัน ให้แก้ไขลักษณะที่ปรากฏของเดสก์ท็อปก่อนที่จะเปลี่ยนการตั้งค่า Flatpak

คุณสามารถตรวจสอบชื่อธีม GTK จากเทอร์มินัลได้โดยใช้คำสั่ง:

gsettings get org.gnome.desktop.interface gtk-theme

ผลลัพธ์ที่ได้คือชื่อที่อยู่ในเครื่องหมายคำพูด เช่น'Yaru'จดบันทึกการสะกดและการใช้ตัวพิมพ์ใหญ่ Flatpak จะจับคู่ชื่อธีม GTK ที่เลือกไว้ในโฮสต์กับนามสกุลไฟล์ การค้นหาธีมที่คล้ายกันแต่มีชื่อต่างกันอาจไม่สามารถแก้ไขความไม่ตรงกันได้ เอกสารโครงการ Yaru ของ Ubuntu ระบุว่า Yaru เป็นชุดธีม GTK เริ่มต้นของ Ubuntu

นอกจากนี้ ให้ตรวจสอบว่าเซสชันของคุณเป็น Wayland หรือ X11 บนหน้าจอเข้าสู่ระบบ ให้เลือกผู้ใช้ของคุณและใช้เมนูรูปเฟืองหากมี เซสชันมักจะแสดงอยู่ที่นั่น สิ่งนี้สำคัญเพราะเส้นทางการตั้งค่าแตกต่างกัน: Wayland ใช้พอร์ทัล ในขณะที่ X11 ใช้ XSettings เซสชัน GNOME เริ่มต้นของ Ubuntu 24.04 มักใช้ Wayland แต่ผู้ใช้สามารถเลือกเซสชันอื่นได้

ขั้นตอนที่ 2: อัปเดต Flatpak และตรวจสอบความพร้อมใช้งานของส่วนขยายธีม

เรียกใช้การอัปเดต Flatpak ทั่วไปเพื่อให้แอปที่ติดตั้ง รันไทม์ และส่วนขยายที่มีอยู่ได้รับการรีเฟรช:

flatpak update

ตรวจสอบการเปลี่ยนแปลงที่เสนออย่างละเอียดก่อนยืนยัน จากนั้น ค้นหาส่วนขยายในรีโมทที่กำหนดค่าไว้ซึ่งตรงกับชื่อธีมที่คุณบันทึกไว้ สำหรับการเลือก Yaru ให้ลองใช้:

flatpak search org.gtk.Gtk3theme.Yaru

หากผลการค้นหาแสดงส่วนขยายที่ตรงกัน ให้จดบันทึกรหัสแอปพลิเคชันและรีโมตที่แสดงไว้ให้ถูกต้อง ติดตั้งเฉพาะในกรณีที่ Flatpak ยังไม่ได้ติดตั้งไว้ ใช้รหัสและรีโมตตามที่แสดงทุกประการ:

flatpak install REMOTE EXTENSION_ID

แทนที่ตัวยึดตำแหน่งที่เป็นตัวพิมพ์ใหญ่ทั้งสองตัวด้วยค่าจริง อย่าคัดลอกรหัสส่วนขยายที่คาดเดาจากธีมหรือสาขารันไทม์ที่ไม่เกี่ยวข้อง บางเวอร์ชันของส่วนขยายอาจไม่พร้อมใช้งานสำหรับรันไทม์ที่กำหนด ในกรณีนั้น แอปยังคงสามารถใช้ Adwaita ได้แม้ว่าโฮสต์จะมี Yaru ก็ตาม

เอกสารประกอบการใช้งาน Flatpak บนเดสก์ท็อประบุว่า ส่วนขยายธีม GTK ที่ตรงกันจะถูกติดตั้งโดยอัตโนมัติระหว่างการติดตั้งหรืออัปเดตแอป หากมีอยู่ในรีโมท ดังนั้น หากส่วนขยายมีอยู่แต่ไม่มีอยู่ในแอป การอัปเดตแอปก็อาจเพียงพอแล้ว ผลการค้นหาอาจแตกต่างกันไปเมื่อรีโมทและแพ็กเกจมีการเปลี่ยนแปลง ดังนั้น ให้ถือว่าผลลัพธ์จาก Flatpak ในเครื่องของคุณเป็นข้อมูลตรวจสอบปัจจุบัน แทนที่จะสันนิษฐานชื่อแพ็กเกจ

ขั้นตอนที่ 3: รีสตาร์ทแอปและรีเฟรชบริการการตั้งค่าเดสก์ท็อป

ปิดแอปพลิเคชันที่ได้รับผลกระทบอย่างสมบูรณ์ รวมถึงโปรแกรมที่ทำงานอยู่เบื้องหลัง จากนั้นเปิดแอปนั้นอีกครั้ง กระบวนการที่กำลังทำงานอยู่อาจคงการตั้งค่าลักษณะที่ปรากฏที่อ่านได้ตอนเริ่มต้นไว้

หากคุณใช้ Wayland และพบว่า GTK Flatpak หลายตัวยังคงไม่สนใจรูปแบบที่เลือกไว้ โปรดตรวจสอบว่าได้ติดตั้งแบ็กเอนด์ GTK portal แล้วหรือไม่:

dpkg -l xdg-desktop-portal xdg-desktop-portal-gtk

ตรวจสอบสถานะการติดตั้งในรายการแพ็กเกจ เอกสาร Flatpak ระบุไว้อย่างชัดเจนxdg-desktop-portal-gtkว่าจำเป็นสำหรับธีมและฟอนต์ GTK หากไม่พบ ให้ติดตั้งแพ็กเกจ Ubuntu จากคลังเก็บอย่างเป็นทางการ:

sudo apt update
sudo apt install xdg-desktop-portal-gtk

บันทึกงานในแอปพลิเคชันที่เปิดอยู่ก่อน จากนั้นลงชื่อออกแล้วลงชื่อเข้าใหม่ ซึ่งจะรีสตาร์ทเซสชันผู้ใช้และบริการพอร์ทัลอย่างราบรื่น วิธีนี้มักเป็นตัวเลือกที่ชัดเจนที่สุดสำหรับผู้เริ่มต้น ผู้ใช้ขั้นสูงสามารถรีสตาร์ทบริการผู้ใช้จากเทอร์มินัลได้โดยใช้คำsystemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-gtk.serviceสั่ง `start` แต่ชื่อบริการและพฤติกรรมการเปิดใช้งานอาจแตกต่างกันไปตามการติดตั้ง หากคำสั่งนั้นรายงานว่าหน่วยไม่ถูกโหลด ให้ใช้การลงชื่อออกแทนการรีสตาร์ทบริการซ้ำๆ

ขั้นตอนที่ 4: ตรวจสอบว่าแอปพลิเคชันรองรับธีมหรือไม่

เปิด Flatpak เดิมขึ้นมาอีกครั้ง แล้วเปรียบเทียบปุ่ม เมนู และเนื้อหาหน้าต่างกับแอป GTK ที่ติดตั้งจากแพ็กเกจของ Ubuntu หากมีเพียง Flatpak เดียวที่แตกต่างออกไป ปัญหาอาจเกิดจากชุดเครื่องมือ รันไทม์ หรือการใช้งานของแอปนั้นโดยเฉพาะ ตัวอย่างเช่น แอป GTK 4 บางแอปใช้ libadwaita ซึ่งตั้งใจปฏิบัติตามแบบแผนการออกแบบของ GNOME และไม่รองรับธีม GTK แบบกำหนดเองในลักษณะเดียวกับที่แอป GTK 3 รุ่นเก่าทำ นอกจากนี้ ส่วนขยาย Flatpak สำหรับ GTK 3 ก็จะไม่ปรับเปลี่ยนรูปแบบของแอป Qt ด้วยเช่นกัน

เมื่อแอปใช้รันไทม์เวอร์ชันล่าสุดและมีการติดตั้งส่วนขยายธีม GTK 3 การตั้งค่าเดสก์ท็อปควรจะถูกนำไปใช้โดยอัตโนมัติ หากไม่เป็นเช่นนั้น ให้ตรวจสอบรันไทม์ของแอปโดยใช้คำสั่งต่อไปนี้:

flatpak info APP_ID

แทนที่APP_IDด้วยรหัสประจำตัวจริงของแอปพลิเคชัน ผลลัพธ์จะช่วยให้คุณระบุรันไทม์และสาขาที่จะรายงานหากคุณติดต่อผู้ดูแลแอปพลิเคชัน แต่ผลลัพธ์นี้ไม่ได้พิสูจน์ว่าแอปพลิเคชันนั้นรองรับการตั้งค่าธีม GTK หรือไม่

วิธีแก้ไขทั่วไปที่ควรหลีกเลี่ยง

  • อย่าให้สิทธิ์การเข้าถึงระบบไฟล์ของโฮสต์อย่างกว้างขวางเป็นวิธีแก้ปัญหาแรกเอกสารของ Flatpak ระบุว่าการเปิดเผยไฟล์ธีมของโฮสต์อาจทำให้ระบบรักษาความปลอดภัยอ่อนแอลงและลดความสามารถในการพกพา ควรเลือกใช้ส่วนขยายธีมที่ได้รับการดูแลรักษาและระบบการทำงานบนเดสก์ท็อปที่ใช้งานได้จริง
  • อย่าคิดว่าการติดตั้งธีมด้วย APT จะติดตั้งธีมนั้นลงใน Flatpak ทุกเครื่อง APT จะเปลี่ยนโฮสต์เท่านั้น รันไทม์ของ Flatpak ยังคงต้องการส่วนขยายที่เข้ากันได้หรือเส้นทางการตั้งค่าที่รองรับอยู่
  • อย่าสับสนระหว่างโหมดมืดกับธีม GTKการตั้งค่าโทนสีของเดสก์ท็อปและธีม GTK แบบเต็มรูปแบบนั้นมีความเกี่ยวข้องกันแต่ก็แตกต่างกัน แอปและรันไทม์ของแอปต้องรองรับการตั้งค่าที่เกี่ยวข้องด้วย
  • อย่ารีเซ็ตการตั้งค่า GNOME ทั้งหมดหรือลบโฟลเดอร์ธีมการกระทำดังกล่าวอาจลบการตั้งค่าที่ไม่เกี่ยวข้องและไม่เพิ่มส่วนขยาย Flatpak ที่ขาดหายไป
  • อย่าใช้การกำหนดค่าตัวแปรสภาพแวดล้อมเป็นวิธีแก้ปัญหาแบบครอบคลุมการกำหนดค่าตัวแปรสภาพแวดล้อมอาจแตกต่างกันไปตามชุดเครื่องมือและแอปพลิเคชัน และอาจปกปิดปัญหาที่แท้จริงของส่วนขยายที่หายไปหรือปัญหาของพอร์ทัลได้

ตรวจสอบผลลัพธ์

หลังจากอัปเดตหรือติดตั้งส่วนขยายที่ตรงกันแล้ว และรีสตาร์ทเซสชันหรือแอป ให้ตรวจสอบสามสิ่งต่อไปนี้: โฮสต์ยังคงรายงานชื่อธีม GTK ที่คาดหวังไว้ ส่วนขยายธีมที่เกี่ยวข้องปรากฏในแอปพลิเคชันที่ติดตั้งใน Flatpak และส่วนควบคุม GTK ของแอปที่ได้รับผลกระทบมีลักษณะที่คาดหวังไว้ คุณสามารถแสดงรายการ Flatpak ที่ติดตั้งไว้ได้โดยใช้คำสั่ง:

flatpak list --app

หากธีมโฮสต์ถูกต้อง ส่วนขยายไม่พร้อมใช้งานสำหรับรันไทม์ของแอป และมีเพียงแอปพลิเคชันเดียวเท่านั้นที่ยังคงมีลักษณะแตกต่างกัน ข้อจำกัดอาจเป็นปัญหาเฉพาะแอปมากกว่าจะเป็นปัญหาจากธีม Ubuntu ที่เสียหาย โปรดระบุ ID แอป Flatpak สาขารันไทม์ ประเภทเซสชัน ชื่อธีม และสถานะแพ็กเกจพอร์ทัลที่เกี่ยวข้องเมื่อรายงานปัญหา ข้อมูลเหล่านี้จะช่วยให้ผู้ดูแลระบบสามารถแยกแยะช่องว่างของแพ็กเกจออกจากปัญหาการตั้งค่าเดสก์ท็อปได้

ข้อมูลอ้างอิงอย่างเป็นทางการ

ฝากความเห็น

แก้ไขปัญหาแอป Flatpak ไม่รองรับธีม GTK ใน Ubuntu 24.04

แก้ไขปัญหาแอป Flatpak ไม่รองรับธีม GTK ใน Ubuntu 24.04

เรียนรู้สาเหตุที่แอป Flatpak อาจไม่รองรับธีม GTK ของ Ubuntu 24.04 และปฏิบัติตามขั้นตอนที่ปลอดภัยเพื่อตรวจสอบส่วนขยายธีม รีเฟรชแอป Flatpak และวินิจฉัยปัญหาของพอร์ทัล

วิธีการติดตั้งระบบปฏิบัติการ Ubuntu 24.04 และ Windows 11 แบบ Dual-Boot โดยเปิดใช้งาน BitLocker ไว้

วิธีการติดตั้งระบบปฏิบัติการ Ubuntu 24.04 และ Windows 11 แบบ Dual-Boot โดยเปิดใช้งาน BitLocker ไว้

ติดตั้ง Ubuntu 24.04 ควบคู่ไปกับ Windows 11 ที่มี BitLocker อย่างปลอดภัย เปรียบเทียบเส้นทางไดรฟ์แยกต่างหากและไดรฟ์ที่ใช้ร่วมกัน รหัสกู้คืน การแบ่งพาร์ติชั่น และการตรวจสอบการบูต

วิธีแก้ไขปัญหาไดรเวอร์ Nvidia ไม่โหลดหลังจากอัปเดตเคอร์เนลบน Ubuntu

วิธีแก้ไขปัญหาไดรเวอร์ Nvidia ไม่โหลดหลังจากอัปเดตเคอร์เนลบน Ubuntu

ตรวจสอบความล้มเหลวของไดรเวอร์ NVIDIA หลังจากการอัปเดตเคอร์เนล Ubuntu ตรวจสอบ DKMS และ Secure Boot สร้างโมดูลที่เกี่ยวข้องใหม่ ลงทะเบียน MOK และตรวจสอบการแก้ไข

วิธีแก้ไขปัญหา Wi-Fi หลุดการเชื่อมต่อหลังจากพักเครื่องใน Ubuntu 24.04

วิธีแก้ไขปัญหา Wi-Fi หลุดการเชื่อมต่อหลังจากพักเครื่องใน Ubuntu 24.04

แก้ไขปัญหาการหลุดการเชื่อมต่อ Wi-Fi ใน Ubuntu 24.04 หลังจากเข้าสู่โหมดพักเครื่อง โดยตรวจสอบ NetworkManager, การบล็อกคลื่นความถี่, การอัปเดต, โหมดประหยัดพลังงาน และไดรเวอร์ จากนั้นตรวจสอบทุกครั้งที่กลับมาใช้งานต่อ

แก้ไขปัญหาการใช้งาน CPU สูงโดย Tracker-Miner-3 ใน Ubuntu GNOME

แก้ไขปัญหาการใช้งาน CPU สูงโดย Tracker-Miner-3 ใน Ubuntu GNOME

เรียนรู้ว่าเหตุใด tracker-miner-fs-3 จึงใช้ CPU สูงใน Ubuntu GNOME และวิธีการตรวจสอบการจัดทำดัชนี การยกเว้นโฟลเดอร์ การอัปเดต Ubuntu หรือการสร้างดัชนีการค้นหาใหม่อย่างปลอดภัย

แก้ไขปัญหา “ไม่พบอุปกรณ์บูต” หลังจากติดตั้ง Debian บน UEFI

แก้ไขปัญหา “ไม่พบอุปกรณ์บูต” หลังจากติดตั้ง Debian บน UEFI

แก้ไขข้อผิดพลาดในการบูต UEFI ของ Debian โดยตรวจสอบโหมดการบูต พาร์ติชั่นระบบ EFI ไฟล์ GRUB และลำดับการบูตเฟิร์มแวร์ โดยไม่ต้องติดตั้ง Debian ใหม่ก่อน

วิธีใช้ Focus Session ใน Windows 11 เพื่อการเรียน

วิธีใช้ Focus Session ใน Windows 11 เพื่อการเรียน

ค้นพบวิธีใช้ประโยชน์จาก Focus Sessions ใน Windows 11 เพื่อการเรียนที่มีประสิทธิภาพ เรียนรู้เคล็ดลับทีละขั้นตอนเพื่อลดสิ่งรบกวน เพิ่มสมาธิ และบรรลุผลการเรียนที่ดีขึ้นด้วยเครื่องมือเพิ่มประสิทธิภาพการทำงานในตัวนี้

แก้ไขข้อผิดพลาด Nxdomain ใน Windows 11 (DNS Probe Finished)

แก้ไขข้อผิดพลาด Nxdomain ใน Windows 11 (DNS Probe Finished)

กำลังประสบปัญหาข้อผิดพลาด "DNS Probe Finished Nxdomain" บน Windows 11 อยู่ใช่ไหม? ค้นพบวิธีแก้ไขปัญหา DNS อย่างรวดเร็ว กู้คืนการเชื่อมต่ออินเทอร์เน็ต และกลับมาใช้งานออนไลน์ได้โดยไม่หงุดหงิด คู่มือทีละขั้นตอนสำหรับผู้เริ่มต้น

วิธีแก้ไขปัญหา Driver Overran Stack Buffer ใน Windows 11

วิธีแก้ไขปัญหา Driver Overran Stack Buffer ใน Windows 11

กำลังประสบปัญหาข้อผิดพลาด "Driver Overran Stack Buffer" ใน Windows 11 อยู่ใช่ไหม? ค้นพบวิธีแก้ไขแบบทีละขั้นตอนที่ได้รับการพิสูจน์แล้ว เพื่อแก้ไขปัญหา BSOD ที่น่าหงุดหงิดนี้ได้อย่างรวดเร็ว และทำให้พีซีของคุณกลับมาทำงานได้อย่างราบรื่นอีกครั้ง อัปเดตด้วยเคล็ดลับล่าสุดเพื่อประสิทธิภาพสูงสุด

วิธีใช้งานโปรแกรมป้องกันไวรัสในตัวของ Windows 11 อย่างถูกต้อง

วิธีใช้งานโปรแกรมป้องกันไวรัสในตัวของ Windows 11 อย่างถูกต้อง

เรียนรู้วิธีการใช้งาน Windows Defender ซึ่งเป็นโปรแกรมป้องกันไวรัสในตัวของ Windows 11 อย่างถูกต้อง เพื่อความปลอดภัยสูงสุด รับคำแนะนำทีละขั้นตอน เคล็ดลับ และแนวทางปฏิบัติที่ดีที่สุดในการปกป้องพีซีของคุณอย่างมีประสิทธิภาพ