Skip to content

Instantly share code, notes, and snippets.

@ancorgs
Last active September 29, 2023 10:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ancorgs/e126936d6c90fd70ddc2fde90c320965 to your computer and use it in GitHub Desktop.
Save ancorgs/e126936d6c90fd70ddc2fde90c320965 to your computer and use it in GitHub Desktop.

Some fun ideas for using Agama from the installation media

Agama can be controlled with two interfaces:

  • A CLI (command-line interface) written in Rust
  • A web interface offering a more graphical and user-frienly way of doing things

Of course, to connect to the latter a browser is needed. Currently Agama-Live (the demo image for Agama) uses a full screen Firefox. We are not sure if that will be the solution in the definitive installation-media for future (open)SUSE distributions. It obviously has its drawbacks.

So let's explore some alternatives:

A lighter browser experience

Instead of Firefox we could use:

  • A more minimalistic browser like Cog or simplestbrowser (drawback: maintainance of the browser in the long term)
  • A custom application opening a browser engine. Since we already use Rust for the CLI client...

An alternative interface, in addition to CLI and web

Again, Rust looks like the most reasonable option here. Everything in Agama is Ruby (because of the YaST inheritance) and Rust.

There are plenty of frameworks/library in Rust to create TUI applications. For a quick experiment, we could even extend the existing "agama" command with some prototype (let's say something like agama config-tui storage) so all the current infrastructure to talk to D-Bus and so on is reused. Some of the many TUI libraries out there:

Of course, we could also go with a GUI application. There are also tons of options for GUI development at awesome Rust and even more options not listed there, like reml or reml4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment