>>>>MicroOS as a desktop OS first things to do<<<<


disclaimer: this is a work in progress and at the moment mainly writen from my own perspective.





grab ISO from https://en.opensuse.org/Portal:MicroOS/Downloads
Put ISO on a USB drive and start the installation proces.
Choose if you want to use Gnome or KDE.

In what follows:

* commands starting with `$` can be copied straight into your terminal prompt.
* commands starting with `#` can only be run inside a transactional-update shell.

Ways to install applications


You can install applications in several ways:
* flatpaks from flathub -- the _preferred solution_
* RPM's via a package manager
* RPM's in a toolbox `toolbox -u`
* snaps (requires some extra setup to get snapd installed)
* AppImages
!!! info
The reason _flatpaks_ are preferred is that they provide a self-contained environment offering a pleasant balance between security, dependence integrity and performance. See [here](https://flatpak.org/) for details.

Package manager options


MicroOS now has a few different package managers as an option during install:
* transactional-update with zypper `the old default, and still the default for the server version`
* Packagekit + tukit `the new default, using pkcon and tukit`
* microdnf `an experimental package manager based on dnf`
The reason for changing package managers is because pkcon gives the opportunity to use Gnome Software or Discover for KDE as an installer of RPM's. And currently we are working on the ability to let Gnome Software and Discover perform system upgrades.

Transcational-update _old default_


commands for transactional-update are:
* `sudo transactional-update pkg install package_name` install a rpm package
* `sudo transactional-udpdate dup` perform a system upgrade to the next release
* `sudo transactional-update shell` open a shell of the next snapshot (you can use zypper commands there)

Packagekit + tukit _new default_


commands for Packagekit and tukit:
* `pkcon install package_name` install a rpm package
* `pkcon update` perform a system upgrade to the next release
* `sudo tukit execute bash` open a shell of the next snapshot (you can use zypper commands there)

Microdnf


commands for microdnf:
* `microdnf install package_name` install a rpm package
* `microdnf upgrade` perform a system upgrade to the next release

Gnome


Gnome is currently in a beta stage. At first boot flatpaks are enabled and some flatpaks are installed by default (Mozilla Firefox, Text Editor, Gnome Calculator and Extention Manager).
After the first boot script finishes you can open Gnome Software to install more software.

KDE


In discover enable the flatpak repo

Normal theme installations don’t work. But you can install themes via a transactional-update shell: (For example the Arc theme and papirus-icon-theme)

$ sudo transactional-update shell
# cd /tmp
# wget -qO- https://raw.githubusercontent.com/PapirusDevelopmentTeam/arc-kde/master/install.sh | sh
# wget -qO- https://git.io/papirus-icon-theme-install | sh
# exit
$ sudo reboot


Other themes:
Qogir-icon-theme:
https://github.com/vinceliuice/Qogir-icon-theme

Matcha-gtk:
https://github.com/vinceliuice/Matcha-gtk-theme

Matcha-KDE:
https://github.com/vinceliuice/Matcha-kde
Akwa-gnome:
https://github.com/berkiyo/akwa

>>>General stuff<<<


If you want to install flathub for only your user (in /home/~ folder):
$ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

If you want to install flathub for all users (in /var folder):
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

>>>Via flatpak install<<<


Firefox
Libreoffice
VLC
etc.

>>>If you want to use snapd do the following<<<

Make sure you've disabled SELinux and enabled AppArmor. Otherwise it will NOT work.
$ sudo transactional-update shell
# zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed snappy
# zypper --gpg-auto-import-keys refresh
# zypper ref
# zypper dup --from snappy
# zypper in snapd
# exit
$ sudo reboot
$ sudo mksubvolume /snap
$ source /etc/profile
$ sudo systemctl enable --now snapd
$ sudo systemctl enable --now snapd.apparmor

You can install snaps then via the terminal:
$ sudo snap install

>>>If you want to install virtualbox<<<


$ sudo transactional-update shell
# zypper ref
# zypper in virtualbox-qt
# exit
$ sudo reboot

>>If you want to install the extension pack for the host<<


$ sudo transactional-update shell
# cd /tmp
# LatestVirtualBoxVersion=$(wget -qO - https://download.virtualbox.org/virtualbox/LATEST-STABLE.TXT) && wget "https://download.virtualbox.org/virtualbox/${LatestVirtualBoxVersion}/Oracle_VM_VirtualBox_Extension_Pack-${LatestVirtualBoxVersion}.vbox-extpack"
# VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-${LatestVirtualBoxVersion}.vbox-extpack
# exit
$ sudo reboot

>>>If you want to install software from OBS<<<


Find what you are looking for on software.opensuse.org
Choose the OpenSUSE Tumbleweed repo, but you can't use the 1-click install, as there is no YaST and the 1-click installer has no access to a transactional-update.
So for example if we install zerotier. choose a TumbleWeed repository. But click on 'Expert Download'
And choose the 'Add repository and install manually' option.

$ sudo transactional-update shell
# zypper addrepo https://download.opensuse.org/repositories/home:alphard:Network:RPM/openSUSE_Tumbleweed/home:alphard:Network:RPM.repo # zypper ref
# zypper in zerotier-one
# exit
$ sudo reboot

>>>If you install on a laptop<<<


My laptop install was missing 2 important packages. TLP for better battery management and ModemManager because my laptop has a WWAN moden.
$ sudo transactional-update pkg install tlp ModemManager
$ sudo reboot




Custom aliases


nano .bashrc
#My custom aliases
alias shalt="sudo systemctl halt"
alias sboot="sudo systemctl reboot"
alias pu="pkcon update"
alias steb="sudo tukit execute bash"
alias sts="sudo transactional-update shell"
alias stsc="sudo transactional-update shell --continue"
alias stdc="sudo transactional-update dup --continue"
alias std="sudo transactional-update dup"
alias sfu="sudo flatpak update -y && flatpak update -y"
alias fsu="sudo flatpak update -y && flatpak update -y && sudo snap refresh"
alias dfs="pkcon update && sudo flatpak update -y && flatpak update -y && sudo snap refresh"

Other places:

https://opensuse.github.io/openSUSE-docs-revamped-temp/microos_getting_started/
https://dariofaggioli.wordpress.com/2020/10/16/opensuse-microos-as-your-desktop-install/
https://dariofaggioli.wordpress.com/2021/06/18/microos-as-your-desktop-prime-time/

first boot commands:

sudo tukit execute bash
groupadd vboxusers
groupadd wheel
groupadd docker
usermod -a -G wheel $USER
usermod -a -G vboxusers $USER
usermod -a -G docker $USER
echo "%wheel ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/wheel
echo "$USER:100000:65536" > /etc/subuid
echo "$USER:100000:65536" > /etc/subgid
exit

toolbox GUI applications


toolbox enter
sudo zypper ref && sudo zypper dup
sudo zypper in adwaita-icon-theme xorg-x11-fonts libX11-xcb1 gsettings-desktop-schemas
sudo gdk-pixbuf-query-loaders-64 --update-cache

This is what I use for opening Vivaldi inside toolbox:

nano ~/.local/share/applications/toolboxVivaldi.desktop

[Desktop Entry]
Type=Application
Name=tool Vivaldi
Exec=toolbox run vivaldi
Icon=org.gnome.Nautilus
Terminal=true