156 lines
5 KiB
Markdown
156 lines
5 KiB
Markdown
# Installation
|
|
|
|
Ce guide déploie la couche utilisateur depuis un clone neuf. Il n'installe pas
|
|
Arch Linux, ne modifie pas `/etc` et n'automatise pas les dépendances externes.
|
|
Pour une reconstruction complète, commencer par [Recovery](recovery.md).
|
|
|
|
## 1. Prérequis
|
|
|
|
- une installation ArchASP dont la couche système est prête ;
|
|
- un compte utilisateur et un `$HOME` sauvegardé avant tout remplacement ;
|
|
- Git, GNU Stow et Bash ;
|
|
- un accès au dépôt Forgejo ou au miroir GitHub ;
|
|
- les paquets examinés dans les inventaires de `.assets/`.
|
|
|
|
Vérifier les outils avant de continuer :
|
|
|
|
```bash
|
|
git --version
|
|
stow --version
|
|
bash --version
|
|
```
|
|
|
|
## 2. Cloner
|
|
|
|
Forgejo est l'upstream principal :
|
|
|
|
```bash
|
|
git clone --recurse-submodules \
|
|
ssh://git@git.labfytools.com:2223/fy59/Dotfiles_ArchAP.git \
|
|
"$HOME/.dotfiles"
|
|
cd "$HOME/.dotfiles"
|
|
```
|
|
|
|
Le miroir public peut servir de source de récupération :
|
|
|
|
```bash
|
|
git clone --recurse-submodules \
|
|
https://github.com/labfytools/Dotfiles_ArchAP.git \
|
|
"$HOME/.dotfiles"
|
|
cd "$HOME/.dotfiles"
|
|
```
|
|
|
|
Pour restaurer le snapshot stable plutôt que `main` :
|
|
|
|
```bash
|
|
git switch 0.1.0
|
|
```
|
|
|
|
## 3. Vérifier les sous-modules
|
|
|
|
```bash
|
|
git submodule update --init --recursive
|
|
git submodule status --recursive
|
|
```
|
|
|
|
Une ligne commençant par `-` indique un sous-module non initialisé ; une ligne
|
|
commençant par `+` indique un commit différent de celui épinglé.
|
|
|
|
## 4. Examiner les inventaires
|
|
|
|
Les listes Pacman et AUR sont des snapshots, pas des commandes aveugles à
|
|
installer. Comparer leur contenu à la machine cible et lire
|
|
[`packages.md`](packages.md) ainsi que
|
|
[`external-tools.md`](../.assets/external-tools.md) avant toute installation.
|
|
|
|
## 5. Définir les 32 packages Stow
|
|
|
|
Les commandes suivantes sont destinées à Bash :
|
|
|
|
```bash
|
|
packages=(
|
|
atuin bat bin btop cliphist eza fastfetch fzf gtk-3.0 gtklock
|
|
hyprwhspr icons kitty mako nvim opencode portal qt5ct qt6ct
|
|
quickshell starship sway swaylock systemd themes tmux uwsm wallpapers wofi yazi
|
|
ytmusic-tui zsh
|
|
)
|
|
|
|
printf '%s\n' "${packages[@]}"
|
|
```
|
|
|
|
`docs/` et `.assets/` ne doivent pas être ajoutés à ce tableau. Le package
|
|
`portal` demande l'installation du backend décrite dans
|
|
[`portal/README.md`](../portal/README.md).
|
|
Le package
|
|
`quickshell` déploie `~/.config/quickshell/labfy-sway/` ; une Nerd Font
|
|
(`ttf-jetbrains-mono-nerd` sur cette machine) fournit les icônes.
|
|
SwayFX 0.6 est un paquet foreign/local à reconstruire depuis sa source
|
|
vérifiée ; `scenefx` et `quickshell` sont présents dans la liste Pacman
|
|
officielle de cette machine. Voir les inventaires `.assets/`.
|
|
QuickShell fournit l'agent graphique Polkit requis pour authentifier les
|
|
changements de fuseau effectués par `timedatectl`. Le service utilisateur
|
|
`quickshell-labfy-sway.service` le lance une seule fois par session ;
|
|
aucune règle `sudoers` propre au fuseau n'est nécessaire.
|
|
Le backend batterie exige TLP et `/usr/local/sbin/batlimit-set`, déployé
|
|
séparément avec les droits root selon `bin/root/README.md`.
|
|
|
|
## 6. Effectuer le dry-run
|
|
|
|
Depuis la racine du dépôt :
|
|
|
|
```bash
|
|
stow --no --verbose=2 --target="$HOME" "${packages[@]}"
|
|
```
|
|
|
|
Lire chaque conflit. Un fichier réel déjà présent à la cible peut masquer ou
|
|
bloquer un lien Stow ; le sauvegarder et décider explicitement de sa source
|
|
avant le déploiement. Ne pas utiliser d'option d'adoption sans audit préalable.
|
|
|
|
## 7. Déployer
|
|
|
|
Une fois le dry-run accepté :
|
|
|
|
```bash
|
|
stow --verbose=2 --target="$HOME" "${packages[@]}"
|
|
```
|
|
|
|
Cette commande crée ou met à jour des liens sous `$HOME`. Elle ne doit pas être
|
|
exécutée depuis une autre racine ni avec `.` comme nom de package.
|
|
|
|
## 8. Recharger systemd user
|
|
|
|
Les liens d'activation versionnés dans le package `systemd` expriment les
|
|
unités utilisateur attendues. Recharger et vérifier avant tout démarrage :
|
|
|
|
```bash
|
|
systemctl --user daemon-reload
|
|
systemd-analyze --user verify \
|
|
"$HOME"/.config/systemd/user/*.service \
|
|
"$HOME"/.config/systemd/user/*.timer
|
|
systemctl --user --failed
|
|
systemctl --user is-enabled quickshell-labfy-sway.service labfy-quickshell-updates.timer
|
|
systemctl --user is-active quickshell-labfy-sway.service labfy-quickshell-updates.timer
|
|
```
|
|
|
|
Si les liens `*.wants/` ne sont pas déjà en place sur la machine cible,
|
|
activer les unités avec `systemctl --user enable quickshell-labfy-sway.service
|
|
labfy-quickshell-updates.timer`. Dans une session SwayFX déjà ouverte, les
|
|
démarrer avec `systemctl --user start quickshell-labfy-sway.service
|
|
labfy-quickshell-updates.timer`. Le démarrage suivant est assuré par
|
|
`wayland-session@sway.desktop.target` et `timers.target`.
|
|
|
|
Certaines unités dépendent de projets externes. Ne les démarrer que lorsque
|
|
leurs chemins et configurations locales existent ; voir [`systemd.md`](systemd.md).
|
|
|
|
## 9. Valider
|
|
|
|
```bash
|
|
git status --short
|
|
git submodule status --recursive
|
|
find "$HOME/.config" -xtype l -print
|
|
systemctl --user --failed
|
|
sway --validate --config "$HOME/.config/sway/config"
|
|
```
|
|
|
|
La dernière commande nécessite Sway installé. Un lien cassé ou une unité en
|
|
échec doit être diagnostiqué avant de considérer la restauration terminée.
|