I have created a small script to list the packages needed to add an additional desktop to a default Silverblue desktop. This script has to be run inside a workstation-ostree-config repo on the branch for the corresponding Silverblue release. Here is a run for Fedora 32 with the current desktops I made a package selection for:
kde: breeze-icon-theme xorg-x11-server-Xwayland plasma-user-manager sddm kwin kf5-baloo-file kde-settings-pulseaudio xdg-desktop-portal-kde kinfocenter kwayland-integration kwalletmanager5 plasma-breeze ksysguard sddm-breeze plasma-nm glibc-all-langpacks dolphin polkit-kde qt5-qtbase-gui kdeplasma-addons plasma-discover plasma-drkonqi kf5-akonadi-server-mysql sddm-kcm gnome-keyring-pam konsole5 plasma-workspace-wayland khotkeys kscreenlocker pam-kwallet plasma-workspace qt5-qtdeclarative kf5-akonadi-server initial-setup-gui kwin-wayland xorg-x11-drv-libinput kscreen kde-print-manager kmousetool kde-gtk-config NetworkManager-config-connectivity-fedora bluedevil ark plasma-pa phonon-qt5-backend-gstreamer plasma-desktop kdialog
xfce: xfce4-datetime-plugin xfce4-settings bluebird-gtk2-theme greybird-xfce4-notifyd-theme bluebird-xfwm4-theme xfwm4 xfce4-about thunar-archive-plugin xfce4-taskmanager xfdesktop blueberry thunar-media-tags-plugin xfce4-session xfce4-appfinder arc-theme xfwm4-theme-nodoka albatross-xfwm4-theme gtk-xfce-engine adwaita-icon-theme adwaita-gtk2-theme greybird-light-theme desktop-backgrounds-compat greybird-xfwm4-theme albatross-gtk3-theme thunar-volman gvfs xfconf lightdm-gtk greybird-dark-theme gnome-keyring-pam xfce4-panel xfce4-places-plugin xfce4-pulseaudio-plugin albatross-gtk2-theme bluebird-gtk3-theme Thunar initial-setup-gui xfce4-terminal xfwm4-themes xscreensaver-base fedora-icon-theme nm-connection-editor xfce4-power-manager network-manager-applet xfce4-screenshooter-plugin
lxqt: breeze-icon-theme lxqt-config lxqt-policykit sddm upower falkon-kwallet lxqt-notificationd lxqt-themes firewall-config notification-daemon lxqt-panel network-manager-applet xdg-desktop-portal-kde falkon pcmanfm-qt lxqt-globalkeys lxqt-session obconf breeze-gtk xdg-user-dirs lxqt-runner lxqt-openssh-askpass openbox lxqt-qtplugin initial-setup-gui lxqt-powermanagement sddm-themes lxqt-themes-fedora libqtxdg qterminal fedora-icon-theme perl-File-MimeInfo lxqt-about nm-connection-editor ark breeze-cursor-theme
deepin: deepin-system-monitor deepin-editor deepin-desktop deepin-screenshot fedora-icon-theme deepin-file-manager deepin-image-viewer firewall-config chromium deepin-calendar deepin-calculator deepin-picker
pantheon: switchboard-plug-pantheon-shell contractor pantheon-session-settings wingpanel-indicator-session pantheon-agent-polkit wingpanel-indicator-notifications switchboard-plug-onlineaccounts gala switchboard elementary-icon-theme switchboard-plug-sharing wingpanel-indicator-power elementary-screenshot-tool pantheon-agent-geoclue2 elementary-theme switchboard-plug-about elementary-wallpapers wingpanel wingpanel-indicator-keyboard elementary-shortcut-overlay wingpanel-indicator-network elementary-music elementary-capnet-assist switchboard-plug-display gnome-session elementary-code elementary-videos wingpanel-indicator-datetime switchboard-plug-a11y elementary-sound-theme switchboard-plug-printers plank elementary-camera switchboard-plug-sound wingpanel-indicator-bluetooth elementary-greeter switchboard-plug-notifications switchboard-plug-mouse-touchpad switchboard-plug-keyboard wingpanel-applications-menu elementary-print wingpanel-indicator-ayatana switchboard-plug-networking elementary-photos elementary-calculator wingpanel-indicator-nightlight switchboard-plug-bluetooth elementary-calendar elementary-terminal switchboard-plug-applications elementary-files wingpanel-indicator-sound
mate: mate-themes atril-caja firewall-config caja-actions slick-greeter-mate firefox mate-power-manager f32-backgrounds-mate mate-session-manager libmatekbd blueberry mate-notification-daemon usermode-gtk f32-backgrounds-extras-base gtk2-engines mate-screensaver seahorse-caja atril mate-search-tool mate-disk-usage-analyzer mate-terminal f32-backgrounds-base system-config-printer-applet eom gnome-epub-thumbnailer libmatemixer caja-image-converter mate-screenshot mate-menus-preferences-category-menu mate-control-center nm-connection-editor mate-polkit caja-open-terminal mate-applets mate-desktop mate-system-log mate-icon-theme mate-user-admin lightdm system-config-language mate-user-guide gvfs-nfs mate-menus system-config-printer seahorse f32-backgrounds-extras-mate libmateweather gstreamer1-plugins-ugly-free caja-sendto mate-calc setroubleshoot mate-system-monitor mate-settings-daemon mate-backgrounds atril-thumbnailer dconf-editor lm_sensors alsa-plugins-pulseaudio pluma caja caja-wallpaper libsecret initial-setup-gui mate-panel mozo pavucontrol mate-dictionary mate-media gucharmap engrampa caja-xattr-tags parole network-manager-applet marco
And the commands to switch to KDE desktop for example:
$ sudo rpm-ostree install <packagelist>
$ sudo systemctl reboot
---
# login on a TTY
$ sudo systemctl disable --now gdm
$ sudo systemctl enable --now sddm
You may encounter errors such as package XXX is already installed
. This is fine and the corresponding packages just need to be removed from the list of packages to overlay.
Don’t forget to set the Desktop type to Plasma / Plasma (Wayland) before login.
Enjoy you never outdated alternative desktop Silverblue system