pass -cしても、xclipなかったので、うまい事コピーできなかったので、以下のようにソースを変更。
clip() {
# This base64 business is because bash cannot store binary data in a shell
# variable. Specifically, it cannot store nulls nor (non-trivally) store
# trailing new lines.
local sleep_argv0="password store sleep on display $DISPLAY"
pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5
local before="$(cat /dev/clipboard | base64)"
echo -n "$1" > /dev/clipboard || die "Error: Could not copy data to the clipboard"
(
( exec -a "$sleep_argv0" sleep "$CLIP_TIME" )
local now="$(cat /dev/clipboard | base64)"
[[ $now != $(echo -n "$1" | base64) ]] && before="$now"
# It might be nice to programatically check to see if klipper exists,
# as well as checking for other common clipboard managers. But for now,
# this works fine -- if qdbus isn't there or if klipper isn't running,
# this essentially becomes a no-op.
#
# Clipboard managers frequently write their history out in plaintext,
# so we axe it here:
qdbus org.kde.klipper /klipper org.kde.klipper.klipper.clearClipboardHistory &>/dev/null
echo "$before" | base64 -d > /dev/clipboard
) 2>/dev/null & disown
echo "Copied $2 to clipboard. Will clear in $CLIP_TIME seconds."
}
うまくいった。
P.S. pbcopy/pbpasteは以下のような 感じ。
function pbcopy(){
cat -> /dev/clipboard
}
function pbpaste(){
cat /dev/clipboard
}
(2022/4/6追記)
https://gist.github.com/imiric/4ddd7b669c2ac6642c53d7a4bff070e6
https://neos21.net/blog/2021/01/24-02.html