Files
lazyrun/README.md
T
oxpoe 7f7cb97a65 Ikon otomatis dari internet + cursor mengikuti tema host
- Cari ikon online (Iconify) dari dialog install, plus tombol sync ikon per shortcut
- Auto ikon: file terdekat -> favicon situs (termasuk ikon manifest PWA) -> ikon brand
  yang namanya cocok -> ikon default; sumber ikon disimpan di metadata
- Query dibersihkan (web.whatsapp.com -> whatsapp) dan kata <4 huruf tidak dipakai
  supaya aplikasi tanpa ikon resmi tidak dapat ikon acak
- Unduhan thumbnail dibatasi 4 bersamaan + retry sekali (rate limit Iconify)
- Cursor: XCURSOR_THEME/XCURSOR_SIZE diambil dari config KDE/GTK/~/.icons default,
  dan AppImage tidak lagi membundel libX*/libwayland*/libxkbcommon (dipakai dari host)
- README: bagian ikon + integrasi desktop
2026-10-13 08:00:12 +07:00

4.9 KiB

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.

  • Repo: https://github.com/oxpoe/lazyrun

  • Donate: https://donasi.oxpoe.qzz.io/

  • 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.

  • Icons — three ways: pick a file, search an online icon library (Iconify, with the app name as the query), or let LazyRun do it automatically: a nearby image file, the site's favicon (including high resolution icons from the web app manifest), or a brand icon matched by name. Every downloaded icon remembers its source, so the sync icon button in the list can fetch it again later.

  • 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.

  • Desktop integration — uses the host cursor theme (KDE/GNOME setting is forwarded to the toolkit when the session does not export it), live desktop menu refresh via update-desktop-database and kbuildsycoca.

Install

Download the AppImage from Releases, then:

chmod +x lazyrun-*-x86_64.AppImage
./lazyrun-*-x86_64.AppImage

Keep it wherever you like (for example ~/.local/bin/). Automatic updates need 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).

./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:

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.