Skip to content

To make life easier when setting up a new computer

License

Notifications You must be signed in to change notification settings

wilfriedago/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

469 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 Wilfried's Dotfiles

This repository contains my personal dotfiles and system configuration for macOS. It uses dotdrop.

Overview

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

🚀 Setup

Prerequisites

  • Git

Installation

  1. Clone the repository:
git clone https://github.com/wilfriedago/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
  1. Install dependencies and set up the environment
  1. Deploy dotfiles
dotdrop install -c dotdrop.config.yaml -p default --force
dotdrop install -c dotdrop.config.yaml -p macos --force

Configuration Details

Shell

For 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 integration
  • btop - A terminal dashboard
  • 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
  • lazygit - A simple terminal UI for git commands
  • lazydocker - A simple terminal UI for Docker
  • yazi - A terminal file manager
  • zoxide - A smarter cd

A complete list of configurations for each tool can be found in the Brewfile directory.

Terminal

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.

Application Launcher

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.

Editors

VSCode

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.

Zed

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.

Hotkey Daemons

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 Lock as Esc and Ctrl as Command key
    • I also have a custom profile for Fn key to act as Ctrl when pressed with other keys
    • I have a custom profile for Command key to act as Ctrl when pressed with other keys

Window Management

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.

Update and Sync

To update your dotfiles after making changes:

# From the dotfiles directory
dotdrop update

To install your dotfiles on a new system:

dotdrop install

Acknowledgements

Inspiration and code was taken from many sources, including:

About

To make life easier when setting up a new computer

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 3

  •  
  •  
  •