mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
37 lines
620 B
Go
37 lines
620 B
Go
|
package clipboard
|
||
|
|
||
|
/*
|
||
|
#cgo linux CFLAGS: -I/usr/src -I/usr/local/include/
|
||
|
#cgo linux LDFLAGS: /usr/local/lib/libclipboard.a -L/usr/src -L/usr/local/lib -lxcb
|
||
|
|
||
|
#include "clipboard.h"
|
||
|
*/
|
||
|
import "C"
|
||
|
|
||
|
import (
|
||
|
"sync"
|
||
|
"unsafe"
|
||
|
)
|
||
|
|
||
|
var mu = sync.Mutex{}
|
||
|
|
||
|
func ReadClipboard() string {
|
||
|
mu.Lock()
|
||
|
defer mu.Unlock()
|
||
|
|
||
|
clipboardUnsafe := C.ClipboardGet()
|
||
|
defer C.free(unsafe.Pointer(clipboardUnsafe))
|
||
|
|
||
|
return C.GoString(clipboardUnsafe)
|
||
|
}
|
||
|
|
||
|
func WriteClipboard(data string) {
|
||
|
mu.Lock()
|
||
|
defer mu.Unlock()
|
||
|
|
||
|
clipboardUnsafe := C.CString(data)
|
||
|
defer C.free(unsafe.Pointer(clipboardUnsafe))
|
||
|
|
||
|
C.ClipboardSet(clipboardUnsafe)
|
||
|
}
|