My Adventure in Immutable OS: Micro OS

A slim configuration of Opensuse Micro OS to use it like immutable distro

Nicola Landro
3 min readJun 1, 2024

The most important things of an immutable distro like Micro OS is that it is IMMUTABLE so to change the sys libs you must made transactional update and you must do it few times.

Opensuse Micro OS KDE desktop

So to install programs you must use alternatives and not standard package manager if not necessary. In particular I will use the following solutions:

  • Flatpack: for app like firefox and generic desktop app
  • Appimage: for some other desktop apps like Godot
  • Distrobox: in wich I configure my working environment in the os that is more confortable or used
  • podman: for distrobox is a docker alternative for containers that do not have a deamon running, now it also support gpus.

Follow the setup of each components, sometimes is needed to restart to take effect, almost any transactional-update.

Install Micro OS

I use official package to install Micro OS in particular I installed the KDE alpha version. If you install near your principal linux sistem you must exec if ubuntu like

sudo update-grub

Or if opensuse Tumbleweed and Leap:

sudo grub-mkconfig -o /boot/grub/grub.cfg
# for check open Bootloader Manager from apps

Flatpack

Flatpack is just installend and working without do nothing.

Appimage

To use appimage you only need to install fuse:

sudo transactional-update addgroup fuse

I tested it on Blender 2.9 appimage because I have an old hardware not supported from newest version of blender.

Fish shell [Optional]

I setup fish shell as default shell, so install with:

sudo transactional-update pkg install fish git

Set as default shell (and restart)

chsh -s (which fish)

Podman & Podman compose

To use container i install podman:

sudo transactional-update pkg install podman podman-compose

Simple test with

podman container list

Distrobox

Now you can install distrobox that will use podman for container.

sudo transactional-update pkg install distrobox

Test with:

distrobox create -i docker.io/library/ubuntu:22.04 --name ubuntu-dev
distrobox enter ubuntu-dev
# wait a lot

# download vscode deb
sudo apt install ./code_1.86.2-1707854558_amd64.deb
distrobox-export --app code
# now you must see vscode as app in your desktop environment

Using distrobox commands is also possible to box your configured machine to easy port it on new installation and formatting.

Music setup [Optional]

I setup for music in particular to write partiture and record.

For writing partitures I install muse score:

flatpak install flathub org.musescore.MuseScore

Instead for recording and midi eperience I download reaper. It have pipewire yet but it need also jack:

sudo transactional-update pkg install pipewire-alsa pipewire-libjack-0_3

For GUI configurations of jack I also add the following:

sudo transactional-update pkg install helvum pipecontrol

Run reaper with pipewire jack:

pw-jack ./reaper  
#or
pw-jack-0.3 ./reaper

Other Configs [Optional]

I decide to use yakuake as terminal application so:

sudo transactional-update pkg install yakuake

I Setup F1 as shortcut for dropdown open and F2 for full screen, to not conflict with F12 and F11 browser shortcut.

To share clipboard and other controls with my smartphone I use KDEConnect:

sudo transactional-update pkg install kdeconnect-kde

And the last app that I use is Pomodoro timer in particular Fokus installed using add widget kde funcion.

Updates

To update all flatpack apps you can run:

flatpak update

For the system instead you can use:

sudo transactional-update dup 

Conclusion

Is important to have a good experience to use the immutable distro correctly so try to use flatpack and appimage if you need an experience like classical distro do it inside a distrobox that using contaienr and do not loose power of your machine like VM.

Thanks to Open source and Free software in particular thanks to people behind!

--

--

Nicola Landro

Linux user and Open Source fun. Deep learning PhD. , Full stack web developer, Mobile developer, cloud engineer and Musitian.