Skip to content

Delivery of setup and configuration files for Ubuntu

License

Notifications You must be signed in to change notification settings

georglauterbach/hermes

Repository files navigation

Hermes

About

Hermes configures Ubuntu by installing various packages and placing (new) configuration files. The configuration enhances the out-of-the-box experience of Ubuntu. It will automatically detect the installed version (starting from Ubuntu 23.10 "Mantic Minotaur"). You can also optionally install and configure the GUI.

Important
Only x86_64 (full support) and aarch64 (only non-GUI) are supported.

Usage

The installation script can be downloaded and executed in the terminal.

$ curl -sSfL https://raw.githubusercontent.com/georglauterbach/hermes/main/setup.sh | bash

If you want to configure your graphical user interface too, you can use the --gui flag. With this flag, additional programs are installed that are only necessary when you have a GUI.

You may also use the --local-installation flag when you cloned this repository. This flag will causes the setup to be completely local, without requiring an internet connection. Only this repository has to be cloned in its entirety.

Additonally, you can specify a version with --version <GIT TAG> to download and use a specific version. This feature is mutually exclusive with --local-installation and throws an error when used together.

Optional Additional Setup

Custom Console Initialization

This project provides two "hooks" that you may use to adjust the configuration of the console. These hooks are files that are sourced during the setup process in ${HOME}/.bashrc. You have two ways of running these hook.

  1. You can either define the environment variables HERMES_CUSTOM_EARLY_SCRIPT and HERMES_CUSTOM_LATE_SCRIPT that contain the path to the files you want to source.

  2. You can use ${HOME}/.config/bash/20-custom_early.sh and ${HOME}/.config/bash/99-custom_late.sh as these paths are the default paths.

You should only use the early initialization when you need to change the configuration that this project loads itself. The late configuration is recommended and used when you want to supply configuration on top of this project.

Loading the Full Console Configuration

By default, this project does not load the full configuration of the shell. You can individually add more configuration by setting the value of the following environment variables to true:

  1. HERMES_LOAD_EXTRA_PROGRAMS to load the configuration of programs listed here

  2. HERMES_LOAD_ALIASES to load aliases define here

  3. HERMES_LOAD_WRAPPER to load wrappers, e.g. for ls, cat, grep, defined here

Where you define these variables does not matter; we need access to them when .bashrc is souced. You may optionally also export them in the early init script.

Supplementary Setup Scripts

Under the ./misc/ directory, you can find additional setup scripts that aid in setting up machines.

Supplementary Projects

You might want to take a look at the following outstanding projects. Their installation does not yet come with Hermes.

General

  1. akinomyoga/ble.sh: command line editor that replaces the default GNU Readline

  2. volian/nala: frontend for libapt-pkg

Written in Rust

Tip
Check out cargo-bins/cargo-binstall first. This way, you may be able to save yourself time by not requiring local compilation; use cargo binstall instead of cargo install.
  1. mozilla/sccache: compiler wrapper that avoids compilation when possible

  2. Canop/bacon: background Rust code checker

  3. zellij-org/zellij: terminal workspace (multiplexer)

  4. casey/just: command runner

About

Delivery of setup and configuration files for Ubuntu

Resources

License

Stars

Watchers

Forks