Skip to content

itsmeakashgoyal/dotfiles

Modern Development Environment Dotfiles

CI License macOS Linux Shell Neovim Last Commit

     █████           █████       ██████   ███  ████
    ░░███           ░░███       ███░░███ ░░░  ░░███
  ███████   ██████  ███████    ░███ ░░░  ████  ░███   ██████   █████
 ███░░███  ███░░███░░░███░    ███████   ░░███  ░███  ███░░███ ███░░
░███ ░███ ░███ ░███  ░███    ░░░███░     ░███  ░███ ░███████ ░░█████
░███ ░███ ░███ ░███  ░███ ███  ░███      ░███  ░███ ░███░░░   ░░░░███
░░████████░░██████   ░░█████   █████     █████ █████░░██████  ██████
 ░░░░░░░░  ░░░░░░     ░░░░░   ░░░░░     ░░░░░ ░░░░░  ░░░░░░  ░░░░░░

A comprehensive, automated dotfiles setup for macOS and Linux, featuring Neovim, Zsh, Tmux, Git, and modern CLI tools -- all managed with GNU Stow.

Warning: These dotfiles are personalized and will overwrite existing configurations. Fork the repo and review the scripts before running on your machine.


What's Included

  • Zsh -- Modular config via conf.d/, Zinit plugin manager, Powerlevel10k prompt, fzf integration
  • Neovim -- Lazy.nvim, LSP, Treesitter, Telescope, autocompletions
  • Git -- 40+ aliases, delta diff viewer, XDG-compliant config
  • Tmux -- TPM plugin manager, vim-aware pane switching, session persistence
  • Oh My Posh -- Custom prompt theme
  • 100+ CLI tools -- via Homebrew Brewfile (eza, bat, ripgrep, fd, zoxide, and more)

Quick Start

One-liner Bootstrap (fresh machines)

bash -c "$(curl -fsSL https://raw.githubusercontent.com/itsmeakashgoyal/dotfiles/master/bootstrap.sh)"

Standard Install

git clone https://github.com/itsmeakashgoyal/dotfiles.git ~/dotfiles
cd ~/dotfiles
make install
exec zsh

For prerequisites, platform-specific notes, and what the installer does, see Installation Guide.


How It Works

Every top-level directory (git/, zsh/, nvim/, tmux/) is a Stow package. Each package mirrors the target path relative to $HOME:

dotfiles/nvim/.config/nvim/init.lua
                │
    stow nvim   │   creates symlink
                ▼
~/.config/nvim  →  ~/dotfiles/nvim/.config/nvim

Running stow <package> from the repo root creates the correct symlinks automatically. Edits in the repo take effect immediately -- no re-linking needed.


Repository Structure

dotfiles/
├── git/                       → ~/.config/git/          Git config & aliases
├── zsh/                       → ~/.config/zsh/          Zsh shell configuration
├── nvim/                      → ~/.config/nvim/         Neovim editor setup
├── tmux/                      → ~/.config/tmux/         Tmux multiplexer
├── packages/                  Brewfile & install script
├── scripts/                   Setup, verification, utilities
├── settings/                  App preferences (iTerm, Sublime)
├── install.sh                 Main installer
├── bootstrap.sh               One-liner bootstrap for fresh machines
└── Makefile                   Stow management & diagnostics

Documentation

Document Description
Installation Prerequisites, platform notes, what the installer does
Usage Makefile commands, updating, adding packages, diagnostics
Customization Personalizing Git, Zsh, Neovim, Tmux configs
Troubleshooting Common issues, debug workflow, uninstalling
Architecture Deep dive: Stow internals, Zsh flow, scripts, CI, XDG
Contributing How to contribute, code style, PR process
Security Secrets management and security practices

Resources


License

BSD 2-Clause License. See LICENSE for details.


Akash Goyal -- @itsmeakashgoyal

About

This is for macOS/linux development environment

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors