Files
dotfiles/README.md
T
jasonhilder 7ba67a2655 Updated install options.
Bootstrap - sets up the Desktop
Install   - sets up my software
scripts/  - specific software setups
2026-05-06 10:25:33 +02:00

92 lines
3.0 KiB
Markdown

# Minimal Dotfiles
A deliberately minimal dotfile configuration.
## Philosophy
Over the years I have grown tired of tweaking config files for every component of my desktop.
This repository contains only the essentials.
Start with a minimal Debian 13 (Trixie) install — SSH server and system essentials only, no desktop environment. Run `bootstrap.sh` followed by `install.sh` to get up and running. For additional tooling, see the `scripts/` folder.
## What's Inside
.
├── config/
│ ├── alacritty/ # Alacritty terminal configuration
│ ├── fish/ # Fish shell configuration
│ ├── gitu/ # Git TUI settings
│ ├── kanata/ # Keyboard remapping
│ ├── lf/ # Terminal file manager
│ ├── nvim/ # Neovim setup
│ └── tmux/ # Tmux configuration
├── scripts/
│ ├── setup_docker # Docker install recipe
│ └── setup_golang # Golang + go tools install recipe
├── bootstrap.sh # Fresh system setup (run once, before install.sh)
└── install.sh # Dotfile symlinks and package installation
## Desktop Bootstrap
Start with a minimal Debian 13 (Trixie) install — SSH server and system essentials only, no desktop environment.
Then run the bootstrap script to set up DMS, Helium, and GTK theming:
./bootstrap.sh
Once complete, restore personal files from backup (SSH keys, documents, projects, fonts, wallpapers, local binaries/scripts), then continue with the steps below.
## Software Installation
Clone this repository and run the install script:
### Install Options
# Interactive mode (with confirmations)
./install.sh
# Only create symlinks
./install.sh -l
# Only install packages
./install.sh -i
## What Gets Installed
The script installs essential development tools via `apt`:
- **CLI Tools**: `wget`, `curl`, `fzf`, `fd-find`, `ripgrep`, `tree`, `btop`, `direnv`, `bat`, `jq`, `lf`, `unzip`
- **Development**: `build-essential`, `make`, `bear`, `valgrind`
- **Shell**: `fish`
- **Terminal**: `alacritty`
- **Multiplexer**: `tmux`
- **Other**: `ca-certificates`, `gnupg`, `libfuse2`
## Symlinks Created
- `~/.tmux.conf``./config/tmux/.tmux.conf`
- `~/.config/alacritty``./config/alacritty`
- `~/.config/fish``./config/fish`
- `~/.config/kanata``./config/kanata`
- `~/.config/nvim``./config/nvim`
- `~/.config/gitu``./config/gitu`
- `~/.config/lf``./config/lf`
## Scripts
Self-contained recipes for tooling that goes beyond the core install. Each script can be run independently as needed:
./scripts/setup_docker
./scripts/setup_golang
./scripts/setup_kanata
These are not run automatically by `install.sh` — they are opt-in.
This setup prioritizes **stability** and **simplicity** over customization. DankMaterialShell with niri handles the heavy lifting for tiling and aesthetics.