I automated my development setup with Ansible.
- Shell: fish
- Terminal: WezTerm / Ghostty
- Prompt: Starship
- Editor: Neovim
- Notes: Obsidian integrated in Neovim with obsidian.nvim
git clone https://github.com/bnidev/dotfiles.git ~/.dotfiles
~/.dotfiles/bin/dotfilesThe wrapper script will:
- Detect your OS and install dependencies
- Clone/pull the dotfiles repository
- Prompt to generate SSH keys if needed
- Copy the config template to
~/.config/dotfiles/config.yml - Run the full playbook
Target one or more roles (comma-separated):
~/.dotfiles/bin/dotfiles -t neovim
~/.dotfiles/bin/dotfiles -t neovim,fish,gitPreview changes without applying:
dotfiles --check --diff| Role | Description |
|---|---|
bat |
Cat clone with syntax highlighting |
cargo |
Rust package manager |
docker |
Docker and Docker Compose |
eza |
Modern ls replacement |
fd |
Fast find alternative |
fish |
Fish shell setup |
fonts |
Nerd Fonts installation |
fzf |
Fuzzy finder |
ghostty |
Terminal emulator |
git |
Git configuration |
go |
Go programming language |
lazydocker |
Docker TUI |
lazygit |
Git TUI |
mattermost |
Team chat |
mercurial |
Version control |
neovim |
Neovim configuration |
nvm |
Node version manager |
obsidian |
Obsidian integration |
pnpm |
Package manager |
posting |
HTTP client |
ripgrep |
Grep alternative |
sshfs |
SSH filesystem |
sshs |
SSH TUI |
starship |
Prompt |
tldr |
Simplified man pages |
tokei |
Code statistics |
wezterm |
Terminal emulator |
wireguard |
VPN |
system |
Base system packages |
- Ubuntu 22.04 and later
- Arch Linux
- Fisher - A plugin manager for
fish - eza - A modern replacement for
ls - z - Tracks your most used directories and let's you jump to it quickly
- fzf - A fuzzy finder for the command-line
- nvm.fish - Node version manager built for
fish - lazygit - A simple terminal UI for git commands
- sshs - A terminal UI for SSH connections
Make sure your OS is up to date and does not have any warnings or errors when you run sudo apt update or sudo apt upgrade. I encountered this issue when Ubuntu failed to update a package.
The keyring or source may already exist, but with a different name or version. Try removing it and running the playbook again.
The Ansible setup is inspired by TechDufus and Alt-F4-LLC.