use utf8;

my @generic = qw(^l ! * / : ; < = > ? H L M Z [ ] j k n q t z);

'' => {
	desc => 'index',

	';' => ["apply to tagged", 'arg'], # tag-prefix
	'@' => ["display sender", 'ci'], # display-address
	':' => ["enter command"], # enter-command
	'=' => ["first entry"], # first-entry
	']' => ["half page down"], # half-down
	'[' => ["half page up"], # half-up
	'?' => ["help"], # help
	'!' => ["invoke shell"], # shell
	'*' => ["last message"], # last-entry
	'>' => ["line $sign{down}"], # next-line
	'<' => ["line $sign{up}"], # previous-line
	'.' => ["list new mail"], # buffy-list #TODO
	'|' => ["pipe to shell"], # pipe-message
	'$' => ["save mailbox"], # sync-mailbox
	'/' => ["search"], # search
	'#' => ["split up thread"], # break-thread
	'&' => ["thread tagged"], # link-threads
	'%' => ["toggle readonly"], # toggle-write
	' ' => '^m',

	'a' => ["create alias"], # create-alias
	'b' => ["bounce"], # bounce-message
	'^b'=> ["url$sign{_}view"],
	'\b'=> ["search bodies"], # M <search>~b
	'c' => ["open folder"], # change-folder
	'C' => ["copy message"], # copy-message
	'\c'=> ["open readonly"], # change-folder-readonly
	'\C'=> ["make plain copy"], # decode-copy
	'd' => ["delete"], # delete-message
	'D' => ["delete pattern"], # delete-pattern
	'^d'=> ["delete thread"], # delete-thread
	'\d'=> ["delete subthread"], # delete-subthread
	'e' => ["edit"], # edit
	'^e'=> ["edit con$sign{_}tent type"], # edit-type
	'\e'=> ["edit+send copy"], # resend-message
	'f' => ["forward"], # forward-message
	'F' => ["toggle important"], # flag-message
	'^f'=> ["forget pass$sign{_}phras$sign{_}e"], # forget-passphrase
	'g' => ["reply to all", '', 'Group reply'], # group-reply
	'G' => ["fetch POP", '', 'Gather new mail'], # fetch-mail
	'h' => ["toggle headers"], # display-toggle-weed
	'H' => ["screen top"], # top-page
	'^i'=> ["next unread msg"], # next-new-then-unread
#	'\tab'=> ["previous unread msg"], # previous-new-then-unread
	'j' => ["next entry"], # next-entry, next-undeleted
	'J' => ["next message"], # next-entry
	'k' => ["previous entry"], # previous-entry, previous-undeleted
	'K' => ["previous message"], # previous-entry
	'^k'=> ["extract pub keys"], # extract-keys
	'\k'=> ["send public key"], # mail-key
	'l' => ["limit pattern"], # limit
	'L' => ["reply to list"], # list-reply
	'^l'=> ["redraw"], # refresh
	'\l'=> ["show current limit"], # show-limit
	'm' => ["compose mail"], # mail
	'M' => ["screen middle"], # middle-page
	'^m'=> ["select"], # select-entry, display-message
	'n' => ["search next"], # search-next
	'N' => ["toggle new"], # toggle-new
	'^n'=> ["next thread"], # next-thread
	'\n'=> ["next subthread"], # next-subthread
	'o' => ["sort"], # sort-mailbox
	'O' => ["sort reverse"], # sort-reverse
	'p' => ["print"], # print-message
	'P' => ["to parent"], # parent-message
	'^p'=> ["previous thread"], # previous-thread
	'\p'=> ["previous subthread"], # previous-subthread
	'\P'=> ["check for pgp"], # check-traditional-pgp
	'q' => ["exit or quit"], # exit, quit
	'Q' => ["query for addresses"], # query #TODO
	'r' => ["reply to sender"], # reply
	'R' => ["recall postpon$sign{_}e$sign{_}d"], # recall-message
	'^r'=> ["mark thread read"], # read-thread
	'\r'=> ["mark sub$sign{_}thread r$sign{_}ead"], # read-subthread
	's' => ["move"], # save-message
	'\s'=> ["save and delete"], # decode-save
	't' => ["tag"], # tag-entry
	'T' => ["tag pattern"], # tag-pattern
	'^t'=> ["untag pattern"], # untag-pattern
	'\t'=> ["tag thread"], # tag-thread
	'u' => ["undo delete"], # undelete-message
	'U' => ["undelete pattern"], # undelete-pattern
	'^u'=> ["undelete thread"], # undelete-pattern
	'\u'=> ["undelete subthread"], # undelete-subthread
	'v' => ["attach$sign{_}ments"], # view-attachments
	'V' => ["version"], # show-version
	'\v'=> ["(un)collapse thread"], # collapse-thread
	'\V'=> ["(un)collapse threads"], # collapse-all
	'w' => ["set flag", 'arg'], # set-flag
	'W' => ["clear flag", 'arg'], # clear-flag
	'x' => ["exit menu"], # exit
	'y' => ["list incoming mailboxes"], # M <change-folder>?<toggle-mailboxes>
	'z' => ["page $sign{down}"], # next-page
	'Z' => ["page $sign{up}"], # previous-page
}, # index

' ' => {
	'L' => ["screen bottom"], # bottom-page
}, # general

