@@ -16,7 +16,6 @@ import (
1616 "charm.land/bubbles/v2/textarea"
1717 tea "charm.land/bubbletea/v2"
1818 "charm.land/lipgloss/v2"
19− nativeclipboard "github.com/aymanbagabas/go-nativeclipboard"
2019 "github.com/charmbracelet/crush/internal/app"
2120 "github.com/charmbracelet/crush/internal/filetracker"
2221 "github.com/charmbracelet/crush/internal/fsext"
@@ -35,6 +34,11 @@ import (
3534 "github.com/charmbracelet/x/editor"
3635)
3736
37+var (
38+ errClipboardPlatformUnsupported = fmt.Errorf("clipboard operations are not supported on this platform")
39+ errClipboardUnknownFormat = fmt.Errorf("unknown clipboard format")
40+)
41+
3842type Editor interface {
3943 util.Model
4044 layout.Sizeable
@@ -341,12 +345,12 @@ func (m *editorCmp) Update(msg tea.Msg) (util.Model, tea.Cmd) {
341345 }
342346 // Handle image paste from clipboard
343347 if key.Matches(msg, m.keyMap.PasteImage) {
344− imageData, err := nativeclipboard.Image.Read()
348+ imageData, err := readClipboard(clipboardFormatImage)
345349
346350 if err != nil || len(imageData) == 0 {
347351 // If no image data found, try to get text data (could be file path)
348352 var textData []byte
349− textData, err = nativeclipboard.Text.Read()
353+ textData, err = readClipboard(clipboardFormatText)
350354 if err != nil || len(textData) == 0 {
351355 // If clipboard is empty, show a warning
352356 return m, util.ReportWarn("No data found in clipboard. Note: Some terminals may not support reading image data from clipboard directly.")