81 lines
3.7 KiB
Markdown
81 lines
3.7 KiB
Markdown
# Dotfiles
|
|
|
|
All the configuration files for my current machine setup. Managed with GNU
|
|
stow so every package maps directly onto the relevant `~/.config`, `~/.local`,
|
|
`/etc`, etc. paths.
|
|
|
|
## Requirements
|
|
|
|
- [GNU stow](https://www.gnu.org/software/stow/)
|
|
- `make`
|
|
- [op (1Password CLI)](https://developer.1password.com/docs/cli/) for anything
|
|
that needs a secret
|
|
|
|
## Quick start
|
|
|
|
```sh
|
|
# Install stow if missing (auto-detects Arch/Debian/macOS)
|
|
make check-stow
|
|
|
|
# Link every package into $HOME (system dirs like /etc are stowed with sudo)
|
|
make link
|
|
|
|
# Unlink everything again
|
|
make unlink
|
|
|
|
# Pull main plus submodules
|
|
make pull-updates
|
|
```
|
|
|
|
## Packages
|
|
|
|
| Package | Path | Description |
|
|
| ----------- | -------------- | ------------------------------------------------------- |
|
|
| `backgrounds` | `~/.config/backgrounds` | Wallpaper collection (incl. Dynamic-Wallpapers) |
|
|
| `ghostty` | `~/.config/ghostty` | Ghostty terminal config |
|
|
| `hosts` | `~/.config/hosts` | Custom `HOSTALIASES` file (`HOSTALIASES=~/.config/hosts`) |
|
|
| `hyprland` | `~/.config/hypr`, `~/.local/bin` | Hyprland config (Lua), scripts, `hypr-lid-power` service |
|
|
| `hyprlock` | `~/.config/hypr` | Lockscreen config |
|
|
| `hyprmocha` | `~/.config/hypr` | Catppuccin Mocha palette as Lua |
|
|
| `hyprpaper` | `~/.config/hypr` | Wallpaper daemon config |
|
|
| `hyprshell` | `~/.config/hyprshell` | Launcher/overview (Rust, RON config + CSS) |
|
|
| `local` | `~/.local/bin` | Local scripts (e.g. `fetch-nas-credentials.sh`) |
|
|
| `mako` | `~/.config/mako` | Notifications |
|
|
| `monique` | `~/.config/monique` | Monitor/clamshell arrangement |
|
|
| `nvim` | `~/.config/nvim` | Git submodule (private repo) |
|
|
| `rofi` | `~/.config/rofi` | Launcher (Catppuccin Mocha) |
|
|
| `ssh` | `~/.ssh/config` | SSH config (1Password agent + cloudflared proxy) |
|
|
| `sunsetr` | `~/.config/sunsetr` | Screen color temperature (`geo.toml` is gitignored) |
|
|
| `systemd` | `~/.config/systemd/user`, `/etc/systemd` | User + system units (cloudflared, rclone/GDrive, NAS mounts, 1Password sign-in) |
|
|
| `waybar` | `~/.config/waybar` | Top bar |
|
|
| `wofi` | `~/.config/wofi` | App menu |
|
|
| `yay` | `~/.config/yay` | AUR helper config |
|
|
| `zsh` | `~/.zshrc` | Zsh config |
|
|
|
|
`wluma/` and `resources/` exist locally but are **not** committed (see
|
|
`AGENTS.md`).
|
|
|
|
## Secrets management
|
|
|
|
No secrets are committed to this repo. Anything secret goes through
|
|
[1Password](https://1password.com):
|
|
|
|
- References look like `op://Vault/Item/field[/section]` (e.g. the Cloudflare
|
|
service token in `systemd/.config/systemd/user/cloudflared-k8s.service`).
|
|
- Services inject secrets at runtime with `op run -- ...`, so values never hit
|
|
disk or git.
|
|
- `fetch-nas-credentials.sh` writes fetched NAS credentials to
|
|
`~/.nas/.smbcredentials` (chmod 600) at boot.
|
|
- `detect-secrets` runs via `pre-commit` against `.secrets.baseline`.
|
|
|
|
## Submodules
|
|
|
|
- `nvim/.config/nvim` → `git@git-ssh.samoneal.io:2222/sam_oneal/nvim-config.git`
|
|
(private). Pull with `make pull-updates`.
|
|
|
|
## AI assistance
|
|
|
|
This repo is developed with AI assistance. See `AGENTS.md` for how AI has been
|
|
used, the conventions it must follow, and where session transcripts are kept
|
|
(`resources/ai/sessions/`).
|