Skip to content

mgierok/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 dotfiles

My personal dotfiles, managed using GNU Stow.
Each directory within this repository represents a configuration “package” and is symlinked into $HOME or $XDG_CONFIG_HOME as appropriate.


📦 Requirements

  • Git
  • GNU Stow
  • A Unix-like operating system (Linux or macOS)

Installing Stow

macOS (Homebrew)

brew install stow

Debian/Ubuntu

sudo apt install stow

Arch Linux

sudo pacman -S stow

🚀 Installing the dotfiles

Clone the repository, ideally into $HOME/dotfiles:

git clone git@github.com:mgierok/dotfiles.git ~/dotfiles
cd ~/dotfiles

Then activate whichever configuration packages you wish to use, for example:

stow -vt ~ nvim

or:

stow -vt ~ git

This will create symbolic links such as:

~/.config/nvim  → ~/dotfiles/nvim/.config/nvim
~/.gitconfig    → ~/dotfiles/git/.gitconfig

📂 Repository structure

dotfiles/
  nvim/
    .config/nvim/...
  git/
    .gitconfig

Each directory corresponds to a package that may be activated individually:

stow -vt ~ nvim git

🔄 Updating configuration

Edit files as you normally would within ~/.config/...
because they are symbolic links, changes are written directly into ~/dotfiles.


🧹 Removing a package

To remove a configuration package and its links:

cd ~/dotfiles
stow -Dvt ~ nvim

✨ Tips

  • To add a new package, for example zsh/:

    mkdir -p ~/dotfiles/zsh
    # place your .zshrc inside
    stow -vt ~ zsh
  • When setting up a new machine: clone the repository → install stowstow <package>
    and your configuration is restored within seconds.


Some Neovim plugins require external command-line tools to function correctly.
Mason installs language servers, formatters and linters, but it does not install the language runtimes they depend upon. The tools below are recommended so that all configured features work reliably.

Required

Dependency Purpose Notes
git plugin manager, version control required by lazy.nvim and Neovim in general
tree-sitter compiles syntax parsers enables :TSInstall and treesitter highlighting
ripgrep (rg) project-wide text search used by fuzzy search pickers (e.g. Snacks)
node runtime for several LSP servers required by pyright, tsserver and others
python3 runtime for Python formatting and tooling required by black and other Python tools
go runtime for Go tooling required for gopls to run properly
fd quicker file search for tools that support it
a Nerd Font icon support in Neovim UI (devicons)

📜 Licence

Feel free to use and adapt. No warranty provided.

About

My dotfiles for linux & macos

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors