Releases: michaelmonetized/naarchy
Release list
0.4.0 — preferences, doctor, a quieter island
0.4.0 — preferences, doctor, a quieter island
- Preferences. Native settings for Home, appearance, and reduced-motion.
- Doctor.
naarchy --versionandnaarchy doctortell you if the session is wired. - Quieter. Less repeated service startup, fewer redraws, less work on the desktop thread. Monitor and appearance changes refresh the surfaces.
- Clipboard. Newest first, even with pins. Recopying an older entry promotes it instead of duplicating it.
- State. Clipboard, Inbox, and Home writes are atomic. Failed writes keep the last good file; corrupt JSON is backed up.
- Inbox. Batch drops. Image blobs leave only after the last reference is gone. Clearing Inbox leaves original files alone. Duplicates are rejected.
- Home. Clock and deliberately empty widget selections survive a restart.
- Privacy. Calendar travel estimates are opt-in. Disabling clipboard capture stops the background service.
Downloads
| File | Arch |
|---|---|
naarchy-aarch64-unknown-linux-gnu.tar.gz |
ARM64 (Asahi / Omarchy Mac) |
naarchy-x86_64-unknown-linux-gnu.tar.gz |
x86_64 |
naarchy-0.4.0-src.tar.gz |
Source |
Extract a package and run bash scripts/install.sh from its directory. It installs the binary, launcher, icon, and user unit. It does not start the service. Checksums in SHA256SUMS.
x86_64 built on hpeliteclient. aarch64 built on m1pro16.
0.3.3 — kill the plus, show the art, drop battery
0.3.3 — kill the plus, show the art, drop battery
- Inbox + on the player is gone. It dumped a text note of the track onto the shelf. Nobody asked it to keep doing that.
- Album art: Chromium serves real covers as
/tmp/.org.chromium.Chromium.*. Treating those as the Chrome-icon leftover hid every Spotify cover. Copy the file into the art cache; hollow players are still filtered byis_live. - Layout: panel title + artist sit on their own lines above play/next, so they are not crushed by the buttons. Pill title gets a wider ear. Closed-island art is a 32px chip (
Image+pixel_size) so the full-res cover cannot blow the capsule. - Battery: Home widget, pill chip, and UPower are gone. The bar already shows percent. Empty-state media is Spotify + cliamp logos.
naarchy hud batterystill works.
Downloads
| File | Arch |
|---|---|
naarchy-aarch64-unknown-linux-gnu |
ARM64 (Asahi / Omarchy Mac) |
naarchy-x86_64-unknown-linux-gnu |
x86_64 |
naarchy-0.3.3-src.tar.gz |
Source |
Checksums in SHA256SUMS. GitHub also attaches the tag source zip/tar.
x86_64 built on hpeliteclient. aarch64 built on m1pro16.
v0.2.5 — no clock, compact media, pause fix
Clock
You said clocks are everywhere — WidgetStore::default is Timer+Media and src/widget_store.rs:71 now migrates ~/.config/naarchy/widgets.json removing Clock (your file had Timer,Media,Clock,Battery → now Timer,Media,Battery). Drawer still has Clock if you ever want it.
Media pause
src/ui/media.rs:108 play_btn now logs player and media_cmd is always Some after mpris::run; src/services/mpris.rs:132 ranked PlayPause targets the playing player (chromium Playing Royalty now correctly pauses via gdbus PlayPause — tested Paused→Playing). Compact redesign matches your screenshot src/ui/media.rs:27 — na-media-card 56px art na-media-art--small, na-media-title--compact 13px, + src/ui/mod.rs:37 PLUS na-media-btn adds current track to shelf, white 36px pause, next 32px — no seek/shuffle (observability, not dumb cliamp). src/theme.rs:322 na-media-card rgba(32,32,34,0.96) 16px radius matches dark card.
v0.2.4 — calendar join + directions + leave
Calendar
- Join: if ICS
DESCRIPTION/LOCATION/URL/X-GOOGLE-CONFERENCEcontainsmeet.google.com/zoom.us/teams.microsoft.com|teams.live.com, showJoin Meet/Zoom/Teamsbutton opening viaxdg-open(src/services/calendar.rs:350,src/ui/calendar.rs:250). - Directions + leave: if
LOCATIONis physical address (not URL,src/services/calendar.rs:400), showDirections→https://www.google.com/maps/dir/?api=1&destination=…(src/services/calendar.rs:410) and asyncLeave HH:MM (N min)via current location (portal 3s →ipinfo.io35.4887,-82.9887src/services/location.rs:106) → Nominatim → OSRM, cached (~/.cache/naarchy/geocode.json/route.json), 5 min buffer (src/services/location.rs:219). Enriched viaEvent::CalendarEnriched(src/services/mod.rs:28,src/app.rs:377).
v0.2.3 — calendar ICS fix
Fix DTSTART;TZID=... and DTSTART;VALUE=DATE never parsed — ics_props stored full DTSTART;TZID=... key so props.get("DTSTART") missed, and parse_dtstart expected DTSTART:... prefix (src/services/calendar.rs:260/292). Your private https://calendar.google.com/calendar/ical/.../basic.ics at ~/.config/naarchy/config.toml:37 now shows Monday Sales Huddle Meeting at 10:00 today (was 0 events). Also /tmp/debug_fixed now parses 1.
v0.2.2 — calendar docs, media observer, clipboard facelift
Calendar
Add ICS subscription URLs at bottom of ~/.config/naarchy/config.toml:36 (~/.config/naarchy/config.toml:36 — hot-reloads, needs systemctl --user restart naarchy):
[calendar]
feeds = ["https://calendar.google.com/calendar/ical/xxxx/basic.ics"]
# webcal://p123-caldav.icloud.com/published/2/xxx.ics → https://
# Google: Calendar → Settings → Integrate calendar → Secret address in iCal
# iCloud: Calendar → Share → Public Calendar → Copy Link
refresh_min = 5Old installs missing [calendar] (your screenshot) now auto-migrated (src/config.rs:220), see docs/CONFIG.md:62.
Media
Pill was showing stale / cut-off text to right of notch. Now pill is universal MPRIS observer: shows only when actually playing (src/ui/pill.rs:326), icon-only (22px art or MUSIC glyph) — no truncated title. Home Media widget is live control for any MPRIS player — org.mpris.MediaPlayer2.chromium.* (Spotify web is playing Royalty right now via gdbus), spotify, ncspot, mpv, vlc. cliamp without MPRIS will still say nothing playing — use an MPRIS player. Stale cliamp quit → still shows fixed by ranked snapshot that clears to Media(None) (src/services/mpris.rs:227).
Clipboard
Fugly white card → glass rows with border/hover lift (src/theme.rs:405), timestamps now na-clip-time 0.72 visible not 0.52, pin ★ accent, viewport transparent (src/theme.rs:155).
v0.2.1 — settings hit-test + cursor
Fix settings gear not clickable: dock_wrap was outside apply_input_region so hover counted as leave → panel collapsed before click; now dock_wrap rect (dock+gear) is hit region throttled 20Hz, gear fades with dock and shows pointer cursor not I-beam (src/ui/panel.rs:198).
v0.2.0 — perf + timer + settings
0.2.0 — perf + timer + settings
- Perf: stable FNV cache_key fixes art/shelf/clip re-download each restart; cached
Paletteremoves per-frame omarchy file I/O (pill/timer/liquid);idle→timeout 16msstops busy-loop wake; throttledapply_input_region(~20 Hz); liquidCOPIES 32→18 LAYERS 16→8; hyprland hover33→60ms+ surface-aware stay-open; mpris1.5s→2s+400→900ms; clipboard600→900ms; config watcher700→1100ms; pillmeasureonly on mood change; clipview borrow without 400to_lowercaseallocs per keystroke;parse_payloadO(n²)→O(n). - Timer: replaces ugly ruler with circular ring + big clock + presets +
25m / 90sentry; visual bell pulsates +Revealershake; audible loop every 3 s for 60 s viapw-play→paplay→aplay→ffplay→canberra+display.beep()fallback;Donestate lasts 60 s. - HUD: fix
|| truebug that dismissed critical banners; destroy oldest banner instead of leakingApplicationWindow. - Settings: gear
na-dock-btnin dock opens~/.config/naarchy/config.tomlviaomarchy-launch-config-editor(→omarchy-launch-editor→nviminomarchy-launch-tui), mirroring every Omarchy plugin. - UI polish: dock settings button,
na-presethover border,na-timer-*animations, less jank on expand/collapse, pill width spring gated.