Skip to content

zaknesler/dotfiles

Repository files navigation

This is the repository for all of my dotfiles for Linux/Mac/Windows. It uses GNU Stow to organize the configuration files, and follows the XDG Base Directory specification to keep my home directory (~/) as clean as possible.

Pre-requisites

Installation

  1. Install Nushell, GNU Stow, and Neovim

    Do not start Nushell until the directories are symlinked. Nushell will not let you symlink its config directory if it's already running. The first few steps should use the default shell (bash, zsh, etc.).

  2. (Optional) Mac OS only

    # Install Xcode tools
    xcode-select --install
    
    # Install Homebrew
    bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    # (Optional) Install formulae from ./Brewfile
    brew bundle
  3. Clone repository to ~/.config/dotfiles and cd into it

    git clone --recurse-submodules --depth 1 https://github.com/zaknesler/dotfiles.git ~/.config/dotfiles
    
    cd ~/.config/dotfiles
  4. Symlink directories using Stow

    ls -d */ | xargs stow -t $HOME
  5. Set your default shell to Nushell (Linux/Mac OS)

    # Ensure Nushell exists as an option
    cat /etc/shells
    
    # Set user shell
    chsh -s $(which nu)
  6. Re-login or run nu to use new configuration

  7. Install Rust via rustup

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  8. Install nu_plugin_gstat (enables git repo data)

    cargo install nu_plugin_gstat
    let gstat = (which nu_plugin_gstat | get path | first)
    nu -c $'register '($gstat)'; version'