Includes dotfiles to my linux setup. I use Linux across multiple devices thus each application (and even device) has it's own folder with config, so I can mix and match config on device rather than installing the whole repo.
Most of the packages are installed via the package manager, some are required to follow an online guide. This document doesn't tell you how to install the packages, it just hints what should be in the setup, and links to the appropriate install page if needed.
Desktop dotfiles are stored separately to showcase just the desktop, however the desktop experience relies on these dot files.
- Editor: Lazy Vim is cool neovim bassed editor with extra features built in (Installing).
- Multiplexer: tmux is a terminal multiplexer (Install from built in package manager).
- Shell: zsh + starship shell with some smart features and theming (Install zsh, change the shell using
chshand install starship).
- Git (package manager)
- Neovim v0.11.5+ (package manager)
- Zoxide
- Eza (package manager)
- Lazygit
- Yazi (Make sure to run
ya pkg installafter install and config install)
- Pyhton & pip (Required)
- Node & NPM via nvm (Required)
- Nim (optional)
- Rust & Cargo (optional)
- Go (optional)
- nala (recommended on debian)
- Glow (recommended) - tui markdown reader
- ani-cli or jerry (optional)
- ncdu (package manager) (recommended) - a tui file size viewer
- ranger (package manager) (recommended) - a tui file manager
- goneovim - A GUI for neovim.
- fastfetch - a fetch tool (Desktop fastfetch config stored in
desktop-dot)
Make sure git is installed, then clone this repo.
Install GNU Stow.
# Debian/ Ubuntu/ Termux
apt install stow -y
# Fedora
dnf install stow -yTo install see the folders in the root of the repo and run stow --adopt <application>,
passing the correct folder name into the <application> to install to the $HOME folder.
The base folder has basic/ old config like compiler things.
e.g.:
# Adopt Neovim
stow --adopt nvim
# Adopt tmux
stow --adopt tmux
# Adopt bashrc and zshrc
stow --adopt bash
stow --adpot zshzsh relies on starship, so when installing zsh config files, ensure to install starship config files.
Also, the reason why bashrc exists, while a zshrc also exists, is because zsh configures the front end, while bash manages the back end like aliases and environment variable setting.
Each bash configuration is separate for each device, thus to reduce redundancy,
shared config is stored in bash-shared/.bashrc.shared.sh.
Also, ensure to install the corresponding main bash setup.
- Termux
- desktop
- server