This README is shared across these repositories:
- BartSte/dotfiles (base, cross‑platform)
- BartSte/dotfiles-linux (Linux common)
- BartSte/dotfiles-arch (Arch‑specific)
- BartSte/dotfiles-pi (Raspberry Pi / Debian‑based)
- BartSte/dotfiles-windows (Windows)
- BartSte/dotfiles-secret (private: personal state and configs that should never be public)
- Base →
dotfiles - Linux common →
dotfiles-linux - Linux distro layer →
dotfiles-archordotfiles-pi - Windows →
dotfiles-windows
On Linux, install base + linux + distro layer. On Windows, install base + windows.
Use the base initialize script. It clones base + linux + the appropriate distro layer.
curl -O https://raw.githubusercontent.com/BartSte/dotfiles/master/dotfiles/initialize && bash ./initialize; rm ./initializeThen:
~/dotfiles-linux/main
# Arch:
~/dotfiles-arch/main
# or Raspberry Pi:
~/dotfiles-pi/mainFinish by setting ~/.dotfiles_config.sh:
export BWEMAIL=
export MICROSOFT_ACCOUNT=Set-ExecutionPolicy Bypass -Scope Process -Force;
[bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match "S-1-5-32-544");
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/BartSte/dotfiles-windows/master/dotfiles-windows/initialize.ps1'))Then:
$HOME/dotfiles-windows/main.ps1Contains static dotfiles used by other layers. You typically don’t clone this directly.
dotfiles/nvim/lua:helpers: helper functionsplugins: lazy.nvim pluginsconfig: plugin config
dotfiles/nvim/vim: vimscript plugin configdotfiles/nvim/plugin: non‑plugin config loaded beforeafter/plugindotfiles/nvim/after/plugin: non‑plugin configdotfiles/nvim/after/ftplugin: filetype‑specific config
General Linux config shared by all distros (zsh, tmux, git, nvim, scripts, etc.).
Arch‑specific modules (pacman/aur, sway/waybar/kmonad, DNS/firewall, systemd units).
Also contains mutt, khal, and khalorg.
Debian/RPi specific packages (apt), Tailscale, moltbot, etc.
Two accounts (personal/work) are configured via a single muttrc using MICROSOFT_ACCOUNT.
Credentials are fetched via rbw/bw-cli-get.
Paths are now under:
~/dotfiles-arch/mutt/*
Calendar setup for office calendar using vdirsyncer + khal + khalorg.
Paths are now under:
~/dotfiles-arch/khal/*~/dotfiles-arch/khalorg/*
These are defined in dotfiles-linux/zsh/git.zsh:
base/baseslin/linslinarch/linarchslinpi/linpisdot/dots/dotu
- main: non‑interactive setup (safe to run in CI).
- auth: interactive steps (logins, tokens, pairing). Run manually.
There is a private repo: BartSte/dotfiles-secret.
Use it for things you want versioned but not public, for example:
- Clawdbot private workspace state (memory, notes)
- Redacted config templates (tokens replaced with
REDACTED) - Browser bookmarks/quickmarks/userscripts that may contain private URLs
Passwords/tokens never go in git; they are fetched at runtime from rbw.
- If a module requires authentication or interactive steps, keep those in
authfiles. - Secrets should live in rbw (never in the repos).