41 lines
1.2 KiB
Go
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()
|
|
}()
|
|
}
|