-
@ VΔz
2025-04-04 08:42:17darkman คืออะไร
Darkman เป็นโปรแกรมที่ช่วยควบคุมการเปลี่ยนโหมดสีของเดสก์ท็อประหว่างโหมดมืดและโหมดสว่างบนระบบปฏิบัติการ Unix-like. โปรแกรมนี้จะทำงานในเบื้องหลัง(background process) และสามารถตั้งค่าให้เปลี่ยนไปใช้โหมดมืดเมื่อพระอาทิตย์ตก หรือเปลี่ยนกลับไปใช้โหมดสว่างเมื่อพระอาทิตย์ขึ้นได้
การทำงานของ Darkman
เรียกใช้ผ่าน systemd service หรือคำสั่ง
darkman run
โดยตรงได้เลย- การตั้งค่าโหมด: Darkman สามารถตั้งค่าโหมดปัจจุบันเป็นโหมดมืดหรือโหมดสว่างได้ด้วยคำสั่ง
darkman set <light|dark>
. - การตรวจสอบโหมดปัจจุบัน: สามารถตรวจสอบโหมดปัจจุบันได้ด้วยคำสั่ง
darkman get
. - การสลับโหมด: สามารถสลับโหมดระหว่างโหมดมืดและโหมดสว่างได้ด้วยคำสั่ง
darkman toggle
. - การทำงานอัตโนมัติ: Darkman จะทำงานอัตโนมัติโดยใช้ข้อมูลตำแหน่งที่ตั้งของระบบเพื่อกำหนดเวลาพระอาทิตย์ขึ้นและตก.
- การปรับแต่ง: สามารถเพิ่มสคริปต์เพื่อปรับแต่งการทำงานของโปรแกรมให้เข้ากับแอปพลิเคชันต่างๆ ได้.
การตั้งค่า darkman
- สร้างไฟล์
config.yaml
ในโฟลเดอร์~/.config/darkman/
yaml lat: 13.7563 lng: 100.5018 # ตำแหน่งกรุงเทพ usegeoclue: false dbusserver: true portal: true
- การตั้งค่า portal สำหรับ Darkman
จะช่วยให้โปรแกรมสามารถเปลี่ยนโหมดสีของเดสก์ท็อปได้โดยใช้ XDG settings portal API.
2.1 สร้างไฟล์ portals.conf ในโฟลเดอร์ ~/.config/xdg-desktop-portal/
conf [preferred] org.freedesktop.impl.portal.Settings=darkman
2.1 รีสตาร์ท service xdg-desktop-portal เพื่อให้การตั้งค่าใหม่มีผล:
bash systemctl --user restart xdg-desktop-portal
การตั้งค่านี้จะช่วยให้แอปพลิเคชันต่างๆ บนเดสก์ท็อปสามารถอ่านค่าโหมดสีจาก Darkman และปรับเปลี่ยนตามที่กำหนด.
- Custom executables
ใน Darkman สามารถเพิ่มการทำงานเพิ่มเติมเมื่อมีการเปลี่ยนโหมดสีของเดสก์ท็อป โดยการวางสคริปต์หรือโปรแกรมที่ต้องการในไดเรกทอรีที่กำหนด
ไดเรกทอรีสำหรับ Custom executables:
$XDG_DATA_DIRS/dark-mode.d/
: สำหรับสคริปต์ที่ต้องการรันเมื่อเปลี่ยนไปใช้โหมดมืด$XDG_DATA_DIRS/light-mode.d/
: สำหรับสคริปต์ที่ต้องการรันเมื่อเปลี่ยนไปใช้โหมดสว่าง
ตัวอย่างการใช้งาน Custom executables:
- สร้างสคริปต์สำหรับโหมดมืด:
- สร้างไฟล์
set_dark_mode.sh
ในไดเรกทอรี$XDG_DATA_DIRS/dark-mode.d/
- เพิ่มเนื้อหาดังนี้:
```bash
!/bin/bash
ตัวอย่างสคริปต์สำหรับโหมดมืด
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" notify-send "Dark Mode Activated" ```
- สร้างสคริปต์สำหรับโหมดสว่าง:
- สร้างไฟล์
set_light_mode.sh
ในไดเรกทอรี$XDG_DATA_DIRS/light-mode.d/
- เพิ่มเนื้อหาดังนี้:
```bash
!/bin/bash
ตัวอย่างสคริปต์สำหรับโหมดสว่าง
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita" notify-send "Light Mode Activated" ```
- ตั้งค่าสิทธิ์การรันสคริปต์:
- ตั้งค่าสิทธิ์ให้สคริปต์สามารถรันได้:
bash chmod +x $XDG_DATA_DIRS/dark-mode.d/set_dark_mode.sh chmod +x $XDG_DATA_DIRS/light-mode.d/set_light_mode.sh
เมื่อ Darkman เปลี่ยนโหมด สคริปต์เหล่านี้จะถูกเรียกใช้งานตามที่กำหนด
การแก้ไขหากไม่พบ XDG_DATA_DIRS
หากไม่พบตัวแปร
XDG_DATA_DIRS
คุณสามารถสร้างไดเรกทอรีที่จำเป็นเองได้ตามต้องการ โดยปกติแล้วXDG_DATA_DIRS
จะประกอบด้วยไดเรกทอรีเหล่านี้:~/.local/share/
/usr/local/share/
/usr/share/
คุณสามารถสร้างไดเรกทอรีเหล่านี้และเพิ่มสคริปต์ของคุณได้ตามนี้:
- สร้างไดเรกทอรี:
- สร้างไดเรกทอรีสำหรับโหมดมืดและโหมดสว่าง:
bash mkdir -p ~/.local/share/dark-mode.d mkdir -p ~/.local/share/light-mode.d
- ทำการ export XDG_DATA_DIRS:
โดยทั่วไปเราสามารถตั้งตัวแปร Environments ต่าง ๆ ได้ที่
~/.profile
และตัวแปรทั้งหมดจะถูกโหลดหลังจากเรา Loginbash export XDG_DATA_DIRS=$HOME/.local/share:/usr/local/share:/usr/share:$XDG_DATA_DIRS
Source: darkman
- การตั้งค่าโหมด: Darkman สามารถตั้งค่าโหมดปัจจุบันเป็นโหมดมืดหรือโหมดสว่างได้ด้วยคำสั่ง