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 (Kitty, 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
    • kitty/ - Kitty terminal configuration
    • starship.toml - Starship prompt configuration
    • bat/ - Bat (cat alternative) configuration
    • eza/ - Eza (ls alternative) configuration
    • lazygit/ - LazyGit configuration
    • yazi/ - Yazi file manager configuration
    • fastfetch/ - System information tool configuration

Shell Customization

Aliases

Terminal Utilities

Alias Command Description
c clear Clear terminal screen
t eza --color=always --long --git --icons=always --no-time --group-directories-first List files with git info and icons
man batman Open man pages with bat

Navigation

Alias Command Description
dev cd ~/Developer Navigate to Developer directory
.. cd .. Navigate to parent directory

Terminal Multiplexers

Alias Command Description
tm tmux Open Tmux
tms tmux-sessionizer Open Tmux session picker

Development Tools

Alias Command Description
lg lazygit Open LazyGit
yz yazi Open Yazi file manager

System Configuration

Alias Command Description
zs source ~/.zshrc Reload ZSH configuration

Functions

Function Description Usage
nmg Migrate npm global packages to new Node.js version nmg version

Prerequisites

System Requirements

Required Dependencies

These need to be installed manually:

  • Zsh - Shell
  • Zinit - Zsh plugin manager
  • Kitty - Terminal emulator
  • Tmux - Terminal multiplexer
  • fzf - Fuzzy finder
  • fd - File finder
  • bat - Cat clone with syntax highlighting
  • eza - Modern ls replacement
  • zoxide - Smarter cd command
  • starship - Cross-shell prompt
  • fnm - Fast Node.js version manager
  • gh - GitHub CLI
  • git - Version control
  • lazygit - Git TUI
  • yazi - Terminal file manager
  • 1Password CLI - Password manager CLI
  • Neovim - Text editor
  • ripgrep - Fast text search

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 https://github.com/your-username/dot.files.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 kitty tmux fzf fd bat eza zoxide starship fnm gh lazygit yazi

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 kitty tmux fzf fd bat eza zoxide starship fnm gh lazygit yazi ...

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/kitty
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