+
Skip to content

My personal Linux dotfiles for Bash, Git, and CLI tools — managed with GNU Stow and backed up using Git.

Notifications You must be signed in to change notification settings

SadiqOnGithub/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛠️ Dotfiles – Bash, Git, and CLI Utilities

This is my personal dotfiles setup for Linux systems (primarily Linux Mint), using GNU Stow for easy symlink management and git for version control.


📁 Included

  • .bash_aliases – useful command aliases for better terminal productivity
  • .gitconfig – Git configuration with user identity, aliases, etc.
  • bin/ – custom scripts added to ~/bin for quick access
  • e.g., generate_commit_history.sh for quick Git summaries

🔧 How to Use (on a new machine)

  1. Install GNU Stow

    sudo apt install stow
  2. Clone the repository

    git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
    cd ~/dotfiles
  3. Stow your configs

    stow bash
    stow git
    stow bin

    This will:

    • Link .bash_aliases to ~/.bash_aliases
    • Link .gitconfig to ~/.gitconfig
    • Link all custom scripts to ~/bin
  4. Reload your terminal config

    source ~/.bashrc

XDG Base Directory Structure

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

tmpenv – Temporary Development Environment

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 the root user.

Example:

tmpenv my-project

Managing 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

Adding New Dotfiles

To add a new application's configuration (e.g., for nvim):

  1. Create the package directory: mkdir nvim
  2. Create the target directory structure inside it: mkdir -p nvim/.config/nvim
  3. Place your configuration file at the target path: mv ~/my-nvim-config nvim/.config/nvim/init.vim
  4. Stow the new package: stow nvim

Unlinking (Removing) Packages

To remove the symlinks for a package, use the -D flag:

stow -D git
stow -D tmux

✅ Why use GNU Stow?

It 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

🌐 License

MIT — feel free to use, fork, or modify!


🔗 Author

Maintained by SYED SADIQ ALI Follow on LinkedIn or GitHub

About

My personal Linux dotfiles for Bash, Git, and CLI tools — managed with GNU Stow and backed up using Git.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载