487 lines
21 KiB
Markdown
487 lines
21 KiB
Markdown
# Requirements: Yino
|
|
|
|
> Generated during /opsx:explore session on 2026-02-21
|
|
> Status: Draft — pending architect review
|
|
|
|
## 1. Project Overview
|
|
|
|
### Vision
|
|
|
|
Yino ("Yino Is Not Omarchy") is a full-fidelity port of [Omarchy](https://github.com/basecamp/omarchy) from Arch
|
|
Linux to Debian Linux. It delivers the same opinionated, keyboard-driven Hyprland desktop experience but on a stable
|
|
Debian base instead of Arch's rolling release.
|
|
|
|
### Problem Being Solved
|
|
|
|
Omarchy is Arch-only. Users who want its curated desktop experience but prefer or require Debian's stability and
|
|
ecosystem (enterprise environments, known hardware support, LTS lifecycle) have no option today. Yino fills that gap.
|
|
|
|
### Success Criteria
|
|
|
|
- SC-001: A user can boot a Yino ISO, complete an unattended installation (offline-capable), and arrive at a working
|
|
Hyprland desktop identical in look, feel, and functionality to Omarchy
|
|
- SC-002: All Omarchy `omarchy-*` commands have working `yino-*` equivalents
|
|
- SC-003: Omarchy themes install and work on Yino without modification (file structure compatibility)
|
|
- SC-004: Upstream Omarchy changes can be evaluated and ported to Yino with reasonable effort
|
|
|
|
### Context
|
|
|
|
- **Greenfield vs. existing:** Partial existing work. A QEMU VM helper (`bin/yino-vm`), a preseed config
|
|
(`iso/preseed.cfg`), and reference documentation exist. The preseed achieves a bootable Hyprland system but uses a
|
|
fragile approach (nested echo statements in `late_command`, network dependency on sid). The project needs a clean
|
|
architecture before proceeding further.
|
|
- **Upstream reference:** Omarchy @ `463417a` (`dev` branch), analyzed 2026-02-16. See `docs/Omarchy.md`.
|
|
- **Base OS:** Debian 13 "Trixie" (stable, released August 2025)
|
|
|
|
## 2. Stakeholders & Users
|
|
|
|
### Primary User
|
|
|
|
Single-user desktop operator. Same persona as Omarchy's target: a developer who wants an opinionated, pre-configured
|
|
Linux desktop and doesn't want to assemble it themselves.
|
|
|
|
### Technical Ability
|
|
|
|
Comfortable with Linux basics (terminal, sudo, SSH). Does not want to compile kernels or debug Wayland protocols.
|
|
Expects things to work out of the box after installation.
|
|
|
|
### Scale
|
|
|
|
Single machine per installation. No fleet management, no multi-user, no remote deployment (for now).
|
|
|
|
### Target Hardware
|
|
|
|
- Architecture: amd64 only
|
|
- Reference hardware: Framework 13 AMD Ryzen 7040 (future, not immediate)
|
|
- Immediate target: QEMU VM (development and testing)
|
|
|
|
## 3. Functional Requirements
|
|
|
|
### 3.1 ISO Generation & Installation
|
|
|
|
**FR-001: Offline-capable installation ISO**
|
|
- The project shall produce tooling to generate a custom Debian 13 (Trixie) installation ISO
|
|
- The ISO shall contain all packages needed for a complete Yino installation, including packages not in Trixie stable
|
|
(downloaded from sid and cached/slipstreamed into the ISO)
|
|
- Installation shall work without network access (offline-capable)
|
|
- _Priority: Must_
|
|
- _Acceptance criteria:_ Running the ISO build script produces a bootable ISO. Booting that ISO in a network-isolated
|
|
QEMU VM results in a complete Yino installation.
|
|
|
|
**FR-002: Unattended installation via preseed**
|
|
- The Debian installer shall be driven by a preseed configuration
|
|
- Preseed scope is limited to base OS concerns: locale, partitioning, encryption, filesystem, user account, bootloader
|
|
- The preseed shall configure: LUKS full-disk encryption, btrfs filesystem, a single user account with automatic login,
|
|
GRUB bootloader with serial console support (for VM testing)
|
|
- _Priority: Must_
|
|
- _Acceptance criteria:_ The installation completes without user interaction beyond the LUKS passphrase (which is
|
|
hardcoded for dev/test, prompted in production).
|
|
|
|
**FR-003: Post-install configuration via installer script**
|
|
- All desktop environment setup, package installation, and configuration shall be handled by a separate installer
|
|
script, not by the preseed `late_command`
|
|
- The installer shall follow Omarchy's phased architecture (preflight, packaging, config, login, post-install)
|
|
- The installer shall be idempotent (safe to re-run)
|
|
- _Priority: Must_
|
|
- _Acceptance criteria:_ The preseed triggers the installer (via a first-boot systemd service or equivalent). The
|
|
installer runs the full phase sequence and produces a working desktop.
|
|
|
|
**FR-004: ISO build script**
|
|
- A reproducible build script shall take the stock Debian 13 DVD ISO, inject the preseed, cached packages, and
|
|
installer, and produce the final Yino ISO
|
|
- Downloaded assets (Debian ISO, sid .debs) shall be cached in the `download/` directory
|
|
- _Priority: Must_
|
|
- _Acceptance criteria:_ Running the build script twice with the same inputs produces functionally identical ISOs.
|
|
|
|
### 3.2 Desktop Environment
|
|
|
|
**FR-010: Hyprland compositor**
|
|
- Hyprland shall be the sole compositor (Wayland-only, no X11)
|
|
- Launched via UWSM through SDDM with automatic login
|
|
- Configuration shall follow Omarchy's structure: `hyprland.conf` sourcing `bindings.conf`, `monitors.conf`,
|
|
`input.conf`, `looknfeel.conf`
|
|
- _Priority: Must_
|
|
- _Acceptance criteria:_ After installation, the system boots to a Hyprland desktop with working window tiling,
|
|
workspaces, and keybindings matching Omarchy's defaults.
|
|
|
|
**FR-011: Status bar (Waybar)**
|
|
- Waybar shall provide the top status bar
|
|
- Module layout shall match Omarchy: logo + workspaces (left), clock + indicators (center), tray + network + audio +
|
|
cpu + battery (right)
|
|
- _Priority: Must_
|
|
|
|
**FR-012: Application launcher (Walker)**
|
|
- Walker shall be the application launcher, bound to Super + Space
|
|
- Provides fuzzy search across applications, files, and commands
|
|
- _Note:_ Walker is not packaged for Debian. Must be built from source or packaged as .deb.
|
|
- _Priority: Must_
|
|
|
|
**FR-013: Notification daemon (Mako)**
|
|
- Mako shall handle desktop notifications with theme-aware styling
|
|
- _Priority: Must_
|
|
|
|
**FR-014: On-screen display (SwayOSD)**
|
|
- SwayOSD shall provide OSD for volume, brightness, and caps lock changes
|
|
- _Note:_ Trixie has 0.1.0 (old). Sid has 0.3.0. Use sid version.
|
|
- _Priority: Should_
|
|
|
|
**FR-015: Lock screen (Hyprlock)**
|
|
- Hyprlock shall provide the lock screen with theme-aware styling
|
|
- _Priority: Must_
|
|
|
|
**FR-016: Idle management (Hypridle)**
|
|
- Hypridle shall manage screen dimming, locking, and suspend after configurable idle timeouts
|
|
- _Priority: Must_
|
|
|
|
**FR-017: Night light (Hyprsunset)**
|
|
- Hyprsunset shall provide blue light filtering
|
|
- _Note:_ Not packaged in any Debian suite. Must be built from source. Alternative: `wlsunset` is in Debian.
|
|
- _Priority: Should_
|
|
|
|
**FR-018: Terminal emulators**
|
|
- Ghostty shall be the default terminal
|
|
- Alacritty shall also be installed
|
|
- _Note:_ Ghostty is not packaged for Debian. Community .deb builds exist (debian.griffo.io). Evaluate whether to
|
|
use community builds or build from source.
|
|
- _Priority: Must (Ghostty), Should (Alacritty pre-installed)_
|
|
|
|
**FR-019: Neovim**
|
|
- Neovim shall be installed with a configuration equivalent to Omarchy's `omarchy-nvim`
|
|
- The configuration shall include LSP, Treesitter, and the pixel.nvim colorscheme (ANSI-color-adaptive)
|
|
- _Note:_ Can be delivered as dotfiles overlay rather than a .deb package.
|
|
- _Priority: Must_
|
|
|
|
**FR-020: Browser**
|
|
- Chromium shall be the default browser
|
|
- _Note:_ Omarchy ships a custom `omarchy-chromium` with live Material Design 3 theme switching. This is significant
|
|
build effort. Standard Debian Chromium is acceptable for v1; custom build is a future enhancement.
|
|
- _Priority: Must (standard Chromium), Could (live theme switching via custom build)_
|
|
|
|
### 3.3 Configuration System
|
|
|
|
**FR-030: Three-layer configuration system**
|
|
- Yino shall implement Omarchy's 3-layer config system:
|
|
- Layer 1 (Default): `~/.local/share/yino/default/` — factory defaults, overwritten on update
|
|
- Layer 2 (Theme): `~/.local/share/yino/themes/<name>/` — theme overrides
|
|
- Layer 3 (User): `~/.config/` — user customizations, highest priority
|
|
- _Priority: Must_
|
|
|
|
**FR-031: Keybindings**
|
|
- All Omarchy default keybindings shall be replicated (Super as primary modifier)
|
|
- Super + Return = Terminal, Super + Space = Walker, Super + W = Close, etc.
|
|
- Full keybinding reference accessible via Super + K
|
|
- _Priority: Must_
|
|
|
|
**FR-032: User hooks**
|
|
- Users shall be able to place scripts in `~/.config/yino/hooks/` for event-driven customization
|
|
- The `yino-hook` command shall dispatch named hooks
|
|
- _Priority: Should_
|
|
|
|
### 3.4 Theming
|
|
|
|
**FR-040: Theme system**
|
|
- Yino shall support Omarchy's theme format: a directory containing up to 10 files (alacritty.toml, btop.theme,
|
|
hyprland.conf, hyprlock.conf, mako.ini, neovim.lua, swayosd.css, walker.css, waybar.css, backgrounds/)
|
|
- `yino-theme-set <name>` shall atomically restyle all themed components
|
|
- _Priority: Must_
|
|
- _Acceptance criteria:_ Installing an Omarchy community theme (e.g., synthwave84) via its git URL works without
|
|
modification.
|
|
|
|
**FR-041: Built-in themes**
|
|
- All 14 Omarchy built-in themes shall be included
|
|
- _Priority: Must_
|
|
|
|
**FR-042: Community theme support**
|
|
- `yino-theme-install <git-url>` shall install third-party themes from Git repositories
|
|
- _Priority: Must_
|
|
|
|
### 3.5 Menu System
|
|
|
|
**FR-050: Yino menu**
|
|
- `yino-menu` shall replicate Omarchy's hierarchical menu system via Walker
|
|
- Menu structure: Apps, Learn, Trigger, Style, Setup, Install, Remove, Update, About, System
|
|
- All submenus shall have working Debian equivalents of their Omarchy counterparts
|
|
- _Priority: Must_
|
|
|
|
### 3.6 System Management
|
|
|
|
**FR-060: Update system**
|
|
- `yino-update` shall: create a btrfs snapshot, pull latest Yino from git, run pending migrations, re-run the
|
|
installer pipeline idempotently
|
|
- _Priority: Must_
|
|
|
|
**FR-061: Snapshot management**
|
|
- Btrfs snapshots via Snapper with configurable limits
|
|
- `yino-snapshot` for manual snapshot creation
|
|
- _Priority: Must_
|
|
|
|
**FR-062: Migration system**
|
|
- Timestamped migration scripts that run once per system (same mechanism as Omarchy)
|
|
- Tracked in a state file so they don't re-run
|
|
- _Priority: Must_
|
|
|
|
### 3.7 Security
|
|
|
|
**FR-070: Full-disk encryption**
|
|
- LUKS encryption is mandatory during installation
|
|
- _Priority: Must_
|
|
|
|
**FR-071: Firewall**
|
|
- UFW enabled by default
|
|
- _Priority: Must_
|
|
|
|
**FR-072: GPG and keyring**
|
|
- GPG agent configured for signing
|
|
- GNOME keyring auto-unlocked on login
|
|
- _Priority: Must_
|
|
|
|
**FR-073: SSH configuration**
|
|
- Connection stability tweaks matching Omarchy
|
|
- _Priority: Should_
|
|
|
|
### 3.8 Boot
|
|
|
|
**FR-080: Plymouth boot splash**
|
|
- Custom Yino-branded Plymouth theme (adapted from Omarchy's Tokyo Night theme)
|
|
- LUKS passphrase prompt over the splash, progress bar animation
|
|
- _Priority: Should_
|
|
|
|
**FR-081: SDDM auto-login**
|
|
- SDDM configured for automatic login to hyprland-uwsm session
|
|
- Single-user model: disk decryption authenticates the user
|
|
- _Priority: Must_
|
|
|
|
### 3.9 Applications & Utilities
|
|
|
|
**FR-090: Pre-installed applications**
|
|
- The following shall be installed: Chromium, Nautilus (file manager), evince (PDF viewer), mpv (media player),
|
|
LibreOffice
|
|
- _Priority: Must_
|
|
|
|
**FR-091: Pre-installed CLI utilities**
|
|
- The following shall be installed: btop, fastfetch, ripgrep, fzf, bat, eza, zoxide, dust, jq, gum, lazygit
|
|
- _Priority: Must_
|
|
|
|
**FR-092: Development tools**
|
|
- Docker and docker-compose, GitHub CLI (gh), mise (dev tool version manager)
|
|
- _Priority: Should_
|
|
|
|
**FR-093: Optional applications**
|
|
- Spotify, Typora, Obsidian, Signal, 1Password — installable via `yino-menu` > Install
|
|
- These should be available to install, not necessarily pre-installed
|
|
- _Priority: Could_
|
|
|
|
### 3.10 Shell Scripts (yino-* commands)
|
|
|
|
**FR-100: Command parity**
|
|
- Every `omarchy-*` command shall have a `yino-*` equivalent
|
|
- Package management wrappers shall use `apt` instead of `pacman`/`yay`
|
|
- All Arch-specific logic shall be replaced with Debian equivalents
|
|
- _Priority: Must_
|
|
|
|
**FR-101: Hardware detection and fixes**
|
|
- Hardware-specific fixes from Omarchy shall be ported where applicable to Debian
|
|
- NVIDIA, Bluetooth, printing, audio, Wi-Fi power save, USB autosuspend
|
|
- Apple-specific fixes: evaluate relevance, defer if not needed for target hardware
|
|
- _Priority: Should_
|
|
|
|
## 4. Non-Functional Requirements
|
|
|
|
**NFR-001: Debian stable as base**
|
|
- Trixie (Debian 13) is the base. All packages shall come from Trixie stable where available.
|
|
- Packages not in Trixie (primarily the Hyprland ecosystem) shall be sourced from sid, cached, and included in the ISO.
|
|
- No runtime dependency on sid repositories. After installation, the system shall be fully functional without network.
|
|
- _Rationale:_ Debian stable's conservative updates are the whole point of Yino over Omarchy/Arch.
|
|
|
|
**NFR-002: Package sourcing tiers**
|
|
- Tier 1 — Trixie stable (use directly): ~90% of packages (Mako, swaybg, SDDM, Alacritty, Neovim, all CLI tools,
|
|
pipewire, cups, fonts, etc.)
|
|
- Tier 2 — sid .debs (download, cache, slipstream): Hyprland ecosystem (12+ packages), UWSM, newer Waybar (0.15),
|
|
newer SwayOSD (0.3.0)
|
|
- Tier 3 — Build from source or external (cache as .debs): Walker, Ghostty, Hyprsunset, lazydocker
|
|
- _Rationale:_ The entire Hyprland ecosystem was deliberately removed from Trixie (Debian Bug #1107152). sid is the
|
|
only official Debian source.
|
|
|
|
**NFR-003: Offline installation**
|
|
- A completed Yino ISO shall contain all packages needed for installation. No network required during install.
|
|
- Network may be used during ISO build to download and cache packages.
|
|
|
|
**NFR-004: Reproducible ISO builds**
|
|
- The ISO build process shall be scripted and deterministic given the same input packages.
|
|
- All downloaded assets cached in `download/`.
|
|
|
|
**NFR-005: Upstream tracking**
|
|
- Yino shall track upstream Omarchy development on the `dev` branch.
|
|
- The `docs/Omarchy.md` analysis document shall be kept current.
|
|
- Changes shall be evaluated and ported where applicable using the Arch-to-Debian mapping in `docs/Omarchy.md` §14.
|
|
|
|
**NFR-006: Naming convention**
|
|
- All scripts shall use the `yino-` prefix (not `omarchy-`).
|
|
- Internal paths shall use `yino` (e.g., `~/.local/share/yino/`, `yino-first-boot.service`).
|
|
- Config directory: `~/.config/yino/` (for Yino-specific config; component configs like Hyprland remain in their
|
|
standard locations).
|
|
|
|
**NFR-007: QEMU testability**
|
|
- The system shall boot and be fully functional in a QEMU VM (including software-rendered cursors and virtual GPU).
|
|
- The `bin/yino-vm` helper shall remain the primary development/test tool.
|
|
|
|
**NFR-008: Idempotent installer**
|
|
- The installer script shall be safe to run multiple times. Re-running shall bring the system to the desired state
|
|
without duplication or breakage.
|
|
|
|
**NFR-009: Maintainability**
|
|
- No shell scripts written as nested echo statements inside preseed `late_command`.
|
|
- Preseed handles base OS only. Installer is a separate, readable, version-controlled script tree.
|
|
- Clear separation: preseed → first-boot trigger → installer phases.
|
|
|
|
## 5. Constraints
|
|
|
|
### Technical
|
|
|
|
- **Debian 13 Trixie only.** No support for Bookworm (12) or older.
|
|
- **amd64 only.** No arm64 or other architectures.
|
|
- **Wayland only.** No X11 support or fallback.
|
|
- **No custom Debian package repository** (for now). Packages not in Debian are cached as .deb files and included
|
|
in the ISO. A proper apt repo is future work.
|
|
- **No Secure Boot.** Same as Omarchy — explicitly not supported.
|
|
|
|
### Business / Process
|
|
|
|
- **Minimize dependencies.** Discuss with owner before adding anything not in Omarchy.
|
|
- **Match upstream Omarchy.** When multiple approaches exist, prefer the one Omarchy uses. Deviate only where strictly
|
|
necessary for Debian compatibility.
|
|
- **KISS.** Simple solutions preferred. Less is more.
|
|
|
|
### Scope Exclusions (explicit "Won't" for now)
|
|
|
|
- Custom Chromium build with live theme switching (use standard Debian Chromium)
|
|
- Custom apt package repository infrastructure
|
|
- Multi-architecture support (arm64)
|
|
- Fleet deployment or multi-user scenarios
|
|
- Apple hardware-specific fixes (T2 chip, SPI keyboard, NVMe suspend)
|
|
|
|
## 6. Assumptions & Dependencies
|
|
|
|
### Assumptions
|
|
|
|
- A-001: Debian 13 Trixie remains the current stable release throughout development
|
|
- A-002: Hyprland ecosystem packages in sid remain buildable/installable on a Trixie base (library compatibility)
|
|
- A-003: Omarchy's `dev` branch remains the active development branch
|
|
- A-004: The QEMU VM provides sufficient test coverage for the initial development phase
|
|
- A-005: Community Ghostty .deb builds (e.g., debian.griffo.io) are trustworthy for development; production may
|
|
require building from source
|
|
|
|
### Dependencies
|
|
|
|
- D-001: Upstream Omarchy repository (`basecamp/omarchy`) for reference configs, themes, and scripts
|
|
- D-002: Debian sid repository for Hyprland ecosystem .debs
|
|
- D-003: Stock Debian 13 DVD ISO (`debian-13.x.x-amd64-DVD-1.iso`) as build input
|
|
- D-004: QEMU + OVMF for development testing
|
|
|
|
## 7. Open Questions
|
|
|
|
- OQ-001: **sid library compatibility** — Will the Hyprland stack from sid install cleanly on a Trixie base, or will
|
|
it pull in cascading sid dependencies that destabilize the system? Needs a spike: download the Hyprland .debs from
|
|
sid and attempt install on a clean Trixie system.
|
|
- OQ-002: **Walker build** — Walker is a Go application. What are its build dependencies? Can we produce a static
|
|
binary and ship it without a .deb? Or should we package it properly?
|
|
- OQ-003: **Ghostty sourcing** — Build from source (Zig toolchain needed), use community .debs, or defer Ghostty and
|
|
use Alacritty/foot as default terminal?
|
|
- OQ-004: **Hyprsunset vs. wlsunset** — Hyprsunset is not in Debian at all. `wlsunset` is in Trixie stable and
|
|
provides similar functionality. Is Omarchy compatibility worth the build effort, or is wlsunset an acceptable
|
|
substitute?
|
|
- OQ-005: **Waybar version** — Trixie ships 0.12.0, sid has 0.15.0. Does Omarchy's Waybar config require features
|
|
from 0.15? If so, Waybar moves to Tier 2 (sid).
|
|
- OQ-006: **ISO build tool** — `live-build`, `simple-cdd`, or manual ISO remastering (extract, inject preseed +
|
|
packages, repackage)? Each has tradeoffs in complexity vs. control.
|
|
- OQ-007: **Omarchy theme names** — The analysis document doesn't list all 14 built-in theme names. Need to inspect
|
|
the upstream `themes/` directory to enumerate them.
|
|
- OQ-008: **Update channel model** — Omarchy has 4 channels (stable/rc/edge/dev). Yino on Debian stable likely needs
|
|
only 1-2. What's the right model?
|
|
|
|
## 8. Glossary
|
|
|
|
| Term | Definition |
|
|
|:-----|:-----------|
|
|
| **Omarchy** | Upstream Arch Linux-based desktop distribution by Basecamp/DHH |
|
|
| **Yino** | "Yino Is Not Omarchy" — this project; Debian-based port of Omarchy |
|
|
| **Trixie** | Debian 13, the current stable release (August 2025) |
|
|
| **sid** | Debian unstable — rolling release, always the newest packages |
|
|
| **forky** | Debian testing — the future Debian 14 |
|
|
| **Hyprland** | Wayland compositor and tiling window manager |
|
|
| **UWSM** | Universal Wayland Session Manager — launches Hyprland via SDDM |
|
|
| **Walker** | Application launcher used by Omarchy (fuzzy search over apps/files/commands) |
|
|
| **SDDM** | Simple Desktop Display Manager — handles login/auto-login |
|
|
| **preseed** | Debian installer automation format (answer file for `debian-installer`) |
|
|
| **OPR** | Omarchy Package Repository — custom Arch packages built by the Omarchy team |
|
|
| **Snapper** | Btrfs snapshot management tool |
|
|
| **LUKS** | Linux Unified Key Setup — full-disk encryption |
|
|
| **Plymouth** | Boot splash screen system |
|
|
| **pixel.nvim** | Neovim colorscheme that adapts to terminal ANSI colors (0-15) |
|
|
| **slipstream** | To inject additional packages/files into an existing ISO image |
|
|
|
|
## Appendix: Priority Matrix
|
|
|
|
### Must Have (required for a functional system)
|
|
|
|
| ID | Requirement |
|
|
|:---|:------------|
|
|
| FR-001 | Offline-capable installation ISO |
|
|
| FR-002 | Unattended installation via preseed |
|
|
| FR-003 | Post-install configuration via installer script |
|
|
| FR-004 | ISO build script |
|
|
| FR-010 | Hyprland compositor |
|
|
| FR-011 | Waybar status bar |
|
|
| FR-012 | Walker application launcher |
|
|
| FR-013 | Mako notifications |
|
|
| FR-015 | Hyprlock lock screen |
|
|
| FR-016 | Hypridle idle management |
|
|
| FR-018 | Ghostty terminal (or acceptable substitute) |
|
|
| FR-019 | Neovim with config |
|
|
| FR-020 | Chromium browser (standard) |
|
|
| FR-030 | Three-layer configuration system |
|
|
| FR-031 | Keybindings (Omarchy defaults) |
|
|
| FR-040 | Theme system (Omarchy-compatible format) |
|
|
| FR-041 | 14 built-in themes |
|
|
| FR-042 | Community theme support |
|
|
| FR-050 | Yino menu |
|
|
| FR-060 | Update system |
|
|
| FR-061 | Snapshot management |
|
|
| FR-062 | Migration system |
|
|
| FR-070 | LUKS full-disk encryption |
|
|
| FR-071 | UFW firewall |
|
|
| FR-072 | GPG and keyring |
|
|
| FR-081 | SDDM auto-login |
|
|
| FR-090 | Pre-installed GUI applications |
|
|
| FR-091 | Pre-installed CLI utilities |
|
|
| FR-100 | yino-* command parity |
|
|
|
|
### Should Have (expected but not blocking)
|
|
|
|
| ID | Requirement |
|
|
|:---|:------------|
|
|
| FR-014 | SwayOSD on-screen display |
|
|
| FR-017 | Hyprsunset / night light |
|
|
| FR-032 | User hooks |
|
|
| FR-073 | SSH configuration |
|
|
| FR-080 | Plymouth boot splash |
|
|
| FR-092 | Development tools (Docker, gh, mise) |
|
|
| FR-101 | Hardware detection and fixes |
|
|
|
|
### Could Have (desirable, defer if needed)
|
|
|
|
| ID | Requirement |
|
|
|:---|:------------|
|
|
| FR-020 | Custom Chromium with live theme switching |
|
|
| FR-093 | Optional applications (Spotify, Typora, Obsidian, Signal, 1Password) |
|
|
|
|
### Won't Have (explicitly out of scope)
|
|
|
|
| Item | Reason |
|
|
|:-----|:-------|
|
|
| Custom apt repository | Premature; cache .debs directly for now |
|
|
| arm64 support | amd64 only |
|
|
| Multi-user / fleet deployment | Single-user desktop only |
|
|
| Apple hardware fixes | Not relevant to target hardware |
|
|
| Secure Boot | Same as Omarchy — not supported |
|