Muh minimalism
lainiwa opened this issue · comments
Thoughts on features vs minimalism.
Zsh plugin manager
For now I stick with zinit
, as using it as a sort of ports manager. It can fetch binaries along with completions, man pages etc.
Maybe I will move some of it's functionality to guix
later, but for now it is the only viable solution for managing this things.
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 documentation (README.md
)
✖️ 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.
⭐ zpm [650 loc Zsh]
Dotfiles manager/bootstrapper
chezmoi [13.9k loc Go]
stow [2k loc Perl]
yadm [1.5 loc Bash]
homeshick [1.5k loc Bash]
rcm [1k loc Shell (?)]
⭐ dotbot [0.7k loc Python]
WM
⭐ i3 [24k loc C]
✔️ Has a drop-in Wayland-compatible replacement (Sway). X11 will get deprecated sooner or later.
✔️ Good docs.
✖️ Complex. Sway is even bigger.
✖️ i3status depends on pulseaudio library
bspwm [10.6k loc C]
✖️ Requires sxhkd (additional 3.5k loc C)
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.
⭐ 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.
⭐ 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
bash [107k loc C]
⭐ zsh [102k loc C]
mksh [19k loc C]
rc [6.5k loc C]
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.