Skip to content

Elegant dotfiles for the modern developer | Powered GNU stow

License

Notifications You must be signed in to change notification settings

davidarny/dotfiles

Repository files navigation

dot.files

🌌 Elegant dotfiles for the modern developer | Powered by GNU stow

🎨 A meticulously crafted development environment featuring:

  • 🚀 Blazing-fast ZSH setup with custom plugins
  • 🎯 Neovim config with LSP & treesitter
  • 🖥️ Beautiful terminal setup (Ghostty, Tmux)
  • 🎮 Git-centric workflow with LazyGit
  • 🌟 Tokyo Night theme across all tools

✨ Zero-friction setup for macOS development environment

What's Included

  • Shell Configuration
    • .zshrc - ZSH shell configuration
    • Custom ZSH configurations in .config/zsh/
  • Development Tools
    • .gitconfig - Git configuration
    • .vimrc - Vim configuration
    • nvim/ - Neovim configuration
    • .tmux.conf - Tmux configuration
  • Terminal Utilities
    • .config/ghostty/ - Ghostty terminal configuration
    • .config/starship.toml - Starship prompt configuration
    • .config/bat/ - Bat (cat alternative) configuration
    • .config/eza/ - Eza (ls alternative) configuration
    • .config/lazygit/ - LazyGit configuration
    • .config/yazi/ - Yazi file manager configuration
    • .config/fastfetch/ - System information tool configuration

Shell Customization

Aliases

File Listing

Alias Command Description
l eza -1A --group-directories-first --color=always List files
la eza -la --git --git-repos --group-directories-first --color=always --octal-permissions --time-style=long-iso Detailed list with git info
tree eza --tree --group-directories-first --color=always Tree view
ls l Alias for list
t l Short alias for list

Tools

Alias Command Description
tm tmux Open Tmux
lg lazygit Open LazyGit
yz yazi Open Yazi file manager
ff fastfetch System info
rg rg --hidden --smart-case ... Ripgrep with defaults

System

Alias Command Description
reload source ~/.zshrc Reload ZSH configuration
c clear Clear terminal screen
man batman Open man pages with bat
rf trash Move to Trash
allowapp sudo xattr -r -d com.apple.quarantine Remove quarantine
dsclean fd -H '^\\.DS_Store$' -tf -X rm Remove .DS_Store files
lnclean fd . --type l ... Remove broken symlinks

Editors

Alias Command Description
e $EDITOR Open editor
E sudo -e Open editor as root

Services

Alias Command Description
caddystart caddy start --config ~/.config/caddy/caddy.json Start Caddy
caddystop caddy stop Stop Caddy

Functions

Function Description Usage
migrate_npm_globals Migrate npm global packages to a new Node.js version migrate_npm_globals 20
zsh_refresh_init_cache Refresh cached init scripts for shell tools zsh_refresh_init_cache

Prerequisites

System Requirements

Required Dependencies

These need to be installed manually:

Installing

1. Prerequisites

Before installation, ensure you have:

  • macOS installed
  • Command Line Tools for Xcode: xcode-select --install
  • Homebrew package manager
  • GNU stow: brew install stow

2. Clone and Link Dotfiles

  1. Clone this repository:
git clone git@gitlab.com:waosdx/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
  1. Create symlinks using GNU stow:
./link.sh

This will:

  • Back up any existing dotfiles
  • Create symbolic links in your home directory
  • Set up all configurations (zsh, tmux, neovim, etc.)

3. Post-Installation

  1. Reload your shell:
source ~/.zshrc
  1. Install Zinit for ZSH plugin management:
bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"
  1. Install required dependencies:
brew install tmux fzf fd bat eza zoxide starship fnm lazygit yazi ripgrep diff-so-fancy
brew install --cask ghostty

Uninstalling

1. Remove Symlinks

Remove all symlinks created by GNU stow:

./unlink.sh

2. Clean Up Package Managers

  1. Remove Homebrew packages (optional):
# List all installed packages first
brew leaves

# Remove specific packages
brew uninstall tmux fzf fd bat eza zoxide starship fnm lazygit yazi ripgrep diff-so-fancy ...
brew uninstall --cask ghostty

3. Remove Configuration Files

Clean up remaining configuration files:

# Remove ZSH configuration
rm -rf ~/.zshrc ~/.zsh_history ~/.zinit

# Remove tool-specific configs
rm -rf ~/.config/ghostty
rm -rf ~/.config/nvim
rm -rf ~/.config/tmux
rm -rf ~/.config/yazi
rm -rf ~/.config/starship.toml
...

About

Elegant dotfiles for the modern developer | Powered GNU stow

Resources

License

Stars

Watchers

Forks