Welcome

Welcome to the KelpDot documentation!

Installation

From binaries

You can find Binaries in the GitHub releases page, you have just to copy them into /usr/bin or /usr/local/bin!

From source (cargo)

Just run cargo install kelpdot to install the latest stable release with cargo

From Package Manager

Debian GNU/Linux

Kelpdot is avaible in repo https://apt.woomy.be installation guide

Arch GNU/Linux

KelpDot is avaible as kelpdot-bin on the AUR

Getting started with KelpDot

Versioning

Its highly recommended to use a versioning tool like git in order to version your dotfiles. For git you just need to type git init in your "Dotfiles" directory.

Initialisating

After installing, you just need kelpdot init in your Dotfiles directory. The autoconfiguration will be applied. And it's OK! You can use kelpdot save to backup your dotfiles and all is done!

Configuration guide

Homefiles

The "Homefiles" key contains an array with the informations about the files located at /home/$USER/

Structure

homefiles:
    - name: "I3 configuration" # String: The name of the file (optional)
      path: .config/i3/config # String: The path to the file / directory relative to /home/$USER
      backuponly: false # Use true if you want the file to not be reinstalled with `kelpdot install` (optional) (default: false)
      onlyon: gentoo # Specify if the file can only be installed in one distro (optional) (default: None)

Rootfiles

The "Rootfiles" key contains an array with the informations about the files with path relative to /

Structure

rootfiles:
    - name: SysCtl configuration # String: The name of the file (optional)
      path: /etc/sysctl.conf # String: The path to the file / directory
      backuponly: true # Use true if you want the file to not be reinstalled with `kelpdot install` (optional) (default: false)
      onlyon: gentoo # Specify if the file can only be installed in one distro (optional) (default: None)

Postsave

The scripts to run AFTER saving the dotfiles

postsave:
    - path: "scripts/usefullscript.sh" # The path to the script, relative to the kelp.yaml file
      elevated: true # Use true to run the script with eleveted privileges (optional) (default: false)

Prerun

The scripts to run BEFORE installing the dotfiles

postsave:
    - path: "scripts/usefullscript.sh" # The path to the script, relative to the kelp.yaml file
      elevated: true # Use true to run the script with eleveted privileges (optional) (default: false)

Postrun

The scripts to run AFTER installing the dotfiles

postsave:
    - path: "scripts/usefullscript.sh" # The path to the script, relative to the kelp.yaml file
      elevated: true # Use true to run the script with eleveted privileges (optional) (default: false)

OS Description files

OS description files are used to detected host os for options such as onlyon.

Where are these files located?

Bundled OSes are included (by include_str!) when kelpdot compiles. This YAML list can be found in /src/config/oses.yaml.

You can add custom OSes in /etc/kelpdot/os.yaml.

Describing an OS

# /etc/kelpdot/os.yaml
- name: "superos" # Name for `onlyon`
  file: "/" # if this file exist, we are **sure** the OS is O.K 
  priority: 0 # If multiple OSes are detected, the higher priority is more important. Use higher for childer distros
  prettyname: "My super Gentoo-Based distro" # Pretty name of the OS (for printing)
  submatches: [ "gentoo" ] # For exemple, mother distros