43 lines
1.2 KiB
Markdown
43 lines
1.2 KiB
Markdown
# 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).
|