No description
- Nushell 46.4%
- Rust 42.6%
- Shell 6.8%
- PowerShell 1.8%
- Makefile 1.6%
- Other 0.8%
|
|
||
|---|---|---|
| .githooks | ||
| .github | ||
| ansible | ||
| app-configs | ||
| dotstrap | ||
| extras | ||
| installer-data | ||
| installers | ||
| os/pop | ||
| profile-configs | ||
| scripts | ||
| shells | ||
| .gitignore | ||
| AGENTS.md | ||
| LICENSE | ||
| Makefile | ||
| profile-picture.jpg | ||
| README.md | ||
| setup-apps.nu | ||
| setup-initial.sh | ||
| setup-linux-x86_64 | ||
| strap.ps1 | ||
| TODO.md | ||
dotfiles
Cross-machine dotfiles repository. Keeps shell/editor/tool configuration consistent across workstations and speeds up post-install setup via a single compiled binary.
Quick Start
# Build the binary (requires Rust toolchain)
make build
# Run everything: link configs + install apps
./target/release/dotstrap
# Or run individual steps
./target/release/dotstrap bash # Link bash configs
./target/release/dotstrap nu-config # Link Nushell configs
./target/release/dotstrap apps # Install all apps
Available Commands
Run dotstrap --help or dotstrap <command> --help for full documentation.
| Command | Description |
|---|---|
all |
Run all bootstrap steps (default when no command given) |
bash |
Link bash config files (.bashrc, .bash_aliases, etc.) |
nu-install |
Install Nushell + starship + yazi via COPR/Gemfury |
apps / setup |
Install all apps and services |
config |
Link all config files (git, ghostty, yazi, nushell) |
app-configs |
Link git, ghostty, and yazi app configs |
git-config |
Link git config files |
ghostty-config |
Link Ghostty terminal config |
yazi-config |
Link Yazi file manager config |
nu-config |
Link Nushell config to ~/.config/nushell/ |
git-hook |
Install pre-commit hook for secret scanning |
synology |
Link Synology NAS shell configs |
powershell |
Configure PowerShell profile |
languages |
Install Rust (rustup) and Node.js LTS (fnm) |
code |
Install Visual Studio Code |
ghostty |
Install Ghostty terminal emulator |
brave |
Install Brave browser |
chrome |
Install Google Chrome |
docker |
Install Docker CE |
mongodb |
Install MongoDB |
postgres |
Install PostgreSQL |
vlc |
Install VLC media player |
bcompare |
Install Beyond Compare |
merkuro |
Install Merkuro calendar + Akonadi |
steam |
Install Steam |
tailscale |
Install Tailscale VPN |
synology-drive |
Install Synology Drive client |
onepassword |
Install 1Password |
flatpaks |
Install Flatpak apps from Flathub |
Platform Support
| Platform | Status |
|---|---|
| Fedora (dnf) | Primary target |
| Ubuntu/Pop (apt) | Supported |
| macOS | Partial support |
| Windows | Partial support |
Building
make build # cargo build --release
make check # cargo check (fast syntax/type check)
make clean # remove build artifacts
The binary is output to target/release/dotstrap (repo root, not inside dotstrap/).
Shell Configs
Shell configuration files are still used at runtime for the interactive shell experience:
shells/nushell/— Nushell config, env, aliases, functionsshells/bash/— Bash config and aliasesshells/powershell/— PowerShell profile
The dotstrap binary links these into the appropriate locations (~/.config/nushell/, ~/.bashrc, etc.) but does not replace them.