A comfortable HUB for your dotfiles :)
Very early alpha, be aware!
At your $HOME
, .dothub
is going to be created.
Here you can create a directory (DotFolder) named, for example polybar
.
Inside polybar
, you have to create a .dothub
file for configuration (in TOML
), the only required option is destination
which dictates where is the location of your dot file folder.
All the options are:
option | type | description |
---|---|---|
start | String | Command to start the program/what you are configuring |
kill | String | Command to kill that program |
reload | String | Command to reaload the program. By default uses kill + start commands |
destination | String | REQUIRED Destination of the dotfile folder |
reload_on_set | Bool | If the program should restart after setting a new Dot. Default is true |
find_and_replace | Bool | Finds the same named files/directories inside destination and replaces only those. Useful for changing only some files and directories inside a bigger folder, eg. ~/home or ~/.config . Default is false |
In your DotFolder, you can create more folders (Dots) which will be symlinked to your destination
on dothub set
.
You can have a .dothub
file inside a Dot, which will be prioritized over your DotFolder's configuration.
Avaiable commands:
command | description |
---|---|
set | Applies a dot. |
watch | Watches a Dot and reloads on any change. (basically brings "hot-reload" to any program) |
list | Lists all Dots |
start | Runs the Dots 'start' command. |
kill | Runs the Dots 'kill' command. |
reload | Runs the Dots 'reload' command. If 'reload' isn't specified, it will try to use 'kill' and 'start' as an alternative. |
run | Runs a program forked, with a different PID. (doesn't halt the terminal, you can use your WM/Compositor solutions) |
edit | Launches $EDITOR with specified Dot. |
profile | *with profile commands, list below |
Profile commands:
command | description |
---|---|
set | Applies a profile |
list | Lists all profiles |
With the generation of .dothub
in your $HOME
, a folder called profiles
will also be created, this isn't counted as a DotFolder.
In your profiles
, you can define a profile as a file in .toml
with two optional "fields".
option | type | description |
---|---|---|
start | array | Array of commands that should be executed on dothub profile set |
dots | map | A hashmap of DotFolder = "Dot" , see example |
In your .dothub
:
profiles/
ocean.toml
red.toml
waybar/
.dothub
nord/
one_dark/
wofi/
.dothub
general/
minimalist/
In profiles/ocean.toml
:
start = [
"notify-send 'Profile set!'",
"notify-send 'You are now using profile ~ocean~ :)'"
]
[dots]
waybar = "nord"
wofi = "minimalist"
In waybar/.dothub
:
start = 'dothub run waybar'
kill = 'pkill waybar'
destination = '~/.config/waybar'
To apply a DotProfile:
dothub profile set ocean
To apply a Dot:
dothub set waybar/neon