Files
rikkei_simple_care/client/internal/winapi/window_linux.go
Your Name 2ad899d787 add linux
2026-07-02 13:34:40 +07:00

41 lines
1.2 KiB
Go

//go:build linux
package winapi
import (
"log"
"os/exec"
)
// ActivateAppWindow attempts to focus the application window.
// On Linux standard X11/Wayland desktop, focus is managed by the WM.
func ActivateAppWindow(titleHint string) {
log.Printf("[WINDOW] ActivateAppWindow requested for: %s", titleHint)
}
// PlayNotifySound plays a system notification sound using canberra-gtk-play, falling back to pw-play or aplay.
func PlayNotifySound() {
log.Println("[WINDOW] Playing notification sound...")
go func() {
// Try canberra-gtk-play first
cmd := exec.Command("canberra-gtk-play", "-i", "bell")
if err := cmd.Run(); err != nil {
// Fallback to pw-play (Pipewire)
cmd = exec.Command("pw-play", "/usr/share/sounds/freedesktop/stereo/bell.oga")
if err := cmd.Run(); err != nil {
// Fallback to aplay (ALSA)
_ = exec.Command("aplay", "/usr/share/sounds/alsa/Front_Center.wav").Run()
}
}
}()
}
// ShowWarningMessageBox displays an asynchronous GUI warning dialog using zenity.
func ShowWarningMessageBox(title, message string) {
log.Printf("[WINDOW] Warning Message Box: %s - %s", title, message)
go func() {
cmd := exec.Command("zenity", "--warning", "--title="+title, "--text="+message, "--no-wrap")
_ = cmd.Run()
}()
}