You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1002 B
Bash

#!/usr/bin/env sh
# Source: https://github.com/niedzielski/cb
# If not sourced, set safety options.
case "$0" in */cb) set -eu ;; esac
case "${OSTYPE:-}$(uname)" in
[lL]inux*) ;;
[dD]arwin*) mac_os=1 ;;
[cC]ygwin) win_os=1 ;;
*) echo "Unknown operating system \"${OSTYPE:-}$(uname)\"." >&2; false ;;
esac
#is_wayland() { [ "$XDG_SESSION_TYPE" = 'wayland' ]; }
is_wayland() { [ 1 -eq 0 ]; }
is_mac() { [ ${mac_os-0} -ne 0 ]; }
is_win() { [ ${win_os-0} -ne 0 ]; }
if is_mac; then
alias cbcopy=pbcopy
alias cbpaste=pbpaste
elif is_win; then
alias cbcopy=putclip
alias cbpaste=getclip
else
if is_wayland; then
alias cbcopy=wl-copy
alias cbpaste=wl-paste
else
alias cbcopy='xclip -sel c'
alias cbpaste='xclip -sel c -o'
fi
fi
cb() {
if [ ! -t 0 ] && [ $# -eq 0 ]; then
# No stdin and no call for --help, blow away the current clipboard and copy.
cbcopy
else
cbpaste "$@"
fi
}
# If not sourced, execute.
case "$0" in */cb) cb "$@" ;; esac