npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pure-prompt-nvm

v1.0.10

Published

Pretty, minimal and fast zsh prompt with nvm integration

Downloads

7

Readme

pure-nvm

Pretty, minimal and fast zsh prompt with nvm integration

This is a fork of sindresorhus/pure that supports nvm instead of virtualenv.

Screenshot

The screenshot above shows how this prompt integrates with the lukechilds/zsh-nvm ZSH plugin installed and NVM_AUTO_USE set to true.

Overview

  • Shows Node version when nvm is active
  • Shows git branch and whether it's dirty (with a *).
  • Indicates when you have unpushed/unpulled git commits with up/down arrows. (Check is done asynchronously!)
  • Prompt character turns red if the last command didn't exit with 0.
  • Command execution time will be displayed if it exceeds the set threshold.
  • Username and host only displayed when in an SSH session.
  • Shows the current path in the title and the current folder & command when a process is running.
  • Support VI-mode indication by reverse prompt symbol (Zsh 5.3+).
  • Makes an excellent starting point for your own custom prompt.

Install

Can be installed with npm or manually. Requires Git 2.0.0+ and ZSH 5.2+. Older versions of ZSH are known to work, but they are not recommended.

npm

$ npm install --global pure-prompt-nvm

That's it. Skip to Getting started.

Manually

  1. Clone this repo somewhere. Here we'll use $HOME/.zsh/pure.
git clone https://github.com/madeleinedaly/pure-nvm.git "$HOME/.zsh/pure"
  1. Add the path of the cloned repo to $fpath in $HOME/.zshrc.
# .zshrc
fpath+=$HOME/.zsh/pure

Getting started

Initialize the prompt system (if not so already) and choose pure:

# .zshrc
autoload -U promptinit; promptinit
prompt pure

Options

| Option | Description | Default value | | :------------------------------- | :--------------------------------------------------------------------------------------------- | :------------- | | PURE_CMD_MAX_EXEC_TIME | The max execution time of a process before its run time is shown when it exits. | 5 seconds | | PURE_GIT_PULL=0 | Prevents Pure from checking whether the current Git remote has been updated. | | | PURE_GIT_UNTRACKED_DIRTY=0 | Do not include untracked files in dirtiness check. Mostly useful on large repos (like WebKit). | | | PURE_GIT_DELAY_DIRTY_CHECK | Time in seconds to delay git dirty checking when git status takes > 5 seconds. | 1800 seconds | | PURE_PROMPT_SYMBOL | Defines the prompt symbol. | | | PURE_PROMPT_VICMD_SYMBOL | Defines the prompt symbol used when the vicmd keymap is active (VI-mode). | | | PURE_GIT_DOWN_ARROW | Defines the git down arrow symbol. | | | PURE_GIT_UP_ARROW | Defines the git up arrow symbol. | |

Colors

As explained in ZSH's manual, color values can be:

  • A decimal integer corresponding to the color index of your terminal. If your $TERM is xterm-256color, see this chart.
  • The name of one of the following nine colors: black, red, green, yellow, blue, magenta, cyan, white, and default (the terminal’s default foreground)
  • # followed by an RGB triplet in hexadecimal format, for example #424242. Only if your terminal supports 24-bit colors (true color) or when the zsh/nearcolor module is loaded.

Colors can be changed by using zstyle with a pattern of the form :prompt:pure:$color_name and style color. The color names, their default, and what part they affect are:

  • execution_time (yellow) - The execution time of the last command when exceeding PURE_CMD_MAX_EXEC_TIME.
  • git:arrow (cyan) - For PURE_GIT_UP_ARROW and PURE_GIT_DOWN_ARROW.
  • git:branch (242) - The name of the current branch when in a Git repository.
  • git:branch:cached (red) - The name of the current branch when the data isn't fresh.
  • git:action (242) - The current action in progress (cherry-pick, rebase, etc.) when in a Git repository.
  • git:dirty (218) - The asterisk showing the branch is dirty.
  • host (242) - The hostname when on a remote machine.
  • path (blue) - The current path, for example, PWD.
  • prompt:error (red) - The PURE_PROMPT_SYMBOL when the previous command has failed.
  • prompt:success (magenta) - The PURE_PROMPT_SYMBOL when the previous command has succeded.
  • prompt:continuation (242) - The color for showing the state of the parser in the continuation prompt (PS2). It's the pink part in this screenshot, it appears in the same spot as virtualenv. You could for example matching both colors so that Pure has a uniform look.
  • user (242) - The username when on remote machine.
  • user:root (default) - The username when the user is root.
  • nvm_version (242) - The current nvm version when not set to system.

