Kinoite, a KDE (and now XFCE) version of Fedora Silverblue

Hi @bam. I do not have KDE specific development experience on Silverblue/Kinoite but I think building and running everything from within a toolbox should work.

See this section in the KDE development guide and this blog post on GNOME Shell development on Silverblue for the instructions to setup alternative sessions for full desktop testing.

1 Like

Thanks @siosm, the blog post was extremely useful and I was able to run Plasma in Toolbox for development purpose! :+1:

Just wonder what is the hassle here with building custom KDE based version of Fedora Silverblue?
As I see it, Plasma is included in the main repo and just can be layered on top of rpm-ostree image:

$ dnf groupinfo kde-desktop-environment
Last metadata expiration check: 1:26:50 ago on Sat 09 May 2020 04:52:22 PM MSK.
Environment Group: KDE Plasma Workspaces
 Description: The KDE Plasma Workspaces, a highly-configurable graphical user interface which includes a panel, desktop, system icons and desktop widgets, and many powerful KDE applications.
 Mandatory Groups:
   Administration Tools
   Common NetworkManager Submodules
   Core
   Dial-up Networking Support
   Fonts
   Guest Desktop Agents
   Hardware Support
   Input Methods
   KDE (K Desktop Environment)
   Multimedia
   Printing Support
   Standard
   base-x
 Optional Groups:
   3D Printing
   Cloud Management Tools
   Firefox Web Browser
   KDE Applications
   KDE Educational applications
   KDE Multimedia support
   KDE Office
   KDE Telepathy

So probably it’s enough to install packages of KDE (K Desktop Environment) group.
To get a list of the packages:

$ dnf groupinfo 'KDE (K Desktop Environment)'
Last metadata expiration check: 1:31:51 ago on Sat 09 May 2020 04:52:22 PM MSK.

Group: KDE (K Desktop Environment)
 Description: KDE is a powerful graphical user interface which includes a panel, desktop, system icons, and a graphical file manager.
 Mandatory Packages:
   NetworkManager-config-connectivity-fedora
   abrt-desktop
   adwaita-gtk2-theme
   akregator
   bluedevil
   breeze-icon-theme
   colord-kde
   cups-pk-helper
   dnfdragora
   dolphin
   firewall-config
   glibc-all-langpacks
   gnome-keyring-pam
   gwenview
   initial-setup-gui
   kaddressbook
   kamera
   kcalc
   kcharselect
   kcm_systemd
   kcolorchooser
   kde-gtk-config
   kde-partitionmanager
   kde-print-manager
   kde-settings-pulseaudio
   kdegraphics-thumbnailers
   kdeplasma-addons
   kdialog
   kdnssd
   keditbookmarks
   kf5-akonadi-server
   kf5-akonadi-server-mysql
   kf5-baloo-file
   kf5-kipi-plugins
   kfind
   kget
   kgpg
   khelpcenter
   khotkeys
   kinfocenter
   kmag
   kmail
   kmenuedit
   kmousetool
   kmouth
   konqueror
   konsole5
   kontact
   korganizer
   kruler
   kscreen
   kscreenlocker
   ksshaskpass
   ksysguard
   kwalletmanager5
   kwebkitpart
   kwin
   kwrite
   pam-kwallet
   phonon-qt5-backend-gstreamer
   pinentry-qt
   plasma-breeze
   plasma-desktop
   plasma-desktop-doc
   plasma-discover
   plasma-drkonqi
   plasma-nm
   plasma-nm-l2tp
   plasma-nm-openconnect
   plasma-nm-openswan
   plasma-nm-openvpn
   plasma-nm-pptp
   plasma-nm-vpnc
   plasma-pa
   plasma-pk-updates
   plasma-user-manager
   plasma-workspace
   plasma-workspace-geolocation
   polkit-kde
   qt5-qtbase-gui
   qt5-qtdeclarative
   sddm
   sddm-breeze
   sddm-kcm
   spectacle
   xorg-x11-drv-libinput
 Optional Packages:
   kaffeine
 Conditional Packages:
   k3b-extras-freeworld
   qt-at-spi

