- 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
102 lines
4.1 KiB
Markdown
102 lines
4.1 KiB
Markdown
# LazyRun — lazy shortcut build
|
|
|
|
Desktop app (Go + Fyne) that creates application shortcuts on Linux in a few clicks:
|
|
from an executable file, or from a web URL as a PWA. Ships as a single-file
|
|
AppImage, no terminal needed.
|
|
|
|
- **Executable shortcut** — picks an ELF/AppImage/script, copies it to
|
|
`~/.local/bin/`, installs the icon, writes the `.desktop` entry.
|
|
- **Web app shortcut** — opens the URL as an app: `--app=<url>` for
|
|
Chromium-based browsers (Chrome, Chromium, Brave, Edge, Vivaldi, Helium,
|
|
including Flatpak builds), `--new-window` for Firefox.
|
|
- **Shortcut location** — checkbox for *Application menu* and/or *Desktop*,
|
|
at least one is required. Desktop-only entries are written with
|
|
`NoDisplay=true` so they do not show up in the menu.
|
|
- **Manage** — list installed shortcuts, see where they live, mark entries whose
|
|
`.desktop` file was deleted manually, uninstall (optionally removing the
|
|
copied binary).
|
|
- **Auto refresh** — calls `update-desktop-database` and
|
|
`kbuildsycoca6`/`kbuildsycoca5` after install/uninstall.
|
|
- **i18n** — UI in English or Indonesian, chosen from `$LANG`.
|
|
- **Self update** — AppImage with embedded zsync update information, optional
|
|
`AppImageUpdate` integration via *Check for Updates*.
|
|
|
|
## Install
|
|
|
|
Download the AppImage from [Releases](../../releases), then:
|
|
|
|
```bash
|
|
chmod +x lazyrun-*-x86_64.AppImage
|
|
./lazyrun-*-x86_64.AppImage
|
|
```
|
|
|
|
Keep it wherever you like (for example `~/.local/bin/`). Automatic updates need
|
|
[AppImageUpdate](https://github.com/AppImageCommunity/AppImageUpdate) in `$PATH`.
|
|
|
|
## Usage
|
|
|
|
1. **+ Executable** or **+ Web App**.
|
|
2. Fill in the form (name and icon are pre-filled/auto-detected).
|
|
3. Pick *Application menu* and/or *Desktop*, then **Install**.
|
|
|
|
## What it writes
|
|
|
|
| Purpose | Path |
|
|
|---|---|
|
|
| Copied binary | `~/.local/bin/<name>` |
|
|
| Icon | `~/.local/share/icons/hicolor/512x512/apps/<name>.png` |
|
|
| Menu entry (source of truth) | `~/.local/share/applications/<name>.desktop` |
|
|
| Desktop copy | `~/Desktop/<name>.desktop` (from `xdg-user-dir DESKTOP`) |
|
|
| LazyRun metadata | `~/.config/lazyrun/shortcuts.json` |
|
|
|
|
Everything stays inside the home directory — no root, no system directories.
|
|
Filenames use a slug of the app name (`WhatsApp Web` → `whatsapp-web.desktop`);
|
|
the `Name=` field keeps the name you typed.
|
|
|
|
## Build
|
|
|
|
Requirements: Go 1.24+, cgo, and X11/OpenGL development headers (Fyne).
|
|
|
|
```bash
|
|
./build.sh # dist/lazyrun + dist/lazyrun-<version>-<arch>.AppImage
|
|
SKIP_APPIMAGE=1 ./build.sh # binary only
|
|
go test ./... # unit + install/uninstall tests
|
|
```
|
|
|
|
`build.sh` downloads `linuxdeploy` into `dist/tools/` on first run and needs
|
|
network for the AppImage step. To embed zsync update information, set
|
|
`GH_USER` and `GH_REPO`:
|
|
|
|
```bash
|
|
GH_USER=oxpoe GH_REPO=lazyrun ./build.sh
|
|
```
|
|
|
|
## Roadmap
|
|
|
|
- v1.1 — edit existing shortcuts, detect binaries in `$PATH`, optional symlink
|
|
instead of a Desktop copy, import/export, dark mode.
|
|
- v1.2 — Firefox PWA via `--kiosk`, Flatpak/Snap targets, icon preview.
|
|
|
|
## Disclaimer / Catatan
|
|
|
|
**EN** — LazyRun is a small hobby project by **oxpoe**, made for fun and to make
|
|
daily Linux desktop life a bit simpler: turn a portable binary or a web page
|
|
into a proper application shortcut without opening a terminal. It only writes
|
|
inside your home directory, but it does copy files and create launchers: check
|
|
what you point it at, keep backups of anything irreplaceable, and use it at your
|
|
own risk. Provided "as is", without warranty of any kind. LazyRun is not
|
|
affiliated with any browser vendor or application it creates shortcuts for.
|
|
|
|
**ID** — LazyRun adalah proyek iseng **oxpoe**, dibuat untuk senang-senang dan
|
|
supaya urusan shortcut di desktop Linux jadi lebih simpel: binary portable atau
|
|
halaman web bisa jadi shortcut aplikasi tanpa buka terminal. Aplikasi ini hanya
|
|
menulis di dalam home directory, tetapi tetap menyalin file dan membuat
|
|
launcher: periksa dulu apa yang kamu pilih, backup data penting, dan gunakan
|
|
dengan risiko sendiri. Disediakan "apa adanya", tanpa jaminan apa pun. LazyRun
|
|
tidak berafiliasi dengan vendor browser atau aplikasi apa pun yang dibuatkan
|
|
shortcut-nya.
|
|
|
|
## License
|
|
|
|
MIT.
|