| Name | Description |
|---|---|
| nvim | LazyVim Configs |
| wezterm | Wezterm configs |
| hammerspoon | Hammerspoon configs, custom shortcuts/keybindings, and personal Spoons |
| tmux | Tmux configs and plugins |
| yazi | Yazi configs |
| etc | Shell profile, rcfiles, aliases, exports and functions and config files in general |
| scripts | Misc scripts for every-day stuff |
| tasks | Taskfiles to automate install and configuration steps; see tasks/README.md |
Install steps and setup configuration are automated with Taskfile runner.
This is the only requirement that needs to be manually installed, all the remaining dependencies are controlled and customized from the main Taskfile.yml.
Run task to view the complete list of tasks currently available:
task: Available tasks for this project:
* changelog: Generates CHANGELOG
* hooks: Setup git hooks locally
* jsonfmt: Format JSON with jq (sort keys, validate)
* list: Lists available commands
* markdownlint: Lint Markdown with markdownlint-cli (.markdownlint.yaml)
* precommit: Verifies and fix requirements for new commits
* yamlfmt: Format YAML files with yamlfmt (install with: go install github.com/google/yamlfmt/cmd/yamlfmt@latest)
* changelog:rewrite-history: Rewrite all commit messages to conventional format (DESTRUCTIVE; backup first, then force-push)
* common:install:core:all: Setup shell, core settings and tools (cross-platform)
* common:install:core:fzf: Install FuzzyFinder
* common:install:core:lua: Install Lua from source (for Neovim etc.)
* common:install:core:nvim: Install Neovim nightly (macOS or Linux)
* common:install:core:nvim:darwin: Install Neovim nightly on macOS
* common:install:core:nvim:linux: Install Neovim nightly on Linux
* common:install:core:profile: Setup shell profile settings (cross-platform)
* linux:install:all: Install base packages and core setup on Linux (apt + common core)
* linux:install:apt:all: Install base OS packages (Debian/Ubuntu)
* macos:install:all: Install all MacOS required tools
* macos:install:brew:all: Brew install all packages
* macos:install:brew:all:custom: Brew install recipes with custom steps
* macos:install:brew:all:custom:colima: Brew install Colima
* macos:install:brew:all:deps: Install Brew itself along with some important libs and repos
* macos:install:brew:all:fonts: Install Nerd-Fonts
* macos:install:brew:all:regular: Brew install regular recipes
* macos:install:core:all: Setup shell, core settings and tools
* macos:install:core:fzf: Install FuzzyFinder
* macos:install:core:nvim: Install Neovim nightly (macOS or Linux)
* macos:install:core:nvim:darwin: Install Neovim nightly on macOS
* macos:install:core:nvim:linux: Install Neovim nightly on Linux
* macos:install:core:profile: Setup shell profile settings
* macos:install:core:rosetta: Install Rosetta2
* macos:install:docker:all: Install Docker and container related tooling
* macos:install:docker:buildx: Install Docker Buildx
* macos:install:docker:rancher: Install Rancher Desktop
* macos:install:go:all: Install Go and all required modules/utils
* macos:install:go:all:deps: Download and Install Go installer
* macos:install:go:all:modules: Install required go modules
* macos:install:hammerspoon:all: Install Hammerspoon plugins
* macos:install:hammerspoon:all:spoons: Install Spoons
* macos:install:java:all: Install all Java requirements and tools
* macos:install:java:all:bfg: Install BFG Repo-Cleaner
* macos:install:java:all:maven: Install Maven
* macos:install:java:all:sdkman: Install SDKMan and Java Latest LTS
* macos:install:k8s:all: Setup Kubernetes related tooling
* macos:install:k8s:k3d: Install K3d
* macos:install:k8s:kubebuilder: Installs Kubebuilder
* macos:install:k8s:kustomize: Install Kustomize
* macos:install:k8s:operator-sdk: Install Operator-SDK
* macos:install:k8s:tilt: Install Tilt
* macos:install:rust:all: Install Rust and all required crates
* macos:install:rust:all:crates: Install required cargo packages
* macos:install:rust:all:deps: Install rustc and cargo
* nvim:deps: Install optional Neovim deps (tree-sitter-cli; use nvim:luarocks-build for rocks if using LuaRocks plugin)
* nvim:luarocks-build: Run LuaRocks.nvim build once (compiles local LuaRocks; then setup() installs rocks)
* nvim:reset: Backup ~/.local/share/nvim, ~/.local/state/nvim, ~/.cache/nvim with timestamped suffix (e.g. nvim.bak-YYYYMMDD-HHMMSS).
* test:lua: Run Lua Gherkin features (byfeature-style output with colors) and Busted specs
* version:next: Calculate next semver from conventional commits since last v* tag (feat→minor, fix→patch, breaking→major)Releases are created by pushing a tag:
git tag v1.0.0
git push origin v1.0.0Use semver (vMAJOR.MINOR.PATCH). The next version is computed from conventional commits since the last v* tag:
- Major: commit subject contains
!(e.g.feat!:) or body containsBREAKING CHANGE. - Minor: at least one
featcommit. - Patch: at least one
fix,docs,chore,ci, etc., or any other commit (defaults to patch when there are commits).
To see the suggested next version before tagging, run from the repo root:
task version:nextThen create and push the tag (e.g. v0.0.1):
V=$(scripts/calc-next-version.sh)
git tag "$V"
git push origin "$V"The release workflow runs scripts/calc-next-version.sh (needs only git and bash; no jq) to validate that the pushed tag matches the version calculated from conventional commits. It then:
- Generates release notes (commits since the previous tag) with
git-cliff. - Creates a GitHub Release with that body.
- Regenerates the full
CHANGELOG.mdand commits it to the default branch.
If the release workflow does not run when you push a tag, ensure workflow files are on the default branch and Actions are enabled (Settings → Actions).