fix: New README, new documentation for developpers, and many install.sh and update.sh fixes

This commit is contained in:
Gu://em_ 2026-05-04 22:57:12 +02:00
parent 38d2572e84
commit 6b92f7a0a0
5 changed files with 282 additions and 45 deletions

57
doc/Developpers.md Normal file
View file

@ -0,0 +1,57 @@
# Developpers documentation
## Repository structure
```
dotfiles/
├── install.sh
├── scripts/
│ └── update.sh ← dotfiles-update
├── packages/
│ ├── core.pkgs ← always installed
│ ├── desktop.pkgs ← always installed (automatic)
│ ├── aur.pkgs ← AUR packages (paru)
│ ├── intel-cpu.pkgs ← auto: Intel CPU
│ ├── amd-cpu.pkgs ← auto: AMD CPU
│ ├── intel-gpu.pkgs ← auto: Intel GPU
│ ├── amd-gpu.pkgs ← auto: AMD GPU
│ ├── nvidia.pkgs ← auto: NVIDIA GPU
│ ├── gaming.pkgs ← optional
│ ├── development.pkgs ← optional
│ ├── ...
│ ├── optional.groups ← lists which groups are optional
│ └── <group>.desc ← one-line description shown in installer
└── config/ ← stow package; mirrors $HOME
├── .config/
│ ├── hypr/
│ ├── waybar/
│ │ ├── vertical/
│ │ └── horizontal/
│ ├── rofi/
│ └── ...
└── .local/
└── bin/
└── atlas-update
```
### Package group conventions
| File | When installed |
|---|---|
| `core.pkgs` | Always |
| Any unlisted `*.pkgs` (e.g. `desktop.pkgs`) | Always (automatic) |
| `aur.pkgs` | Always, via paru |
| `intel-gpu.pkgs`, `amd-gpu.pkgs`, etc. | Auto-detected via `lspci` / `/proc/cpuinfo` |
| Groups listed in `optional.groups` | User-chosen during install, remembered on updates |
To add a new automatic group: create `packages/mygroup.pkgs` and commit.
To add a new optional group: also add its name to `packages/optional.groups` and optionally a `packages/mygroup.desc` one-liner.
## Package state tracking
After each install or update, a snapshot of every installed group is saved to `~/.dotfiles/.state/packages/<group>`. On the next run, each group is diffed:
- **New packages** in the `.pkgs` file → installed automatically
- **Removed packages** → you are asked before uninstalling
Delete `~/.dotfiles/.state/` to reset all state and force a full reinstall on the next update.