No one asked for it, but I made it anyways because I am passionate about sharing knowledge however I can. This repository contains information regarding my terminal setup, including the tools I use, the configurations of those tools, my terminal profiles, and more. Included are instructions on how to set up and use my configurations, or at least how to get started with them.
I've attempted to make this repository as automated as possible so it always stays current. To do this, I created workflows that automate updating the files in the includes
directory when updating my dotfiles repository, which contains my shell and terminal configurations.
Table of Contents
The documentation includes:
- Package recommendations for native package managers and other tools
- Zsh configurations with aliases, functions, and environment setup
- Color schemes and themes for enhanced terminal experience
- Neovim configurations for various use cases
- Terminal profiles for macOS and GNOME Terminal
Note
The documentation is hosted online at cut.hthompson.dev. You only need to set up a local environment if you want to preview changes or contribute to the documentation.
To build and preview the documentation locally, you'll need:
- Python: Version 3.9 or higher
- uv: For dependency management
-
Clone the repository:
git clone https://github.com/StrangeRanger/custom-unix-terminal cd custom-unix-terminal
-
Install dependencies:
uv sync
-
Start the development server:
uv run mkdocs serve
-
Open your browser: Visit http://localhost:8000 to view the documentation with live reload.
These scripts are integrated with the CI/CD workflow, but can also be run manually. Both scripts require the dotfiles submodule to be initialized and up to date:
git submodule update --init --remote submodules/dotfiles
Note
The automation scripts do not require the dependencies installed via uv
. Those dependencies are only needed for MkDocs site development and deployment.
Updates the configuration files in includes/
from the dotfiles submodule.
Manual usage:
python3 update_repo.py
Updates CHANGELOG.md
with recent changes from the dotfiles submodule.
Manual usage:
bash update-changelog.bash
Questions, ideas, or feedback about the configurations or docs?
- Use Discussions for questions about setup, OS-specific tips, tooling choices (zsh, plugins, Neovim, terminal profiles), and to share tweaks. Post feature and content ideas in the Ideas category so others can discuss and upvote.
- Use Issues for actionable problems with the site or automation (broken links, outdated snippets, build/serve/deploy errors, submodule sync issues, profile import problems).
If you run into errors with update_repo.py
or update-changelog.bash
, include your OS, steps to reproduce, and any relevant output. If the problem originates in the dotfiles submodule, please link to the relevant path under submodules/dotfiles/
.
This project is licensed under the MIT License.