Alternatives¶
Different software I ever considered
Legend:
✔ means I consider something to be a positive thing
✖ means I consider something misfortunate
★ means this is the thing I’ve currently settled with
Zsh plugin manager¶
I’ve tried a buch of zsh plugin managers (something like antigen → antibody → zinit → antibody → zinit → zpm).
For most of the time I’ve used to stick with zinit, using it as a sort of ports manager. It can fetch binaries along with completions, man pages etc. It is very complex though, being something of a “systemd of the zsh plugins world”.
I’ve switched to zmp later, as it is extrimely simple, and you can make most of the zinit’s functionality (that I’ve used) with just wget/curl requests + jq for parsing.
- zinit [44k loc C]
✔ Versatile tool, has it’s own ports system, thus letting you install non-plugins along with completions and keybindings.
✔ Somewhat decent README.md documentation (although sometimes it lags behind the actual functionality)
✖ Complex
- sheldon [2k loc Rust]
✔ ??
✖ Not very popular.
✖ Rust language. Have to grab a binary.
- antibody [0.9k loc Go]
✔ Simple
✖ No ability to tightly integrate zsh settings with code installing non-plugins.
✖ Go language. Have to grab a binary.
★ zgenom [680 loc Zsh]
- ★ zpm [650 loc Zsh]
✔ Simple
✔ Pure ZSH
★ zshing [180 loc Zsh]
Dotfiles manager/bootstrapper¶
IMage viewers¶
Window Manager¶
herbstluftwm [11k loc C++]
spectrwm [11.7 loc C]
- dwm [1.8k loc C]
✔ Very (overly) simple.
✖ Patching is PITA.
Picker¶
Seems like only fzf has decent environment & tools built around it.
★ skim [7.1k loc Rust]
- ★ fzf [10k loc Go]
✔ Many tools integrating this (and only this).
✖ Very complex for such simple task
✖ Go language. Have to grab a binary.
- fzy [2k loc C]
✔ Has some tools integrating this.
✖ Still complex
- pick [1.1k loc C]
✖ No tools integrated
- slmenu [0.6k loc C]
✔ Somewhat simple
✖ No tools integrated
✖ Not fuzzy
Terminal emulator¶
These two emulator seem to be most viable. St is better but source-code-as-a-config doesn’t fit my workflow.
alacritty [17.7k loc Rust]
- ★ urxvt [40k loc C]
✔ Extendable with Perl plugins
✖ Complex. Relies on Perl
- st [4k loc C]
✔ simplest out there
✔ correct. Passes UTF-8 test
✖ Having terminal multiplexer is essential.
✖ Settings in source code.
Shell¶
File Manager¶
The one thing I think file manager is useful for is picking files based on preview of their contents. For now only ranger has this functionality.
Package Manager¶
Grep through code¶
Browser Extensions¶
★ display-anchors []
★ Memex []
★ what-hn-says-webext []
tosdr []
ext-saladict []
- Redirect Skipping
★ Redirector []
★ Skip Redirect []
- Tab Hibernation
★ auto-tab-discard []
Dormancy []
- Hide Trash
★ uBlock [~48k loc JavaScript]
★ uBlacklist []
blocktube []
blocktube []
- Github
★ CodeFlower []
octotree []
git-history []
Screenshoters¶
imagemagick [334k loc C]
flameshot [7.5k loc C++]
★ maim [2.4k loc C++]
scrot [1.8k loc C]
Wallpaper Setters¶
Internet Browsers¶
Textual diff¶
delta [11.1k loc Rust]
diffr [2.7k loc Rust]
diff-so-fancy [1.9k loc Perl]
icdiff [560 loc Python]
Image diff¶
git-diff-image [264 loc Bash]
spaceman-diff [130 loc Sh]
Directories jumper¶
Sandboxing¶
firejail [30k loc C]
nsjail [4.4k loc C++]
bubblewrap [3.2k loc C]