[Guide] [Advanced] Hacking into the RebornOS Calamares Installer

(Advanced Guide) Hacking into RebornOS Calamares Installer

Warning: Modifying the configuration files of Calamares may result in a broken installer, or worse, result in loss of important data from your computer. Do not proceed with this unless you know what you are doing and take full responsibility for the ensuing consequences.

If you are an advanced user who is familiar with Calamares’ configuration files and if you want to modify our installer slightly to get a custom install, you can find the appropriate files in /etc/calamares:

The settings.conf file is just a dummy that will be replaced by either settings_online.conf or settings_offline.conf when you either click on icons to launch Calamares or when you use the Welcome app to launch it.

Module-specific configuration files are found in the modules directory:

Here is a primer on the directory organization:

  • The file settings.conf is a dummy that is replaced with either settings_online.conf or settings_offline.conf depending on which icon is clicked either on the desktop or on the Welcome app.
  • The files settings_online.conf and settings_offline.conf are deliberately analogous line by line. They just have different parts commented out to differentiate them from each other (and minor switches between offline-online words). This helps us keep both up to date when we make changes in one of them.
  • The branding, modules and qml directories are the ones used by Calamares. The rest are custom ones:
    • The development directory is an area to keep source images or test code that will not end up in the configuration package. It is not used by the installer.
    • The images directory will be copied to /etc/calamares for any modules to use. The files here are referenced by file path within various module-specific .conf files and within the python post-install script.
    • The scripts directory contains optional convenience scripts that will not be in the package and don’t need to be used. This is not used by the installer.
    • The local_packages directory contains packages meant for the offline installation. Currently it only has our customized grub theme. This is used by the python post-install script.
    • The post_install directory has a Python based post-install script (which logs at /var/log/post_install.log in the target installation) that performs any desktop-specific or package-specific configuration after install, and also copies the rootfs directory to the final destination paths on the target installed system. If this post_install script works well for many different things, we might make it into a Calamares module for the upstream Calamares repository.
  • Each .conf file in the modules directory has a URL at the top for reference. These URLs lead to the upstream .conf files in the Calamares git repository
  • Our Calamares is regularly updated to the latest git version so that we get all the bug fixes and features. But we don’t directly use the upstream git version. We fork it to ensure that there is no outstanding breakage that makes the installer unusable.