A reproducible Ubuntu development environment focused on a clean terminal experience, modern CLI tools, automated setup, and version-controlled configuration.
- 🖥️ Ghostty
- 🐚 Zsh
- 🚀 Starship
- ✏️ Neovim (LazyVim)
- 📝 Git
- 📊 btop
- 🐳 LazyDocker configuration
- 🔤 Maple Mono Nerd Font
- ⚙️ GitHub Actions CI
.
├── .github/
│ └── workflows/
│ └── ci.yml
│
├── home/
│ ├── .config/
│ │ ├── btop/
│ │ ├── ghostty/
│ │ ├── lazydocker/
│ │ │ └── config.yml
│ │ ├── nvim/
│ │ ├── starship.toml
│ │ └── zsh/
│ │ ├── aliases.zsh
│ │ ├── exports.zsh
│ │ └── functions.zsh
│ │
│ ├── .gitconfig.example
│ └── .zshrc
│
├── scripts/
│ ├── lib/
│ │ └── common.sh
│ ├── bootstrap.sh
│ ├── fonts.sh
│ ├── packages.sh
│ └── update.sh
│
├── CHANGELOG.md
├── INVENTORY.md
├── LICENSE
├── Makefile
└── README.md
Clone the repository.
git clone https://github.com/enginsezen/dotfiles.git
cd dotfilesInstall the required packages.
make packagesConfigure Git.
cp home/.gitconfig.example home/.gitconfigEdit home/.gitconfig and replace:
Your Nameyour@email.com
with your own Git identity.
Create the symbolic links.
make bootstrapInstall the Maple Mono Nerd Font.
make fontsNote
This repository provides a .gitconfig.example template. Configure it with your own Git identity before running make bootstrap.
This repository distinguishes between installing applications and managing their configuration.
Some applications are installed automatically through make packages, while others are only configured if they are already installed on the system.
| Application | Installed | Configuration |
|---|---|---|
| Zsh | ✅ | ✅ |
| Starship | ✅ | ✅ |
| Neovim | ✅ | ✅ |
| btop | ✅ | ✅ |
| Ghostty | ❌ | ✅ |
| LazyDocker | ❌ | ✅ |
| Command | Description |
|---|---|
make help |
Show available commands |
make bootstrap |
Create symbolic links |
make packages |
Install required packages |
make update |
Update the operating system |
make fonts |
Install Maple Mono Nerd Font |
make format |
Format all shell scripts |
make format-check |
Verify formatting without modifying files |
make lint |
Run ShellCheck |
make check |
Format and lint scripts |
make ci |
Run the same validation as GitHub Actions |
Before pushing changes, run:
make ciThis executes the same validation pipeline used by GitHub Actions.
- Keep configuration under version control.
- Keep installation reproducible.
- Separate application installation from configuration management.
- Prefer simple, maintainable solutions.
- Automate repetitive setup tasks.
- Follow consistent coding standards.
- Keep scripts idempotent.
- Validate every change through Continuous Integration.
Released under the MIT License.
