A highly extensible and configurable automated dotfiles manager that saves your time!
MIT License
A highly extensible and configurable dotfiles manager
If you relate to the following questions, turboot is for you!
Well, as the name suggests, turboot is and one-click highly extensible dot-files manager that allows you set-up your dotfiles for any linux distro! (Arch/Debian/Fedora)
Place turboot in your dotfiles and you are good to go and rock!
git clone https://github.com/DarthBenro008/turboot
.
+-- .alacritty.yml
+-- nvim
| +-- init.vim
+-- .p10.zsh
+-- .zshrc
+-- .turboot.sh
vim tuboot.sh
or nano tuboot.sh
DEFAULT_MODS
arraychmod +x turboot.sh && ./turboo.sh -g <YOUR PACKAGE MANAGER>
<Features PACKAGE MANAGER>.sh
would have been generated./turboot.sh
The way turboot works is concept of modules. Each package manager has its own file. For eg, apt has its own file named apt.sh
, dnf
has its own file named dnf.sh
and these file contain Installtion instructions for the module you have defined in turboot.
You can tinker with the configs to your liking:
# Global Mods, this is where you define modules for turboot to detect
MODS=("zsh" "tmux" "oh_my_zsh" "node" "yarn" "nvim" "vim_plug" "python" "fzf")
# Default mods are those mods that get installed by default when turboot runs
DEFAULT_MODS=("zsh" "tmux" "oh_my_zsh" "node" "yarn" "nvim" "vim_plug")
# Location to save your config file
CONF_FILE="$HOME/.turbootrc"
As turboot works with modularity, if you want a module add it in the MODS
section and then run ./turboot -g <YOUR PACKAGE MANAGER SHORTHAND>
, your package manager shorthand could be apt, dnf, pacman, yay or literally anything.
Turboot will generate a file <YOUR PACKAGE MANAGE SHORTHAND>.sh
, and you can populate the modules installation script.
This is how it looks for apt.sh
for the above given modules.
# Package Manager template for apt
install_zsh() {
sudo apt-get install zsh
}
install_tmux() {
sudo apt install tmux
}
install_oh_my_zsh() {
sh -c "curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh"
}
install_p10k() {
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
}
install_node() {
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
}
install_yarn() {
sudo npm install --global yarn
}
install_nvim() {
sudo apt install neovim
}
install_vim_plug() {
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
}
install_fzf() {
sudo apt-get install fzf
}
Then you can create a new function name install_<module name>(){}
and write the function for your module.
NOTE: the module name should not contain spaces and should follow snake case system.
.turbootrc
file. You can change the OS and package manager settings either in the configs or turboot will ask if the configs are correct, you can simply press "n" and turboot will ask you for the right details.Modify the following to add your own symlink to your dotfiles!
create_symlinks() {
# Creating Symlinks
ln -sf $CWD/.alacritty.yml ~/.alacritty.yml
ln -sf $CWD/nvim ~/.config/nvim
ln -sf $CWD/.zshrc ~/.zshrc
ln -sf $CWD/.p10k.zsh ~/.p10k
e_success "Created symlinks to configs"
}
Give a if this tool made your life easier!
Spread the word to your geek fellows to save thier time!
Copyright 2021 Hemanth Krishna
Licensed under MIT License : https://opensource.org/licenses/MIT