BUG REPORT ChromeOS: Crostini: wl-copy, wl-paste, and xclip cannot access ChromeOS clipboard while GUI clipboard works
Crostini: wl-copy, wl-paste, and xclip cannot access ChromeOS clipboard while GUI clipboard works
Environment
- ChromeOS with Crostini (Debian container)
wl-clipboard2.2.1- Sommelier running normally
- Linux GUI applications functional
Description
After a recent ChromeOS update, command-line clipboard tools no longer interact with the ChromeOS clipboard.
The issue affects:
wl-copywl-pastexclip
However, clipboard synchronization between Linux GUI applications and ChromeOS continues to work normally.
For example:
- Copying text in Mousepad and pasting into Chrome succeeds.
echo hello | wl-copyhangs indefinitely.wl-pastehangs indefinitely.echo hello | xclip -selection clipboardreturns immediately but does not update the ChromeOS clipboard.
This suggests that GUI clipboard integration remains functional while CLI clipboard mechanisms are broken.
Expected Behavior
Shell
1
echo hello | wl-copy
should return immediately and place hello into the ChromeOS clipboard.
Shell
1
wl-paste
should return clipboard contents.
Shell
1
echo hello | xclip -selection clipboard
should update the clipboard visible to ChromeOS applications.
Actual Behavior
wl-copyblocks indefinitely.wl-pasteblocks indefinitely.xclipreturns immediately but does not affect the clipboard.- GUI applications such as Mousepad can copy and paste to ChromeOS applications successfully.
Diagnostics
Wayland socket exists and is reachable:
Shell
1
echo $WAYLAND_DISPLAY
2
wayland-0
strace confirms successful connection:
Plain Text
1
connect(... "/run/user/1000/wayland-0") = 0
Sommelier processes are running.
wl-clipboard version:
Plain Text
1
wl-clipboard 2.2.1
wayland-info reports:
Plain Text
1
interface: 'wl_data_device_manager'
but no clipboard-control interfaces were observed:
Plain Text
1
zwlr_data_control_manager_v1
2
ext_data_control_manager_v1
GUI test:
- Open Mousepad.
- Type text.
- Copy in Mousepad.
- Paste into Chrome.
Result: Works correctly.
CLI test:
Shell
1
timeout 5 wl-copy <<< "hello"
2
echo $?
Result:
Plain Text
1
124
indicating wl-copy never completed.
Regression
This workflow worked previously and stopped working after a ChromeOS update.
Impact
Many shell-based workflows rely on:
Shell
1
wl-copy
2
wl-paste
3
xclip
for automation, scripts, password management, development tooling, and terminal integration. Functionality loss significantly impacts developer productivity within Crostini.
Additional information worth collecting
cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.6
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
uname -a
Linux penguin 6.6.119-09283-g9c138e0af8c3 #1 SMP PREEMPT_DYNAMIC Sat, 30 May 2026 01:16:16 -0700 x86_64 GNU/Linux
| Google Chrome | 150.0.7871.185 (Official Build) (64-bit) | |
| Revision | e3db768b5887f7b7014df2c6bfa6f5a41ecf9946-refs/branch-heads/7871@{#3800} | |
| Platform | 16700.53.0 (Official Build) stable-channel volteer | |
| Firmware Version | Google_Drobit.13672.410.0 | |
| Customisation ID | drobit | |
| ARC | 15802699 SDK version: 33 | |
| JavaScript | V8 15.0.245.21 | |
| User agent | Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36 | |
| Command Line | /opt/google/chrome/chrome --enable-native-gpu-memory-buffers --enable-webgl-image-chromium --enable-features=Pepper3DImageChromium,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE,UmaStorageDimensions,MojoIpcz,QuickUnlockFingerprint,EnableDspHotword,ArcAdbSideloading,ArcEnableVirtioBlkMultipleWorkers,Crostini,Borealis,SmartDim,OnDeviceSpeechRecognition --gpu-sandbox-failures-fatal=yes --gpu-sandbox-start-early --video-capture-use-gpu-memory-buffer --enable-logging --log-level=1 --use-cras --enable-wayland-server --user-data-dir=/home/chronos --arc-build-properties={'device': 'volteer_cheets', 'firstApiLevel': '28'} --child-wallpaper-large=/usr/share/chromeos-assets/wallpaper/child_large.jpg --child-wallpaper-small=/usr/share/chromeos-assets/wallpaper/child_small.jpg --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/default_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/default_small.jpg --fingerprint-sensor-location=keyboard-bottom-right --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --disable-mojo-broker --ash-use-cros-mojo-service-manager --cros-healthd-uses-service-manager --login-profile=user --has-chromeos-keyboard --enable-touchview --form-factor=CLAMSHELL --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --child-wallpaper-large=/usr/share/chromeos-assets/wallpaper/child_large.jpg --child-wallpaper-small=/usr/share/chromeos-assets/wallpaper/child_small.jpg --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/default_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/default_small.jpg --device-help-content-id=drobit --fingerprint-sensor-location=keyboard-bottom-right --ozone-nnpalm-properties={} --arc-availability=officially-supported --enable-arcvm --arc-erofs --arc-enable-attestation --enable-houdini --enable-houdini64 --enterprise-enrollment-initial-modulus=15 --enterprise-enrollment-modulus-limit=19 --ml_service=enabled --ondevice_handwriting=use_rootfs --ondevice_document_scanner=use_rootfs --disable-features=FederatedService --feature-management-level=0 --feature-management-max-level=2 --feature-management-scope=0 --login-manager --first-exec-after-boot --enable-features=ArcAdbSideloading,ArcEnableVirtioBlkMultipleWorkers,Borealis,Crostini,DefaultANGLEVulkan,EnableDspHotword,MojoIpcz,OnDeviceSpeechRecognition,Pepper3DImageChromium,QuickUnlockFingerprint,SmartDim,UmaStorageDimensions,Vulkan,VulkanFromANGLE --disable-features=FederatedService --flag-switches-begin --flag-switches-end --origin-trial-disabled-features=CanvasTextNg|WebAssemblyCustomDescriptors | |
| Executable Path | /opt/google/chrome/chrome | |
| Profile Path | /home/chronos/u-97561335d7ddc37b4b94480b669f36bff2d7aeca | |
| Variations source | variations server (command line or about flags) | |
| Command-line variations | eyJkaXNhYmxlLWZlYXR1cmVzIjoiQXBpR2xpY0FjY2Vzc0Zyb21Qcm9tb3Rp... | |
| Active variations | 61b619cb-ca7d8d80 wayland-info | grep -E 'data_control|ext_data|zwlr' :0
echo $WAYLAND_DISPLAY wayland-0 |
