Skip to content

georglauterbach/hermes

Repository files navigation

hermes

Delivers setup and configuration for your CLI like a god. But actually a glorified tar-decompressor.

About

hermes places selected programs and configuration files for your user. The configuration is mostly unopinionated, non-intrusive, and tries to enhance the out-of-the-box experience of your CLI. hermes is built for x86_64 and aarch64.

Usage

To download the latest version of hermes, run the following commands:

function download_hermes() {
  local HERMES_LOCATION="${HOME}/.local/bin/hermes"
  local HERMES_RELEASE_URI_BASE='https://github.com/georglauterbach/hermes/releases'
  local HERMES_VERSION

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

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

  chmod +x "${HERMES_LOCATION}"
}

# download hermes
download_hermes

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

Additional Setup

Bash

  1. To enable hermes: add source "${HOME}/.config/bash/90-hermes.sh" to (the end of) your ${HOME}/.bashrc
  2. To modify hermes: edit the file ${HOME}/.config/bash/91-hermes_settings.sh

Programs

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

  • Atuin
    • "magical" shell history using SQLite rather than a file
    • enabled with HERMES_INIT_ATUIN
    • CTRL+e (or up-arrow when HERMES_CONFIG_ATUIN_DISABLE_UP_ARROW=false) brings up the history
    • setting HERMES_CONFIG_ATUIN_DB_FILE changes the database file
  • bat
    • cat with syntax highlighting and git integration
    • enabled with HERMES_INIT_BAT, override cat with HERMES_OVERRIDE_CAT_WITH_BAT
  • bottom
    • cross-platform graphical process/system monitor and <X>top replacement
  • ble.sh
    • command line editor written in pure Bash which replaces the default GNU Readline
    • enabled with HERMES_INIT_BLE_SH
  • 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
  • fzf
    • general-purpose command-line fuzzy finder
    • enabled with HERMES_INIT_FZF
  • gitui
    • a fast, modern TUI for git
  • 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
  • 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

Supplementary Setup Scripts

You can find additional setup scripts that aid in setting up machines under the data/scripts/ directory.

Examples

You can find setup examples in the data/examples/ directory. A custom GUI setup can be found there too.

About

delivers setup and configuration to your system like a god

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •