## umutray refactor tasks Work through these issues identified in code review. Address them one at a time and confirm before moving on. ### Packaging - [ ] Remove the Makefile and replace with a proper Arch PKGBUILD following https://wiki.archlinux.org/title/Rust_package_guidelines - [ ] Create a separate repo for the PKGBUILD (keeps packaging out of source repo and makes it AUR-uploadable). Reference the local repo path in the PKGBUILD so it always builds the latest version without pushing/pulling. ### Systemd / tray architecture - [ ] Remove runtime systemd unit file generation from Rust code — unit files should be static files shipped in the AUR package, not generated at runtime by the app. - [ ] Reconsider the `service install` command — the tray icon should use the StatusNotifierItem/AppIndicator XDG protocol (https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem) rather than a systemd service. ### Code quality - [ ] Add `#![forbid(unsafe_code)]` to the top of main.rs to enforce safe Rust project-wide. - [ ] Replace manual terminal color escape codes (in main.rs and detect.rs) with a crate like `colored` or `owo-colors`. - [ ] Replace manual home directory path construction in config.rs (~L88) with the `dirs` crate. ### UX / GUI - [ ] Fix blocking UI on long-running button actions (launch, kill, download) — use iced Command/async tasks so the UI keeps rendering and shows a loading state. ### Misc - [ ] Audit and document or refactor the unclear code at main.rs:307.