docs: update readme, roadmap, and unfree guidelines ref #35

This commit is contained in:
N1C4T
2026-01-13 02:33:23 +04:00
parent 1cbbdbb08d
commit 4565449e5d
2 changed files with 23 additions and 3 deletions

View File

@@ -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: