Skip to main content

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, including lazy-lock.json.
  • assets/nvim-lazy/ contains the cleaned Lazy.nvim plugin cache needed for offline startup.
  • assets/zsh/init.zsh contains the sourceable zsh profile fragment.
  • assets/zsh/vendor/ vendors the zsh-only plugins used by the profile: fzf-tab, zsh-autosuggestions, and zsh-syntax-highlighting.
  • assets/tmux/ contains the tmux profile files.
  • assets/profile.toml records 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nvim_zsh_profile-0.1.0.tar.gz (14.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nvim_zsh_profile-0.1.0-py3-none-any.whl (17.1 MB view details)

Uploaded Python 3

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

Hashes for nvim_zsh_profile-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a25ec43f13af41a1763ad78cf287db011db68393db960dfad31cf25b2431990a
MD5 800b7d81d2284b7f91587231630f6e82
BLAKE2b-256 8ccaaa414af792ce3df13c319d89db2f4f5dbd2454219d00f68adce193058448

See more details on using hashes here.

Provenance

The following attestation bundles were made for nvim_zsh_profile-0.1.0.tar.gz:

Publisher: publish.yml on Jrakru/nvim-zsh-profile

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nvim_zsh_profile-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nvim_zsh_profile-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3aca67b2f52add2d9e026b8ffb429e50fcde112f866bb05bad9cb3ea5d123b2f
MD5 a14d31abcddf3a88d1bd53759bee84d8
BLAKE2b-256 4db484c2e953a50884c9cd0eea97510b1d24cad5e0242c6c640b25df5f79c518

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page