- Fungsi A: shortcut dari file executable (ELF/AppImage/script) - Fungsi B: shortcut PWA/URL dengan deteksi browser (native, /opt, Flatpak) - Checkbox Menu Aplikasi / Desktop, desktop-only pakai NoDisplay=true - List + uninstall + deteksi shortcut yang file .desktop-nya hilang - Metadata ~/.config/lazyrun/shortcuts.json, refresh cache XDG/KDE - AppImage + zsync update info via build.sh
27 lines
707 B
Go
27 lines
707 B
Go
package shortcut
|
|
|
|
import (
|
|
"context"
|
|
"os/exec"
|
|
"time"
|
|
|
|
"lazyrun/internal/xdg"
|
|
)
|
|
|
|
// RefreshCache memberi tahu desktop environment supaya .desktop baru langsung terbaca.
|
|
// Best-effort: kalau tool tidak ada atau gagal, menu tetap refresh saat login berikutnya.
|
|
func RefreshCache() {
|
|
ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
|
|
defer cancel()
|
|
|
|
if p, err := exec.LookPath("update-desktop-database"); err == nil {
|
|
_ = exec.CommandContext(ctx, p, xdg.ApplicationsDir()).Run()
|
|
}
|
|
for _, tool := range []string{"kbuildsycoca6", "kbuildsycoca5"} {
|
|
if p, err := exec.LookPath(tool); err == nil {
|
|
_ = exec.CommandContext(ctx, p, "--noincremental").Run()
|
|
return
|
|
}
|
|
}
|
|
}
|