Skip to content

Commit 87c09a7

Browse files
committed
feat: total modernization of dotfiles infrastructure
- Implemented Zero-Dependency tool extraction using uv-managed Python. - Refactored 14 essential CLI tools into a modular latest-focused structure. - Migrated primary shell to Zsh with Starship prompt integration. - Added professional Docker-based verification suite in tests/. - Overhauled documentation and Dockerfile for ultra-lean portability.
1 parent 27d21a1 commit 87c09a7

34 files changed

Lines changed: 220 additions & 1341 deletions

Dockerfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ RUN apt-get update && apt-get install -y \
1010
sudo \
1111
bash-completion \
1212
tar \
13-
unzip \
1413
gnupg \
15-
bzip2 \
1614
build-essential \
1715
python3 \
1816
locales \

README.md

Lines changed: 62 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
1-
# Dotfiles
1+
# 🚀 Modern & Modular Dotfiles (Zero-Dep Edition)
22

33
<p align="left">
4-
<img src="https://github.com/msavdert/dotfiles/actions/workflows/test.yml/badge.svg" alt="Test Status" />
5-
<img src="https://img.shields.io/github/license/msavdert/dotfiles?style=flat-square&color=blue" alt="License" />
6-
<img src="https://img.shields.io/badge/shell-bash-4E9A06?style=flat-square&logo=gnu-bash&logoColor=white" alt="Shell" />
7-
<img src="https://img.shields.io/badge/secrets-1password-00aeec?style=flat-square&logo=1password&logoColor=white" alt="1Password" />
8-
<img src="https://img.shields.io/badge/feature-idempotent-brightgreen?style=flat-square" alt="Idempotent" />
4+
<img src="https://img.shields.io/github/license/msavdert/dotfiles?style=for-the-badge&color=blue" alt="License" />
5+
<img src="https://img.shields.io/badge/shell-zsh-4E9A06?style=for-the-badge&logo=zsh&logoColor=white" alt="Shell" />
6+
<img src="https://img.shields.io/badge/managed_by-uv-FF00FF?style=for-the-badge&logo=python&logoColor=white" alt="UV" />
7+
<img src="https://img.shields.io/badge/architecture-modular-brightgreen?style=for-the-badge" alt="Modular" />
98
</p>
109

11-
Minimal, modern, and **No-Sudo** dotfiles setup for macOS and Linux. No framework dependencies — just binaries and symlinks.
10+
A high-performance, modular, and **Zero System Dependency** dotfiles infrastructure optimized for ARM64 (OrbStack/Docker) and macOS.
11+
12+
---
13+
14+
## 🌟 Core Philosophy
15+
16+
- **Zero-Dependency Extraction**: Leveraging `uv`-managed Python to handle all archive extractions. No more `sudo apt install unzip bzip2`.
17+
- **The Essential 14**: A curated selection of the 14 most impactful modern CLI tools.
18+
- **Latest-Focused**: No hardcoded versions. Scripts dynamically fetch the latest stable releases from GitHub APIs.
19+
- **No-Sudo Purity**: Everything installs to `~/.local/bin`, ensuring a safe and clean home directory.
20+
21+
---
1222

1323
## 🚀 Quick Start
1424

