Dotfiles_ArchAP/README.md

10 KiB

ArchASP — Sway desktop

ArchASP Dotfiles

Configuration utilisateur reproductible pour une station Arch Linux sous Wayland, déployée package par package avec GNU Stow.

Arch Linux · Sway · GNU Stow · systemd --user · Zsh

Overview · Desktop · Shell · Layout · Deployment · Rebuild

✦ Overview

Ce dépôt contient la couche utilisateur d'ArchASP : session graphique, applications terminal, shell, scripts personnels et unités systemd user. La couche système/root est volontairement séparée.

Dépôt Responsabilité
.dotfiles Sway, Kitty, Neovim, Zsh, scripts, thèmes et services utilisateur
arch-system Installation Arch, boot, stockage, réseau, paquets, /etc et helpers root

Cette séparation évite de mêler état personnel et administration système. Le dépôt reste néanmoins spécifique à la machine : sorties Sway, périphériques, chemins sous /home/fy59 et projets externes doivent être relus avant un déploiement ailleurs.

✦ Desktop Stack

greetd
  └─ tuigreet
      └─ UWSM
          └─ Sway
              ├─ Swaybar ── i3status-rs
              ├─ Mako       notifications
              ├─ Wofi       launcher
              ├─ Swaylock   verrouillage
              ├─ Cliphist   historique du presse-papiers
              └─ Kitty      terminal
Fonction Composant canonique
Session greetd → tuigreet → uwsm start default → sway.desktop
Compositor Sway / SwayFX
Barre Swaybar avec i3status-rs
Notifications Mako
Launcher Wofi
Verrouillage et idle Swaylock + swayidle
Presse-papiers wl-clipboard + Cliphist
Terminal Kitty
Profils d'énergie TLP via l'interface utilisateur tlpctl

uwsm/.config/uwsm/default-id sélectionne sway.desktop. La copie de référence de greetd se trouve dans .assets/greetd/config.toml; son installation sous /etc/greetd appartient à arch-system.

✦ Shell Stack

Zsh
 ├─ Starship
 ├─ Atuin
 ├─ FZF
 ├─ Zoxide
 ├─ Eza
 ├─ Bat
 └─ Yazi

.zprofile démarre la session graphique via UWSM lorsque celui-ci autorise un démarrage. .zshenv publie le socket de l'agent SSH utilisateur. L'historique, les bases et la clé Atuin restent strictement locaux et hors Git.

✦ Repository Layout

Chaque répertoire de premier niveau, hors .assets et .git, est un package GNU Stow indépendant. Son arborescence reproduit le chemin attendu depuis $HOME.

.dotfiles/
├── sway/.config/sway/             → ~/.config/sway/
├── i3status-rust/.config/         → ~/.config/i3status-rust/
├── kitty/.config/kitty/           → ~/.config/kitty/
├── nvim/.config/nvim/             → ~/.config/nvim/
├── systemd/.config/systemd/user/  → ~/.config/systemd/user/
├── bin/.local/bin/                → ~/.local/bin/
├── zsh/.zshrc                     → ~/.zshrc
├── zsh/.zprofile                  → ~/.zprofile
└── .assets/                       inventaires et références, non déployés

Packages principaux

Groupe Packages Stow
Desktop sway, swaylock, mako, wofi, cliphist, i3status-rust
Terminal et shell kitty, zsh, starship, atuin, fzf, eza, bat, yazi
Développement nvim, tmux, opencode, bin
Services systemd, uwsm
Apparence gtk-3.0, gtklock, qt5ct, qt6ct, themes, icons, wallpapers
Outils btop, fastfetch, hyprwhspr, ytmusic-tui

Les thèmes, icônes et wallpapers sont volontairement versionnés. Les exécutables issus de projets externes restent hors Git même lorsqu'un script ou une unité user les utilise.

Sous-modules

Les plugins Zsh et Tmux sont épinglés par Git :

Intégration Chemin
Fast Syntax Highlighting zsh/.zsh/plugins/fast-syntax-highlighting
FZF Tab zsh/.zsh/plugins/fzf-tab
Zsh Autosuggestions zsh/.zsh/plugins/zsh-autosuggestions
Catppuccin Tmux tmux/.config/tmux/plugins/catppuccin/tmux

✦ Deployment

Prérequis

  • Git ;
  • GNU Stow ;
  • les paquets décrits dans .assets ;
  • une sauvegarde des fichiers existants qui pourraient entrer en conflit.

Clone

