From e9f49fb98aa28d866014a599ac1a67e118d67a03 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Tue, 17 Feb 2026 20:10:24 -0500 Subject: [PATCH] Fix cmd pop-up on background clipclear on Windows --- clip/copy_WIN.go | 8 +++++++- ...ProcessCLI_GENERIC.go => launchClipClearProcessCLI.go} | 0 ...ProcessGUI_GENERIC.go => launchClipClearProcessGUI.go} | 0 3 files changed, 7 insertions(+), 1 deletion(-) rename clip/{launchClipClearProcessCLI_GENERIC.go => launchClipClearProcessCLI.go} (100%) rename clip/{launchClipClearProcessGUI_GENERIC.go => launchClipClearProcessGUI.go} (100%) diff --git a/clip/copy_WIN.go b/clip/copy_WIN.go index da0c923..3690b14 100644 --- a/clip/copy_WIN.go +++ b/clip/copy_WIN.go @@ -5,9 +5,11 @@ package clip import ( "errors" "os/exec" + "syscall" "github.com/rwinkhart/go-boilerplate/back" "github.com/rwinkhart/go-boilerplate/security" + "golang.org/x/sys/windows" ) // CopyBytes copies a byte slice to the clipboard. @@ -28,7 +30,11 @@ func CopyBytes(clearClipboardAutomatically bool, copySubject []byte) error { // getClipCommands returns the commands for pasting and clearing the clipboard contents. func getClipCommands() (*exec.Cmd, *exec.Cmd, error) { + sysProcAttr := &syscall.SysProcAttr{CreationFlags: windows.CREATE_NO_WINDOW} + pasteCMD := exec.Command("powershell.exe", "-c", "Get-Clipboard") + pasteCMD.SysProcAttr = sysProcAttr clearCMD := exec.Command("clip.exe") + clearCMD.SysProcAttr = sysProcAttr _ = back.WriteToStdin(clearCMD, nil, false) - return exec.Command("powershell.exe", "-c", "Get-Clipboard"), clearCMD, nil + return pasteCMD, clearCMD, nil } diff --git a/clip/launchClipClearProcessCLI_GENERIC.go b/clip/launchClipClearProcessCLI.go similarity index 100% rename from clip/launchClipClearProcessCLI_GENERIC.go rename to clip/launchClipClearProcessCLI.go diff --git a/clip/launchClipClearProcessGUI_GENERIC.go b/clip/launchClipClearProcessGUI.go similarity index 100% rename from clip/launchClipClearProcessGUI_GENERIC.go rename to clip/launchClipClearProcessGUI.go