Packaged Neovim, zsh, and tmux profile assets
Project description
nvim-zsh-profile
This distribution is intentionally a Python asset package rather than a runtime library. It carries a reusable Neovim and zsh profile as normal package data so installers can stage the files without cloning a dotfiles repository.
Contents
assets/nvim/contains the LazyVim-based Neovim profile, includinglazy-lock.json.assets/nvim-lazy/contains the cleaned Lazy.nvim plugin cache needed for offline startup.assets/zsh/init.zshcontains the sourceable zsh profile fragment.assets/zsh/vendor/vendors the zsh-only plugins used by the profile:fzf-tab,zsh-autosuggestions, andzsh-syntax-highlighting.assets/tmux/contains the tmux profile files.assets/profile.tomlrecords the profile inventory and external tools expected for the full experience.
The package vendors the Neovim plugin working trees required by lazy-lock.json
without Git history, upstream CI files, or upstream tests. It does not bootstrap
plugins from public Git remotes, which makes it suitable for network-restricted
zones once the installer stages both the config and cache assets.
Integration
The package exposes an import package named nvim_zsh_profile. Installers can
locate the asset root with importlib.resources or by using the helper
functions exported by the package:
from nvim_zsh_profile import nvim_assets, nvim_lazy_assets, tmux_assets, zsh_assets
Verify
PYTHONPATH=src python -m unittest discover -s tests
python -m build
python tools/check_dist_size.py --limit-mib 100
Refresh Assets
Use the refresh helper when the local Neovim or zsh profile changes:
python tools/refresh_assets.py
PYTHONPATH=src python -m unittest discover -s tests
python -m build
python tools/check_dist_size.py --limit-mib 100
By default, the helper reads:
~/.config/nvim~/.local/share/nvim/lazy~/.zshrc~/.config/tmux~/.local/share/zsh/plugins/fzf-tab/usr/share/zsh/plugins/zsh-autosuggestions/usr/share/zsh/plugins/zsh-syntax-highlighting
It then reapplies the package transforms: LazyVim stays pinned by
lazy-lock.json, the cleaned Lazy.nvim plugin cache is vendored for offline
zones, public bootstrap cloning is replaced with a fail-closed local cache
message, symlinked theme files are copied as real files, local installer-managed
zsh blocks are excluded, zsh plugins are vendored without Git metadata, upstream
CI files, or upstream tests, and tmux config files are copied into assets/tmux.
Release
The GitHub Actions workflow builds and publishes on v* tag pushes, matching
the tag-driven release flow used by sibling Python packages. Configure PyPI
Trusted Publishing for this repository and workflow:
- workflow file:
.github/workflows/publish.yml - environment:
pypi - package distribution name:
nvim-zsh-profile
Then release with a unique version in pyproject.toml:
python -m build
python tools/check_dist_size.py --limit-mib 100
git tag v0.1.0
git push origin main --tags
Publishing happens when the v* tag is pushed. PyPI does not allow distribution
filenames to be reused, so bump pyproject.toml before tagging a new release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nvim_zsh_profile-0.1.0.tar.gz.
File metadata
- Download URL: nvim_zsh_profile-0.1.0.tar.gz
- Upload date:
- Size: 14.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a25ec43f13af41a1763ad78cf287db011db68393db960dfad31cf25b2431990a
|
|
| MD5 |
800b7d81d2284b7f91587231630f6e82
|
|
| BLAKE2b-256 |
8ccaaa414af792ce3df13c319d89db2f4f5dbd2454219d00f68adce193058448
|
Provenance
The following attestation bundles were made for nvim_zsh_profile-0.1.0.tar.gz:
Publisher:
publish.yml on Jrakru/nvim-zsh-profile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nvim_zsh_profile-0.1.0.tar.gz -
Subject digest:
a25ec43f13af41a1763ad78cf287db011db68393db960dfad31cf25b2431990a - Sigstore transparency entry: 1840906014
- Sigstore integration time:
-
Permalink:
Jrakru/nvim-zsh-profile@9d48d7dea766058f26dceb34b20d6bba5333e72a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Jrakru
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9d48d7dea766058f26dceb34b20d6bba5333e72a -
Trigger Event:
push
-
Statement type:
File details
Details for the file nvim_zsh_profile-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nvim_zsh_profile-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3aca67b2f52add2d9e026b8ffb429e50fcde112f866bb05bad9cb3ea5d123b2f
|
|
| MD5 |
a14d31abcddf3a88d1bd53759bee84d8
|
|
| BLAKE2b-256 |
4db484c2e953a50884c9cd0eea97510b1d24cad5e0242c6c640b25df5f79c518
|
Provenance
The following attestation bundles were made for nvim_zsh_profile-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Jrakru/nvim-zsh-profile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nvim_zsh_profile-0.1.0-py3-none-any.whl -
Subject digest:
3aca67b2f52add2d9e026b8ffb429e50fcde112f866bb05bad9cb3ea5d123b2f - Sigstore transparency entry: 1840906059
- Sigstore integration time:
-
Permalink:
Jrakru/nvim-zsh-profile@9d48d7dea766058f26dceb34b20d6bba5333e72a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Jrakru
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9d48d7dea766058f26dceb34b20d6bba5333e72a -
Trigger Event:
push
-
Statement type: