Niri Desktop EP.04 : การตั้งค่า Background & Backdrop
การตั้งค่าพื้นหลัง (ฺBackground) ของสกรีน
สิ่งหนึ่งที่เป็นความคุ้นเคยพื้นฐานของคนใช้คอมพ์ก็คือมีภาพพื้นหลังสวยๆ ไว้แก้เบื่อเวลาใช้คอมพ์ (ทั้งๆ ที่เวลาใช้คอมพ์ส่วนมากมันก็ไม่ได้เห็นภาพพื้นหลังสักเท่าไหร่) แต่มีไว้ก็ดี
ใน Niri ไม่มี ตัวเซ็ตภาพพื้นหลังมาให้ (ก็มันเน้นทำงานแค่จัดการหน้าต่างเท่านั้น) ดังนั้นจึงต้องอาศัยซอฟต์แวร์เพิ่มเติมเพื่อกำหนดภาพพื้นหลังโดยเฉพาะ โดยมีซอฟต์แวร์สำหรับตั้งค่าภาพพื้นหลังสำหรับใช้กับ Wayland Compositor ให้ใช้นั่นคือคำสั่ง swaybg จากชื่อคำสั่งเดาว่าตอนแรกถูกสร้างมาพื่อใช้กับ Sway ซึ่งเป็น Compositor ที่ได้รับความนิยมตัวหนึ่ง และมันสามารถนำมาใช้กับ Compositor ตัวอื่นได้ด้วย
swaybg มีในแหล่งแพคเกจหลักของลีนุกซ์ทั่วๆ ไป สามารถคิดตั้งโดยใช้คำสั่ง
sudo apt install swaybg (Debian Base)
sudo dnf install swaybg (Fedora Base)
sudo pacman -S swaybg (Arch Base)
sudo xbps-install -S swaybg (Void Base)
ส่วนดิสโทรอื่นก็ใช้คำสั่งติดตั้งของดิสโทรนั้น ๆ
จากนั้นเตรียมภาพที่จะใช้เป็นพื้นหลังโดยคัดลอกมาไว้ที่ไดเรคทอรีบ้านของเรา เพื่อจะได้ใช้สะดวกหน่อย เช่นชื่อไฟล์ wallpaper.jpg (สามารถใช้ฟอร์แมตอื่นได้ เช่น png, gif เป็นต้น) แล้วใช้คำสั่ง
swaybg -i wallpaper.jpg -m fill &
หลังจากใช้คำสั่งกำหนดพื้นหลังแล้ว เราก็จะเห็นภาพพื้นหลังปรากฎขึ้น ถ้าต้องการให้เซ็ตพื้นหลังไว้ทุกครั้งที่ล็อกอินเข้ามาใน Niri ให้แก้ไขไฟล์ ~/.config/niri/config.kdl โดยเพิ่มบรรทัดนี้เข้าไป (ไว้บรรทัดท้ายสุดเพื่อง่ายต่อการจัดการ)spawn-sh-at-startup "swaybg -i wallpaper.jpg -m fill"
เท่านี้เราก็จะได้พื้นหลังทุกครั้งที่ล็อกอินเข้ามา
ถ้าต้องการเปลี่ยนภาพก็ใช้คำสั่งใหม่โดยระบุชื่อภาพที่ต้องการอีกครั้ง
(และต้องแก้ชื่อไฟล์ที่ต้องการในไฟล์ config.kdl ด้วย)
บางคนอาจสงสัยว่ามันทำได้แค่นี้หรือ ก็ได้แค่นี้ครับ
เพราะหลักการทำงานของระบบ Linux/Unix มีพื้นฐานจากแนวคิดที่ว่า
ให้ซอฟต์แวร์ทำงานเฉพาะทางให้เจาะจงและมีความเรียบง่ายไม่ซับซ้อน
เพื่อประโยชน์ในการพัฒนาจะได้แก้ไขง่ายไม่ต้องเสียเวลาไปตามหาจุดเสียจากโปรแกรมใหญ่ๆ
ที่มีซับซ้อน จึงทำให้มีซอฟต์แวร์แนวนี้เป็นจำนวนมาก
ดังนั้น swaybg จึงเหมาะสำหรับคนที่ชอบระบบที่มีความซับซ้อนน้อย เน้นการทำงานเป็นหลัก a
อย่างไรก็ตามการจัดการพื้นหลังถ้าต้องการคุณสมบัติมากกว่านี้ก็มีอยู่ในชุดของซอฟต์แวร์สำหรับปรับแต่งระบบเดสก์ทอปอีกตัวหนึ่งคือ Noctalia ที่จะได้กล่าวถึงในตอนต่อๆ ไป
โปรแกรมอีกตัวหนึ่งที่ใช้กำหนดภาพพื้นหลังของ Niri (หรือ Wayland Compositor ทั่วไป) ก็คือ awww ซึ่งมีในแหล่งแพคเกจหลักของบางดิสโทรเท่านั้น เช่น Arch linux, Void Linux, OpenSuse เป็นต้น แต่ยังไม่มีใน Debian Base และ Fedora Base
ดังนั้น เราสามารถติดตั้ง awww ในดิสโทรที่มีในแหล่งแพคเกจหลักได้โดยใช้คำสั่ง
sudo pacman -S awww (Arch Base)
sudo xbps-install -S awww (Void Base)
ใน Fedora สามารถติดตั้งโดยเพิ่มแหล่งแพคเกจที่มีผู้ทำแพคเกจของ awww ไว้แล้ว โดยใช้คำสั่ง
sudo dnf copr enable scottames/awww
sudo dnf install awww
ส่วน Debian Base ต้องคอมไพล์จากซอร์สโค้ดของโปรแกรมโดยตรง (สามารถเข้าไปดูรายละเอียดได้ที่ https://codeberg.org/LGFae/awww ซึ่งเป็นเวปไซต์ของผู้พัฒนา)
หลังจากติดตั้งแล้วสามารถใช้ งานได้โดยใช้คำสั่ง
awww-daemon
awww img wallpaper.jpg
คำสั่งแรกจะเป็นการเปิด Service ของ awww
คำสั่งที่สองจะเป็นการกำหนดค่าภาพพื้นหลัง
ถ้าต้องการให้ Niri ใช้ awww ตั้งค่าภาพพื้นหลังให้ในตอนล็อกอินเข้ามาก็ให้เพิ่มบรรทัดนี้เข้าไปในไฟล์ config.kdl
spawn-sh-at-startup "awww-daemon"
โดยเซอร์วิสของ awww จะเรียกใช้ค่าล่าสุดที่มีการใช้คำสั่ง awww img
ถ้าจะเปลี่ยนภาพพื้นหลังก็ใช้แค่คำสั่ง awww img *.jpg (สามารถใช้ภาพฟอร์แมตมาตรฐานอื่นๆ ได้อีก เช่น png, bmp, webp, gif, tff เป็นต้น
การตั้งค่า Backdrop
ตามธรรมดา จะใช้โปรแกรมในการกำหนดภาพพื้นหลังแค่โปรแกรมเดียว ดังนั้น เราสามารถใช้ awww เซตค่าภาพพื้นหลัง และใช้ swaybg เป็นโปรแกรมสำหรับเซ็ตค่าภาพ backdrop ได้
backdrop คือภาพพื้นหลังที่ปรากฏเมื่อเราเข้าไปในโหมด Overview (ย่อสกรีนเพื่อเลือกใช้งานเวิร์คสเปชในตอนที่ใช้งาน Hot Corners) เราได้เรียนรู้การเซ็ตค่าสีของ backdrop ใน Niri ไปแล้วในตอนก่อน แต่ถ้าจะใช้รูปภาพมาเป็น backdrop เราก็มีวิธีการตั้งค่าโดยใช้ swaybg และ awww เซตค่าพื้นหลังพร้อมกันแล้ว ตั้งค่าให้ swaybg เป็นตัวตั้งค่าภาพ backdrop โดยเพิ่มการกำหนดค่าเพิ่มเติมใน config.kdl ตามนี้
layer-rule {
match namespace="^wallpaper$"
place-within-backdrop true
}
จากนั้นก็ออกจาก Niri แล้วล็อกอินเข้ามาใหม่ก็จะได้ภาพของ awww เป็นภาพหน้าจอและภาพของ swaybg เป็นbackdrop ตามต้องการ
การตั้งค่าภาพ backdrop สามารถทำหลายหลายวิธี ดังนั้น นี่จึงเป็นตัวอย่างของการตั้งค่าวิธีหนึ่งเท่านั้น


.png)