about summary refs log tree commit diff
path: root/Completion/Unix
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/.distfiles2
-rw-r--r--Completion/Unix/Command/_screen83
2 files changed, 84 insertions, 1 deletions
diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles
index da774ef25..1587bf64f 100644
--- a/Completion/Unix/Command/.distfiles
+++ b/Completion/Unix/Command/.distfiles
@@ -19,5 +19,5 @@ _user_admin   _rsync        _arping	  _spamassassin _mtools       _ifconfig
 _fsh          _chkconfig    _cdcd         _irssi        _mysqldiff    _sccs
 _netcat       _larch        _texinfo	  _figlet       _elinks       _tidy
 _global       _global_tags  _ant          _lsof         _mt           _xmlsoft
-_perforce     _python       _antiword
+_perforce     _python       _antiword     _screen
 '
diff --git a/Completion/Unix/Command/_screen b/Completion/Unix/Command/_screen
new file mode 100644
index 000000000..d8c70cb16
--- /dev/null
+++ b/Completion/Unix/Command/_screen
@@ -0,0 +1,83 @@
+#compdef screen 
+#Generated by Felix Rosencrantz
+
+ local context state line scr_cmds
+ scr_cmds=(
+  acladd	aclchg		acldel		aclgrp		aclumask
+  activity	addacl		allpartial	at		attrcolor
+  autodetach	autonuke	backtick	bce		bell_msg
+  bind		bindkey		break		breaktype	bufferfile
+  c1		caption		charset		chdir		clear
+  colon		command		compacthist	console		copy
+  copy_reg	crlf		debug		defautonuke	defbce
+  defbreaktype	defc1		defcharset	defencoding	defescape
+  defflow	defgr		defhstatus	defkanji	deflog
+  deflogin	defmode		defmonitor	defobuflimit	defscrollback
+  defshell	defsilence	defslowpaste	defutf8		defwrap
+  defwritelock	defzombie	detach		digraph		dinfo
+  displays	dumptermcap	echo		encoding	escape
+  eval		exec		fit		flow		focus
+  gr		hardcopy	hardcopy_append	hardcopydir	hardstatus
+  height	help		history		hstatus		ignorecase
+  info		ins_reg		kill		lastmsg		license
+  lockscreen	log		logfile		login		logtstamp
+  mapdefault	mapnotnext	maptimeout	markkeys	maxwin
+  meta		monitor		msgminwait	msgwait		multiuser
+  nethack	next		nonblock	number		obuflimit
+  only		other		partial		password	paste
+  pastefont	pow_break	pow_detach	pow_detach_msg	prev
+  printcmd	process		quit		readbuf		readreg
+  redisplay	register	remove		removebuf	reset
+  resize	screen		scrollback	select		sessionname
+  setenv	setsid		shell		shelltitle	silence
+  silencewait	sleep		slowpaste	sorendition	source
+  split		startup_message	stuff		su		term
+  termcap	termcapinfo	terminfo	time		title
+  unsetenv	utf8		vbell		vbell_msg	vbellwait
+  verbose	version		wall		width		windowlist
+  windows	wrap		writebuf	writelock	xoff
+  xon		zombie
+ )
+  
+  typeset -A opt_args
+  _arguments \
+	"-a[Force all capabilities into each window's termcap.]" \
+	'-A:Adapt all windows to the new display width & height.' \
+	"-c:Read configuration file instead of '.screenrc'.:_files -/" \
+	'-d:Detach the elsewhere running screen (with -r: reattach here).:->sessionname' \
+	'-dmS:Start as daemon: Screen session in detached mode.' \
+	'-D:Detach and logout remote (with -r: reattach here).' \
+	'-e:Change command characters.' \
+	'-f-:Flow control on, -fn = off, -fa = auto.:((n\:Flow\ conrol\ off a\:Flow\ conrol\ auto))' \
+	'-h:Set the size of the scrollback history buffer.' \
+	'-i[Interrupt output sooner when flow control is on.]' \
+	'-l[Login mode on (update /var/run/utmp), -ln = off.]' \
+	'-list[Do nothing, just list our SockDir.]' \
+	'-ls[Do nothing, just list our SockDir.]' \
+	"-L[Terminal's last character can be safely updated.]" \
+	'-m[ignore $STY variable, do create a new screen session.]' \
+	'-O[Choose optimal output rather than exact vt100 emulation.]' \
+	'-p:Preselect the named window if it exists.' \
+	'-q[Quiet startup. Exits with non-zero return code if unsuccessful.]' \
+	'-r[Reattach to a detached screen process.]:Handling Tag sessionname:->sessionname' \
+	'-R[Reattach if possible, otherwise start a new session.]' \
+	'-s:Shell to execute rather than $SHELL.' \
+	'-S:Name this session <pid>.sockname instead of <pid>.<tty>.<host>.' \
+	"-t:Set title. (window's name)." \
+	'-T:Use term as $TERM for windows, rather than "screen".' \
+	'-U[Tell screen to use UTF-8 encoding.]' \
+	'-v[Print screen version.]' \
+	'-wipe[Do nothing, just clean up SockDir.]' \
+	'-x[Attach to a not detached screen. (Multi display mode).]' \
+	'-X[Execute <cmd> as a screen command in the specified session.]:screencmd:(${scr_cmds[@]})'
+
+case $state in
+  "sessionname")
+  # Complete folder names.
+  local screendir
+
+    screendir=(`screen -ls | grep Socket | sed -n -e 's/\.$//' -e '$p' | awk '{print $NF;}'`)
+
+  _wanted files expl 'screen process' _path_files -W screendir
+;;
+esac