This repository contains the dotfiles for my preferred setup split into several GNU Stow packages for individual (de-)activation. GNU Stow is used to manage the symlinks from this repository into the target's filesystem.
Note
Use the package manager appropriate for your system.
Ensure you have the following installed on your system: git
, stow
and zsh
.
$ apt install git stow zsh
Set zsh as your shell:
$ chsh -s $(which zsh)
For WSL there are some additional requirements, see WSL.
First, check out the dotfiles repo in your $HOME
directory using git:
$ cd $HOME
$ git clone git@github.com/Naralux/dotfiles.git
$ cd dotfiles
Then use GNU Stow to create symlinks for the packages you wish to have configured, e.g. Zsh and Alacritty:
$ stow -S zsh alacritty
Ubuntu's WSL distro has some additional requirements, since the WSL version of the distro does not contain all the packages a full-fat Ubuntu distro does. Make sure you also have jq
and gcc
installed.
When using Ubuntu on WSL I found that stowing caused the entire .config
folder to be symlinked instead of just the files. This is because out-of-the-box WSL Ubuntu does not have a $XDG_CONFIG_HOME
directory. Programs that add files/folders to the .config
directory end up modifying/adding files in the repository that should not be part of the repository.
In order to stow files individually, without symlinking an entire directory, use the --no-folding
option:
$ stow --no-folding -S zsh
Outlined below are descriptions of what each Stow package aim to bootstrap.
The zsh/.zshrc
file sets up the following:
- Zinit package manager, including some packages and snippets I consider to be part of my baseline:
- Completion styling
- Aliasses
- Keybinds
- Miscellanious Options
File zsh/.config/oh-my-posh/zen.toml
describes the theme to be used by Oh-my-posh.
Alacritty must first be installed on the system.
File alacritty/.config/alacritty/alacritty.toml
describes the terminal styling used for Alacritty.
NeoVim must be installed. DIY for now.
Folder nvchad/.config/nvim
sets up NeoVim with the NvChad template.
Tmux must be installed. DIY for now. TPM is installed automatically in ~/.tmux/plugins/tpm
.
Folder tmux/.config/tmux/tmux.conf
sets up tmux with some plugins and rebinds some keys to make usage more akin to vim.
$ stow -S tmux
Start a tmux
session and press C-Space + I
to install TPM plugins.
- Install papis:
$ python -m pip install --user papis
- NeoVim must be installed.
- Papis must be installed.
- Install requirements for papis.nvim:
$ sudo dnf install yq sqlite sqlite-devel luarocks
- Stow the
papis.nvim
package.
The GNU Stow manual.
Article on using GNU Stow for managing dotfiles.