Skip to content

georglauterbach/hermes

Repository files navigation

hermes

hermes installs programs and configuration files for the command line. The setup is non-intrusive (it does not overwrite existing files by default) and mostly unopinionated. hermes is built for x86_64 and aarch64.

Usage

# Download the latest version of hermes and
# place hermes at ${HOME}/.local/bin/hermes
function download_hermes_latest() {
  local HERMES="${HOME}/.local/bin/hermes"
  local RELEASE_URI_BASE='https://github.com/georglauterbach/hermes/releases'
  local VERSION

  VERSION=$(curl --silent --show-error --fail --location \
    --write-out '%{url_effective}' --output /dev/null    \
    "${RELEASE_URI_BASE}/latest" | sed 's|.*/||')

  mkdir --parents "$(dirname "${HERMES}")"
  curl --silent --show-error --fail --location --output "${HERMES}" \
    "${RELEASE_URI_BASE}/download/${VERSION}/hermes-${VERSION}-$(uname -m)-unknown-linux-musl"

  chmod +x "${HERMES}"
}

download_hermes_latest      # download hermes
"${HOME}/.local/bin/hermes" # execute hermes

Additional Setup

Supplementary Setup Scripts

You can find setup scripts that aid in setting up machines in data/scripts/. You might also want to run bat cache --build to initialize bat's theme cache.

Examples

You can find some personal configuration files in data/examples/.

Bash

hermes's command line setup focuses on Bash. Use source "${HOME}/.config/bash/90-hermes.sh" in ${HOME}/.bashrc to load the setup. To modify the setup, adjust ${HOME}/.config/bash/91-hermes_settings.sh.

Programs

hermes installs additional programs into ${HOME}/.local/bin/.

  • bat
    • cat with syntax highlighting and git integration
    • enabled with HERMES_INIT_BAT, override cat with HERMES_OVERRIDE_CAT_WITH_BAT
  • btop
    • a resource monitor
    • consider running sudo setcap cap_perfmon=+ep "$(command -v btop)" to set the perfmon capability for btop
  • delta
    • syntax-highlighting pager for git, diff, grep, and blame output
    • override diff with HERMES_OVERRIDE_DIFF_WITH_DELTA
  • dust
    • a more intuitive version of du
  • dysk
    • get information on filesystems, like df, but better
  • eza
    • fast, modern alternative to ls
    • override ls with HERMES_OVERRIDE_LS_WITH_EZA
  • fd
    • fast, modern alternative to find
    • override find with HERMES_OVERRIDE_FIND_WITH_FD
  • flyline
    • a Bash plugin to replace readline for a modern line editing experience
    • enabled with HERMES_INIT_FLYLINE
  • fzf
    • general-purpose command-line fuzzy finder
    • enabled with HERMES_INIT_FZF
  • gitui
    • a fast, modern TUI for git
  • jaq
    • a jq clone focussed on correctness, speed, and simplicity
    • override jq with HERMES_OVERRIDE_JQ_WITH_JAQ
  • just
    • just a command runner
  • ripgrep
    • fast, modern alternative to grep
    • override grep with HERMES_OVERRIDE_GREP_WITH_RIPGREP
  • starship
    • minimal, blazing-fast, and infinitely customizable prompt for any shell
    • enabled with HERMES_INIT_STARSHIP
    • generate completion by running starship completions bash >"${HOME}/.local/share/bash-completion/completions/starship.bash"
  • yazi
    • blazing fast terminal file manager
    • set/override y with HERMES_OVERRIDE_Y_WITH_YAZI
    • for optional extensions, take a look at the installation documentation
  • zoxide
    • smarter cd command
    • enabled with HERMES_INIT_ZOXIDE, override cd with HERMES_OVERRIDE_CD_WITH_ZOXIDE
  • zellij
    • terminal workspace with batteries included

About

Delivers programs and configuration for your command line like a god. But actually a glorified tar-decompressor.

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Sponsor this project

 

Contributors