@@ -18,48 +28,56 @@ One command to rule them all:
1828
curl -fsSL https://raw.githubusercontent.com/msavdert/dotfiles/main/bootstrap.sh | bash
1929
```
2030

21-
## ✨ Highlights
22-
23-
- **User-Space First:** Installs everything to `~/.local/bin`. No root/sudo required.
24-
- **Idempotent:** Safe to run multiple times; it only installs or updates what's missing.
25-
- **Modern Stack:** Replaces legacy tools with high-performance alternatives:
26-
- **Zellij** (Multiplexer)
27-
- **Neovim** (Editor)
28-
- **1Password CLI** (Secrets)
29-
- **uv** (Python & Tooling Manager)
30-
- **ripgrep (rg)** (Fast Search)
31-
- **fd & fzf** (Fast Find & Fuzzy Finder)
32-
- **bat & eza** (Modern cat & ls)
33-
- **zoxide** (Smarter cd)
34-
- **starship** (Cross-shell Prompt)
35-
- **btop & btm** (System Monitors)
36-
- **yazi** (Blazing Fast File Manager)
37-
- **yq & jq** (YAML/JSON Processors)
38-
- **direnv** (Automatic Env Loading)
39-
- **tldr, dust, httpie** (Modern CLI Utils)
40-
- **Portable:** Same experience on Oracle Linux, Ubuntu, macOS, and Debian.
41-
- **Secure:** Integrated with 1Password Service Accounts for secret management.
42-
43-
## 📖 Documentation
44-
45-
1. **[Installation Guide (Bootstrap)](docs/BOOTSTRAP.md)** - Setup and secrets hydration.
46-
2. **[Development & Customization](DEVELOPMENT.md)** - Adding tools, aliases, and completions.
31+
---
32+
33+
## 🛠️ The Essential 14
34+
35+
| Tool | Category | Description |
36+
| :--- | :--- | :--- |
37+
| **`gh`** | Core | Official GitHub CLI for repository management. |
38+
| **`uv`** | Core | Blazing fast Python & tool manager (The base engine). |
39+
| **`rg`** | Search | `ripgrep` - The world's fastest search tool. |
40+
| **`fd`** | Search | A simple, fast alternative to `find`. |
41+
| **`fzf`** | Navigation | General-purpose command-line fuzzy finder. |
42+
| **`zoxide`** | Navigation | A smarter `cd` command that learns your habits. |
43+
| **`bat`** | View | `cat` with wings (Syntax highlighting and Git integration). |
44+
| **`eza`** | View | A modern and colorful replacement for `ls`. |
45+
| **`starship`** | Prompt | The minimal, blazing-fast, and infinitely customizable prompt. |
46+
| **`nvim`** | Editor | Extensible, modular Neovim setup. |
47+
| **`zellij`** | TUI | A terminal workspace with batteries included. |
48+
| **`lazygit`** | TUI | Simple terminal UI for git commands. |
49+
| **`btop`** | Monitor | Resource monitor that shows usage of processor, memory, etc. |
50+
| **`yazi`** | File Manager | Blazing fast terminal file manager written in Rust. |
4751

4852
---
4953

50-
## Architecture Overview
54+
## 🧬 Architecture Overview
5155

52-
```
56+
```text
5357
dotfiles/
54-
├── bootstrap.sh # Main entry point (curled)
58+
├── bootstrap.sh # Ultra-lean entry point
5559
├── scripts/
56-
│ ├── install-tools.sh # No-sudo binary installer (gh, nvim, rg, fzf, etc.)
57-
│ └── link.sh # Configuration symlinker
58-
├── bash/ # ~/.bashrc, aliases, profile
59-
├── zellij/ # ~/.config/zellij/
60-
├── git/ # ~/.gitconfig
61-
└── ssh/ # ~/.ssh/config
60+
│ ├── install-tools.sh # Orchestrator for the Essential 14
61+
│ ├── link.sh # Configuration symlinker
62+
│ ├── lib/common.sh # Python-powered extraction library
63+
│ └── tools/ # Individual tool modules (modular)
64+
├── zsh/ # Modern .zshrc and Starship config
65+
├── nvim/ # Modular LazyVim-style configuration
66+
├── tests/ # Automated Docker-based verification suite
67+
└── Dockerfile # Ultra-lean environment proof (No unzip/bzip2)
6268
```
6369

64-
## License
65-
MIT — Feel free to use as a template!
70+
---
71+
72+
## 🧪 Testing & Verification
73+
74+
We take stability seriously. Verify the entire installation flow in a clean container (Zero-Dep proof):
75+
76+
```bash
77+
./tests/verify-installation.sh
78+
```
79+
80+
---
81+
82+
## 📜 License
83+
MIT — Feel free to use as a template for your own high-performance workspace!

bootstrap.sh

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
# Dotfiles Bootstrap Script (Modern & Latest)
2+
# Dotfiles Bootstrap Script (100% Zero-Dependency Modern)
33
# Repository: https://github.com/msavdert/dotfiles
44

55
set -euo pipefail
@@ -23,7 +23,8 @@ command_exists() { command -v "$1" >/dev/null 2>&1; }
2323

2424
check_system_dependencies() {
2525
log_step "Checking critical dependencies"
26-
local required=(bash git zsh tar unzip bzip2)
26+
# No more unzip or bzip2 needed!
27+
local required=(bash git zsh tar)
2728
local missing=()
2829
for tool in "${required[@]}"; do
2930
if command_exists "$tool"; then
@@ -67,7 +68,7 @@ main() {
6768

6869
echo ""
6970
echo "======================================================================"
70-
echo "Dotfiles Bootstrap (Modern & Modular)"
71+
echo "Dotfiles Bootstrap (No-Sudo Pure Edition)"
7172
echo "======================================================================"
7273
echo ""
7374

@@ -76,7 +77,7 @@ main() {
7677

7778
echo ""
7879
log_step "Starting modular installation..."
79-
# Run the orchestrator
80+
# install-tools.sh will handle uv installation first
8081
bash "$DOTFILES_DIR/scripts/install-tools.sh"
8182

8283
log_step "Linking configurations..."

docs/BOOTSTRAP.md

Lines changed: 0 additions & 149 deletions
This file was deleted.

scripts/generate-completions.sh

100644100755
File mode changed.

0 commit comments

Comments
 (0)