Search
Enable KDE Unstable Plasma on openSUSE Tumbleweed – Guide 2025

Enable KDE Unstable Plasma
on openSUSE Tumbleweed

🚀 Practical guide 2026 — Vendor stickiness, priorities, advanced commands
February 21, 2026SafeITExpertsReading: 30 minLevel: Advanced
🎨 KDE Plasma🐧 Tumbleweed🦎 Zypper🔓 Vendor Stickiness⚡ Unstable📦 Btrfs/Snapper
📖
Introduction

🎯 Overview

Want to test the latest KDE Plasma advances on your Tumbleweed system? This guide shows you a method that works, used daily on a production machine.

Not the one and only truth

The openSUSE community thrives on diverse experiences. Some prefer a lower priority (75) for a full switch, others only add certain repositories. This guide presents a proven method — the one used daily — with its ingredients, advantages, and limitations.

🎯 Objective
Install KDE Unstable repos on Tumbleweed
⏱️ Duration
15–20 minutes
🔧 Level
Advanced
💾 Prerequisites
Up-to-date Tumbleweed, recent Btrfs snapshot

💻 Starting configuration (exemple réel)

inxi -F – February 2026 snapshot
# Starting configuration (real example)
Operating System: openSUSE Tumbleweed 20260217
KDE Plasma Version: 6.6.0
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.2
Kernel Version: 6.19.2-1-default (64-bit)
⚙️
Understanding Zypper in 2 minutes

🧩 The three fundamental mechanisms

Before adding repositories, you need to understand three mechanisms: the vendor, the version and the priority.

RuleExplanation
🏷️ VendorEach vendor has a repository, each repository has a priority and packages
📦 VersionEach version has a package, each package has a vendor, each vendor has a repository
⚖️ PriorityEach priority is linked to a repository, each repository holds packages from a vendor

🏷️ Vendor stickiness & mécanismes de Zypper

Three levels control vendor changes in Zypper. From most global to most targeted:

