Project Zebra: Batman Smells, Robin Laid an Egg ►

◄ Project Zebra: I dream of configurability and text editors

2025-12-28 📌 Project Zebra: Upgrade to Debian 13 and switching to Wayland

Tags All Linux Personal Tech

This entry is part of my Project Zebra series covering migration to Linux for personal computing use.

Title reference: none as this isn't a miscellany of notes, more a debrief on how not to do things and what needed fixing. I'm not sure it wouldn't have been better to have gone with a clean install since most config is in /home anyway. I don't think the problems I had were with Debian itself, it was the jump from Plasma 5 to 6 that first caused the upgrade (which I'd run in the desktop environment) to hit the wall then needed some clean up after because Plasma has been moderately customised and I ended up switching display servers too, something I hadn't been expecting to do for several more years. Started with stopping, disabling then manually running my backup script: systemctl stop admech_backup.timer systemctl disable admech_backup.timer systemctl start admech_backup.service Then dismounting veracrypt backup volumes. I skimmed through https://www.debian.org/releases/trixie/release-notes/upgrading.en.html again and there was no boot partition to consider which seemed the main potential showstopper. I just have browser sources listed in /etc/apt/sources.list.d so that's a relatively simple scenario and I can always reinstall those over the top of themselves afterwards if necessary. I'm also not using backports. I also found various other guides, and although this one is more intended for servers the tips seem relevant: https://gist.github.com/yorickdowne/3cecc7b424ce241b173510e36754af47 What I should probably have done at this stage was NOT run updates in a GUI but switched to another tty, because updating Plasma 5 to 6 seems to have been the cause of the problems that followed. I was already expecting particular issues with X11 since devs don't test with it, but equally I think we're far enough past release that things there have been corrected retrospectively. sudo apt update && sudo apt full-upgrade (no new kernel installed, so reboot not necessary) Change all references from bookworm to trixie: sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list sudo find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \; I do have mdadm installed, so per the advice in that github thread held it. sudo apt-mark hold mdadm sudo apt update && sudo apt full-upgrade At this point the the Plasma shell bombed out, and I got back to a somewhat broken desktop with 'loginctl unlock-sessions' and 'systemctl restart sddm' in another tty, but apt still had a cache lock. This isn't the first time I've borked an install, so I at least had some idea of what to do, although my notes get sketchier here as I was making them on paper. Restarted to a command line and ran the suggested dpkg recovery command. Did an apt upgrade of what had already been downloaded, not forcing anything. Found 310 packages held. This was enough to boot to desktop and the Plasma 6 panel and widgets had picked up some of the new defaults and were a bit screwy but functional. In terms of what changed in Plasma, latte separators were still there but wide, the width of the app menu button had shrunk (it was a bug that I managed to specify a non-square icon in the first place, I think), the digital clock widget I was using isn't compatible with 6, the panel was floating (as is default in 6), hidden app menu items reappeared, there was a hot corner (screen edge action) at the top left clashing with where my app menu icon is for managing multiple desktops, and black breeze window title bars had an amateurish-looking white border (that can be turned off though). Also, Plasma 6 "exact match" Window Rules seem to be case sensitive, but regex ones aren't? And I think I'm still using my modified Breeze files that make the app menu, calendar, etc, non-transparent, and they seem to still work under Plasma 6 so I'm not going to touch it. It was so far, so good, though. So back to a command line... sudo apt-mark unhold mdadm sudo apt update The 310 held packages were mainly prefixed with 'task-' and I'm assuming there were unmet dependencies, or were when apt tried previously. But adb as an example installed okay. Then there was lots to sudo apt autoremove, apparently mostly plasma 5 packages. sudo apt full-upgrade sudo reboot sudo apt autoremove && sudo apt clean sudo apt modernize-sources Task Switcher initially didn't work under Plasma 6 and I'm not sure what I did to fix it other than install an additional style for it (Aqua Medium Icons) and toggle between the default Thumbnail Grid and that. Existing custom shortcuts didn't work, and had moved to a non-functional Custom Shortcuts Service category, so I recreated the few I actually still use: Meta+E - file browser, Meta+Shift+S - flameshot screen snipping, Meta+H - htop, Meta+L - lock. To get my custom lock.sh script of 'qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && xset dpms force off' to work I had to reinstate the qdbus command by installing qtchooser and qdbus-qt5. Hibernation is still working without re-configuration, touch wood. This was the point I decided that since the install was already off track it'd be worth committing time to trying Wayland, and when I did the font rendering was blurred but only when a window had focus. Googling gave me a few clues, and sure enough somehow Display Configuration was set to 105% fractional scaling. There's still no native Birdtray or alternative, KDocker and some other things will require an alternative, and the scroll wheel has quirks in some places - specifically, horizontal scroll in Nemo's compact view doesn't (which isn't a dealbreaker, I suppose). Other apps such as Kate follow the system settings, which is speed rather than number of lines with the component Plasma 6 uses to control and be sure to select the right input device in System Settings if like me you have mutliple wireless adapters for peripherals plugged in. Update: Nemo does support horizontal scrolling using Shift as a modifier key, plus there's an option in System Settings for "Press middle button and move mouse to scroll" that works. The version of Birdtray (circa Feb 2025) I was running was outright broken after the upgrade, and downloading the latest version its make file seems to use qt5 so building isn't simple. The solution seems to be to stick with the version of Birdtray in the Debian repos. In Thunderbird 140 its own tray icon exists but does nothing useful - https://bugzilla.mozilla.org/show_bug.cgi?id=1942125 And in passing it also seems to be turning into adware - https://www.reddit.com/r/Thunderbird/comments/1pd6ckr/recent_thunderbird_donation_popups/ So it's probably time to start exploring alternatives. Birdtray does work with XWayland by setting Birdtray to run as 'XDG_SESSION_TYPE=x11 birdtray' and configuring Birdtray in the Advanced settings to run Thunderbird as '/usr/bin/env GDK_BACKEND=x11 /usr/bin/thunderbird' although it doesn't seem to be detecting new mail, which has always been a bit buggy. Update: a newer version fixes new mail detection, https://mxrepo.com/mx/repo/pool/main/b/birdtray/ Then I built and tried kwin-minimize2tray in lieu of KDocker: https://github.com/luisbocanegra/kwin-minimize2tray sudo apt install cmake extra-cmake-modules qt6-base-dev qt6-declarative-dev qt6-scxml-dev libkf6statusnotifieritem-dev libkf6service-dev libkf6package-dev And it seems to work so far. By default it uses a shortcut of Win+Alt+PgDn. DeaDBeeF lost its tray icon, which is noted as a bug on its Github, and also showed a generic Wayland icon in its titlebar but using tips from here and renaming the .desktop file (in this case in /home/admech/.local/share/applications) to lowercase 'deadbeef' works to set the title bar icon, which is the icon that kwin-minimize2tray will use. That's enough to keep the window out of the way. Another tricky/speculative bit... my backup service and timer, which ran on X11, no longer worked and needed some tweaks and to run as user rather than as system. Also installed zenity, which I'd forgotten the backup script uses to notify about errors. Touch wood, what's below works now. admech_backup.service [Unit] Description=Run backup script [Service] Type=oneshot ExecStart=/home/admech/.myscripts/admech_backup.sh admech_backup.timer [Unit] Description=Run backup script at 9pm [Timer] OnCalendar=*-*-* 21:00:00 Persistent=true [Install] WantedBy=timers.target admech_backup.sh #!/bin/bash export XDG_RUNTIME_DIR=/run/user/0 export QT_QPA_PLATFORM=wayland # check truecrypt partition is available if grep -qs '/mnt/LocalP2' /proc/mounts then # do backup find /home/admech/.myscripts/*.log -mtime +1 -type f -delete "/opt/FreeFileSync/FreeFileSync" "/home/admech/.myscripts/mirror.ffs_batch" exit 0 else sleep 10m if grep -qs '/mnt/LocalP2' /proc/mounts then # do backup find /home/admech/.myscripts/*.log -mtime +1 -type f -delete "/opt/FreeFileSync/FreeFileSync" "/home/admech/.myscripts/mirror.ffs_batch" exit 0 else zenity --warning --text "\nMIRROR DRIVE NOT AVAILABLE, BACKUP FAILED." --width=300 fi fi systemctl --user enable admech_backup.timer systemctl --user start admech_backup.timer So, rather unexpectedly and unless anything else major doesn't work, I've migrated to Wayland for the time being, albeit with dependencies on XWayland. That took over a day I didn't really have, but wasn't as much of a trial as I thought it might have been. Debian itself proved robust in a failed upgrade scenario, and I don't think Kubuntu would have done better. I'd still recommend Mint for Linux newcomers, though, you're far less likely to need to do anything more than let it take care of upgrades. My usage is rather more hands-on than average. Also, leaps like Plasma 5 to 6 are once in a blue moon. End-of-year round up of where Plasma 6 is and where it's likely to be going: https://pointieststick.com/2025/12/28/highlights-from-2025/ As a nice touch, the KDE donation page includes a Konqui knitting pattern as a PDF. I'll do separate notes for talking about toolkits and dialog boxes in Debian 13, as I've still got some investigation to do.

💬 Comments are off, but you can use the mail form to contact or see the about page for social media links.