Skip to content

cli-stuff/dotload

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Banner

dotload - Simple and intuitive tool for installing dotfiles on any machine!

Installation Β· Report Bug Β· Request Feature

ℹ️ About the project


Screenshot

dotload works by cloning the specified user's GitHub dotfiles repository

This tool was created to make it as easy as possible to install dotfiles and other required packages.

πŸ€” How does it work?

This tool makes symbolic links to your dotfiles from ~/.dotload to $HOME directory

It can also make symbolic links to folders (including subfolders) whose name starts with a dot, for example .configs

Warning

Dotfiles with identical names will be inevitably overwritten with new ones from your repository!

For example, if you have a file ~/.bashrc on your computer and in the repository, it will be overwritten with a new one from the repository, before cloning them, make sure that they are yours or you have made a backup of previous configurations

βš™οΈ Installation

You can run without installation on any OS with this command:

bash <(curl -sL https://cutt.ly/dotload) @username

If you want to install it on your system, you can run the following command:

curl -sL https://cutt.ly/dotload-install | bash

πŸ—‘οΈ Uninstall:

sudo rm ${PREFIX:-/usr$([ "$(uname)" = "Darwin" ] && echo "/local")}/bin/dotload && hash -r

Note

If you want to remove this tool from Termux, you need to run the above command without sudo

Additional installation methods

Homebrew

With brew you can install this tool on macOS (and Linux too)

ℹ️ Note: If you don't have brew installed, install it now with this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

πŸ“₯ Install:

brew tap cli-stuff/dotload
brew install dotload
Termux

You will also receive further updates with this method

# Add Termux User Repository
pkg install tur-repo
pkg update && pkg install dotload

Compatibility table

Linux logo
Linux
Termux logo
Termux
macOS logomacOS logo
macOS
Windows logo
Windows (on msys shell)
βœ… βœ… βœ… βœ…

πŸš€ Usage

dotload @username
dotload @username/repo_name
dotload https://github.com/username/dotfiles.git

Where username is the GitHub username whose dotfiles you want to clone.

repo_name - Name of your dotfiles repository, if not specified - dotfiles name will be used by default

You can also use URLs of repositories such as GitLab, Codeberg, etc.

Warning

The username cannot contain emojis, spaces or other non-standard characters

Advanced Usage

dotload @username branch_name

Tip

You can also use -b or --branch flags:

dotload @<username> [--branch branch_name | -b branch_name]
dotload <repo_url> [--branch branch_name | -b branch_name]

Where branch_name is the branch of the repository you want to clone. If not specified, the default branch is used. This can be useful if you have multiple machine usage scenarios


Use the --help flag to get help:

dotload --help
# Help page...

Custom installation scripts

You can also add an installation script to your dotfiles repository to fully automate the installation and get more features

The installation file can have the following names and locations:

  • install.sh
  • install
  • bootstrap.sh
  • bootstrap
  • script/bootstrap
  • setup.sh
  • setup
  • script/setup

If none of these files are found, then any files or folders in your selected dotfiles repository starting with . are automatically symlinked to the $HOME directory.

Configuration

You can also specify a custom installation script or make it optional in dotload.conf, for this read the dotload.conf documentation

🀝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

You can start developing on GitHub Codespaces right away

Open in GitHub Codespaces

This repository has ⚑prebuilds that allow you to skip installing packages and tools.

Or use the usual method on your computer:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please make sure to update tests as appropriate.

Also, please read our Code of Conduct, and follow it in all your interactions with the project.

πŸ“ License

This project is MIT licensed.

See LICENSE

❀️ Support

If you like this project, consider supporting it by starring ⭐ it on GitHub, sharing it with your friends, or buying me a coffee β˜•