https://github.com/bartste/dotfiles-linux
My dotfiles for linux
https://github.com/bartste/dotfiles-linux
arch-linux bare-repo bash dotfiles example git i3 linux mutt pacman polybar python template vim wsl
Last synced: 2 months ago
JSON representation
My dotfiles for linux
- Host: GitHub
- URL: https://github.com/bartste/dotfiles-linux
- Owner: BartSte
- Created: 2022-04-16T10:22:40.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2026-03-31T07:17:10.000Z (3 months ago)
- Last Synced: 2026-03-31T09:35:09.905Z (3 months ago)
- Topics: arch-linux, bare-repo, bash, dotfiles, example, git, i3, linux, mutt, pacman, polybar, python, template, vim, wsl
- Language: Shell
- Homepage:
- Size: 25.5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Dotfiles BartSte
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)
---
## Layered model
- **Base** → `dotfiles`
- **Linux common** → `dotfiles-linux`
- **Linux distro layer** → `dotfiles-arch` **or** `dotfiles-pi`
- **Windows** → `dotfiles-windows`
On Linux, install **base + linux + distro layer**.
On Windows, install **base + windows**.
---
## Linux install (Arch / Pi)
Use the **base** initialize script. It clones base + linux + the appropriate distro layer.
```bash
curl -O https://raw.githubusercontent.com/BartSte/dotfiles/master/dotfiles/initialize && bash ./initialize; rm ./initialize
```
Then:
```bash
~/dotfiles-linux/main
# Arch:
~/dotfiles-arch/main
# or Raspberry Pi:
~/dotfiles-pi/main
```
Finish by setting `~/.dotfiles_config.sh`:
```bash
export BWEMAIL=
export MICROSOFT_ACCOUNT=
```
---
## Windows install
```powershell
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:
```powershell
$HOME/dotfiles-windows/main.ps1
```
---
## Dotfiles (cross‑platform)
Contains static dotfiles used by other layers. You typically don’t clone this directly.
### Neovim (`dotfiles/nvim`)
- `dotfiles/nvim/lua`:
- `helpers`: helper functions
- `plugins`: lazy.nvim plugins
- `config`: plugin config
- `dotfiles/nvim/vim`: vimscript plugin config
- `dotfiles/nvim/plugin`: non‑plugin config loaded before `after/plugin`
- `dotfiles/nvim/after/plugin`: non‑plugin config
- `dotfiles/nvim/after/ftplugin`: filetype‑specific config
---
## Linux common (dotfiles-linux)
General Linux config shared by all distros (zsh, tmux, git, nvim, scripts, etc.).
---
## Arch layer (dotfiles-arch)
Arch‑specific modules (pacman/aur, sway/waybar/kmonad, DNS/firewall, systemd units).
Also contains **mutt**, **khal**, and **khalorg**.
---
## Raspberry Pi layer (dotfiles-pi)
Debian/RPi specific packages (apt), Tailscale, moltbot, etc.
---
## Mutt (Arch layer)
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/*`
---
## khal & khalorg (Arch layer)
Calendar setup for office calendar using vdirsyncer + khal + khalorg.
Paths are now under:
- `~/dotfiles-arch/khal/*`
- `~/dotfiles-arch/khalorg/*`
---
## Aliases (bare repos)
These are defined in `dotfiles-linux/zsh/git.zsh`:
- `base` / `bases`
- `lin` / `lins`
- `linarch` / `linarchs`
- `linpi` / `linpis`
- `dot` / `dots` / `dotu`
## Main vs Auth
- **main**: non‑interactive setup (safe to run in CI).
- **auth**: interactive steps (logins, tokens, pairing). Run manually.
## dotfiles-secret (private)
There is a private repo: **BartSte/dotfiles-secret**.
Use it for things you want versioned but *not* public, for example:
- openclaw 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**.
## Notes
- If a module requires authentication or interactive steps, keep those in `auth` files.
- Secrets should live in **rbw** (never in the repos).