git clone --recurse-submodules \
  ssh://git@git.labfytools.com:2223/fy59/Dotfiles_ArchAP.git \
  "$HOME/.dotfiles"

cd "$HOME/.dotfiles"
git submodule update --init --recursive

Dry-run Stow

Construire la liste des packages à partir des répertoires de premier niveau :

mapfile -t packages < <(
  find . -mindepth 1 -maxdepth 1 -type d \
    ! -name .git ! -name .assets -printf '%f\n' | sort
)

stow --no --verbose=2 --target="$HOME" "${packages[@]}"

Examiner tout conflit avant le déploiement réel :

stow --verbose=2 --target="$HOME" "${packages[@]}"

Stow reçoit les noms des packages. La racine du dépôt n'est pas un package : ne pas utiliser stow ..

✦ Package Inventory

Fichier Source Contenu
.assets/pkglist-pacman.txt pacman -Qqen Paquets officiels explicitement installés
.assets/pkglist-aur.txt pacman -Qqem Paquets foreign/AUR explicitement installés
.assets/enabled-services.txt systemd système Services système activés
.assets/enabled-system-aux-units.txt systemd système Timers, sockets et paths activés
.assets/enabled-user-aux-units.txt systemd user Timers, sockets et paths utilisateur activés
.assets/external-tools.md inventaire manuel Cargo, npm, builds locaux, projets et helpers /usr/local

Ces fichiers sont des instantanés vérifiables, pas un installateur. Les paquets AUR, outils Cargo/npm et builds locaux doivent être restaurés séparément.

✦ Services

Le package systemd contient les unités utilisateur ainsi que leurs liens d'activation relatifs. Il couvre notamment Cliphist, swayidle, GNOME Keyring, l'agent SSH, les notifications de batterie et les intégrations Trainlog, Lardon et Arch Sentinel.

Après une modification :

systemctl --user daemon-reload
systemd-analyze --user verify ~/.config/systemd/user/*.service

Certaines unités lancent du code externe au dépôt. Leurs chemins et dépendances sont documentés dans .assets/external-tools.md. Les services système et toute modification de /etc restent sous la responsabilité d'arch-system.

✦ Secrets

Ce dépôt n'a pas vocation à contenir :

  • clés SSH, GPG, WireGuard ou Atuin ;
  • .netrc, mots de passe, tokens, cookies ou credentials ;
  • configurations privées Rclone, GitHub CLI ou Nextcloud ;
  • bases de données, historiques shell ou états applicatifs personnels.

Les ignorer dans le HEAD ne suffit pas : un secret déjà commité doit être renouvelé, puis supprimé de tout l'historique avant publication.

✦ Rebuilding ArchASP

┌──────────────────────────────────────────────────────┐
│ arch-system                                          │
│ Arch · boot · stockage · réseau · paquets · /etc    │
└──────────────────────────┬───────────────────────────┘
                           │ socle système prêt
                           ▼
┌──────────────────────────────────────────────────────┐
│ .dotfiles                                            │
│ Stow · session · shell · scripts · systemd user     │
└──────────────────────────┬───────────────────────────┘
                           │ restaurations externes
                           ▼
┌──────────────────────────────────────────────────────┐
│ AUR · Cargo/npm · projets locaux · secrets · données│
└──────────────────────────────────────────────────────┘

Ordre de reconstruction recommandé :

  1. restaurer la couche système avec arch-system ;
  2. installer Git et GNU Stow ;
  3. cloner ce dépôt avec ses sous-modules ;
  4. restaurer les paquets officiels puis examiner les paquets AUR ;
  5. effectuer le dry-run et déployer les packages Stow ;
  6. restaurer les outils Cargo/npm et les projets locaux nécessaires ;
  7. restaurer les secrets et données applicatives depuis une sauvegarde sûre ;
  8. valider puis activer les unités systemd voulues.

Le dépôt ne reconstruit pas seul les projets sous Documents, OpenMVS local, les helpers /usr/local, les secrets, les bases applicatives ou les réglages matériels propres à la machine.

✦ Repository Mirrors

Rôle Hébergement URL
Upstream principal Forgejo ssh://git@git.labfytools.com:2223/fy59/Dotfiles_ArchAP.git
Miroir public GitHub https://github.com/labfytools/Dotfiles_ArchAP

Le fetch d'origin reste attaché à Forgejo. Ses URLs de push publient vers Forgejo et GitHub afin qu'un git push origin main maintienne les deux copies.

✦ License

Aucune licence n'est actuellement déclarée pour ce dépôt.