🏠 Wilfried's Dotfiles
This repository contains my personal dotfiles and system configuration for macOS. It uses dotdrop.
This dotfiles 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
- Git
- Clone the repository:
git clone https://github.com/wilfriedago/dotfiles.git ~/.dotfiles
cd ~/.dotfiles- Install dependencies and set up the environment
- Deploy dotfiles
dotdrop install -c dotdrop.config.yaml -p default --force
dotdrop install -c dotdrop.config.yaml -p macos --forceFor the shell, I am using Zsh. I have a few plugins installed, but I try to keep them minimal to avoid clutter. My Zsh configuration is modular, with separate files for aliases, completions and functions. I also use Starship as my prompt. Check the config/zsh directory for my Zsh configuration and config/starship.toml for the Starship configuration.
In terms of command-line tools, I try to keep them minimal—only the ones I use daily, such as:
bat- A cat clone with syntax highlighting and Git integrationbtop- A terminal dashboardeza- A modern alternative tolsfd- A simple, fast and user-friendly alternative tofindfzf- A command-line fuzzy finderk9s- A terminal UI for Kuberneteslazygit- A simple terminal UI for git commandslazydocker- A simple terminal UI for Dockeryazi- A terminal file managerzoxide- A smartercd
A complete list of configurations for each tool can be found in the Brewfile directory.
I use Ghossty as terminal emulator, which is a lightweight terminal emulator that supports tabs and has a minimalistic design. It is fast and responsive, making it ideal for development work. And as a bonus, it has a built-in terminal multiplexer.
I recently moved from the default macOS Spotlight to Raycast. While it offers an impressive range of features and a sleek user experience, many of its advanced capabilities are locked behind a Pro subscription, which I find limiting. As a result, I'm currently exploring alternative solutions.
I use VSCode - it's a simple and yet very extensible and powerful editor.
Here's a list of extensions I use daily, but I try to keep my VSCode setup as simple as possible. I tend to separate my work into different profiles, so I have a few profiles for different development contexts. Each profile has its own settings, keybindings, extensions, and snippets.
Despite my love for VSCode, it still has limitations and I like to explore new tools, so currently I am trying to move my day-to-day work to Zed, which I think, as an editor, has a bright future. I like how it can be configured and the way plugins are installed.
My Zed plugins and configuration can be found here, and the keymaps can be found here.
Because I am using a primarily external keyboard and in most of my apps I rely on either Vi/Kakoune motions, I find it painful to use the mouse as it requires moving my right hand out of the keyboard and distracts my "zen" state :3. In most dev apps you can enable such modes, but in the default macOS apps or window manager such functionality is absent. To resolve this issue I am using two daemons:
Karabiner-Elements- to remap keys and create custom keybindings- I have a custom profile that allows me to use
Caps LockasEscandCtrlasCommandkey - I also have a custom profile for
Fnkey to act asCtrlwhen pressed with other keys - I have a custom profile for
Commandkey to act asCtrlwhen pressed with other keys
- I have a custom profile that allows me to use
As my main windows manager, I am using aerospace which is light and very configurable, and doesn't require to disable system integrity protection.
It works perfectly with skhd which allows me to focus and modify the layout without distractions.
To update your dotfiles after making changes:
# From the dotfiles directory
dotdrop updateTo install your dotfiles on a new system:
dotdrop installInspiration and code was taken from many sources, including: