Fixing Nautilus Cut & Paste in labwc on Wayland
So you're running labwc as your Wayland compositor, and you've picked Nautilus as your file manager. Everything looks great — until you try to move a file. You press Ctrl+X, hop over to the destination folder, hit Ctrl+V… and nothing happens. No error, no feedback, just silence.
You're not going crazy. This is a known issue, and it boils down to a handful of missing pieces that a minimal labwc setup doesn't ship by default. Here's how to fix it, step by step.
Why This Happens
Nautilus doesn't talk to the clipboard directly on Wayland. It goes through XDG Desktop Portals — a middleman layer that handles things like file pickers, screenshots, and clipboard access. In a GNOME desktop, this just works because the right portal backend is already running. In labwc, it doesn't activate automatically because the portal system doesn't recognize labwc as a valid desktop environment.
On top of that, you need a couple of utilities to make clipboard operations work at all on Wayland, and GVFS for Nautilus to do anything useful with files (moving, trashing, mounting, etc.).
Step 1: Install the Required Packages
You need four things: the clipboard tools, two portal backends, and the virtual filesystem layer.
# Arch Linux / CachyOS
sudo pacman -S wl-clipboard xdg-desktop-portal-gtk xdg-desktop-portal-gnome gvfs
# Fedora
sudo dnf install wl-clipboard xdg-desktop-portal-gtk xdg-desktop-portal-gnome gvfs
# Debian / Ubuntu
sudo apt install wl-clipboard xdg-desktop-portal-gtk xdg-desktop-portal-gnome gvfsHere's what each one does:
wl-clipboard— Provideswl-copyandwl-paste, the Wayland clipboard utilities. Without these, nothing clipboard-related works.xdg-desktop-portal-gtk— The GTK portal backend. Handles file choosers, notifications, and other UI that Nautilus needs.xdg-desktop-portal-gnome— The GNOME portal backend. This one's critical — it provides theClipboardportal interface that Nautilus uses to handle its special file cut/copy/paste MIME type.gvfs— Virtual filesystem backend. Handles trash, MTP, AFC, volume monitoring — the stuff that makes "move to trash" and "eject drive" actually work.
Step 2: Tell the Portal System to Use the GNOME Backend
This is the step that most guides miss, and it's the one that actually fixes the problem.
The portal system uses .portal files with a UseIn= field to decide which backend to launch. The GNOME portal declares UseIn=gnome — but labwc isn't GNOME, so the backend never starts. You need to override this manually.
Create ~/.config/xdg-desktop-portal/portals.conf:
[preferred]
default=gtk
org.freedesktop.impl.portal.Clipboard=gnome
org.freedesktop.impl.portal.FileChooser=gtk
org.freedesktop.impl.portal.Settings=gnome
org.freedesktop.impl.portal.AppChooser=gtk
org.freedesktop.impl.portal.Print=gtk
org.freedesktop.impl.portal.Notification=gtk
org.freedesktop.impl.portal.Screenshot=wlr
org.freedesktop.impl.portal.ScreenCast=wlrThe line that actually fixes cut and paste is this one:
org.freedesktop.impl.portal.Clipboard=gnomeIt tells the portal daemon: "When Nautilus asks for clipboard access, use the GNOME backend." That backend knows how to handle the x-special/nautilus-clipboard MIME type that Nautilus uses internally to track whether you're cutting or copying a file.
The rest of the lines are reasonable defaults for a labwc setup. Screenshot and screencast go to the wlr backend since that's what labwc supports natively.
Step 3: Set Your Desktop Environment Variable
In ~/.config/labwc/environment, add:
XDG_CURRENT_DESKTOP=labwc:wlrootsThis helps the portal system identify your desktop when it's deciding which backends to load. Without it, some portals might not activate at all.
Step 4: Restart the Portal Daemon
Portal changes don't take effect until the daemon restarts. Kill any running instances:
killall xdg-desktop-portal
killall xdg-desktop-portal-gnome
killall xdg-desktop-portal-gtk
killall xdg-desktop-portal-wlrThen restart labwc (or log out and back in). If you don't have portal autostart configured, add this to ~/.config/labwc/autostart:
if command -v xdg-desktop-portal >/dev/null 2>&1; then
/usr/libexec/xdg-desktop-portal &
sleep 1
/usr/libexec/xdg-desktop-portal-gtk &
/usr/libexec/xdg-desktop-portal-wlr &
fiThe sleep 1 between the main portal and the backends isn't strictly necessary, but it gives the daemon a moment to initialize before the backends try to register with it.
Step 5: Add a Clipboard Manager (Recommended)
Here's something that'll bite you eventually: labwc doesn't persist clipboard contents after the source application loses focus. So you cut a file in Nautilus, click somewhere else, and by the time you navigate to the destination folder, the clipboard is empty. The paste does nothing — not because the fix didn't work, but because the data is gone.
A clipboard manager solves this by watching the clipboard and storing its history. Add this to your autostart:
# cliphist (recommended)
wl-paste --watch cliphist store --no-notify &
# Or clipman as an alternative
wl-paste --watch clipman store --no-notify &Install the matching package:
# Arch
sudo pacman -S cliphist # or clipman
# Fedora
sudo dnf install cliphistTo restore your clipboard history on login (so you don't lose what you copied last session), also add:
cliphist restore &Step 6: Verify It Works
Open Nautilus, pick a file, and try the full workflow:
- Select a file and press
Ctrl+X— the icon should dim or gray out - Navigate to a different folder
- Press
Ctrl+V— the file should move
If that works, you're done. But if you want to dig deeper, you can inspect the clipboard contents from a terminal:
# See what MIME types are on the clipboard
wl-paste --list-types
# Should include: x-special/nautilus-clipboard (among others)
# Check the actual content
wl-paste -t "x-special/nautilus-clipboard"
# Should output something like:
# x-special/nautilus-clipboard
# cut
# file:///path/to/your/fileThe cut (or copy) line tells you whether the operation was a cut or a copy. If you see copy when you pressed Ctrl+X, something's wrong with how Nautilus is writing to the clipboard.
Troubleshooting
Cut/Paste Still Doesn't Work
Start by checking the portal logs:
journalctl --user -u xdg-desktop-portal --no-pager -n 20Look for errors like Could not activate remote peer 'org.freedesktop.impl.portal.desktop.gnome'. That means the GNOME portal isn't starting — double-check your portals.conf.
If the portal looks fine, try killing any clipboard managers and testing again:
killall wl-paste clipman cliphistSome clipboard managers interfere with the x-special/nautilus-clipboard MIME type. If things work without a clipboard manager but not with one, you may need to configure it to preserve special MIME types.
Also make sure Nautilus is running natively on Wayland, not through XWayland:
xlsclients | grep nautilusIf it shows up, Nautilus is running as an X11 app. Fix this by adding to ~/.config/labwc/environment:
GDK_BACKEND=waylandPasting Text Shows x-special/nautilus-clipboard
This is expected behavior if you paste a file reference into a text editor — that's just the raw clipboard content. The issue is only if you see this when pasting files inside Nautilus itself. In that case, the paste operation isn't being intercepted correctly. Recheck the portal configuration.
Files Paste as Copies Instead of Moving
If you press Ctrl+X but the file ends up as a copy in the destination, the clipboard data likely got lost between the cut and the paste. A few things to check:
- Are you switching focus away from Nautilus between Cut and Paste? If so, a clipboard manager (Step 5) will fix this.
- Is the clipboard manager actually running? Run
wl-paste --list-typesand see ifx-special/nautilus-clipboardappears. - Check the clipboard content — if it says
copyinstead ofcut, Nautilus didn't register your cut command properly.
If You'd Rather Just Use a Different File Manager
If this all feels like too much friction, Thunar is a solid alternative. It works well on Wayland with labwc, doesn't depend on GNOME portals for basic file operations, and cut/copy/paste just works out of the box.
# Arch
sudo pacman -S thunar gvfs
# Set as default file manager
xdg-mime default org.xfce.Thunar.desktop inode/directoryThere's no shame in choosing the tool that doesn't require a config file to function.
TL;DR
The short version: Nautilus needs the GNOME portal backend to handle clipboard operations on Wayland, and labwc doesn't trigger it automatically. Install xdg-desktop-portal-gnome and wl-clipboard, create a portals.conf that routes clipboard to the GNOME backend, set XDG_CURRENT_DESKTOP=labwc:wlroots, and restart the portal daemon. Add a clipboard manager so you don't lose data between cut and paste. That's it.