Как скопировать текст в / из буфера обмена в Go?

В моем приложении командной строки Go language мне нужна копия определенных фрагментов текста в системный буфер обмена с помощью Go. В основном что-то вроде PyperClip , но для Go.

Я ищу платформенное агностическое решение! Любая помощь будет большой 🙂

Один проект (только для Windows и Mac) кажется приближающимся к тому, что вы хотите: atotto/clipboard .

Предоставьте копирование и вставку в буфер обмена для Go.

 func ReadAll() (string, error) func WriteAll(text string) error 

Поддержка Linux находится в этом классе clipboard_linux.go : простая оболочка для команды xsel --output/input --clipboard system.


Другой подход: попробуйте воспользоваться сторонними библиотеками, такими как GLFW :

бесплатную библиотеку с открытым исходным кодом, многоплатформенную библиотеку для открытия окна, создание контекста OpenGL и управление вводом

Его оболочка Go glfw3 предоставляет файл clipboard.go с предположительно многоплатформенными методами.

 func (w *Window) SetClipboardString(str string) func (w *Window) GetClipboardString() (string, error) 

Но это было бы в контексте окон GLFW, а не в любом окне оболочки.