Dotty is a modern dotfile manager written in Rust that helps you manage your configuration files and packages on Arch Linux systems. It supports installing dotfiles from GitHub repositories or local folders, with automatic package installation and backup management.
- 📦 Install dotfiles from GitHub repositories or local folders
- 🔄 Automatic package installation (both official repos and AUR)
- 🔒 Automatic backup of existing configuration files
- ⚙️ YAML-based configuration
- 🚀 Fast and reliable (written in Rust)
- 🔧 Easy to use CLI interface
you can use cargo to install the tool:
cargo install --git https://github.com/neox1de/dotty
- clone the repository:
git clone https://github.com/neox1de/dotty.git
- build the project:
cargo build --release
- run the program:
./target/release/dotty
Dotty provides a command-line interface to manage your dotfiles. Here are some common commands:
-
Clone and install dotfiles from a GitHub repository:
dotty -r username/repo
-
Install dotfiles from a local folder:
dotty -f /path/to/dotfiles
-
Clean backup files:
dotty -c
Dotty uses a dotty.yaml
file to define the configuration for your dotfiles and packages. This file should be located in the root of your dotfiles repository or folder. Here's an example of what it might look like:
packages:
- name: neovim
is_aur: false
files:
- source: config/nvim # source path is relative to the repository root
destination: ~/.config/nvim
settings:
skip_existing: false
For a more detailed example configuration, checkout the dotty.yaml file.
Contributions are welcome! Please fork the repository and submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.
This project was created as a learning exercise to improve my Rust programming skills.