Dotfiles Arch Linux : SwayFX, QuickShell, Neovim et environnement de bureau personnalisé.
Find a file
2026-09-25 05:48:49 +02:00
.assets chore(system): refresh package and service inventories 2026-09-25 05:44:06 +02:00
atuin/.config/atuin feat(shell): preserve active user workflow 2026-09-25 05:46:14 +02:00
bat/.config/bat first commit 2026-05-18 11:51:31 +02:00
bin/.local/bin feat(bin): track canonical user launchers 2026-09-25 05:42:29 +02:00
btop/.config first commit 2026-05-18 11:51:31 +02:00
cliphist/.config/cliphist fix(stow): restore reproducible package deployment 2026-09-25 05:39:26 +02:00
eza/.config/eza first commit 2026-05-18 11:51:31 +02:00
fastfetch/.config/fastfetch update 2026-07-26 21:11:35 +02:00
fzf/.config/fzf update hyprwisper and atuin 2026-06-05 09:37:01 +02:00
gtk-3.0/.config/gtk-3.0 chore(gtk): preserve active bookmarks 2026-09-25 05:46:15 +02:00
gtklock/.config/gtklock general 2026-05-30 09:35:14 +02:00
hyprwhspr/.config/hyprwhspr chore(dotfiles): remove stale runtime artifacts 2026-09-25 05:37:28 +02:00
i3status-rust/.config/i3status-rust update 2026-07-26 21:11:35 +02:00
icons/.icons first commit 2026-05-18 11:51:31 +02:00
kitty/.config/kitty update 2026-07-26 21:11:35 +02:00
mako/.config/mako general 2026-05-30 09:35:14 +02:00
nvim/.config/nvim chore(nvim): preserve active plugin configuration 2026-09-25 05:46:14 +02:00
opencode/.config/opencode chore(dotfiles): remove stale runtime artifacts 2026-09-25 05:37:28 +02:00
qt5ct/.config/qt5ct first commit 2026-05-18 11:51:31 +02:00
qt6ct/.config/qt6ct first commit 2026-05-18 11:51:31 +02:00
starship/.config first commit 2026-05-18 11:51:31 +02:00
sway/.config/sway docs: rewrite ArchASP dotfiles guide 2026-09-25 05:46:27 +02:00
swaylock/.config/swaylock update 2026-07-26 21:11:35 +02:00
systemd/.config/systemd/user fix(systemd): make user enablement links portable 2026-09-25 05:48:49 +02:00
themes/.themes/Catppuccin-Mocha first commit 2026-05-18 11:51:31 +02:00
tmux/.config/tmux config nvim + modif config mangowm 2026-05-24 00:48:17 +02:00
uwsm/.config/uwsm fix(stow): restore reproducible package deployment 2026-09-25 05:39:26 +02:00
wallpapers/.wallpapers update 2026-07-26 21:11:35 +02:00
wofi/.config/wofi first commit 2026-05-18 11:51:31 +02:00
yazi/.config/yazi chore(dotfiles): remove stale runtime artifacts 2026-09-25 05:37:28 +02:00
ytmusic-tui/.config/ytmusic-tui feat(bin): track canonical user launchers 2026-09-25 05:42:29 +02:00
zsh feat(shell): preserve active user workflow 2026-09-25 05:46:14 +02:00
.gitignore chore(dotfiles): untrack machine-generated artifacts 2026-09-25 05:46:03 +02:00
.gitmodules chore(dotfiles): remove stale runtime artifacts 2026-09-25 05:37:28 +02:00
README.md docs: rewrite ArchASP dotfiles guide 2026-09-25 05:46:27 +02:00

ArchASP Dotfiles

Configuration de la couche utilisateur de la station Arch Linux ArchASP. Le dépôt privilégie des fichiers lisibles, déployés par GNU Stow, et sépare explicitement la session utilisateur de l'administration système.

Overview

Ce dépôt gère Sway, les applications de terminal, le shell, les scripts personnels et les unités systemd utilisateur. La configuration root, les paquets de base, le stockage, le réseau, le boot et les helpers sous /usr/local appartiennent au dépôt arch-system.

Certaines configurations restent liées à cette machine : sorties Sway, périphériques, chemins sous /home/fy59 et projets présents dans Documents. Elles doivent être relues avant un déploiement sur un autre poste.

Desktop Stack

