This is my personal dotfiles setup for Linux systems (primarily Linux Mint), using GNU Stow for easy symlink management and git for version control.
.bash_aliases– useful command aliases for better terminal productivity.gitconfig– Git configuration with user identity, aliases, etc.bin/– custom scripts added to~/binfor quick access- e.g.,
generate_commit_history.shfor quick Git summaries
-
Install GNU Stow
sudo apt install stow
-
Clone the repository
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles cd ~/dotfiles
-
Stow your configs
stow bash stow git stow bin
This will:
- Link
.bash_aliasesto~/.bash_aliases - Link
.gitconfigto~/.gitconfig - Link all custom scripts to
~/bin
- Link
-
Reload your terminal config
source ~/.bashrc
To keep the home directory clean, this setup now follows the XDG Base Directory Specification. Configurations are stored in ~/.config/ where possible.
The new folder structure is:
dotfiles/
├── bash/
│ └── .bash_aliases
├── git/
│ └── .config/
│ └── git/
│ └── config
├── tmux/
│ └── .config/
│ └── tmux/
│ └── tmux.conf
└── bin/
└── bin/
└── generate_commit_history.sh
└── tmpenv
A utility to quickly create isolated development environments using Docker.
Usage:
tmpenv <environment-name>This will:
- Create a new Docker container with a specified name.
- Expose a unique SSH port for the environment.
- Install basic development tools (Git, curl, vim, etc.).
- Set a default password (
dev) for therootuser.
Example:
tmpenv my-projectManaging Environments:
- SSH Access:
ssh -p <PORT> root@localhost - Stop:
docker stop <environment-name> - Start:
docker start <environment-name> - Clean Up:
docker rm -f <environment-name> && docker volume rm <environment-name>-data
To add a new application's configuration (e.g., for nvim):
- Create the package directory:
mkdir nvim - Create the target directory structure inside it:
mkdir -p nvim/.config/nvim - Place your configuration file at the target path:
mv ~/my-nvim-config nvim/.config/nvim/init.vim - Stow the new package:
stow nvim
To remove the symlinks for a package, use the -D flag:
stow -D git
stow -D tmuxIt makes it super easy to:
- Apply or remove individual config groups (like bash, git, etc.)
- Keep your home directory clean
- Avoid manual copying of dotfiles
MIT — feel free to use, fork, or modify!
Maintained by SYED SADIQ ALI Follow on LinkedIn or GitHub