This software is just a hobby project. I created it mainly for my own use because I wanted to be able to organize my dotfiles comfortably exactly the way I wish to. Also I like Nim. I did not reinvent the wheel in any way. Use this piece of software at your own risk.
If you do not read carefully before you type, you may mess up your system irreversibly.
This software does create symlinks on your machine and even, if wanted, delete files. Thus, think before you type. Even better: study the source code.
I am not responsible for any erased, deleted or not recoverable file in any way.
- Gather all your configuration files in a single directory
- It is recommended to make that specific directory version controlled (e.g.
Git
)
- It is recommended to make that specific directory version controlled (e.g.
- Let
CTD
automatically create links at the needed location - If you set up a new system and already have certain configuration files,
or other mandatory files, you may just let
CTD
create its directories, copy those files there and letCTD
create links at their destined location. All you need to transfer from one system to another, assuming your dotfiles are in a repository, is the so calledStoragefile
, which indicates, where the symlinks should be created for each file. Since theStoragefile
is just plain text, you can even write it yourself! So just import your repo intoDotfileLocation
and get started!
- Install Nim (I recommend choosenim)
- Clone this repository
- Run
nimble rr
in theconnect_the_dotfiles/
directory - This will create and run a binary in the
bin/
directory- You can also run
nimble r
to create the binary without immediately running it
- You can also run
- Start the binary or pass parameters to it (
--help
for usage guide)
Relevant files & directories:
~/.config/ctd/
~/.config/ctd/data.txt
~/.config/ctd/dotfiles/
(You want this to be a Git Repo)~/.config/ctd/backups/
Since CTD
is using symlinks and mechanics that do not really exist on
Windows in this way it is aimed for Linux-based operating systems (I do not know
enough about macOS to say anything about compatibility at this point).
It was explicitly tested on my home machine which runs Manjaro on Kernel version 5.4.169 on a Lenovo ThinkPad L480 right now.
- Let user choose all relevant directory locations (ProgDir, DotfileDir, BackupDir, Storagefile)
- Let user cleanup DotfilesLocation using Storagefile
- Modularize the project away from a single monolith file