homeshick
zsh-bench
homeshick | zsh-bench | |
---|---|---|
8 | 24 | |
2,040 | 494 | |
- | - | |
0.0 | 4.1 | |
3 months ago | 6 months ago | |
Shell | 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.
homeshick
-
Ask HN: What Underrated Open Source Project Deserves More Recognition?
I have a work mac, work linux, and home mac. I want the same terminal-based development environment on all of them, but each requires just a little bit of customization.
For example, the .gitconfig for work is different from home (e.g. my username/email). Ditto for my .ssh/config and my shell aliases.
I also use Nix to manage all my tools, and the home-manager configuration is slightly different between mac & linux due to platform support.
I've gone through a few iterations of home-built solutions, including extending homeshick[1], before discovering YADM which implemented everything I had done but better.
[1] https://github.com/andsens/homeshick
-
How do you manage your shell scripts?
I do roughly the same and then manage them with 'homeshick' ( https://github.com/andsens/homeshick )
-
VIM for remote server file editing
Have a look at https://github.com/andsens/homeshick project, it makes this workflow much easier.
- Using GNU Stow to manage your dotfiles (2012)
-
Ask HN: How do you sync your computers development configurations/environment?
Homeshick for dotfiles: https://github.com/andsens/homeshick
Docker for Obsidian and Alfred syncing - the three target limit on the free tier is just barely enough for 2 of my own computers and my work laptop.
I've also got a Brewfile for installing the basic tooling on macOS
I also have a "how to set up a new computer/server" document on Notion that I use so I don't forget any steps.
- Fish 3.4.0
- Homeshick – Git dotfiles synchronizer written in bash
-
Fish Shell 3.2.0 Released
This is the exact reason I use Fish. The only thing I _need_ to get installed on random servers is Fish itself.
No need to install and configure oh-my-$shell or other huge monstrosities. Most of my stuff comes from a simple homeshick[1] sync with a few files in it.
[1] https://github.com/andsens/homeshick
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.
What are some alternatives?
GNU Stow - GNU Stow - mirror of savannah git repository occasionally with more bleeding-edge branches
fisher - A plugin manager for Fish
homesick - Your home directory is your castle. Don't leave your dotfiles behind.
zinit - 🌻 Flexible and fast ZSH plugin manager
yadm - Yet Another Dotfiles Manager
sheldon - :bowtie: Fast, configurable, shell plugin manager
Ansible - Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.
powerlevel10k - A Zsh theme
Chef - Chef Infra, a powerful automation platform that transforms infrastructure into code automating how infrastructure is configured, deployed and managed across any environment, at any scale
zsh4humans - A turnkey configuration for Zsh
rcm - rc file (dotfile) management
oh-my-fish - The Fish Shell Framework