irongit
46 commits
Clone ▾
HTTPS
SSH
CLI
README.md

dotzsh

Tired of reconfiguring mandatory programs over and over on new systems. This one line install script fixes up a system to become a developement power house.

Oneline Installer

curl -fsSL https://raw.githubusercontent.com/huncholane/dotzsh/main/install.sh | bash

Table of Contents

Programs Installed

Program Installer Description
base-devel System Developer tools for arch systems (gcc/g++, make, binutils, libc headers, patch, fakeroot, pkgconf)
build-essential System Developer tools for debian systems (gcc/g++, make, binutils, libc headers, patch, fakeroot, pkgconf)
git System Repo management
cargo Install Script Used for rust, also used to install some programs
lsd Cargo Adds icons to ls
go Binary Programming language also used to install some programs
fzf Git Used in several programs to fuzzy find
lazygit Binary Best way to use git by far (written in go)
fnm Install Script Node version manager written in rust
uv Install Script Python environment manager written in rust
yazi Binary Miller pane tui file explorer

Program Details

Essentials

base-devel/build-essential - Must have

Allows C/C++/Assembly programs work smoothly.

git - Repo management

Manages repos. This is used heavily for installing programs. Also used a ton as a developer.

cargo - Rust

Rust manager that comes with rustup. Used for installing lsd. Also used with nightly to install blink in nvim. Essential for rust development.

lsd - Pretty ls

Pretty ls output. Alias l for ls with icons and ll for ls -l with icons.

fnm - Node version management

Node management written in rust. A much faster version of nvm. Alias nvm since it is muscle memory and fnm should be used instead for performance.

uv - Python evironment management

This one is interesting. This config sets up a a python environment in $HOME/.venv and gets sourced automatically. This plays very nice with the zsh-auto-switch-vertialenv plugin. Any directory with .venv in it will automatically be sourced upon entry. It's like conda but faster and automatically focused on the current directory.

yazi - Miller pane tui file explorer

A file explorer that looks like the mac file explorer using miller panes. This one doesn't have a very good universal way to install, so the install script makes installation smoother by determining architecture, download from github release, and copy the binaries into /usr/local/bin.

go - Programming language created by Google

Some of the programs are installed using go. This is installed by checking the latest version online and installing for the detected architecture. The package is untarred into /usr/local/go and /usr/local/go/bin is added to the PATH.

lazygit - The most incredible way to use git

A tui to represent git and all of it's beauty written and installed through go. Used heavily in tmux with prefix-G on dotmux.

Antidote Plugins

Plugin Description
fzf-tab Replace zsh tab completion with fzf
zsh-vi-mode Vi mode for zsh
zsh-syntax-highlighting Fish-like syntax highlighting as you type
zsh-autosuggestions Fish-like inline suggestions from history
zsh-autopair Auto-close brackets, quotes, and parentheses
zsh-history-substring-search Type a command and arrow up/down to search history
zoxide Smarter cd that learns your most-used directories
powerlevel10k Fast, configurable zsh prompt theme
zsh-autoswitch-virtualenv Auto-activate Python virtualenvs on cd
forgit Interactive git commands powered by fzf

Test Installer

The install_test.sh file runs a docker image for ubuntu (debian) or arch given a parameter ubuntu or arch. It creates a user with sudo priviledge and symlinks install.sh to /bin/doit. Just start the script to enter a test docker container and run doit to try it on the container.