zsh-bench
zsh4humans
zsh-bench | zsh4humans | |
---|---|---|
24 | 32 | |
494 | 1,535 | |
- | - | |
4.1 | 5.7 | |
6 months ago | 25 days ago | |
Shell | ||
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
zsh-bench
-
Oh My Zsh
Someone's made a benchmarking system for zsh: https://github.com/romkatv/zsh-bench#premade-configs
Of course, their config is the best according to the benchmark (and ohmyzsh is the slowest option), but DIY configs are also covered, particularly possible performance optimizations.
-
Faster Shell Startup with Shell Switching
Unfortunately, running exit is not a great strategy for running benchmarks. For zsh specifically, plugin managers are optimized for fast exit.
romkatv did a great write-up and benchmark within the context of zsh[0]. It's a great read.
[0] https://github.com/romkatv/zsh-bench#how-not-to-benchmark
- Dynamic Aliases and Functions in Zsh
- Benchmark for interactive zsh β plugins, frameworks and plugin managers
- zsh-smartcache: another evalcache but can update the cache
-
Announcing Spaceship v4.0 β a customizable Zsh prompt with asynchronous rendering
Given the addition of async rendering in the latest release of spaceship, I wasn't sure whether I should include performance in the list of features found in powerlevel10kbut but not in spaceship. I used zsh-bench to benchmark powerlevel10k on my laptop running on battery (I'm writing this on a train) with a config that makes powerlevel10k looks similar to spaceship. I simply ran p10k configure and chose what looked most similar: Lean Style, UNICODE, 256 colors, two lines, etc. Here are the benchmark results:
-
7x slowdown when modify $fpath and add completion script
Obligatory link since you are engaging in profiling interactive zsh: https://github.com/romkatv/zsh-bench.
-
What is the best plugin manager in your opinion?
1.) It's fast. Like, really fast. 1.) It supports deferred loading via zsh-defer 1.) It supports local plugins as well as ones hosted via a git provider (aka: GitHub, GitLab, BitBucket, etc) 1.) The codebase is simple and easy to understand and contribute to 1.) It supports git branches (with tag/shas on the roadmap) 1.) It supports partial plugin loading such as loading Oh-My-Zsh plugins and Prezto modules without loading the whole framework. 1.) There's an easy migration path from legacy plugin managers like Antigen/Antibody. 1.) Plugins are managed via a simple plugins file that makes it easy to share your config with others. 1.) And lots more
-
Zsh significantly faster when sourced from bash with bash as default shell
In any case, slow zsh startup is always caused by whatever you put in zsh startup files and it's always possible to reduce zsh startup to imperceptible levels without sacrificing any functionality by editing said startup files. There is a bit of info on interactive zsh performance at https://github.com/romkatv/zsh-bench.
-
Zpy is a simple zsh plugin manager written in python that don't add to the shell startup time.what to y'all think?
Why is this a good thing? Is this a proxy for performance? If so, you can measure performance directly with zsh-bench. This way you can describe the advantage in terms that have real value to end users. For example, you can say that the first prompt appears N milliseconds faster when using Zpy than if you were using something-else.
zsh4humans
-
Understanding `autoload +X`
You can find specific examples of autoload +X in https://github.com/romkatv/zsh4humans/tree/v5.
-
Which Shell?
zsh4humans (from the creator of Powerlevel10k)
-
"Polus" A new theme for Bash
But I like the Powerlevel10k zsh theme with the Lean Style a bit more than that. I'm using it with his configurable zsh setup as my base + zcomet plugin manager. Otherwise they're pretty similar as far as general looks & use goes.
- How do you set up your local terminal / any special tools I can add to my stack?
-
Demo: zsh4humans ssh teleportation
Docs are here and here. I wouldn't recommend trying zsh4humans if you aren't already comfortable with zsh configs. If you do decide to try it, read all tips linked above and follow as many as you can. The default experience is decent but it's far cry from what you can achieve with a personally tailored config.
-
Sweet Shell: With Oh-My-Zsh, SpaceVim, Starship, True Color, and Demo Mode
OMZ is slow, been using zinit since it came out because OMZ and antigen were so slow to start up. Recently I found zsh4humans [1] which benchmarks much better than any other solution, is portable, and has everything I need with sane configs.
1. https://github.com/romkatv/zsh4humans
-
Long time zinit user looking to trim down my configuration while maintaining easy plugin/binary setup
If you are trying zsh4humans, make sure to read https://github.com/romkatv/zsh4humans/blob/master/tips.md and follows as many tips as possible.
-
Choosing ZSH framework
If you want to try a different preconfigured shell environment, big names are Prezto and zsh4humans. Prezto, like OMZ, comes with a plugin manager built in; zsh4humans does not.
-
How Can I Change the Command Used by the `auto_cd` Option
# with a bare directory, cd there and push it onto the directory stack setopt autocd autopushd # ls whenever we change directory autoload add-zsh-hook .cd.ls(){ ls } add-zsh-hook chpwd .cd.ls # bind Ctrl-O to pop the most recent directory and refresh the prompt # doesn't work with p10k, you'd need something like this: # https://github.com/romkatv/zsh4humans/blob/v5/fn/-z4h-cd-rotate .zle.popd(){ popd -q && zle reset-prompt } zle -N .zle.popd bindkey '^o' popd
- I don't know why, but I love the macOS look! lol
What are some alternatives?
fisher - A plugin manager for Fish
ohmyzsh - π A delightful community-driven (with 2,300+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
zinit - π» Flexible and fast ZSH plugin manager
zimfw - Zim: Modular, customizable, and blazing fast Zsh framework
sheldon - :bowtie: Fast, configurable, shell plugin manager
starship - βποΈ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
powerlevel10k - A Zsh theme
oh-my-fish - The Fish Shell Framework
zsh-quickstart-kit - A simple ZSH quickstart for using ZSH, zgenom, oh-my-zsh and a curated list of extra plugins. It is designed to be easy to customize without requiring you to maintain your own fork.
ble.sh - Bash Line Editorβa line editor written in pure Bash with syntax highlighting, auto suggestions, vim modes, etc. for Bash interactive sessions.
xxh - π Bring your favorite shell wherever you go through the ssh. Xonsh shell, fish, zsh, osquery and so on.