Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cli-stuff/dotload

๐ŸŒ  Simple tool for installing dotfiles on any machine!
https://github.com/cli-stuff/dotload

automation configuration dotfiles linux packages tools

Last synced: about 1 month ago
JSON representation

๐ŸŒ  Simple tool for installing dotfiles on any machine!

Awesome Lists containing this project

README

        







Banner




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

[**Installation**](#%EF%B8%8F-installation) ยท [**Report Bug**](https://github.com/cli-stuff/dotload/issues/new?labels=bug&template=bug_report.md) ยท [**Request Feature**](https://github.com/cli-stuff/dotload/issues/new?labels=enhancement&template=feature_request.md)

## โ„น๏ธ 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
bash <(curl -sL https://cutt.ly/dotload) @username
```

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

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

๐Ÿ—‘๏ธ **Uninstall**:

```bash
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**](https://brew.sh/) you can install this tool on **macOS** (and **Linux** too)

> โ„น๏ธ Note: If you don't have [**brew**](https://brew.sh/) installed, install it **now** with this command:

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


๐Ÿ“ฅ **Install**:

```bash
brew tap cli-stuff/dotload
brew install dotload
```

Termux

You will also receive further updates with this method

```bash
# 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](https://www.msys2.org/)) |
| :-------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| โœ… | โœ… | โœ… | โœ… |

## ๐Ÿš€ Usage

```bash
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

```bash
dotload @username branch_name
```

> [!TIP]
> You can also use `-b` or `--branch` flags:

```bash
dotload @ [--branch branch_name | -b branch_name]
dotload [--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:

```bash
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**](docs/dotload_conf.md)

## ๐Ÿค 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**](https://github.com/features/codespaces) right away

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/cli-stuff/dotload?quickstart=1)

This repository has โšก[**prebuilds**](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/about-github-codespaces-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**](CODE_OF_CONDUCT.md), and follow it in all your interactions with the project.

## ๐Ÿ“ License

This project is [**MIT**](https://opensource.org/license/MIT) licensed.

See [**LICENSE**](LICENSE)

## ๐Ÿ“จ Contact

**Telegram:** [@okineadev](https://t.me/okineadev)