Yes, you can layer KDE packages on top of the default Silverblue install and it should work without any issue. This is currently the recommended approach until I figure out the issues I have with user/group management in f32.

What this project is about is creating images that only include what’s required for KDE and does not need overlayed packages. The images are thus smaller and install/update time shorter compared to the overlayed approach.

2 Likes

Understood. By the way, is there convenient way to layer Plasma?
All I could find involve manually pulling list of packages from the groups…

If you want a minimal desktop setup, you can take a look at what I am using to build the Kinoite refs in the workstation-ostree-config repo: kde-desktop-pkgs.yaml & fedora-kinoite.yaml.

Hello,

I run the “base” Kionoite 31. Lately, I haven’t been able to update due to a conflict between Fedora updates and the base system.

Deployments:
● ostree://kinoite:fedora/31/x86_64/base
Version: Base 31.20 (2020-02-24T15:54:16Z)
BaseCommit: e499932cde58ba29d122c8561f60699e3e20cfb8800b3be0195770deb9fd616f
Commit: 0ef5ea2b1e543c816e2121dcede25c9508ab1f93d8bdb8837a2c00779eaf65d1
├─ rpmfusion-nonfree-updates (2020-04-01T16:21:05Z)
├─ rpmfusion-free-updates (2020-04-01T15:51:10Z)
├─ updates-testing (2020-04-04T02:09:42Z)
├─ fedora (2019-10-23T22:52:47Z)
├─ rpmfusion-nonfree (2019-10-22T10:43:47Z)
├─ google-chrome (2020-04-02T19:48:31Z)
├─ updates (2020-04-04T01:40:42Z)
└─ rpmfusion-free (2019-10-22T10:21:36Z)
Staged: no
StateRoot: fedora
GPGSignature: 1 signature
Signature made Mon 24 Feb 2020 10:54:16 AM EST using RSA key ID DB27818F78688F83
Good signature from “Timothée Ravier tim@siosm.fr
LayeredPackages: aegisub bspwm compton conky dbus-x11 dmenu dunst emacs feh gvfs htop jq kmod-nvidia mpv neofetch neovim nnn paman pasystray pavucontrol polybar
ranger rofi rxvt-unicode-256color.x86_64 streamlink sxhkd sxiv thunar thunar-volman vlc wireguard xorg-x11-drv-nvidia youtube-dl zathura
zathura-cb zathura-djvu zathura-pdf-poppler zathura-ps
LocalPackages: rpmfusion-free-release-31-1.noarch rpmfusion-nonfree-release-31-1.noarch google-chrome-stable-79.0.3945.117-1.x86_64
mullvad-vpn-2020.3.0-1.x86_64

$ rpm-ostree upgrade
1 metadata, 0 content objects fetched; 336 B transferred in 1 seconds
Checking out tree e499932… done
Enabled rpm-md repositories: rpmfusion-nonfree-updates rpmfusion-free-updates updates-testing fedora rpmfusion-nonfree google-chrome updates rpmfusion-free
rpm-md repo ‘rpmfusion-nonfree-updates’ (cached); generated: 2020-05-22T11:26:29Z
rpm-md repo ‘rpmfusion-free-updates’ (cached); generated: 2020-05-20T08:27:32Z
rpm-md repo ‘updates-testing’ (cached); generated: 2020-05-24T04:43:43Z
rpm-md repo ‘fedora’ (cached); generated: 2019-10-23T22:52:47Z
rpm-md repo ‘rpmfusion-nonfree’ (cached); generated: 2019-10-22T10:43:47Z
rpm-md repo ‘google-chrome’ (cached); generated: 2020-05-21T17:56:32Z
rpm-md repo ‘updates’ (cached); generated: 2020-05-24T02:13:24Z
rpm-md repo ‘rpmfusion-free’ (cached); generated: 2019-10-22T10:21:36Z
Importing rpm-md… done

