From 4565449e5d8038d2a8fb853fc5a5b25acbe9ee66 Mon Sep 17 00:00:00 2001 From: N1C4T Date: Tue, 13 Jan 2026 02:33:23 +0400 Subject: [PATCH] docs: update readme, roadmap, and unfree guidelines ref #35 --- CONTRIBUTING.md | 21 ++++++++++++++++++++- README.md | 5 +++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b3f5b33..3a83000 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -257,6 +257,7 @@ TuxMate uses the [Iconify API](https://iconify.design/) for icons. Icon helpers - [ ] Ubuntu/Debian packages are in **Main/Universe only** (no PPAs) - [ ] Flatpak uses **full App ID** from [Flathub](https://flathub.org/) - [ ] Snap packages checked for `--classic` requirement +- [ ] Nix packages checked for unfree license (add to `KNOWN_UNFREE_PACKAGES` if needed) - [ ] Homebrew uses correct format: `'formula'` for CLI, `'--cask name'` for GUI apps ### Code Quality @@ -436,12 +437,30 @@ src/lib/ ├── ubuntu.ts # Ubuntu apt + PPA handling ├── fedora.ts # Fedora dnf + RPM Fusion ├── opensuse.ts # openSUSE zypper - ├── nix.ts # Nix package manager + ├── nix.ts # Nix declarative config generator ├── flatpak.ts # Flatpak (parallel install) ├── snap.ts # Snap packages └── homebrew.ts # Homebrew (formulae + casks) ``` +### Nix Unfree Packages + +When adding Nix packages, check if they require `allowUnfree = true`. Unfree packages are detected in [`src/lib/nixUnfree.ts`](src/lib/nixUnfree.ts). + +**Known unfree packages** (add new ones to `KNOWN_UNFREE_PACKAGES`): +- Communication: `discord`, `slack`, `zoom-us`, `teams`, `skypeforlinux` +- Browsers: `google-chrome`, `vivaldi`, `opera` +- Media: `spotify` +- Gaming: `steam` +- Dev: `vscode`, `sublime-text`, `postman`, `code-cursor`, `vagrant`, JetBrains IDEs +- Creative: `davinci-resolve` +- Other: `obsidian`, `dropbox`, `1password` + +**How it works:** +1. User selects unfree packages with Nix distro +2. UI shows amber warning listing affected apps +3. Downloaded `configuration.nix` includes comment with `allowUnfree` instructions + ### Script Generator Features Each script generator implements these core capabilities: diff --git a/README.md b/README.md index 87b6ff8..a238ccf 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Fresh install? New machine? Can't remember every package name? We've all been th - Arch Linux (pacman + AUR) - Fedora (dnf) - openSUSE (zypper) -- Nix (nix-env) +- Nix (declarative config) - Flatpak - Snap - Homebrew (macOS + Linux) @@ -38,6 +38,7 @@ Fresh install? New machine? Can't remember every package name? We've all been th ### **Smart Script Generation** - Detects already-installed packages - Handles AUR packages automatically on Arch +- **Nix Unfree Detection**: Warns compliant configuration for unfree packages (Discord, Spotify, etc.) - Homebrew formula/cask separation for macOS - Parallel installation for Flatpak - Network retry with exponential backoff @@ -237,6 +238,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines. - [x] Package availability indicators (including AUR badges) - [x] Homebrew support (macOS + Linux) - [x] PWA support for offline use +- [x] Nix configuration.nix download with unfree package detection @@ -247,7 +249,6 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines. - [ ] Custom presets / profiles - [ ] Share configurations via URL - [ ] More distros (FreeBSD, Gentoo, Void, Alpine) -- [ ] Nix configuration.nix download - [ ] i18n / Multi-language support - [ ] Companion CLI tool - [ ] Expand application catalog (200+)