https://bugs.kde.org/show_bug.cgi?id=512178
Bug ID: 512178
Summary: Wayland: Spectacle sometimes copies empty clipboard
instead of image on 4K NVIDIA setup
Classification: Applications
Product: Spectacle
Version First 6.5.2
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: General
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
Description:
I am experiencing a reproducible issue with Spectacle on Plasma 6 (Wayland)
when copying full-screen 4K screenshots to the clipboard.
When Spectacle copies a full-screen 4K PNG image to the clipboard, the Wayland
clipboard stack breaks:
- `wl-paste --list-types` stops showing any image/* types and returns only
text/plain
- applications (browsers, chat clients, editors) can no longer paste images
from the clipboard
- other screenshot tools (e.g. ksnip) fail or crash with messages like “No
image was available but one was expected”
- only restarting the portals or the whole Wayland session restores clipboard
functionality
This happens reliably with full-screen screenshots on a 3840x2160 display.
Smaller region screenshots usually work and do not corrupt the clipboard.
It looks like Spectacle is pushing a very large, raw PNG into the Wayland
portals / clipboard (via xdg-desktop-portal), which then fail in some way.
Other tools such as Flameshot, which seem to optimize or compress their
clipboard images, do not trigger this issue under the same conditions.
Steps to reproduce:
1. Start a Plasma 6.5.2 Wayland session on a 3840x2160 (4K) display.
2. Launch Spectacle.
3. Capture a full-screen screenshot (mode: Full Screen).
4. Click “Copy to Clipboard”.
5. Immediately run:
`wl-paste --list-types`
6. Try pasting the screenshot into any application (e.g. browser, chat,
editor).
Expected result:
- Spectacle should place an image into the Wayland clipboard (image/png,
application/x-qt-image, etc.).
- Pasting into applications should work normally.
- `wl-paste --list-types` should list at least `image/png` and/or
`application/x-qt-image`.
Actual result:
- After copying a full-screen 4K screenshot from Spectacle, the clipboard
appears to become corrupted.
- `wl-paste --list-types` shows only text/* types, no image/* types.
- Applications cannot paste images anymore.
- Clipboard functionality is only restored after restarting the portals or
logging out and back in.
Environment / System information:
- Distribution: openSUSE Tumbleweed (x86_64)
- OS: openSUSE Tumbleweed x86_64
- Kernel: 6.17.7-1-default
- DE: Plasma 6.5.2 [KF 6.19.0] [Qt 6.10.0] (Wayland)
- WM: kwin_wayland_wr
- Resolution: 3840x2160 (4K)
- GPU: NVIDIA GeForce GTX 1050 Ti
- NVIDIA driver version: 580.105.08
- PipeWire and portals enabled
Command outputs:
spectacle --version:
--------------------------------
$ spectacle --version
spectacle 6.5.2
QThreadStorage: entry 3 destroyed before end of thread 0x55bfe99a5c60
QThreadStorage: entry 2 destroyed before end of thread 0x55bfe99a5c60
plasmashell --version:
--------------------------------
$ plasmashell --version
plasmashell 6.5.2
QThreadStorage: entry 8 destroyed before end of thread 0x55aed60268b0
QThreadStorage: entry 2 destroyed before end of thread 0x55aed60268b0
QThreadStorage: entry 1 destroyed before end of thread 0x55aed60268b0
kwin_wayland --version:
--------------------------------
$ kwin_wayland --version
kwin 6.5.2
QThreadStorage: entry 1 destroyed before end of thread 0x5583946cf0b0
QThreadStorage: entry 0 destroyed before end of thread 0x5583946cf0b0
neofetch:
--------------------------------
$ neofetch
OS: openSUSE Tumbleweed x86_64
Host: TH67B 6.0
Kernel: 6.17.7-1-default
Uptime: 1 hour, 17 mins
Packages: 50 (pip), 2836 (rpm), 16 (flatpak-system)
Shell: bash 5.3.3
Resolution: 3840x2160
DE: Plasma 6.5.2 [KF 6.19.0] [Qt 6.10.0] (wayland)
WM: kwin_wayland_wr
Theme: Breeze [GTK2/3]
Icons: breeze [GTK2/3]
Cursor: breeze_cursors [GTK2/3]
Terminal: konsole
CPU: Intel Core i5-2310 (4) @ 3.2GHz
GPU: NVIDIA GeForce GTX 1050 Ti
Memory: 5.97 GiB / 23.45 GiB
Portal status (after restart, before taking screenshot):
--------------------------------
$ systemctl --user status xdg-desktop-portal xdg-desktop-portal-gtk --no-pager
● xdg-desktop-portal.service - Portal service
Loaded: loaded (/usr/lib/systemd/user/xdg-desktop-portal.service; static)
Active: active (running) since Sun 2025-11-16 12:51:02 MSK; 26s ago
Main PID: 7362 (xdg-desktop-por)
Tasks: 7 (limit: 28655)
CPU: 65ms
CGroup:
/user.slice/user-1000.slice/[email protected]/session.slice/xdg-desktop-portal.service
└─7362 /usr/libexec/xdg-desktop-portal
● xdg-desktop-portal-gtk.service - Portal service (GTK/GNOME implementation)
Loaded: loaded (/usr/lib/systemd/user/xdg-desktop-portal-gtk.service;
static)
Active: active (running) since Sun 2025-11-16 12:51:02 MSK; 26s ago
Main PID: 7366 (xdg-desktop-por)
Tasks: 6 (limit: 28655)
CPU: 104ms
CGroup:
/user.slice/user-1000.slice/[email protected]/app.slice/xdg-desktop-portal-gtk.service
└─7366 /usr/libexec/xdg-desktop-portal-gtk
Note: there is no xdg-desktop-portal-kde systemd unit, but there is a running
xdg-desktop-portal-kde process shown by nvidia-smi (PID 7373,
/usr/libexec/xdg-desktop-portal-kde).
Portal logs (excerpt):
--------------------------------
$ journalctl --user -u xdg-desktop-portal -u xdg-desktop-portal-gtk --no-pager
| tail -n 40
Nov 16 11:33:23 localhost.localdomain systemd[1353]: Starting Portal service...
Nov 16 11:33:30 localhost.localdomain systemd[1353]: Starting Portal service
(GTK/GNOME implementation)...
Nov 16 11:33:31 localhost.localdomain systemd[1353]: Started Portal service
(GTK/GNOME implementation).
Nov 16 11:33:31 localhost.localdomain systemd[1353]: Started Portal service.
Nov 16 11:33:35 localhost.localdomain /usr/libexec/xdg-desktop-portal[1482]: A
backend call failed: No such method 'CreateMonitor' in interface
'org.freedesktop.impl.portal.Inhibit' at object path
'/org/freedesktop/portal/desktop' (signature 'ooss')
Nov 16 11:33:35 localhost.localdomain /usr/libexec/xdg-desktop-portal[1482]:
Failed to close session implementation:
GDBus.Error:org.freedesktop.DBus.Error.UnknownObject: No such object path
'/org/freedesktop/portal/desktop/session/1_70/tdesktop1141742856'
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Stopping Portal service...
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Stopped Portal service.
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Starting Portal service...
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Stopping Portal service
(GTK/GNOME implementation)...
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Stopped Portal service
(GTK/GNOME implementation).
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Starting Portal service
(GTK/GNOME implementation)...
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Started Portal service
(GTK/GNOME implementation).
Nov 16 12:51:02 localhost.localdomain systemd[1353]: Started Portal service.
KWin logs (excerpt):
--------------------------------
$ journalctl --user -u plasma-kwin_wayland --no-pager | tail -n 40
Nov 16 11:33:23 localhost.localdomain systemd[1353]: Starting KDE Window
Manager...
Nov 16 11:33:23 localhost.localdomain systemd[1353]: Started KDE Window
Manager.
Nov 16 11:33:24 localhost.localdomain kwin_wayland[1475]: No backend specified,
automatically choosing drm
...
Nov 16 11:54:47 localhost.localdomain kwin_wayland_wrapper[1563]: Key repeat
discarded, Wayland compositor doesn't seem to be processing events fast enough!
Nov 16 12:42:09 localhost.localdomain kwin_wayland[1475]: QDBusConnection:
couldn't handle call to Teardown, no slot matched
Nov 16 12:42:09 localhost.localdomain kwin_wayland[1475]: QDBusConnection:
couldn't handle call to Teardown, no slot matched
Nov 16 12:42:09 localhost.localdomain kwin_wayland[1475]: Could not find slot
Krunner1Adaptor::Teardown
NVIDIA driver info:
--------------------------------
$ nvidia-smi
Sun Nov 16 12:52:09 2025
NVIDIA-SMI 580.105.08 Driver Version: 580.105.08 CUDA Version:
13.0
GPU Name Persistence-M | Bus-Id Disp.A
0 NVIDIA GeForce GTX 1050 Ti On | 00000000:04:00.0 On
Processes include:
/usr/bin/kwin_wayland
/usr/bin/plasmashell
/usr/bin/spectacle
/usr/libexec/xdg-desktop-portal-kde
$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 580.105.08 Wed Oct 29 23:15:11
UTC 2025
GCC version: gcc version 15.2.1 20251006 (SUSE Linux)
Clipboard MIME types AFTER Spectacle full-screen “Copy to Clipboard”:
--------------------------------
$ wl-paste --list-types
text/plain;charset=utf-8
UTF8_STRING
COMPOUND_TEXT
TEXT
text/plain
STRING
text/plain;charset=utf-8
text/plain
SAVE_TARGETS
Note: at this point, no image/* types are present. Before the failure (with
small region screenshots), the output included image/png,
application/x-qt-image, x-kde-force-image-copy, etc.
Conclusion / suspicion:
It looks like Spectacle is sending a very large full-screen 4K PNG buffer via
the portal/clipboard, which in this configuration (Plasma 6.5.2 Wayland, NVIDIA
580.105.08, 4K display) consistently breaks the Wayland clipboard/portal.
Smaller screenshots and other tools (e.g. Flameshot) do not cause this issue.
A possible mitigation would be:
- allow choosing JPEG for clipboard export on Wayland, or
- optimize/compress PNG before placing it on the clipboard, or
- otherwise avoid pushing huge raw image buffers through xdg-desktop-portal.
Thank you for looking into this.
--
You are receiving this mail because:
You are watching all bug changes.