# Dotfiles

## Install

```bash
git clone --recurse-submodules ssh://git@git.alxczl.fr:7878/alexandre/dotfiles.git
cd new-dotfiles
./install.sh
```

The install script detects your package manager (pacman/apt/dnf), installs dependencies, symlinks configs, and sets up `/etc/zsh/zshenv`.

See [DEPENDENCIES.md](DEPENDENCIES.md) for the full package list per distro.

## Structure

```
config/     → user configs, each subfolder is symlinked to ~/.config/<name>
system/     → system-wide configs, installed with sudo
install.sh  → package installation + symlinks + system config
```

## Adding a new config

1. Copy or create the config directory under `config/`:
   ```bash
   cp -r ~/.config/foo config/foo
   ```
2. The install script's `for` loop will automatically symlink `config/foo` to `~/.config/foo` on next run.

## Adding system-level config

1. Place the file under `system/` with a meaningful path or name.
2. Add an `install` line to the system config section of `install.sh`:
   ```bash
   sudo install -Dm644 "$DOTFILES/system/foo.conf" /etc/foo.conf
   ```

## Adding dependencies

1. Add the package to the appropriate distro block in `install.sh`.
2. Update the table in [DEPENDENCIES.md](DEPENDENCIES.md).
