golang-design / clipboard

📋 cross-platform clipboard package that supports accessing text and image in Go (macOS/Linux/Windows/Android/iOS)
https://golang.design/x/clipboard
MIT License
579 stars 64 forks source link

Don't panic when headless #57

Open daonb opened 4 months ago

daonb commented 4 months ago

I've just added you're excellent package to my project and it works great on my arm mac. When I try to run my docker compose based tests it fails to compile:

clipboard_linux.c:15:10: fatal error: X11/Xlib.h: No such file or directory
   15 | #include <X11/Xlib.h>
        |          ^~~~~~~~~~~~
 compilation terminated.

Makes sense - containers don't have X. I've tried disabling CGO and got in run time:

 panic: clipboard: cannot use when CGO_ENABLED=0

It's clear the package can't do anything on a system with no clipboard, but IMHO it should be able to compile and return an error on all calls, leaving it to the calling program to handle. Like in my program's, where I want to use an environment variable as the clipboard storage so I can run and validate clipboard related tests.

changkun commented 4 months ago

Reasonable. PR welcome :)