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 zplug
Plus 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.zsh
Usage: ./init.zsh [-d | --diff] [-f | --force] [-h | --help] [-V | --version] [program ...]
Environment:
DIFF hide/show changes between files if they are different (default: 0 ; values: 0, 1)
FORCE overwrite or not existing files if they are different (default: 0 ; values: 0, 1)
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-key=AGE_KEY path to your age private key
--age-tool=AGE_TOOL set the age file encryption tool executable
--gpg-tool=GPG_TOOL set the gpg file encryption tool executable
-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
-V, --version print the version number"
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 fromSOURCE
toDOTFILE
copy SOURCE [DOTFILE]
to copy theSOURCE
file to theDOTFILE
destinationdecipher SOURCE [DOTFILE]
to copy an encryptedSOURCE
file to theDOTFILE
destinationrlink DIRECTORY SOURCE [DOTFILE]
recursively linkSOURCE
toDOTFILE
inDIRECTORY
subdirectoriesrcopy DIRECTORY SOURCE [DOTFILE]
recursively copySOURCE
toDOTFILE
inDIRECTORY
subdirectoriesrdecipher DIRECTORY SOURCE [DOTFILE]
recursively decipherSOURCE
toDOTFILE
inDIRECTORY
subdirectoriesmodule MODULE
to check ifMODULE
is requiredprogram PROGRAM
to check ifPROGRAM
is 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 DIRECTORY
returns 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.zsh
andfunctions.zsh
contain ZSH syntax which is not Bash compatible:functions.zsh
contains 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