Forbidden base package replacements:
rpm-libs 4.15.1-1.fc31 → 4.15.1-2.fc31 (updates)
rpm 4.15.1-1.fc31 → 4.15.1-2.fc31 (updates)
glibc 2.30-10.fc31 → 2.30-11.fc31 (updates)
glibc-all-langpacks 2.30-10.fc31 → 2.30-11.fc31 (updates)
glibc-devel 2.30-10.fc31 → 2.30-11.fc31 (updates)
glibc-headers 2.30-10.fc31 → 2.30-11.fc31 (updates)
glibc-common 2.30-10.fc31 → 2.30-11.fc31 (updates)
rpm-plugin-selinux 4.15.1-1.fc31 → 4.15.1-2.fc31 (updates)
This likely means that some of your layered packages have requirements on newer or older versions of some base packages. Doing rpm-ostree cleanup -m and `rpm-ostree upgraResolving dependencies… done
error: Some base packages would be replaced

I’ve tried to force the update but I am not sure if I’m doing it right.

$ rpm-ostree override replace \
> rpm-libs-4.15.1-2.fc31.x86_64.rpm \
> rpm-4.15.1-2.fc31.x86_64.rpm \
> glibc-2.30-11.fc31 \
> glibc-all-langpacks-2.30-11.fc31 \
> glibc-devel-2.30-11.fc31 \
> glibc-headers-2.30-11.fc31 \
> glibc-common-2.30-11.fc31 \
> rpm-plugin-selinux-4.15.1-2.fc31
error: openat(rpm-libs-4.15.1-2.fc31.x86_64.rpm): No such file > or directory

I’m not sure how to override this. I looked at the documentation, and it isn’t very clear. Any idea how to work around this?

-Jerry

I am sorry but as I said earlier in the thread, the current release is really outdated and I recommend that you temporarily switch back to the official Silverblue refs and overlay the KDE desktop packages on top until I do a proper F32 release. Sorry for the inconvenience.

1 Like

So for example, just to be sure, if I was to overlay the packages listed in the fedora-kinoite.yalm file that would basically give me the samebase setup as if I had rebased to your kinoite image?

You need to overlay packages from both kde-desktop-pkgs.yaml and fedora-kinoite.yaml to get a minimal working KDE desktop.

1 Like

I would like to try the overlay packages approach so I can have an up to date Plasma DE. Is there a script anyone can share that will overlay all the packages in the fedora-kinoite.yaml and fedora-kinoite.yaml files or do I need to do it manually? Also, if I wish to undo the overlay of these packages is there a script to uninstall them? Thanks.

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 :slight_smile:

5 Likes

I have also finally updated my repository with a Fedora 32 branch! :tada:

Thanks to @walters for helping me find the issue I had. I will work on a fix soon.

I have also added a Mate desktop variant!

Please download my updated OpenPGP key and reimport it or remove / re-add the remote with the new key:

$ curl -O https://tim.siosm.fr/assets/siosm.gpg
$ sudo ostree remote delete kinoite
$ sudo ostree remote add kinoite https://siosm.fr/kinoite/ --gpg-import siosm.gpg

See also my previous answer for an alternative way to get alternative desktops on Silverblue (without having to way for me to build the images :wink:).

1 Like

Your repos seem to be unavailable could you please provide a means to clone your configs.

Sorry I got them. It was forks instead of fork on the url.

Thanks! I fixed both as unfortunately I cannot edit the first post anymore.

Mate is available in the latest F32 branch :slight_smile:.

1 Like

For now, only my f32-variants branch has the Mate & Base variants. Everything else is upstream.

I followed the above instructions to try and experiment with a variant. It kept failing at the last line with an error
error: The tree file has neither "repos" nor "repos-lockfile" members
I tried to look at os-tree documentations but I can not find the issue. Has anyone got any idea what it might be referring to and how to solve it. I followed the instructions as is on a new box with kinoite-base32.

Can you post your kinoite-base32.yaml config?

There is no file named kinoite-base32.yaml. I just tried to build the default fedora-common-ostree.yaml