This repository contains my dotfiles for BASH and ZSH. They are opinionated and based on my own work flows. I highly recommend that you read through the files and customize them for your own purposes.
Installation
In .zshrc
and .bash_profile
ensure the correct directory is used for the DOTFILES_LOCATION
variable.
Symlink the dotfiles from this repository to your user directory. To avoid doing this manually file-by-file, run the install.sh
script.
Option per-computer overrides
Place any computer specific bash or zsh aliases, functions, or settings in ~/.dotfiles.local
. Anything within that file will be sourced into your environment.
Shell Scripting Templates
My bash scripting templates and utilities now have their own repo. You can access them at natelandau/shell-scripting-templates
macOS specific tweaks
I customized Jeff Geerling's macOS configuration script to set my macOS defaults. Run this script with sudo privileges.
sudo ./osx.sh
lessfilter.sh
In the bin/
directory is a script to help colorize files using less
. To use this script, make sure that shell/text.sh
points to the correct location for the file.
A Note on Code Reuse
I compiled these scripting utilities over many years without ever having an intention to make them public. As a novice programmer, I have Googled, GitHubbed, and StackExchanged a path to solve my own scripting needs. I often lift a function whole-cloth from a GitHub repo don't keep track of its original location. I have done my best within these files to recreate my footsteps and give credit to the original creators of the code when possible. I fear that I missed as many as I found. My goal in making this repository public is not to take credit for the code written by others. If you recognize something that I didn't credit, please let me know.
Contributing
Setup
- Install Python 3.11 and Poetry
- Clone this repository.
git clone https://github.com/natelandau/dotfiles.git
- Install the Poetry environment with
poetry install
. - Activate your Poetry environment with
poetry shell
. - Install the pre-commit hooks with
pre-commit install --install-hooks
.
Developing
- Activate your Poetry environment with
poetry shell
. - This project follows the Conventional Commits standard to automate Semantic Versioning and Keep A Changelog with Commitizen.
- When you're ready to commit changes run
cz c
- When you're ready to commit changes run
- Run
poe
from within the development environment to print a list of Poe the Poet tasks available to run on this project. Common commands:poe lint
runs all linters and tests
- Run
poetry add {package}
from within the development environment to install a runtime dependency and add it topyproject.toml
andpoetry.lock
. - Run
poetry remove {package}
from within the development environment to uninstall a runtime dependency and remove it frompyproject.toml
andpoetry.lock
. - Run
poetry update
from within the development environment to upgrade all dependencies to the latest versions allowed bypyproject.toml
.
License
MIT