La chaîne de session canonique est :

greetd -> tuigreet -> UWSM -> Sway

Sway utilise sa barre native avec i3status-rs. Mako fournit les notifications, Wofi le lanceur, Swaylock le verrouillage, wl-clipboard et Cliphist l'historique du presse-papiers, et Kitty le terminal.

Le fichier uwsm/.config/uwsm/default-id sélectionne sway.desktop. La copie de référence de la configuration root de greetd se trouve dans .assets/greetd/config.toml; son installation réelle sous /etc/greetd relève de arch-system.

Shell Stack

Le shell interactif est Zsh. Son environnement associe Starship, Atuin, FZF, Zoxide, Eza, Bat et Yazi. .zprofile démarre la session graphique via UWSM lorsque celui-ci autorise un démarrage, et .zshenv publie le socket de l'agent SSH utilisateur.

Les données Atuin, historiques de shell, clés, bases et états applicatifs ne font pas partie du dépôt.

Repository Layout

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

kitty/.config/kitty/       -> ~/.config/kitty/
nvim/.config/nvim/         -> ~/.config/nvim/
sway/.config/sway/         -> ~/.config/sway/
bin/.local/bin/            -> ~/.local/bin/
systemd/.config/systemd/   -> ~/.config/systemd/
zsh/.zshrc                 -> ~/.zshrc

Les thèmes, icônes et wallpapers sont volontairement versionnés. .assets contient les inventaires de reconstruction et des références système ; ce n'est pas un paquet Stow.

Deployment

Prérequis : Git, GNU Stow et les paquets décrits dans .assets. Cloner le dépôt principal avec ses sous-modules :

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

Construire la liste des paquets, puis commencer obligatoirement par un dry-run :

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[@]}"

Après examen des conflits éventuels, effectuer le déploiement :

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

Stow reçoit les noms des paquets. Il ne faut pas lancer stow ., car la racine du dépôt n'est pas elle-même un paquet.

Package Inventory

  • .assets/pkglist-pacman.txt contient les paquets officiels explicitement installés (pacman -Qqen).
  • .assets/pkglist-aur.txt contient les paquets foreign/AUR explicitement installés (pacman -Qqem).
  • .assets/external-tools.md décrit Cargo, npm, builds manuels, projets locaux et helpers système qui ne sont pas restaurés par Pacman.

Ces fichiers sont des instantanés, pas un programme d'installation. Leur application et la validation des paquets AUR relèvent de la reconstruction du système.

Services

.assets/enabled-services.txt recense les services systemd système activés. Les timers, sockets et paths sont séparés dans .assets/enabled-system-aux-units.txt et .assets/enabled-user-aux-units.txt. Leur activation côté système appartient à arch-system.

Le paquet systemd contient les unités utilisateur et leurs liens d'activation canoniques. Après déploiement ou modification :

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

Plusieurs unités lancent du code externe à ce dépôt, notamment Trainlog, Lardon et Arch Sentinel. Leurs sources et builds doivent être restaurés aux emplacements documentés dans .assets/external-tools.md.

Secrets

Ne jamais versionner de clé SSH/GPG, .netrc, token, cookie, credential, configuration Rclone ou gh privée, clé WireGuard, base Atuin, clé Atuin ou secret Nextcloud. Les états et caches applicatifs restent sous $HOME et sont exclus de Stow ou de Git.

Un contrôle du HEAD ne remplace pas une analyse de l'historique Git. Tout secret ayant été commité doit être révoqué ou renouvelé avant une purge de l'historique et avant la publication d'un miroir.

Rebuilding ArchASP

Une reconstruction repose sur deux couches :

  1. arch-system restaure la base Arch, les paquets, greetd, le réseau, le stockage et les services root ;
  2. ce dépôt restaure les sous-modules, fichiers Stow, scripts et unités systemd utilisateur.

Restent manuels ou externes : installation des paquets AUR, outils Cargo/npm, builds des projets dans Documents, OpenMVS local, helpers /usr/local, secrets, données applicatives et activation contrôlée des unités. Le dépôt ne prétend donc pas reconstruire seul une machine complète.

Repository Mirrors

Forgejo est l'upstream principal et conserve le nom de remote origin. GitHub, lorsqu'il sera configuré, sera un miroir secondaire nommé github. Un historique contenant un secret ne doit jamais être envoyé vers ce miroir.

License

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