Skip to content

smprather/engineering-loadout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

404 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Engineering Loadout

A self-contained, offline-first toolkit for engineering work environments.

  • Old Linux distros
  • Limited or no internet access
  • No sudo / no root
  • Built from 30+ years of engineering workflow experience
  • All built on AlmaLinux 8.10 (RHEL 8 clone), glibc 2.28
    • Compatible with RHEL 9.x and beyond

Drop the release tarball onto a locked-down workstation, run one command, and you have modern Linux tooling and sane configurations in your $HOME — no installer, no admin, no internet.


Installation

Linux

Download the .tar.gz release archive from the latest release, then extract and run — nothing is built or compiled, the archive ships every binary, library, font, and config file ready to install:

tar xzf engineering-loadout-v*.tar.gz
cd engineering-loadout-v*/
./loadout install @engineering-loadout

That installs the @engineering-loadout group — a curated set of command-line tools, editors, fonts, and configuration files — into ~/.local and ~/.config. Reload your shell with exec bash when it finishes.

Re-run the same command against a newer release tarball to update. Unchanged files are skipped, so re-runs are quick.

Picking what to install

Name packages or groups the same way dnf or apt works:

./loadout install @engineering-loadout                    # the full set
./loadout install octave                                  # one package
./loadout install @gui-suite                              # a group
./loadout install @engineering-loadout --skip @fonts-all  # everything but fonts
./loadout list                                            # browse packages
./loadout list --tag editor                               # filter by tag
./loadout search vim                                      # substring search
./loadout info gvim                                       # details for one package
./loadout install octave --dry-run                        # preview only

Windows

.\loadout.ps1                  # PowerShell 7+
.\loadout-pwsh-bootstrap.ps1   # if starting from PowerShell 5.1

No elevation required.


What's Inside

Component Description
Bash Layered shell config, 100+ aliases, fzf / zoxide / eza / bat integration
Neovim LSP, 326 offline Tree-sitter parsers, curated plugin set
Vim Vim 9.2 with NERDTree, SimpylFold, and vim-liberty bundled
Tmux Sessions that survive reboot (resurrect + continuum), Ctrl-\ prefix
Helix Ready to run offline
Starship Cross-shell prompt, Linux and Windows configs
PowerShell Aliases, Unix coreutils wrappers, Starship + zoxide integration
WezTerm Terminal emulator config
AutoHotKey AHK v2 flat script, feature flags via loadout_keys.toml
EditorConfig Consistent formatting across all editors
Command-line tools Modern CLI utilities, ready offline — see table below
Nerd Fonts 7 font families

Design Goals

Offline-first. Plugins, parsers, fonts, and binaries are bundled. Nothing is fetched at install time. Ship it to an air-gapped workstation and it just works.

No root. Everything lands in $HOME (or --dest-dir). No package manager, no sudo, no IT ticket.

Shared-tree installs stay relocatable: bundled runtime/data assets live under ~/.local/share (or the staged prefix) and shell init exports the paths needed for discovery, including TERMINFO_DIRS for bundled st terminfo.

Multi-platform. RedHat 7 / 8 / 9, Suse, x86_64 / ARM / PowerPC, and Windows.

Layered configuration. Settings flow from lowest to highest precedence:

Global → Corp → Site → Team → Project → User

Each layer overrides the previous without touching the upstream files. Personal tweaks, team conventions, and corporate defaults all coexist without forking anything. Pull a loadout update and your overrides still work.

Opinionated but escapable. Sensible defaults out of the box. Every preference is a LOADOUT_CFG_* variable you can override in your user layer:

# bash/user/config.sh
export LOADOUT_CFG_PREFERRED_VI=vim        # use vim instead of nvim
export LOADOUT_CFG_ENABLE_STARSHIP=0       # use the built-in prompt
export LOADOUT_CFG_ATTACH_TO_TMUX=1        # auto-attach tmux on login

Bundled Packages

Each row is a package you can install by name with ./loadout install <name>. Groups (@engineering-loadout, @gui-suite, @core-cli, …) bundle related packages so you can install many at once. Run ./loadout list to see every package and every group, or ./loadout list --groups to see just the groups.

