Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/georglauterbach/hermes
Delivery of setup and configuration files for Ubuntu
https://github.com/georglauterbach/hermes
Last synced: 2 days ago
JSON representation
Delivery of setup and configuration files for Ubuntu
- Host: GitHub
- URL: https://github.com/georglauterbach/hermes
- Owner: georglauterbach
- License: mit
- Created: 2024-04-05T17:52:16.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-10-29T23:14:23.000Z (9 days ago)
- Last Synced: 2024-10-30T01:49:50.417Z (9 days ago)
- Language: Shell
- Homepage:
- Size: 162 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
= _Hermes_
:source-highlighter: highlightjs== 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.
```console
$ 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 ` to download and use a specific version. This feature is mutually exclusive with `--local-installation` and throws an error when used together.
== Additional Optional Setup
[[subsection::custom-console-initialization]]
=== Custom Console InitializationThis 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.
. 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.
. 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`:
. `HERMES_LOAD_EXTRA_PROGRAMS` to load the configuration of programs listed link:./data/unversioned/no_gui/data/home/.config/bash/30-extra_programs.sh[here]
. `HERMES_LOAD_ALIASES` to load aliases define link:./data/unversioned/no_gui/data/home/.config/bash/80-aliases.sh[here]
. `HERMES_LOAD_WRAPPER` to load wrappers, e.g. for `ls`, `cat`, `grep`, defined link:./data/unversioned/no_gui/data/home/.config/bash/90-wrapper.sh[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 <>.
=== Supplementary Setup Scripts
Under the link:./misc/[`./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. https://github.com/akinomyoga/ble.sh[`akinomyoga/ble.sh`]: command line editor that replaces the default GNU Readline
2. https://gitlab.com/volian/nala[`volian/nala`]: frontend for `libapt-pkg`=== Written in Rust
TIP: Check out https://github.com/cargo-bins/cargo-binstall[`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. https://github.com/mozilla/sccache[`mozilla/sccache`]: compiler wrapper that avoids compilation when possible
2. https://github.com/Canop/bacon[`Canop/bacon`]: background Rust code checker
3. https://github.com/zellij-org/zellij[`zellij-org/zellij`]: terminal workspace (multiplexer)
4. https://github.com/casey/just[`casey/just`]: command runner