The following diagram shows where each color is applied on the prompt:

┌───────────────────────────────────────────────────── path
│          ┌────────────────────────────────────────── git:branch
│          │      ┌─────────────────────────────────── git:action
|          |      |       ┌─────────────────────────── git:dirty
│          │      │       │ ┌───────────────────────── git:arrow
│          │      │       │ │        ┌──────────────── host
│          │      │       │ │        │
~/dev/pure master|rebase-i* ⇡ zaphod@heartofgold 42s
v8.12.0 ❯                 │                      │
│       │                 │                      └──── execution_time
│       │                 └─────────────────────────── user
│       └───────────────────────────────────────────── prompt
└───────────────────────────────────────────────────── nvm_version (or prompt:continuation)

RGB colors

There are two ways to use RGB colors with the hexadecimal format. The correct way is to use a terminal that support 24-bit colors and enable this feature as explained in the terminal's documentation.

If you can't use such terminal, the module zsh/nearcolor can be useful. It will map any hexadecimal color to the nearest color in the 88 or 256 color palettes of your termial, but without using the first 16 colors, since their values can be modified by the user. Keep in mind that when using this module you won't be able to display true RGB colors. It only allows you to specify colors in a more convenient way. The following is an example on how to use this module:

# .zshrc
zmodload zsh/nearcolor
zstyle :prompt:pure:path color '#FF0000'

Example

# .zshrc

autoload -U promptinit; promptinit

# optionally define some options
PURE_CMD_MAX_EXEC_TIME=10

# change the path color
zstyle :prompt:pure:path color white

# change the color for both `prompt:success` and `prompt:error`
zstyle ':prompt:pure:prompt:*' color cyan

prompt pure

Tips

In the screenshot you see pure-nvm running in iTerm2 with the dracula theme and Menlo font.

To have commands colorized as seen in the screenshot, install zsh-syntax-highlighting.

Integration

oh-my-zsh

  1. Set ZSH_THEME="" in your .zshrc to disable oh-my-zsh themes.
  2. Follow the Pure Install instructions.
  3. Do not enable the following (incompatible) plugins: vi-mode, virtualenv.

NOTE: oh-my-zsh overrides the prompt so Pure must be activated after source $ZSH/oh-my-zsh.sh.

prezto

Symlink (or copy) pure.zsh to ~/.prezto/modules/prompt/functions/prompt_pure_setup alongside Prezto's other prompts. Then set zstyle ':prezto:module:prompt' theme 'pure' in ~/.zpreztorc.

zim

Add zmodule madeleinedaly/pure-nvm --source async.zsh --source pure.zsh to your .zimrc and run zimfw install.

antigen

Update your .zshrc file with the following two lines (order matters). Do not use the antigen theme function.

antigen bundle mafredri/zsh-async
antigen bundle madeleinedaly/pure-nvm

antibody

Update your .zshrc file with the following two lines (order matters):

antibody bundle mafredri/zsh-async
antibody bundle madeleinedaly/pure-nvm

zplug

Update your .zshrc file with the following two lines:

zplug mafredri/zsh-async, from:github
zplug madeleinedaly/pure-nvm, use:pure.zsh, from:github, as:theme

zplugin

Update your .zshrc file with the following two lines (order matters):

zplugin ice pick"async.zsh" src"pure.zsh"
zplugin light madeleinedaly/pure-nvm

FAQ

There are currently no FAQs.

See FAQ Archive for previous FAQs.

Ports