48 lines
1.0 KiB
Plaintext
48 lines
1.0 KiB
Plaintext
|
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
|
||
|
# ex: ts=8 sw=8 noet filetype=sh
|
||
|
#
|
||
|
# bash completion for screen
|
||
|
|
||
|
# screen(1) completion
|
||
|
#
|
||
|
have screen &&
|
||
|
_screen()
|
||
|
{
|
||
|
local cur prev preprev
|
||
|
|
||
|
COMPREPLY=()
|
||
|
cur=`_get_cword`
|
||
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||
|
|
||
|
[ "$COMP_CWORD" -ge 2 ] && preprev=${COMP_WORDS[COMP_CWORD-2]}
|
||
|
|
||
|
if [ "$preprev" = "-d" -o "$preprev" = "-D" -a "$prev" = "-r" -o \
|
||
|
"$prev" = "-R" ]; then
|
||
|
# list all
|
||
|
COMPREPLY=( $( command screen -ls | \
|
||
|
sed -ne 's|^['$'\t'']\+\('$cur'[0-9]\+\.[^'$'\t'']\+\).*$|\1|p' ) )
|
||
|
else
|
||
|
case "$prev" in
|
||
|
-[rR])
|
||
|
# list detached
|
||
|
COMPREPLY=( $( command screen -ls | \
|
||
|
sed -ne 's|^['$'\t'']\+\('$cur'[0-9]\+\.[^'$'\t'']\+\).*Detached.*$|\1|p' ) )
|
||
|
;;
|
||
|
-[dDx])
|
||
|
# list attached
|
||
|
COMPREPLY=( $( command screen -ls | \
|
||
|
sed -ne 's|^['$'\t'']\+\('$cur'[0-9]\+\.[^'$'\t'']\+\).*Attached.*$|\1|p' ) )
|
||
|
;;
|
||
|
-s)
|
||
|
# shells
|
||
|
COMPREPLY=( $( grep ^${cur:-[^#]} /etc/shells ) )
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|
||
|
fi
|
||
|
|
||
|
return 0
|
||
|
} &&
|
||
|
complete -F _screen $default screen
|