LevelConditionEffet sur zypper dup
🌍 Global/etc/zypp/zypp.conf
solver.allowVendorChange = true
Completely disables vendor stickiness protection. zypper dup automatically allows all vendor changes.
🔗 Equivalence/etc/zypp/vendors.d/*.confDeclares vendors as equivalent (e.g. openSUSE = obs://KDE:Unstable:Frameworks). Zypper treats them as interchangeable.
🎯 One-timezypper dup --allow-vendor-changeAllows vendor changes for this run only. The next dup reverts to default behaviour.
Three key points to remember

1. Vendor stickiness: Zypper refuses any vendor change by default, even for a newer version. A package with a different vendor is ignored in a plain dup unless explicitly allowed (--allow-vendor-change or declared equivalence).

2. Priorities: The lower the number, the higher the priority. Priorities only come into play when versions are equal and the vendor is authorised.

3. --from <repo>: Forces exclusive use of a repository for the update, regardless of priorities or vendor.

✅ Table: priority, version, vendor and behaviour

PrioRepoVersiondup alone--allow-vendor--from
70Packman7.0.2❌✅✅
80home:pallaswept6.1.1❌✅✅
99repo-oss7.0.2✅✅✅
99repo-non-oss7.0.1❌❌✅
110home:Dead_Man6.0.0❌❌✅
120KDE:Frameworks57.0.2❌✅✅
The golden rule

Vendor always trumps priority. Priority only comes into play when the vendor is authorised and versions are equal. A repository with priority 70 but a different vendor will be ignored by dup unless you use --allow-vendor-change or a declared equivalence in vendors.d.

📥
Preparation and adding KDE Unstable repositories

🔧 System preparation (before adding repositories)

Official openSUSE warning

"Do not mix stable with unstable repositories. Doing so is not supported and is prone to put your system in an inconsistent state." — SDB:KDE repositories

Run the following commands in order to prepare your Tumbleweed system.

CommandPurposeWhen to use
sudo zypper shellEnter Zypper interactive modeOptional — allows chaining multiple commands
sudo zypper clean -aClean all cachesBefore a refresh to avoid cache issues
sudo zypper refRefresh the package listAfter cleaning or before an update
zypper packages --orphanedList orphaned packagesTo identify packages to remove manually
zypper packages --recommendedList uninstalled recommended packagesChoose which ones to install
sudo zypper dupFull distribution upgradeUpdates the entire system to the latest stable versions
sudo systemctl rebootReboot the systemRequired if the kernel or critical services were updated
Full preparation via Zypper shell
$sudo zypper shell
zypper>clean -a
zypper>ref
zypper>packages --orphaned
zypper>packages --recommended
zypper>dup
zypper>exit
$sudo systemctl reboot

📥 Adding KDE repos Unstable

Once your system is prepared and up to date, you can add the KDE Unstable repositories with the priority of your choice.

Option A: priority 75 (official approach)

KDE Unstable repositories — priority 75
$sudo zypper ar -cfp 75 https://download.opensuse.org/repositories/KDE:/Unstable:/Qt/openSUSE_Tumbleweed/ KDE-Unstable-Qt
$sudo zypper ar -cfp 75 https://download.opensuse.org/repositories/KDE:/Unstable:/Frameworks/openSUSE_Factory/ KDE-Unstable-Frameworks
$sudo zypper ar -cfp 75 https://download.opensuse.org/repositories/KDE:/Unstable:/Applications/KDE_Unstable_Frameworks_openSUSE_Factory/ KDE-Unstable-Applications
$sudo zypper ar -cfp 75 https://download.opensuse.org/repositories/KDE:/Unstable:/Extra/KDE_Unstable_Frameworks_openSUSE_Factory/ KDE-Unstable-Extra

Option B: priority 120 (selective approach — this guide)

KDE Unstable repositories — priority 120
$sudo zypper ar -cfp 120 https://download.opensuse.org/repositories/KDE:/Unstable:/Qt/openSUSE_Tumbleweed/ KDE-Unstable-Qt
$sudo zypper ar -cfp 120 https://download.opensuse.org/repositories/KDE:/Unstable:/Frameworks/openSUSE_Factory/ KDE-Unstable-Frameworks
$sudo zypper ar -cfp 120 https://download.opensuse.org/repositories/KDE:/Unstable:/Applications/KDE_Unstable_Frameworks_openSUSE_Factory/ KDE-Unstable-Applications
$sudo zypper ar -cfp 120 https://download.opensuse.org/repositories/KDE:/Unstable:/Extra/KDE_Unstable_Frameworks_openSUSE_Factory/ KDE-Unstable-Extra

Meaning of the -cfp options

OptionSignificationEffet
-cEnable local cacheMetadata is kept on disk for faster access
-fAuto-refreshZypper automatically refreshes the repository on each operation
-p <priorité>Set priorityThe lower the number, the higher the priority

✅ Verification de l'ajout

Checking KDE Unstable repositories
# Preventive clean (optional)
$sudo zypper clean -a
# Refresh
$sudo zypper ref
# Check priorities
$zypper lr -p | grep KDE-Unstable

Expected output (example for priority 120):

 2 | KDE-Unstable-Applications       | 120
 3 | KDE-Unstable-Extra              | 120
 4 | KDE-Unstable-Frameworks         | 120
 5 | KDE-Unstable-Qt                 | 120
🚀
First update: switching to KDE Unstable
Note on snapshots

By default, snapper automatically creates a snapshot after zypper dup when changes are applied. However, if you want to guarantee a restore point before any changes, create one manually:

Create a preventive snapshot
$sudo snapper create --description "Before KDE Unstable update"

🏁 Method 1: official approach (priority 75)

This method follows the openSUSE wiki recommendation for KDE:Unstable repositories. It assumes you added the repositories with a priority of 75.

Official method — priority 75
# 1. Refresh repositories
$sudo zypper ref
# 2. Simulate with vendor change
$sudo zypper dup --dry-run --allow-vendor-change --details
# 3. Run the update (once with --allow-vendor-change)
$sudo zypper dup --allow-vendor-change --details
# 4. Check integrity
$sudo zypper verify
# 5. Reboot
$sudo systemctl reboot
# 6. Check Plasma version
$plasmashell --version
$zypper info plasma6-desktop | grep Repository

🛡️ Method 2: selective approach (priority 120 — this guide)

This approach is more cautious. It uses a low priority (120) so that official repositories (99) remain preferred when versions are equal. However: even without --allow-vendor-change, a plain zypper dup may already pull in Unstable packages if their version is strictly higher than the stable version.

Selective method — priority 120
# 1. Refresh
$sudo zypper ref
# 2. Simulate a simple update
$sudo zypper dup --dry-run --details
# 3. Simulate with vendor change to compare
$sudo zypper dup --dry-run --allow-vendor-change --details
# 4a. Simple update (only Unstable packages newer than stable)
$sudo zypper dup
# 4b. OR full update (all available Unstable packages)
$sudo zypper dup --allow-vendor-change --details
# 5. Check integrity
$sudo zypper verify
# 6. Post-update cleanup
$zypper packages --orphaned
$sudo zypper inr

📌 Summary des deux méthodes

CriterionOfficial method (75)Selective method (120, this guide)
Priority75 (higher)120 (lower)
At equal versionKDE Unstable winsStable (99) wins
Mise à jour simple (dup)Full switchOnly integrates Unstable packages with version > stable
Purpose --allow-vendor-changeRequired for first switchSimulation and decision tool for full switch
Level de risqueHigherControlled
Public viséTesters, developersAdvanced users in production
🛠️
Advanced management and maintenance

🧩 Likely issues by KDE Unstable repository

Unstable repositories are unstable by nature. Below are real documented issues on openSUSE Tumbleweed + KDE:Unstable:

🔴 High – elevated risk  |  🟠 Medium – moderate risk  |  🟢 Low – edge cases

RepositoryIssueDescriptionLikelihood
KDE:Unstable:QtBroken Wayland session restoreAfter upgrade, window restoration is broken (positions, sizes)🔴
QML application crashesplasma-systemmonitor, kinfocenter crash on startup (QtQuick regressions)🟠
Broken SVG icon renderingSVG icons display incorrectly after Qt update🟢
KDE:Unstable:FrameworksUnsatisfied dependencies after dupkio/kconfig incompatible with system libraries🔴
GTK themes not appliedGTK applications ignore Breeze after Frameworks update🟠
Partial settings resetWallpaper, shortcuts lost after upgrade🟠
KDE:Unstable:ApplicationsDolphin crash on SMB network foldersDolphin crashes when accessing SMB shares (recurring issue)🔴
Konsole does not keep profilesCustom profiles disappear after reboot🟠
Gwenview fails to open some imagesJPEG/PNG opening failure (related to SMB/ffmpeg)🟢
KDE:Unstable:ExtraWeather widget crashes plasmashellTaskbar crash after adding weather widget🟠
KDE Connect unstable / disconnectionsRandom connection loss (firewall, network)🟠
Desktop effects (cube, wobbly) brokenKWin effects broken after update🟢

🔧 The pilot's toolkit

Refresh the package list

Refresh
$sudo zypper ref

Simulate an update without making any changes

Simulation
$sudo zypper dup --dry-run
# With details and vendor change:
$sudo zypper dup --dry-run --allow-vendor-change --details

Force an update from a specific repository

Targeted update
# Always simulate first
$sudo zypper dup --dry-run --details --from KDE-Unstable-Applications
# Then apply if clean
$sudo zypper dup --from KDE-Unstable-Applications

Change repository priority

Priority adjustment
$sudo zypper mr -p 110 KDE-Unstable-Applications
$sudo zypper mr -p 90 KDE-Unstable-Frameworks
$zypper lr -p | grep KDE-Unstable

Restore a system snapshot

Snapper rollback
$sudo snapper list
$sudo snapper rollback <numero>

🐛 Common bugs (February 2026)

Note

These solutions worked on specific configurations. If you encounter an issue, check the forums first.

IssueSymptomsQuick fix
🖼️ Broken Flatpak iconsIncorrect or generic icons (Ungoogled Chromium, OBS)Use RPM version while waiting for the fix (Bug #516383)
🍔 Capricious Kickoff menuCannot add to favourites, disappearing submenuskbuildsycoca6 --incremental
⚙️ Settings resetReverts to defaults after updateCopy themes to ~/.local/share/plasma/look-and-feel/
🔗 Dependency conflictszypper dup refuses to run--solver-focus=update --force-resolution (last resort) or wait
💥 Broken systemSystem won't boot or KDE session won't startsudo snapper rollback <numero>
🧊 Login freezesSystem freezes after KDE loginSwitch to GNOME temporarily
Golden rule

Always have a recent snapshot before any major update.

Create a snapshot before updating
$sudo snapper list
$sudo snapper create --description "Before KDE update"
🏆
Best practices & Summary

📊 Comparing approaches

🔴
All Unstable
Priorité 75
Full switch
Testers, developers
🟢
Selective (this guide)
Priorité 120
Unstable for newer packages only
Advanced production users
🟡
Hybrid
Priorité 90–100
Mix case by case
Experimenters
How to choose?

Approach 75: if you want to be on the front line, ready to handle frequent regressions and contribute upstream feedback.

Approach 120 (this guide): if you run Tumbleweed in production and want to enjoy new features without jeopardising daily stability.

Hybrid approach (90–100): middle ground — for example, giving Frameworks a slightly higher priority than Applications.

Whatever the approach, vendor always trumps priority.

✅ Good habits

ActionPourquoi ?
Toujours simuler avec --dry-runAnticipate conflicts, vendor changes, removed packages
Comprendre le vendor stickinessThe first filter before priority
Utiliser --allow-vendor-change avec parcimonieOnly authorise when you really want Unstable
Avoir un snapshot récentSnapper = parachute for rolling back
Surveiller les forums avant grosses mises à jourThe community reports bugs quickly
Vérifier les priorités avec zypper lr -pConfirm your settings are in effect
Privilégier --detailsSee version jumps and vendor changes
Rafraîchir les dépôts avec zypper refWork with the latest metadata

❌ Mistakes to avoid

ActionConséquence
Faire dup sans simulationBreaking the system without warning
Laisser --allow-vendor-change en permanenceUnwanted third-party repos replace packages
Updating without a snapshotNo reliable restore point
Ignorer les avertissements de conflitForcing leads to an inconsistent system
Mélanger priorités sans comprendre le vendorA high priority alone is not enough without an authorised vendor
Négliger le nettoyage post-màjOrphaned packages and caches clutter the system

🔗 Resources et liens utiles

ResourceDescriptionLink
openSUSE KDE ForumsCommunity supportforums.opensuse.org
KDE DiscussDiscussions on developmentsdiscuss.kde.org
OBS KDE UnstableRepository statusbuild.opensuse.org
KDE BugzillaUpstream bug trackingbugs.kde.org
openSUSE BugzillaIssues de packagingbugzilla.opensuse.org
Vendor change docsOfficial documentationopensuse.org

📖 Recommended Reading — SafeITExperts

ArticleContenu
Understanding SUSE Kernels & Flavours: 2025 Complete GuideLinux kernel variants on SUSE: default, rt, azure, xen…
Mastering Zypper: Complete openSUSE Package Management 2025All Zypper commands, package and repository management
Asia at the Heart of the Global Digital EcosystemAsia's role in the global digital infrastructure in 2026
Wayland 2026: The Post-X11 Era for LinuxX11 → Wayland transition, compatibility and migration
Conclusion

This guide has presented a proven method for installing KDE Unstable on Tumbleweed. It is not the only one, but it has the advantage of being selective and cautious.

Ready to try it? Go ahead — but remember: snapshots, simulations, and staying informed are your best allies.

A rolling release needs active maintenance. You become an actor in your system, not just a consumer. That is a choice, a philosophy, and also a pleasure for those who love to understand and control.

👥 Comments

Comment on this article