Important
Moved to Codeberg
My personal dotfiles.
Explore the docs »
Report Bug
·
Request Feature
- About the Project
- Getting Started
- Usage
- Miscellanea
- Roadmap
- Contributing
- License
- Contact
- Acknowledgements
This repo hosts my personal dotfiles.
To get a local copy up and running follow these simple steps.
- macOS
brew install bat exa fd fzf git git-delta htop ncdu neovim ripgrep sqlparse \
tig tldr tmux tree universal-ctags watch z zplugPlus for age file encryption tool support:
brew tap filippo.io/age https://filippo.io/age
brew install age- Clone the repo
git clone https://github.com/akarzim/dotfiles.git- Install dotfiles
cd dotfiles && ./init.zshA Makefile exists to install, uninstall, run & check dotfiles.
make help
install: Install the dotfiles application
uninstall: Uninstall the dotfiles application
run: Run the dotfiles application
check: Run the healthcheck
help: Show this help
Usage: init.zsh [-d | --diff] [-i | --interactive] [--diff-tool diff] [--diff-editor vim] [--git-tool git]
[--gpg-tool gpg] [--age-tool age] [--age-key path/to/key]
[-f | --force] [--ours | --their]
[-h | --help]
[-V | --version]
[-n | --dry-run] [program ...]
Environment:
CHECK check if changes need to be applied (default: 0; values: 0, 1)
DIFF hide/show changes between files if they are different (default: 0; values: 0, 1)
INTERACTIVE show changes in editor (default: 0; values: 0, 1)
FORCE overwrite or not existing files if they are different (default: 0; values: 0, 1)
OURS copy local files to dotfiles (default: 0; values: 0, 1)
THEIR copy dotfiles to local files (default: 1; values: 0, 1)
DIFFTOOL exectuable for diffing files (default: diff)
DIFFEDITOR executable for editing diff (default: EDITOR)
GITTOOL executable for git diffing files (default: git)
GPGTOOL executable for the GPG file encryption tool (default: gpg)
AGETOOL executable for the age file encryption tool (default: age)
AGEKEY path to your age private key
Options:
--age-tool=AGE_TOOL set the age file encryption tool executable
--gpg-tool=GPG_TOOL set the gpg file encryption tool executable
--git-tool=GIT_TOOL set the git tool executable
--diff-tool=DIFF_TOOL set the diff tool executable
--diff-editor=DIFF_EDITOR set the diff editor executable
-n, --dry-run, --no-dry-run check if changes need to be applied
-d, --diff, --no-diff show/hide changes between files if they are different
-f, --force, --no-force overwrite or not existing files if they are different
-h, --help print this help
-i, --interactive, --no-interactive show changes in editor
--ours copy local files to dotfiles when force is enabled
--their copy dotfiles to local files when force is enabled
-V, --version print the version number"
NOTE: Environment variables can be set in a .dotfilesrc file.
An example is available in dotfilesrc.sample.
Add support for other dotfiles by creating new .zsh files under the modules/
directory. You have some functions at your disposal:
link SOURCE [DOTFILE]to create a symlink fromSOURCEtoDOTFILEcopy SOURCE [DOTFILE]to copy theSOURCEfile to theDOTFILEdestinationdecipher SOURCE [DOTFILE]to copy an encryptedSOURCEfile to theDOTFILEdestinationrlink DIRECTORY SOURCE [DOTFILE]recursively linkSOURCEtoDOTFILEinDIRECTORYsubdirectoriesrcopy DIRECTORY SOURCE [DOTFILE]recursively copySOURCEtoDOTFILEinDIRECTORYsubdirectoriesrdecipher DIRECTORY SOURCE [DOTFILE]recursively decipherSOURCEtoDOTFILEinDIRECTORYsubdirectoriesmodule MODULEto check ifMODULEis requiredprogram PROGRAMto check ifPROGRAMis executable
NOTE: The last argument is optional. If it is missing, it will be forged from
the file name SOURCE prefixed with a period.
A caching policy is also available to avoid useless computations:
caching_policy DIRECTORYreturns true if the cache is obslolete.
By providing your program selection, you can update a subset of the available
configuration. For example, to choose only zsh and git, just call ./init.zsh zsh git and that's it.
init.zshandfunctions.zshcontain ZSH syntax which is not Bash compatible:functions.zshcontains BSD-based specific regex syntax3
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
François Vantomme - @akarzim
Project Link: https://github.com/akarzim/dotfiles
