These are my public configuration files, shell scripts, and more. I'm sharing them for the benefit of others, and I sincerely hope others find them useful.
My shell scripts are well-documented, and readers may also be interested in my methods of organization, my Bash functions, my Neovim configuration, my tmux configuration, and my Git configuration, among other things.
In general, shell scripts that might be useful to others are stored in the bin directory, whereas Bash utilities that are specific to my setup or reflect my personal preferences are written as Bash functions and stored in the .config/bash/init/functions directory.
I'm very pleased with the organization of my Bash functions. I've tried many methods of organizing aliases and functions, but this method, inspired by fish, feels the most natural. No aliases are used. Everything is a function, and every function has its own file.
I welcome issues, including bug reports and feature requests, as well as pull requests. To ask questions or discuss these files for any other reason, please use the Discussions page.
Follow these steps to install all of these files:
- Install docopts. Shell scripts (files in the bin directory) require docopts and will not function without it.
- Install vcsh.
- Run
vcsh clone [email protected]:openjck/dotfiles.git dotfiles-openjck
. - Run
vcsh dotfiles-openjck fetch
. - Run
vcsh dotfiles-openjck switch main
.
Follow these steps to install a single shell script:
- Install docopts. Shell scripts require docopts and will not function without it.
- Save the shell script somewhere along your
$PATH
. - Make the script executable (e.g.,
chmod u+x /path/to/script
).
After following the above steps, you'll be able to call the shell script by name without providing its full path. For example, if you downloaded the rename-files-sequentially script, you'll be able to run the following from anywhere:
$ rename-files-sequentially
Pass the -h
or --help
option to any shell script to read its detailed
documentation. For example:
$ indent --help