lainiwa / dotfiles

My comfy dotfiles :3
14 stars 2 forks source link

Muh minimalism #14

Closed lainiwa closed 4 years ago

lainiwa commented 5 years ago

Thoughts on features vs minimalism.

lainiwa commented 5 years ago

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]

:heavy_check_mark: Versatile tool, has it's own ports system, thus letting you install non-plugins along with completions and keybindings. :heavy_check_mark: Somewhat decent documentation (README.md) :heavy_multiplication_x: Complex

sheldon [2k loc Rust]

:question::question: :heavy_multiplication_x: Not very popular. :heavy_multiplication_x: Rust language. Have to grab a binary.

antibody [0.9k loc Go]

:heavy_check_mark: Simple :heavy_multiplication_x: No ability to tightly integrate zsh settings with code installing non-plugins. :heavy_multiplication_x: Go language. Have to grab a binary.

:star: 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 (?)]

:star: dotbot [0.7k loc Python]

WM

:star: i3 [24k loc C]

:heavy_check_mark: Has a drop-in Wayland-compatible replacement (Sway). X11 will get deprecated sooner or later. :heavy_check_mark: Good docs. :heavy_multiplication_x: Complex. Sway is even bigger. :heavy_multiplication_x: i3status depends on pulseaudio library

bspwm [10.6k loc C]

:heavy_multiplication_x: Requires sxhkd (additional 3.5k loc C)

herbstluftwm [11k loc C++]

spectrwm [11.7 loc C]

dwm [1.8k loc C]

:heavy_check_mark: Very (overly) simple. :heavy_multiplication_x: Patching is PITA.

Picker

Seems like only fzf has decent environment & tools built around it.

:star: fzf [10k loc Go]

:heavy_check_mark: Many tools integrating this (and only this). :heavy_multiplication_x: Very complex for such simple task :heavy_multiplication_x: Go language. Have to grab a binary.

fzy [2k loc C]

:heavy_check_mark: Has some tools integrating this. :heavy_multiplication_x: Still complex

pick [1.1k loc C]

:heavy_multiplication_x: No tools integrated

slmenu [0.6k loc C]

:heavy_check_mark: Somewhat simple :heavy_multiplication_x: No tools integrated :heavy_multiplication_x: 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.

:star: urxvt [40k loc C]

:heavy_check_mark: Extendable with Perl plugins :heavy_multiplication_x: Complex. Relies on Perl

st [4k loc C]

:heavy_check_mark: simplest out there :heavy_check_mark: correct. Passes UTF-8 test :heavy_multiplication_x: Having terminal multiplexer is essential. :heavy_multiplication_x: Settings in source code.

Shell

bash [107k loc C]

:star: 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.

:star: ranger [12.8k loc Python]

lf [7k loc Go]

:star: nnn [3.8k loc C]

fff [674 loc Bash]

Package Manager

:star: guix [~60k loc Scheme]

:star: nix [~37 loc C++]

lainiwa commented 4 years ago

Moved to https://outlines.readthedocs.io/en/latest/notes/alternatives.html