lainiwa / dotfiles

My comfy dotfiles :3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

ranger [12.8k loc Python]

lf [7k loc Go]

nnn [3.8k loc C]

fff [674 loc Bash]

Package Manager

guix [~60k loc Scheme]

nix [~37 loc C++]