Source of screen.eng.inc.pl

use utf8;

{
# screen version 4.00.03jw4

key => {
	'a' => "literal a",
	'A' => "title", # title
	'^a'=> "last",
	'b' => "send break", # break
	'B' => "reopen break", # pow_break
	'c' => "new", # screen
	'C' => "clear", # clear
	'd' => "detach", # detach
	'D' => "detach logout", # pow_detach
	'f' => "flow", # flow
	'F' => "fit",
	'^g'=> "vbell", # vbell
	'h' => "hardcopy", # hardcopy
	'H' => "log", # log
	'i' => "prop<>erties", # info
	'I' => "login on", #XXX
	'^i'=> "focus", # focus
	'k' => "kill", # kill
	'l' => "redraw", # redisplay
	'L' => "login", # login
	'm' => "last msg", # lastmsg
	'M' => "moni<>tor", # monitor
	'n' => "next", # next
	'N' => "number", # number
	'O' => "login off", #XXX
	'^o'=> "other", # other
	'p' => "previous", # prev
	'q' => "xon", # xon
	'Q' => "only", # only
	'r' => "wrap", # wrap
	's' => 'xoff', # xoff
	't' => "time", # time
	'v' => "version",
	'^v'=> "digraph", # digraph
	'w' => "windows", # windows
	'W' => "width", # width
	'x' => "lock screen", # lockscreen
	'X' => "remove", # remove
	'z' => "suspend", # suspend
	'Z' => "reset",

	"'" => "select", # select
	'"' => "window<>list -b", # windowlist -b
	':' => "colon", # colon
	"\e"=> "copy", # copy
	'^]'=> "paste .", # paste .
	'|' => "split vert", # split -v
	'{' => "history", # history
	'}' => "history", # history
	'=' => "remove buf", # removebuf
	'*' => "displays", # displays
	'.' => "dump<>termcap", # dumptermcap
	',' => "license", # license
	'-' => "select -", # select -
	'_' => "silence", # silence
	'>' => "writebuf", # writebuf
	'<' => "readbuf", # readbuf
},

mode => {
	'' => 'index',
},

flag => {
	g1 => ["info", "Temporarily hover information in bottom task bar."],
	g2 => ["display", "Change screen display options."],
	g3 => ["select", "Switch between existing windows."],
	g4 => ["config", "Toggle configuration flags to change behaviour of the current window."],
	g5 => ["window", "Operate on or in current window with lasting results."],
	g6 => ["buffer", "..."],
	g7 => ["contents", "Insert or read character contents on a screen."],
	g9 => ["screen", "Manipulate global and inter-screen commands."],

	arg => ["key<arg>" => "Commands with a dot need a char argument afterwards."],
},

def => {
	'' => {
		'a' => 'g7',
		'A' => 'g9 args', # title
		'^a'=> 'g3',
		'b' => 'g7', # break
		'B' => 'g7', # pow_break
		'^b'=> '=b',
		'c' => 'g9', # screen
		'C' => 'g2', # clear
		'^c'=> '=c',
		'd' => 'g9', # detach
		'D' => 'g9', # pow_detach
		'^d'=> '=d',
		'f' => 'g4', # flow
		'F' => 'g4',
		'^f'=> '=f',
		'^g'=> 'g4', # vbell
		'h' => 'g6', # hardcopy
		'H' => 'g5', # log
		'^h'=> '=^p',
		'i' => 'g1', # info
		'I' => 'g5', #XXX
		'^i'=> 'g2', # focus
		'k' => 'g5', # kill
		'K' => '=k',
		'l' => 'g2', # redisplay
		'L' => 'g5', # login
		'^l'=> '=l',
		'm' => 'g1', # lastmsg
		'M' => 'g5', # monitor
		'^m'=> '=m',
		'n' => 'g3', # next
		'N' => 'g1', # number
		'^n'=> '=n',
		'O' => 'g5', #XXX
		'^o'=> 'g3', # other
		'p' => 'g3', # prev
		'^p'=> '=p',
		'q' => 'g4', # xon
		'Q' => 'g2', # only
		'^q'=> '=q',
		'r' => 'g4', # wrap
		'^r'=> '=r',
		's' => 'g4', # xoff
		'^s'=> '=s',
		't' => 'g1', # time
		'^t'=> '=t',
		'v' => 'g1',
		'^v'=> 'g7 arg arg linkdigraphs', # digraph
		'w' => 'g1', # windows
		'W' => 'g4', # width
		'^w'=> '=w',
		'x' => 'g9', # lockscreen
		'X' => 'g2', # remove
		'^x'=> '=x',
		'z' => 'g9', # suspend
		'Z' => 'g9',
		'^z'=> '=z',

		"'" => 'g3 arg', # select
		'"' => 'g3', # windowlist -b
		':' => 'g4', # colon
		"\e"=> 'g6', # copy
		'[' => '=^[',
		'^['=> "=\e",
		'^]'=> 'g7', # paste .
		']' => '=^]',
		'|' => 'g2', # split -v
		'{' => 'g7', # history
		'}' => 'g7', # history
		'=' => 'g6', # removebuf
		'^?'=> '=^h',
		'*' => 'g1', # displays
		'.' => 'g9', # dumptermcap
		',' => 'g1', # license
		'-' => 'g3', # select -
		'_' => 'g5', # silence
		'>' => 'g6', # writebuf
		'<' => 'g6', # readbuf
		'^@'=> '=n',
	},
},
}