v2.2.0: design-system UI consistency refactor + AUR launcher fix#75
Merged
Conversation
Establish shared UI primitives and codified token scales, then migrate the app onto them. Every change reuses existing color tokens, so all 29 themes are preserved. Tokens (tailwind.config.js x3 + index.css @layer): - type scale with an 11px `text-2xs` floor + tuned line-heights - documented z-index scale (palette/modal/nested/popover/toast) - dialog-width scale (dialog-xs..3xl) - themed danger/success/warning colors (follow --z-red/green/yellow) - .form-label / .form-hint utilities (unify 3 prior label styles) Primitives (packages/app-core/src/components/ui/): - <Button variant x size> + <IconButton> - <Modal> shell (Header/Body/Footer) with shared Esc + portal handling Migrations & sweep: - all dialogs + 6 command palettes now use the shared Modal shell - buttons across views, list panes, and SettingsModal primary actions now use <Button> - swept every arbitrary text-[Npx] / rounded-[Npx] onto the scale (tiny text bumped up for readability; radii -> lg/2xl/3xl) - eyebrow labels -> .form-label; read-only metadata contrast bumped (ink-400 -> ink-500); color-only tag pills gained a non-color cue Deliberately left bespoke: SettingsModal grid shell + custom controls, WhichKeyOverlay, the diagram Preview viewer, accent/tinted chips. Verified: typecheck 7/7, tests 116 pass, desktop + web build clean.
`cp -a squashfs-root/.` re-applies the extracted AppImage root's mode (typically 0700) onto /opt/zennotes-bin, leaving the tree untraversable for non-root users. Launching then fails with "Command not found: zennotes" (#70) or "/usr/bin/zennotes ... is not executable" (#74), since the symlink target under /opt can't be reached. Normalize the installed tree to world-readable / traversable after the copy with `chmod -R a+rX` (preserves AppRun + chrome-sandbox exec/setuid bits; skips symlinks). Bump pkgrel to 2 so existing users get a rebuild.
…with a minimal GUI PATH (#73) Apps launched from Finder/Dock inherit only a minimal PATH (/usr/bin:/bin:/usr/sbin:/sbin). In `auto` mode `searchExecutable` returned the bare `rg`/`fzf`, so both detection and execution failed whenever the tools live in a non-standard dir — nix-darwin's /etc/profiles/per-user/$USER/bin, Homebrew, cargo, etc. Resolve the binary through the user's login shell (`$SHELL -lc 'command -v <cmd>'`) to an absolute path — the same approach the CLI-install and Raycast integrations already use — so the absolute path flows into both detection and execution. Falls back to the bare command name when resolution fails (Windows, or an already-correct PATH). New apps/desktop/src/main/login-shell-path.ts (memoized 60s, injection-guarded, null on Windows) + unit tests; vault.ts `auto` branch uses it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepares the v2.2.0 release. Two changes so far.
1. Systematic UI consistency refactor (Refactoring UI) —
12252d1A design-system pass over the React UI — not a redesign. Shared primitives + codified token scales applied across the app, preserving all 29 themes (every change reuses existing color tokens).
index.css): type scale with an 11pxtext-2xsfloor, documented z-index scale, dialog-width scale, themeddanger/success/warningcolors,.form-label/.form-hintutilities.components/ui/):<Button>(variant × size +IconButton) and<Modal>shell (Header/Body/Footer + shared Esc/portal).Modal; buttons across views, list panes, and SettingsModal primary actions →Button.text-[Npx]/rounded-[Npx]→ the scale (tiny text bumped up for readability; radii →lg/2xl/3xl)..form-label; read-only metadata contrast bumped (ink-400→500); color-only tag pills gained a non-color cue.Net +1,151 / −1,037 across 48 files — shared primitives removed more boilerplate than they added.
Deliberately left bespoke: SettingsModal grid shell + its custom toggle/segmented controls, WhichKeyOverlay, the diagram Preview viewer, accent/tinted chips.
2. AUR launcher permission fix —
9fde35f(closes #70, closes #74)zennotes-bininstalled/opt/zennotes-binas0700(artifact ofcp -acopying the extracted AppImage root's mode), so non-root users couldn't traverse in to reachAppRun→ "command not found" / "not executable". Fixed by normalizing the tree (chmod -R a+rX, preserving exec/setuid bits, skipping symlinks);pkgrel→ 2.Verification
text-[Npx]/rounded-[Npx]remainaur-checkCI built the package in a real Arch container — passed (1m5s)Follow-ups (not in this branch)
2.2.0(package.json+ AURpkgver)zennotes-bin 2.1.0-2to the AUR repo so current users get the launcher fix