A decent browser
You need a web browser that does something besides act like a virus delivery service. Mozilla or Firefox will do the trick; I prefer Mozilla because on Firefox I had too much trouble trying to get the keyboard working the way I liked.
My only complaint was having the backspace key take me to the previous link, instead of simply moving the display of the current page back by one screen. I added lines 34 and 35 to /usr/X11R6/lib/mozilla/res/builtin/htmlBindings.xml to change the backspace key accordingly:
1 <?xml version="1.0"?> ... 32 <handler event="keypress" keycode="VK_LEFT" command="cmd_scrollLeft" /> 33 <handler event="keypress" keycode="VK_RIGHT" command="cmd_scrollRight" /> 34 <handler event="keypress" keycode="VK_BACK" command="cmd_scrollPageUp" /> 35 <handler event="keypress" keycode="VK_DELETE" command="cmd_scrollPageUp" /> 36 <handler event="keypress" keycode="VK_HOME" command="cmd_scrollTop"/> 37 <handler event="keypress" keycode="VK_END" command="cmd_scrollBottom"/> 38 <handler event="keypress" key="x" command="cmd_cut" modifiers="accel"/> 39 <handler event="keypress" key="c" command="cmd_copy" modifiers="accel"/>...
This doesn't seem to work with Mozilla-1.7.12, unfortunately. You have to unzip the file toolkit.jar in /usr/X11R6/lib/mozilla/chrome, go into the content/ directory, modify the platformHTMLBindings.xml file to hold the key mappings you like, and create a new toolkit.jar file holding the modified files.
Mozilla has a nice list of keyboard shortcuts available.
My Mozilla setup files are $HOME/.mozilla/userid/odd-string/user.js, $HOME/.mozilla/userid/odd-string/prefs.js, $HOME/.mozilla/userid/odd-string/chrome/userChrome.css, and $HOME/.mozilla/userid/odd-string/chrome/userContent.css.
Configurable mail delivery
I use qmail as my message transfer agent because it's secure and extensible. My user ID is vogelke, so I own any address starting with vogelke- and can filter mail to that address accordingly.
I have several qmail files in my home directory. The basic .qmail file is for any mail addressed to me without any dash extensions on the end. Each message runs through the procmail program for further filtering (Figure 13), and a copy of that same message gets appended to my backup/vogelke file.
Figure 13. Filtering incoming email
When I want to save an outgoing message, I send a BCC to vogelke-bcc, which appends a copy of the message as seen by the mail delivery software to my mail/sentmail file (Figure 14). This way, the message in sentmail is identical to the one seen by the recipient, in case I need to do any troubleshooting. Some mail readers can save a copy of your outgoing mail, but they don't do such a good job saving the headers you might need in case there's a delivery problem.
Figure 14. Saving a copy of a message I've sent
If I want to send mail to someone and have a copy of that message posted to my weblog, I send a BCC to vogelke-blog. This sends a copy of the message to the newpost program (Figure 15), which readies it for web display.
Figure 15. A weblogging alias
This example is a little more complex. I like to keep a record of the messages I've sent without having to keep copies of every single message, so I always send a BCC to vogelke-header. This sends a copy of the outgoing message through the formail program, which extracts the most useful lines from the header and appends them to a file in my mail folder called SENT.year-week (Figure 16).
Figure 16. Extracting headers from sent messages
This provides me with a record of everyone I've mailed, broken out by week (Figure 17).
Figure 17. Everyone I've mailed
Mail to vogelke-xnote goes through a program called xnote (Figure 18), which displays pop-up messages. Sending something to vogelke-xnote with the subject line Wake up causes a pop-up to appear (Figure 19). This is very useful, because any host that can send you mail can pop a message on your screen. The servers I maintain are all set up to send mail to me in this way whenever they shut down nicely and reboot, whenever hourly checks indicate that disk space is getting tight, and the like.
Figure 18. An alias to pop up messages
Figure 19. An emailed pop-up
The xnote script is basically a wrapper for another program called xalarm.