keyboard/altgr: label keys in each row with big class
[sheet.git] / keyboard / mutt.eng.inc.pl
1 use utf8;
2
3 my $esc = ['g9 mode', '+']; # globally label escape as meta key
4
5 my %commondef = (
6         "\e"=> $esc,
7
8         'H' => ['g2', "screen top"], # top-page
9         'j' => ['g2', "entry <down>"], # next-entry, next-undeleted
10         'k' => ['g2', "entry <up>"], # previous-entry, previous-undeleted
11         'L' => ['g2', "screen bottom"], # bottom-page
12         '^l'=> ['g1', "redraw"], # refresh
13         'M' => ['g2', "screen middle"], # middle-page
14         '^m'=> ['g6 mode^m', "select"], # select-entry, display-message
15         'n' => ['g3', "search <down>"], # search-next
16         'q' => ['g8 mode', "exit"], # exit
17         't' => ['g4', "tag"], # tag-entry
18         'z' => ['g2', "page <down>"], # next-page
19         'Z' => ['g2', "page <up>"], # previous-page
20
21         '*' => ['g2', "last entry"], # last-entry
22         '=' => ['g2', "first entry"], # first-entry
23         ':' => ['g6', "enter command"], # enter-command
24         ';' => ['g6 arg', "apply to tagged"], # tag-prefix
25         '>' => ['g2', "line <down>"], # next-line
26         '<' => ['g2', "line <up>"], # previous-line
27         ']' => ['g2', "half page <down>"], # half-down
28         '[' => ['g2', "half page <up>"], # half-up
29         '?' => ['g1', "help"], # help
30         '!' => ['g1 arg', "invoke shell"], # shell
31         '/' => ['g3 arg mode/~', "search <down>"], # search
32         '+/'=> ['g3 arg mode/~', "search <up>"], # search
33 );
34
35 {
36 title => 'Mutt',
37 version => '1.3',
38 description => [
39         "Cheat sheet for the Mutt v2.2 e-mail client,",
40         "showing the default binding for each key.",
41 ],
42 keywords => [qw' mutt MUA email client '],
43
44 mode => {
45         '' => 'index',
46         'm' => 'compose (m)',
47         w => 'message flags (w)',
48         '/~' => 'search patterns (/~)',
49 },
50
51 flag => {
52         g1 => [aside   => "Temporarily display something without changing state."],
53         g2 => [select  => "Scroll list and/or select a different line."],
54         g3 => [search  => "Go to a specific message entry."],
55         g4 => [edit    => "Modify message flags or contents."],
56         g6 => [command => "Any other action which does not alter an existing message."],
57         g7 => [send    => "Prepare and/or send a (new) message."],
58         g8 => [leave   => "Exit the opened folder."],
59         g9 => [display => "Permanently alter/toggle current view."],
60
61         arg => ["key<arg>" => "Commands with a dot need an argument afterwards."],
62 },
63
64 def => {
65         '' => {
66                 %commondef,
67
68                 '@' => ['g1', "display sender"], # display-address
69                 '.' => ['g8', "list new mail"], # buffy-list #TODO
70                 '|' => ['g6', "pipe to shell"], # pipe-message
71                 '$' => ['g4', "save mailbox"], # sync-mailbox
72                 '#' => ['g4', "split up thread"], # break-thread
73                 '&' => ['g4', "thread tagged"], # link-threads
74                 '%' => ['g4', "toggle reado<>nl<>y"], # toggle-write
75                 '-' => ['g9', "collapse thread"],
76                 '_' => ['g9', "collapse all"],
77                 '~' => ['g4 arg', "save mark"], # mark-message #TODO
78                 "'" => ['g3 arg', "marked mes<>sag<>e"],
79                 ' ' => \'^m',
80
81                 'a' => ['g6', "create alias"], # create-alias
82                 'b' => ['g7', "bounce"], # bounce-message
83                 '^b'=> ['g1', "url<>view"],
84                 '+b'=> [undef, "search bodies"], # M <search>~b
85                 'c' => ['g8', "open folder"], # change-folder
86                 'C' => ['g6', "copy messag<>e"], # copy-message
87                 '+c'=> ['g8', "open reado<>nly"], # change-folder-readonly
88                 '+C'=> [undef, "make plain copy"], # decode-copy
89                 'd' => ['g4', "delete"], # delete-message
90                 'D' => ['g4 arg mode/~', "delete patt<>er<>n"], # delete-pattern
91                 '^d'=> ['g4', "delete thread"], # delete-thread
92                 '+d'=> ['g4', "delete subthread"], # delete-subthread
93                 'e' => ['g4 linkvi', "edit"], # edit
94                 '^e'=> ['g4', "edit con<>tent type"], # edit-type
95                 '+e'=> [undef, "edit+send copy"], # resend-message
96                 'f' => ['g7 modem', "forward"], # forward-message
97                 'F' => ['g4', "toggle important"], # flag-message
98                 '^f'=> ['g6', "forget pass<>phras<>e"], # forget-passphrase
99                 'g' => ['g7 modem', "reply to all\nGroup reply"], # group-reply
100                 'G' => ['g6', "fetch POP\nGather new mail"], # fetch-mail
101                 'i' => ['g6', "fetch IMAP"], # imap-fetch-mail
102                 '^i'=> ['g3', "unread msg <down>"], # next-new-then-unread
103                 '+^i'=> [undef, "unread msg <up>"], # previous-new-then-unread
104                 'j' => ['g2', "messag<>e <down>"], # next-undeleted
105                 'k' => ['g2', "messag<>e <up>"], # previous-undeleted
106                 'J' => ['g3', "any <down>"], # next-entry
107                 'K' => ['g3', "any <up>"], # previous-entry
108                 '^k'=> ['g1', "extract pub keys"], # extract-keys
109                 '+k'=> ['g7 modem', "send public key"], # mail-key
110                 'l' => ['g9 arg mode/~', "limit pattern"], # limit
111                 'L' => ['g7 modem', "reply to list"], # list-reply
112                 '+l'=> ['g1', "mlist actions"], # list-actions/show-limit
113                 #'+l'=> [, "show current limit"],
114                 'm' => ['g7 modem', "compo<>s<>e mail"], # mail
115                 'N' => ['g4', "toggle new"], # toggle-new
116                 '^n'=> ['g3', "thread <down>"], # next-thread
117                 '+n'=> ['g3', "subthr<>ead <down>"], # next-subthread
118                 'o' => ['g9 modeo', "sort"], # sort-mailbox
119                 'O' => ['g9 modeo', "sort reverse"], # sort-reverse
120                 'p' => ['g1', "print"], # print-message
121                 'P' => ['g3', "to parent"], # parent-message
122                 '^p'=> ['g3', "thread <up>"], # previous-thread
123                 '+p'=> ['g3', "subthr<>ead <up>"], # previous-subthread
124                 '+P'=> [undef, "check for pgp"], # check-traditional-pgp
125                 'q' => ['g8', "quit"], # quit
126                 'Q' => ['g1 arg', "query addr<>ess<>es"], # query
127                 'r' => ['g7 modem', "reply to sender"], # reply
128                 'R' => ['g7 modem', "recall postpon<>e<>d"], # recall-message
129                 '^r'=> ['g4', "mark thread read"], # read-thread
130                 '+r'=> ['g4', "mark sub<>thread r<>ead"], # read-subthread
131                 's' => ['g4', "move"], # save-message
132                 '+s'=> ['g4', "save and delete"], # decode-save
133                 'T' => ['g4 arg mode/~', "tag patt<>er<>n"], # tag-pattern
134                 '^t'=> ['g4 arg mode/~', "untag pattern"], # untag-pattern
135                 '+t'=> ['g4', "tag thread"], # tag-thread
136                 'u' => ['g4', "undo delete"], # undelete-message
137                 'U' => ['g4 arg mode/~', "res<>tore pat<>t<>er<>n"], # undelete-pattern
138                 '^u'=> ['g4', "restore thread"], # undelete-thread
139                 '+u'=> ['g4', "restore subthread"], # undelete-subthread
140                 'v' => ['g1', "attach<>ments"], # view-attachments
141                 'V' => ['g1', "version"], # show-version
142                 '+v'=> ['g9', "(un)collapse thread"], # collapse-thread
143                 '+V'=> ['g9', "(un)collapse threads"], # collapse-all
144                 'w' => ['g4 arg modew', "set flag"], # set-flag
145                 'W' => ['g4 arg modew', "clear flag"], # clear-flag
146                 'x' => ['g8', "abort"], # exit
147                 'y' => ['g8', "list incoming mailboxes"], # M <change-folder>?<toggle-mailboxes>
148                 'Y' => ['g4 arg', "edit label"], # edit-label
149         }, # index
150
151         'm' => {
152                 %commondef,
153
154                 '|' => ['g4', "pipe attach<>m<>ent"],
155                 'a' => ['g4', "attach file"],
156                 'A' => ['g4', "attach messag<>e"],
157                 'b' => ['g4', "edit bcc"],
158                 '^b'=> ['g1', "url<>view"],
159                 'c' => ['g4', "edit cc"],
160                 'C' => ['g6', "copy file"],
161                 'd' => ['g4', "desc<>ribe attach<>m<>ent"],
162                 'D' => ['g4', "delete attach<>m<>ent"],
163                 '^d'=> ['g4', "dispo<>sition tog<>gle"],
164                 'e' => ['g4 linkvi', "edit body"],
165                 'E' => ['g4 linkvi', "edit all"],
166                 '^e'=> ['g4', "edit encoding"],
167                 'f' => ['g4', "edit fcc"],
168                 '^f'=> ['g6', "forget pass<>phrase"],
169                 '+f'=> ['g4', "edit from"],
170                 'F' => ['g4', "filter attach<>m<>ent"],
171                 'G' => ['g1', "get attach<>m<>ent"],
172                 'h' => ['g1', "display message"],
173                 'i' => ['g6', "run ispell"],
174                 '+k'=> ['g4', "attach PGP key"],
175                 'l' => ['g1', "print attach<>m<>ent"],
176                 'm' => ['g4', "edit attach<>m<>ent\nMime-appropriate open"],
177                 'M' => ['g4', "edit mix"],
178                 '^m'=> ['g1', "view attach<>m<>ent"],
179                 'n' => ['g6', "new attach<>m<>ent"],
180                 'o' => ['g4 ext', "autocrypt toggle"], #TODO
181                 '^o'=> ['g4', "rename attach<>m<>ent"],
182                 'p' => ['g1', "PGP menu"], #TODO
183                 'P' => ['g8 mode', "post<>pone"],
184                 'r' => ['g4', "edit reply<>-to"],
185                 'R' => ['g4', "rename attach<>m<>ent"],
186                 's' => ['g4', "edit subject"],
187                 'S' => ['g4 menumS', "s/mime options"],
188                 't' => ['g4', "edit to"],
189                 'T' => ['g4', "enter tags"], #TODO
190                 '^t'=> ['g4', "ctype attach<>m<>ent"],
191                 'w' => ['g6', "copy to folder"],
192                 'u' => ['g6', "unlink toggle"],
193                 'v' => ['g1', "preview alt fil<>t<>er"], # m+v mV
194                 '+v'=> 'g1',
195                 'V' => ['g1', "preview mailcap filter"],
196                 'U' => ['g4', "encode attach<>m<>ent"],
197                 'y' => ['g7', "send"],
198                 # ^xe
199         }, # compose
200
201         w => {
202                 "\e"=> $esc,
203                 'D' => ['g4', "deleted"],
204                 'd' => \'wD',
205                 'N' => ['g4', "new"],
206                 'n' => \'wN',
207                 'O' => ['g4', "old"],
208                 'o' => \'wO',
209                 'r' => ['g4', "replied"],
210                 'R' => \'wr',
211                 '*' => ['g4', "tagged"],
212                 '!' => ['g4', "flagged"],
213         }, # flag
214
215         '/~' => {
216                 "\e"=> $esc,
217                 'A' => ['g3', => "all"],
218                 'b' => ['g3 arg', => "msg body"],
219                 'B' => ['g3 arg', => "whole msg"],
220                 'c' => ['g3 arg', => "cc address"],
221                 'C' => ['g3 arg', => "to or cc address"],
222                 'd' => ['g3 arg', => "date sent ran<>g<>e"],
223                 'D' => ['g3', => "deleted"],
224                 'e' => ['g3 arg', => "sender"],
225                 'E' => ['g3', => "expired"],
226                 'f' => ['g3 arg', => "from"],
227                 'F' => ['g3', => "flagged"],
228                 'g' => ['g3', => "signed"],
229                 'G' => ['g3', => "encryp<>ted"],
230                 'h' => ['g3 arg', => "header"],
231                 'H' => ['g3 arg', => "spam attr<>ib<>ute"],
232                 'i' => ['g3 arg', => "msg id"],
233                 'k' => ['g3', => "pgp key"],
234                 'L' => ['g3 arg', => "receiv<>d by"],
235                 'l' => ['g3', => "mailing list"],
236                 'm' => ['g3 arg', => "num<>ber ran<>g<>e"],
237                 'M' => ['g3 arg', => "mime type"],
238                 'n' => ['g3 arg', => "score range"],
239                 'N' => ['g3', => "new"],
240                 'O' => ['g3', => "old"],
241                 'p' => ['g3', => "to you"],
242                 'P' => ['g3', => "by you"],
243                 'Q' => ['g3', => "replies"],
244                 'r' => ['g3 arg', => "receive date ran<>ge"],
245                 'R' => ['g3', => "read"],
246                 's' => ['g3', => "subject"],
247                 'S' => ['g3', => "super<>seded"],
248                 't' => ['g3 arg', => "to address"],
249                 'T' => ['g3', => "tagged"],
250                 'u' => ['g3', => "subscr<>ibed list"],
251                 'U' => ['g3', => "unread"],
252                 'v' => ['g3', => "collapsed thread"],
253                 'V' => ['g3', => "verified"],
254                 'x' => ['g3 arg', => "refer<>ence"],
255                 'X' => ['g3 arg', => "attach<>ments"],
256                 'y' => ['g3 arg', => "x-label"],
257                 'z' => ['g3 arg', => "size range"],
258                 '=' => ['g3', => "dupli<>cate"],
259                 '$' => ['g3', => "unrefer<>enced"],
260                 '(' => ['g3 arg', => "in thread"],
261                 '<' => ['g3 arg', => "parent match"],
262                 '>' => ['g3 arg', => "child match"],
263         }, # search option
264 },
265 }