UI: tombol GitHub + Donasi, tombol Open per shortcut, aksen gradien

- Footer: Check for Updates, GitHub (github.com/oxpoe/lazyrun), Donate (donasi.oxpoe.qzz.io)
- Baris shortcut: tombol play untuk menjalankan (pakai exec_args hasil install)
- metadata shortcut menyimpan exec_args; ada fallback ke binary/URL untuk data lama
- Chip jumlah shortcut di header daftar + garis gradien brand di bawah header
- README: link repo & donasi absolut
This commit is contained in:
oxpoe committed 2026-10-13 08:00:12 +07:00
1 parent f00662627a
commit b12efefd6a
10 files changed
+111 -4

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
package ui
import (
"net/url"
"os/exec"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/dialog"
"lazyrun/internal/store"
)
// Link aplikasi: repo GitHub LazyRun dan halaman donasi.
const (
repoURL = "https://github.com/oxpoe/lazyrun"
donateURL = "https://donasi.oxpoe.qzz.io/"
)
// openURL membuka link di browser default.
func (ui *app) openURL(raw string) {
u, err := url.Parse(raw)
if err == nil {
err = fyne.CurrentApp().OpenURL(u)
}
if err != nil {
dialog.ShowError(err, ui.win)
}
}
// launch menjalankan shortcut: pakai argv hasil install, fallback ke binary/URL.
func (ui *app) launch(sc store.Shortcut) {
args := sc.ExecArgs
if len(args) == 0 {
switch {
case sc.Type == store.TypeWebApp && sc.URL != "":
args = []string{"xdg-open", sc.URL}
case sc.BinaryPath != "":
args = []string{sc.BinaryPath}
}
}
if len(args) == 0 {
return
}
cmd := exec.Command(args[0], args[1:]...)
if err := cmd.Start(); err != nil {
dialog.ShowError(err, ui.win)
return
}
go cmd.Wait() // supaya proses anak tidak jadi zombie
}