Package Version Description
agent-deck 1.9.12 TUI dashboard for AI agent orchestration
bash 5.3.9 The GNU Bourne Again SHell
bat 0.26.1 cat with syntax highlighting and Git integration
biome 2.4.15 Fast JSON / JS / TS / CSS formatter, linter, and LSP
broot 1.56.2 Interactive tree navigator and fuzzy finder
btm 0.12.3 Cross-platform system monitor (CPU, memory, process tree)
btop 1.4.7 Resource monitor — top for people who care about aesthetics
bzip2 1.0.8 High-quality block-sorting file compressor
choose 1.3.7 Human-friendly cut and awk replacement
dasel 3.8.1 Select, update, and convert data across JSON / YAML / TOML / XML / CSV
delta 0.19.2 Git diff pager with syntax highlighting and line numbers
duf 0.9.1 df replacement with colored disk usage table
dust 1.2.4 Intuitive du — shows disk usage by size, at a glance
expect 5.45.4 Tcl-based tool for automating interactive CLI programs
eza 0.23.4 Modern ls with color, icons, Git status, and tree view
fd 10.4.2 Fast, ergonomic find replacement
firefox 140.11.0 Mozilla Firefox ESR — bundled with launcher + libxul, no system install required
fish 4.7.1 Fish shell — autosuggestions, syntax highlighting, no config needed
fzf 0.62.0 Blazing-fast fuzzy finder for files, history, anything
gnuplot 6.0.2 Portable command-line graphing utility
gping 1.20.1 ping with a real-time ASCII graph
gvim 9.2 GTK3 GUI vim
htop 3.2.1 Interactive process viewer — the original top upgrade
hx 25.07.1 Helix modal editor — Kakoune-inspired, batteries included
hyperfine 1.20.0 Command-line benchmarking tool with statistical output
jq 1.8.1 Lightweight and flexible command-line JSON processor
jupyterlab 4.5.7 Web-based interactive notebooks (opens in browser)
just 1.50.0 Command runner — sane make replacement for project tasks
lazygit 0.61.1 TUI git client for staging, committing, and rebasing
liberty-tools 1.0.1 Fast Liberty .lib parser and browser-based viewer
mate-terminal 1.26.1 GTK3 terminal emulator
meld 3.20.4 GTK3 visual diff and merge tool
micro 2.0.15 Modern, intuitive terminal text editor — Ctrl+S just works
miller 6.18.1 CSV / TSV / JSON / NDJSON / XML data processor (mlr)
nedit-ng 2025.1 Qt5 rewrite of NEdit
nvim 0.12.2 Hyperextensible Vim-based text editor
nvim-qt 0.2.19 Qt5 GUI frontend for Neovim
octave 11.1.0 GNU Octave scientific computing
pigz 2.8 Parallel gzip — multi-core gzip / gunzip replacement
procs 0.14.11 ps replacement with colors and process tree
pv 1.6.6 Monitor progress of data through a pipe
pygwalker 0.5.0.1 Interactive Tableau-style data explorer for pandas DataFrames
rg 15.1.0 ripgrep — recursive search that respects .gitignore
rsync 3.4.1 Fast, incremental file transfer
ruff 0.15.12 Extremely fast Python linter and formatter
sd 1.0.0 Intuitive sed replacement — sd 'old' 'new' just works
shfmt 3.13.1 Shell script formatter (bash / sh / mksh / bats)
st 0.9.3 suckless st — minimal X11 terminal
starship 1.25.1 Cross-shell prompt — fast, informative, configurable
stylua 2.4.1 Opinionated Lua code formatter
tealdeer / tldr 1.8.1 Fast tldr client with offline page cache
text-serdes 0.1.1 Short-lived encrypted text transport for copy/paste workflows
time-plot 0.1.0 Plot arbitrary data vs. zero-based time, uPlot HTML output
tkdiff 6.0 Tcl/Tk visual diff and merge tool
tmux 3.6a Terminal multiplexer
ty 0.0.35 Extremely fast Python type checker
urxvt 9.31 rxvt-unicode — X11 terminal with Unicode and Xft
uv 0.11.13 Extremely fast Python package installer and resolver
vim 9.2 Vim 9.2
visidata 3.3 TUI spreadsheet for exploring CSV / TSV / JSON / NDJSON data
xsel 1.2.0 X11 clipboard command-line access tool
xterm 410 X Window System terminal emulator
yank 1.3.0 Select terminal output and copy to clipboard
yq 4.53.2 jq for YAML, JSON, XML, CSV, TOML, and properties files
zoxide 0.9.9 Smarter cd — learns your most-used directories
zsh 5.9 Z shell — advanced tab completion, powerful scripting

If your machine doesn't already have GTK3 / Qt5 / X11 / Wayland libraries installed (common on remote compute nodes), install gui_libs alongside any GUI application:

./loadout install gvim nedit-ng gui_libs
# Or use the group, which pulls gui_libs for you:
./loadout install @gui-suite

Python

Python 3.14.4 — a portable Python build that installs to ~/.local. Use python3.14 and pip3.14 to pin this build.


Neovim — 326 Offline Tree-sitter Parsers

The full nvim-treesitter parser registry is bundled and installs offline to ~/.local/share/nvim/tree-sitter-parsers/. All 326 languages work out of the box, no internet required.


Nerd Fonts

Seven font families bundled and installed to ~/.local/share/fonts:

Font Notes
Envy Code R Clean, distinctive coding font
Fira Code Ligature-rich monospace
Hack Designed for source code
Inconsolata Humanist monospace
Iosevka Term Ultra-narrow, highly legible
JetBrains Mono Designed for long coding sessions
Source Code Pro Adobe's open-source workhorse

Use ./loadout install … --skip @fonts-all to skip every font, or --skip font-firacode to skip a single family.


Bash Configuration

Six-layer override chain (global → corp → site → team → project → user), LOADOUT_CFG_* knobs, and a curated alias set:

  • b / bb / bbb … — cd .. up 1, 2, 3 levels
  • cdd / cddd … — cd to the N-th most recently modified directory
  • g — ripgrep with sensible defaults (smart case, hidden, no-ignore)
  • ffd with sensible defaults, falls back to find
  • gs / gc / gp / gd / ga — git status / commit / push / diff / add
  • vi / vim — your preferred editor (nvim by default)
  • catbat with no paging
  • ll / la / lhls variants (sizes, all files, human-readable)

Tmux

Prefix Ctrl-\. Shift-arrows for pane navigation, Ctrl-arrows for windows, Prefix+15 for layout presets, Prefix+v to capture the pane buffer into nvim. tmux-resurrect and tmux-continuum bundled — your sessions come back after a reboot.

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors