mirror of https://github.com/kianby/dotfiles
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
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
|