My Adventure in Immutable OS: Micro OS
A slim configuration of Opensuse Micro OS to use it like immutable distro
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.
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!