June 13, 2023

Experimenting with OpenSUSE MicroOS and i3 window manager: Day 1

Immutable desktops have gained significant traction in recent years due to their stability and security advantages. If you’re interested in exploring immutable distributions, you can refer to this comprehensive list on GitHub that provides a curated selection of options: https://github.com/castrojo/awesome-immutable#distributions.

Two distribution caught my attention: Fedora Sericea and Greybeard(not on the list yet). Fedora Sericea is a variant of Fedora Silverblue, while Greybeard is an experimental project based on openSUSE MicroOS Desktop. Both distributions are built on the Sway tiling window manager, which serves as a drop-in replacement for the i3 window manager for X11.

Intrigued by the possibilities, I embarked on a little experiment and set up the i3 window manager on openSUSE MicroOS. Here’s what I did:

First, I downloaded the openSUSE MicroOS ISO from https://en.opensuse.org/Portal:MicroOS/Downloads . Then, using Virtual Machine Manager, I created a virtual machine with the following specifications:

  • Disk: 20GB
  • RAM: 2GB
  • CPU: 2

With the virtual machine set up, I proceeded with the installation:

  1. During the installation process, I chose the “MicroOS only” system role.
  2. In the software selection step, I made sure to include the “X Window System” and “Fonts” packages.


Once the installation was complete, I started setting up the i3 window manager:

  1. In the TTY, I ran the following commands to install i3 and the necessary packages. Reboot to activate the changes.
# transaction-update pkg install i3 i3blocks i3locks dmenu dunst
# reboot
# transactional-update pkg install lightdm dejavu-fonts
# reboot
  1. After the system rebooted, I changed the target unit to “graphical” to enable the graphical login screen:
# systemctl isolate graphical.target


See that the power management options are greyed out as the greeter needs additional configuration.

  1. Upon logging in, the i3-config-wizard window appeared, allowing me to generate a configuration file for my user or use the default one.


  1. I then configure the i3bar to use i3blocks instead of i3status and restarted i3 inplace by mod+Shift+r.

  2. To ensure that the system boots into graphical mode by default, I ran the following command.

# systemctl set-default graphical.target

And voila! Here’s how it looks.


In my next endeavor, I plan to expand the functionality of my setup by adding packages to cater to networking, audio, and other essential features. Additionally, I will integrate various utilities, applications, and tools to further enhance the overall user experience.

Powered by Hugo & Kiss.