๐ Modular and easy to customize dotfiles framework
โก๏ธ Simple and fast dotfiles framework โก๏ธ
The path to increasing your productivity on macOS, Linux and WSLdotly is a dotfiles framework built on top of zim, one of the fastest zsh existing frameworks. It creates an opinionated dotfiles structure to handle all your configs and scripts.
๐ Installation
Using wget:
bash <(wget -qO- https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)
Or using curl:
bash <(curl -s https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)
๐ณ Try it in Docker
You can safely install additional software and make any changes to the file system. Once you exit zsh the image is deleted.
Using Alpine:
docker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -w /root -it --rm alpine sh -uec '
apk add curl sudo bash zsh git g++ python3
bash -c "$(curl -fsSL https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)"
zsh'
Or using Ubuntu:
docker run -e TERM -e COLORTERM -w /root -it --rm ubuntu sh -uec '
apt-get update
apt-get install -y curl build-essential sudo
su -c bash -c "$(curl -fsSL https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)"
su -c zsh'
Restore your Dotfiles manually
- Install git
- Clone your dotfiles repository
git clone [your repository of dotfiles] $HOME/.dotfiles - Go to your dotfiles folder
cd $HOME/.dotfiles - Install git submodules
git submodule update --init --recursive modules/dotly - Install your dotfiles
DOTFILES_PATH="$HOME/.dotfiles" DOTLY_PATH="$DOTFILES_PATH/modules/dotly" "$DOTLY_PATH/bin/dot" self install - Restart your terminal
- Import your packages
dot package import
Restore your Dotfiles with script
Using wget
bash <(wget -qO- https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/restorer)
Using curl
bash <(curl -s https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/restorer)
๐ You need to know your GitHub username, repository and install ssh key if your repository is private.
It also supports other git repos, but you need to know your git repository url.
๐ป Usage
๐ถ First steps
Once dotly is installed, the next step is to commit and push your dotfiles. Create a new repository in your GitHub
named dotfiles and then copy the url. Then go to your dotfiles (cd "$DOTFILES_PATH") and execute:
git remote add origin YOUR_DOTFILES_REPO_URL &&
git add -A &&
git commit -m "Initial commit" &&
git push origin main
โ ๏ธ It's recommended to commit every time you add/modify a config or script.
๐ The dot command
dot is the core command of dotly. If you execute it, you'll see all your scripts.
{โธ} ~ dot -h
Usage:
dot
dot <context>
dot <context> <script> [<args>...]
dot -h | --help
๐ด Understanding your dotfiles folder structure
โโโ ๐ bin # External binaries/symlinks. This folder has preference in your $PATH
โโโ ๐ doc # Documentation of your dotfiles
โโโ ๐ editors # Settings of your editors (vscode, IDEA, โฆ)
โโโ ๐ git # git config
โโโ ๐ langs # Config for programming languages/libraries
โโโ ๐ os # Specific config of your Operative System or apps
โโโ ๐ restoration_scripts # This will be execute when you restore your dotfiles in another computer/installation
โโโ ๐ scripts # Your custom scripts
โโโ ๐ shell # Bash/Zsh/Fish?โฆ configuration files
โโโ ๐ symlinks # The config of your symlinks
โ๏ธ Versioning configs
dotly allows you to version your apps' config files. Once you've found the config to version you should:
- Copy your config file inside your dotfiles so this will be the source of truth.
E.g.
cp ~/Library/Application Support/Code/User/settings.json $DOTFILES_PATH/editors/code/settings.json - Symlink this file. To do this you should edit your
$DOTFILES_PATH/symlinks/conf.YOUR-OS.yamland add it. E.g.~/Library/Application Support/Code/User/settings.json: editors/code/settings.json
๐จ Customization
dotly includes an opinionated, minimal, very fast and powerful theme by default. You can configure it using the
following parameters in your shell/exports.sh:
CODELY_THEME_MINIMAL=false|true # If true the theme will only show the prompt status
CODELY_THEME_MODE="dark"|"light" # Use dark if you use dark colors, light if light
CODELY_THEME_PROMPT_IN_NEW_LINE=false|true # If true the prompt will be in a newline
CODELY_THEME_PWD_MODE="short"|"full"|"home_relative" # short will show the first letter of each directory, full the full path and home_relative the full path relative to the $HOME dir
CODELY_THEME_STATUS_ICON_KO="โช" # The icon to show if the previous command failed. Useful if you're color blind
๐พ Default scripts
โโโ ๐ dotfiles
โ โโโ create # Creates the dotfiles scructure
โ โโโ import # Import an existing dotfiles
โโโ ๐ git
โ โโโ amend # Amend a commit
โ โโโ apply-gitignore # Exlude all commited files that are inside the project .gitignore
โ โโโ changed-files # Show all changed files to main
โ โโโ commit # Add all files and then commit
โ โโโ contributors # List contributors with number of commits
โ โโโ find # Find commits by commit message
โ โโโ pretty-diff # Show a pretty git diff using fzf (and copy selected path to the clipboard)
โ โโโ pretty-log # Git log filtering
โ โโโ rm-file-history # Remove completely a file from the repo with its history
โโโ ๐ mac
โ โโโ brew # Some brew utils
โ โโโ defaults # Some defaults utils to view your changes, import and export
โโโ ๐ package
โ โโโ add # Install a package
โ โโโ dump # Dump all installed packages
โ โโโ import # Import previously dumped packages
โ โโโ update_all # Update all packages
โโโ ๐ self # Instead of `dot self` you can use direclty `dotly` in your terminal
โ โโโ debug # Debug dotly
โ โโโ install # Install dotly and setup dotfiles
โ โโโ lint # Lint all dotly related bash files
โ โโโ static_analysis # Static analysis of all dotly related bash files
โ โโโ update # Update dotly to the latest stable release
โโโ ๐ shell
โ โโโ zsh # ZSH helpers
โโโ ๐ symlinks
โโโ apply # Apply all symlinks
๐ฝ Alias
You can see the default aliases here. The most commonly used are:
..: cd one directory upla: ls all files/dirs with colorsup: Update all your package managers packages
๐ฝ๏ธ Feature showcase (Spanish)
For an in-depth look at the features offered by dotly, you can take a look at this video:
โ๏ธ Troubleshooting
You can execute dot self debug in parallel with another command to see the errors output.
๐ค Contributing
- If you want to implement a new feature/script, please, open an issue first
๐ Thanks
A lot of dotly concepts has been inspired by denisidoro/dotfiles
โ๏ธ LICENSE
MIT ยฉ CodelyTV
