#dotfiles-manager #dotfiles #file-management

app dotium

Dot-file management for multiple machines or small teams

11 releases

0.1.12 May 25, 2024
0.1.10 Jan 22, 2023
0.1.8 Oct 15, 2022
0.1.6 May 14, 2022

#57 in Configuration

MIT license

69KB
2K SLoC

dotium

Crates.io Build

Dot-file management for multiple machines or small teams.

Prerequisites

  • Some shared (private) repository folder like:
    • Private github/gitlab/bitbucket repository (preferred to have better change control)
    • Any sort of file sync: dropbox, owncloud, google-drive, one-drive, ...
  • Rust (optional, but recommended)

Installation

With rust available:

cargo install dotium

Alternatively there is a statically compiled binary on the Releases page. Ensure that the provided checksum checks out before using it:

gunzip dotium.gz
sha256sum -c dotium.sha256sum
chmod 755 dotium

Initialization

To create a basic configuration in ~/.config/dotium with an age-compatible private key to protect sensitive information.

dotium init

Shell completions

Fish:

dotium completions fish >.config/fish/completions/dotium.fish

Basic concepts

  • Any number of dot-files can be created/updated from a dotium-repository
  • A dotium-repository is just a folder containing that is supposed to be shared between machines and/or team mates
  • The contents in the dotium-repository can be either plain text or age-compatible encrypted
    • Therefore a dotium-repository has the concept of a "recipient" (aka user/machine with the necessary keys to decrypt the content)
    • Initially the only recipient is the person creating the repository.
    • A new user/machine has to create a recipient-request which then has to be approved by anyone who is already a recipient (i.e. has fully access to the repository)

Usage

Initialize a brand new repository

cd <repository folder>
dotium init

or

dotium --repository <repository folder> init-repo

... tbd ...

Dependencies

~26–39MB
~584K SLoC