]> git.cworth.org Git - sup/blob - doc/UserGuide.txt
4ba033655307d4b8c46034358460abc3dac313c2
[sup] / doc / UserGuide.txt
1 Welcome to Sup! Here's how to actually use it.
2
3 First, try running 'sup'. Assuming this is your first time, you'll be
4 confronted with a mostly blank screen, and a notice at the bottom that
5 you have no new messages. That's because Sup doesn't have any messages
6 in its index yet.
7
8 If you want to play around a little at this point, you can press 'b'
9 to cycle between buffers and 'x' to kill a buffer. There's probably
10 not too much interesting there, but there's a log buffer with some
11 cryptic messages. You can also press '?' at any point to get a list of
12 keyboard commands, but in the absense of any email, these will be
13 mostly useless. When you're bored, press 'q' to quit.
14
15 Let's add some messages to Sup. In order for Sup to know about a
16 message, it must be in the index. In order for Sup to load a message
17 into the index, it must know about the "source" in which it
18 resides. Sup works by storing all the information that is necessary to
19 search, and all the state we have about the message (labels,
20 read/unread, etc.) in the index, but not storing the actual contents
21 of the message itself. So when you search or show your inbox, Sup just
22 talks to the index (stored locally on disk), and when you view a
23 message, Sup requests it in full from the to the source.
24
25 So let's tell Sup about some sources. Run 'sup-import' with a URI
26 pointing to an email source. The URI should be of the form:
27 - mbox://path/to/a/filename, for an mbox file on disk. (You can also
28   just provide the filename).
29 - imap://imap.server/folder or imaps://secure.imap.server/folder for
30   an IMAP folder. (Leave the folder blank for INBOX.)
31 - mbox+ssh://remote.machine/path/to/a/filename for a remote mbox file.
32
33 Before you actually import message, you need to decide whether you
34 want messages them to be archived or not. An archived message will not
35 show up in your inbox. (Your inbox is, by definition, all non-archived
36 messages). If you specify --force-archive, messages imported at *this*
37 time will be archived, but new messages will go to your inbox. If you
38 specify --archive, messages imported at *any* time will be
39 automatically archived. (This is useful for sources that contain
40 high-traffic mailing lists that you don't want "polluting" your
41 inbox.)
42
43 Typically you'll want to specify --archive for every source you import
44 except your actual inbox. You can also force all messages to be marked
45 as read; run sup-import --help for details. (The default is to
46 preserve the read/unread status from the source.)
47
48 Run sup-import to add the source. You can run it on multiple sources
49 at once if you want to apply the same set of flags to all of them. If
50 sup-import requires a username and password for the source, it will
51 prompt you for one. Either way, it will add the sources to Sup, and
52 immediately start loading messages from them into the index. Depending
53 on the size of the source, this may take some time. Don't worry! This
54 is a one-time process, and all the computation done now makes actually
55 using the index faster.
56
57 Now, before we run 'sup' again, take a moment to edit your
58 ~/.sup/config.yaml file. Replace "Your Name Here" with your name,
59 "your.email.here@domain.tld" with your email address, and fill in your
60 .signature file if you choose. You can also set the default editor.
61
62 Ok, we're finally ready---run 'sup'. You should see messages being
63 loaded into your inbox from the index. Congratulations!
64
65 If you're coming from the world of traditional email, there are a
66 couple differences you should be aware of at this point. First, Sup
67 does not use folders. Instead, you organize and find messages by a
68 combination of search and labels (knowns as 'tags' everywhere else in
69 the world). I like to say that 95% of the functionality of folders is
70 superceded by a quick, easy-to-access, and powerful search mechanism,
71 and the other 5% by labels. The Sup statement of philosophy has a
72 little more on this. We'll get to search in a moment, but if you're
73 unfamiliar with labels, they're just any arbitrary word that you can
74 attach to a message, and any message can have zero or more labels. So
75 you can think of folders as labels in the case where you're restricted
76 to exactly one label per message.
77
78 The reason this works at all is due to the second thing you should be
79 aware of: in Sup, rather than viewing the contents of a folder, you
80 view the results of a search. I mentioned above that your inbox is, by
81 definition, the set of all messages that aren't archived. This means
82 that your inbox, in fact the result of the search for "all messages
83 without the label 'archive'. (It's actually slightly more complicated
84 than that---we omit killed, deleted and spam messages as well.)
85
86 So you could replicate the folder experience easily under this scheme,
87 by giving each message exactly one label and only viewing the results
88 of simple searches for those labels. But you'd quickly find out that
89 life can be easier than that if you just trust the search engine and
90 use labels judiciously to find those things that are too hard with
91 search. (The best label I've seen someone use: "contact-info".)
92
93 But enough chit-chat. Let's take a look at your inbox. You'll see that
94 Sup groups messages together into threads: each line in the inbox is a
95 thread, and the number in parentheses is the number of messages in
96 that thread. (If there's no number, it means there's just one
97 message.) In Sup, you rarely operate on an individual message. The
98 idea is that you rarely want to operate on a message independent of
99 its context; you typically want to view, archive, kill, or label all
100 the messages in a given thread at one time.
101
102 Use the up and down arrows to highlight a thread. ('j' and 'k' do the
103 same thing, and 'J' and 'K' will scroll the whole window, just like
104 scroll-lock used to. Even the left and right arrow keys work!) By
105 default, Sup only loads as many threads as it takes to fill the
106 window; if you'd like to load more, press 'M'. You can hit tab to
107 cycle between only threads with new messages.
108
109 Highlight a thread and press enter to view it. You'll notice that all
110 messages in the thread are displayed together, and their relationship
111 is shown graphically (replies are nested under parents). By default,
112 only the new messages in a thread are expanded, and the others are
113 hidden. You can toggle an individual message's state by highlighting a
114 green line and pressing enter. You can use 'E' to expand or collapse
115 all messages, and 'N' to expand only the new messages.  You'll also
116 notice that Sup hides quoted text and signatures. If you highlight a
117 particular one, you can press enter to expand it, or you can press 'o'
118 to toggle every hidden section in a particular message. (Don't worry
119 about remembering all these things---you can hit '?' to see the full
120 list at any point.)
121
122 A few other useful commands while viewing a thread. Press 'd' to
123 toggle a detailed header. If you've scrolled too far to the right,
124 press '[' to jump all the way to the left. Finally, you can press 'n'
125 and 'p' to jump forward and backward between open messages. (I find
126 that very useful!)
127
128 Now press 'x' to kill that buffer. You should see the inbox again. If
129 you don't, you can cycle through the buffers by pressing 'b', or you
130 can press 'A' to see a list of all buffers and simply select the
131 inbox.
132
133 There are many operations you can perform on threads beyond viewing
134 them. To archive a thread, press 'a'. The thread will disappear from
135 your inbox, but will still appear in search results. If someone
136 replies to the thread, it will reappear in your inbox. To kill a
137 thread, press '&'. Killed threads will never come back to your inbox,
138 even if people reply (but will still be searchable). This is useful
139 for those interminable threads that you really have no interest in.
140
141 If a thread is spam, press 'S'. It will disappear and won't come
142 back. It won't even appear in search results (unless you explicitly
143 search for spam.)
144
145 You can also star a thread by pressing '*'. Starred threads are
146 displayed with a little yellow asterix next to them, but otherwise
147 have no functionality. (But you can also search for them
148 easily---we'll see how in a moment).
149
150 To edit the labels for (all the messages in) a thread, press 'l'. Type
151 in the labels as a sequence of space-separated words. To cancel the
152 input, press Ctrl-G.
153
154 Many of these operations can be applied to a group of threads. Press
155 't' to tag a thread. Tag a couple, then press ';' to apply the next
156 command to the set of threads. ';t', of course, will untag all tagged
157 messages.
158
159 Ok, let's use labels and search. Press 'L' to bring up a list of all
160 the labels you've ever used, along with some special labels (Draft,
161 Starred, Spam, etc.). Highlight a label and press enter to view all
162 the messages with that label.
163
164 To search, press "/" and type in your query (again, Ctrl-G to cancel
165 at any point.) You can just type in arbitrary text, which will be
166 matched against the bodies of all email in the index, or you can make
167 use of the full Ferret query syntax:
168
169 - Phrasal queries using double-quotes, e.g.: "three contiguous words"
170 - Queries against a particular field using <field name>:<query>,
171   e.g.: label:ruby-talk, or from:matz@ruby-lang.org. (Fields include:
172   body, from, to, and subject.)
173 - Force occurrence and non-occurrence with + and -, e.g. +label:spam, or
174   -body:"hot soup"
175
176 You can combine those all together. For example:
177      +label:ruby-talk +subject:\[ANN\] -rails
178
179 Play around with the search, and see the Ferret documentation for
180 details on more sophisticated queries (date ranges, "within n words",
181 etc.)
182
183 At this point, you're well on your way to figuring out all the cool
184 things Sup can do. With judicious use of the '?' key, see if you can
185 figure out how to:
186  - List your recent contacts
187  - Add someone to your address book
188  - Easily search for all mail from a recent contact
189  - Postpone a message (i.e., save a draft)
190  - Quickly re-edit a just-saved draft message
191  - View the raw header of a message
192
193 Have fun, and let me know if you have any problems. --William