Skip to content
wilfriedagoPublic

About

To make life easier when setting up a new computer

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

🏠 Wilfried's Dotfiles

My personal dotfiles and macOS system configuration, managed with dotdrop.

Overview

This repository aims to:

  • Quickly set up a new development environment
  • Maintain consistent configurations across multiple machines
  • Automate the installation of essential tools and applications
  • Provide a modular and maintainable configuration system
  • Use a tiling window manager for efficient window management

Configuration is deployed as symlinks pointing back into this repository, so ~/.zshrc and config/zsh/zshrc are the same file. Edit either one, commit from here — there is no copy step to remember.

🚀 Setup

Prerequisites

Installation

  1. Clone the repository:
git clone https://github.com/wilfriedago/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
  1. Install packages and applications:
brew bundle --file Brewfile
just zinit-install
  1. Deploy the dotfiles:
dotdrop install -c dotdrop.config.yml -p default
dotdrop install -c dotdrop.config.yml -p macos

Inspect conflicts before replacing existing files. If replacement is intentional, use just install-force <profile> after backing up anything you want to keep.

  1. Apply macOS system settings:
bash ~/.scripts/macos/settings.sh

Configuration Details

Shell

I use Zsh with a deliberately small plugin set. The configuration is modular, with separate files for aliases, completions, functions and settings, plus a plugins directory holding one file per tool. My prompt is Starship.

See config/zsh for the shell configuration and config/starship for the prompt.

For command-line tools I stick to the ones I use daily:

  • bat - a cat clone with syntax highlighting and Git integration
  • btop - a terminal resource monitor
  • eza - a modern alternative to ls
  • fd - a simple, fast and user-friendly alternative to find
  • fzf - a command-line fuzzy finder
  • k9s - a terminal UI for Kubernetes
  • yazi - a terminal file manager
  • zoxide - a smarter cd

The complete curated package list lives in Brewfile.

Terminal

I use Rex as my terminal emulator. It isn't on Homebrew yet, so it's installed by hand from its DMG and is not in the Brewfile; its config lives in config/rex.

My previous terminal, Ghostty, is no longer installed, but its config is kept in config/ghostty.

Editors

VSCode

VSCode is my main editor — simple, yet extensible and powerful. Its extensions are listed in Brewfile, and I keep the setup as lean as I can. I separate work into profiles, each with its own settings, keybindings, extensions and snippets.

Settings, keybindings, snippets and UI customisations live in config/vscode.

Neovim

A LazyVim-based configuration in config/nvim, used for quick edits and remote work.

Window Management

My window manager is aerospace — light, very configurable, and it doesn't require disabling System Integrity Protection. Configuration is in config/aerospace.

Update and Sync

Because dotfiles are symlinked, changes you make to a deployed config are already changes in this repository:

cd ~/.dotfiles
git status
git commit -am "chore: update configuration"

To check that everything on disk still matches the repository:

dotdrop compare -c dotdrop.config.yml -p default
dotdrop compare -c dotdrop.config.yml -p macos

Re-run dotdrop install only after adding a new dotfile mapping, or on a new machine.

Validate the repository before committing:

just check

Acknowledgements

Inspiration and code was taken from many sources, including:

About

To make life easier when setting up a new computer

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages