Skip to content

Instantly share code, notes, and snippets.

@hmijail
Last active April 29, 2025 05:27
Show Gist options
  • Save hmijail/5676ce439edbd3c1c5a0e46e04c5293a to your computer and use it in GitHub Desktop.
Save hmijail/5676ce439edbd3c1c5a0e46e04c5293a to your computer and use it in GitHub Desktop.
A CopyQ command to implement a Clipboard FIFO
[Command]
Command="
copyq:
//Works as of CopyQ v10.0.0
var c = count()
if (c==0) {
popup('Nothing to FIFO-paste')
abort()
}
maxrow = c-1
select(maxrow)
try {
paste()
} catch (e) {
// Pasting failed!
popup('Pasting Failed', e)
fail()
}
popup('FIFO pasted', str(c-1)+\" remaining\", 2000)
if (config('move') == 'true') {
remove(0)
} else {
remove(maxrow)
}
"
GlobalShortcut=meta+ctrl+alt+v
IsGlobalShortcut=true
Name=HM Clipboard FIFO
@reznir
Copy link

reznir commented Oct 31, 2017

It is not working it deletes wrong item in clipboard.

@waiting-for-dev
Copy link

That's because of the value of the move setting (Preferences -> History -> Move item to the top). When true, the script needs a tweak. The reason is that the select function not only selects but can also move depending on that setting. You can have it like the following to work with both values:

[Command]
Command="
copyq: 
maxrow = count() - 1
select(maxrow)
paste()
if (config('move') == 'true') {
  remove(0)
} else {
  remove(maxrow)
}"
GlobalShortcut=ctrl+shift+v
Name=HM Clipboard FIFO

@hmijail
Copy link
Author

hmijail commented Apr 29, 2025

I just updated it to a version that works with CopyQ v10.0.0.
Thank you @waiting-for-dev !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment