https://wiki.archlinux.org/api.php?action=feedcontributions&user=Tlp&feedformat=atomArchWiki - User contributions [en]2024-03-29T01:39:05ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Mutt&diff=229116Mutt2012-10-16T22:32:14Z<p>Tlp: </p>
<hr />
<div>[[Category:Email Client]]<br />
[[es:Mutt]]<br />
[[it:Mutt]]<br />
[[zh-CN:Mutt]]<br />
[[zh-TW:Mutt]]<br />
{{Article summary start}}<br />
{{Article summary text|A guide on configuring and using Mutt.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|fdm}}<br />
{{Article summary wiki|msmtp}}<br />
{{Article summary wiki|offlineimap}}<br />
{{Article summary end}}<br />
<br />
'''Mutt''' is a text-based mail client renowned for its powerful features. Though over a decade old, Mutt remains the mail client of choice for a great number of power-users. Unfortunately, a default Mutt install is plagued by complex keybindings along with a daunting amount of documentation. This guide will help the average user get Mutt up and running, and begin customizing it to their particular needs.<br />
<br />
==Overview==<br />
Mutt focuses primarily on being a Mail User Agent (MUA), and was originally written to view mail. Later implementations added for retrieval, sending, and filtering mail are simplistic compared to other mail applications and, as such, users may wish to use external applications to extend Mutt's capabilities. <br />
<br />
Nevertheless, the Arch Linux {{Pkg|mutt}} package is compiled with IMAP, POP3 and SMTP support, removing the necessity for external applications.<br />
<br />
This article covers using both native IMAP sending and retrieval, and a setup depending on [[OfflineIMAP]] or [[getmail]] (POP3) to retrieve mail, [[procmail]] to filter it in the case of POP3, and [[msmtp]] to send it.<br />
<br />
==Installing==<br />
[[pacman|Install]] {{Pkg|mutt}}, available in the [[Official Repositories]]. <br />
<br />
Optionally install external helper applications for an IMAP setup, such as {{Pkg|offlineimap}} and {{Pkg|msmtp}}.<br />
<br />
Or (if using POP3) {{Pkg|getmail}} or {{Pkg|fdm}} and {{Pkg|procmail}}.<br />
<br />
{{Note|<br />
*If you just need the authentication methods LOGIN and PLAIN, these are satisfied with the dependency {{Pkg|libsasl}}<br />
*If you want to (or have to) use CRAM-MD5, GSSAPI or DIGEST-MD5, install the package {{Pkg|cyrus-sasl-gssapi}}<br />
*If you are using Gmail as your SMTP server, you may need to install the package {{Pkg|cyrus-sasl}}<br />
}}<br />
<br />
==Configuring==<br />
This section covers IMAP, [[#POP3]], [[#Maildir]] and [[#SMTP]] configuration.<br />
<br />
Note that Mutt will recognize two locations for its configuration file; {{ic|~/.muttrc}} and {{ic|~/.mutt/muttrc}}. Either location will work.<br />
You should also know some prerequisite for Mutt configuration. Its syntax is very close the Bourne Shell. For example, you can get the content of another config file:<br />
source /path/to/other/config/file<br />
You can use variables and assign the result of shell commands to them.<br />
set editor=`echo \$EDITOR`<br />
Here the {{ic|$}} gets escaped so that it does not get substituted by Mutt before being passed to the shell.<br />
Also note the use of the backquotes, as bash syntax {{ic|$(...)}} does not work.<br />
Mutt has a lot of predefined variables, but you can also set your own. User variable '''must begin with "my"!'''<br />
set my_name = "John Doe"<br />
<br />
===IMAP===<br />
''Native and external setups''<br />
<br />
====Using native IMAP support====<br />
The pacman version of Mutt is compiled with IMAP support. At the very least you need to have 4 lines in your muttrc file to be able to access your mail.<br />
<br />
=====imap_user=====<br />
set imap_user=USERNAME<br />
<br />
Continuing with the previous example, remember that Gmail requires your full email address (this is not standard):<br />
set imap_user=your.username@gmail.com<br />
<br />
=====imap_pass=====<br />
If unset, the password will be prompted for.<br />
set imap_pass=SECRET<br />
<br />
=====folder=====<br />
Instead of a local directory which contains all your mail (and directories), use your server (and the highest folder in the hierarchy, if needed).<br />
set folder=imap[s]://imap.server.domain[:port]/[folder/]<br />
<br />
You do not have to use a folder, but it might be convenient if you have all your other folders inside your INBOX, for example. Whatever you set here as your folder can be accessed later in Mutt with just an equal sign (=). Example:<br />
set folder=imaps://imap.gmail.com/<br />
<br />
It should be noted that for several accounts, it is best practice to use different folders -- e.g. for ''account-hook''. If you have several Gmail account, use<br />
set folder=imaps://username@imap.gmail.com/<br />
instead, where your account is ''username@gmail.com''.<br />
<br />
=====spoolfile=====<br />
You can now use '=' or '+' as a substitution for the full {{Ic|folder}} path that was configured above. For example:<br />
set spoolfile=+INBOX<br />
<br />
=====mailboxes=====<br />
Any imap folders that should be checked regularly for new mail should be listed here:<br />
mailboxes =INBOX =family<br />
mailboxes imaps://imap.gmail.com/INBOX imaps://imap.gmail.com/family<br />
<br />
Alternatively, check for all subscribed IMAP folders (as if all were added with a {{Ic|mailboxes}} line):<br />
set imap_check_subscribed<br />
<br />
These two versions are equivalent, but the first is much more convenient. Also, newer Mutt versions are configured by default to include a macro bound to the 'y' key which will allow you to change to any of the folders listed under mailboxes.<br />
<br />
=====Summary=====<br />
Using these options, you will be able to start Mutt, enter your IMAP password, and start reading your mail. Here is a muttrc snippet (for Gmail) with some other lines you might consider adding for better IMAP support.<br />
{{bc|1=<br />
set folder = imaps://imap.gmail.com/<br />
set imap_user = your.username@gmail.com<br />
set imap_pass = your-imap-password<br />
set spoolfile = +INBOX<br />
mailboxes = +INBOX<br />
<br />
# store message headers locally to speed things up<br />
# if hcache is a folder, Mutt will create sub cache folders for each account which may speeds things even more up<br />
set header_cache = ~/.mutt/hcache<br />
<br />
# store messages locally to speed things up, like searching message bodies <br />
# can be the same folder as header_cache<br />
set message_cachedir = "~/.mutt/cache"<br />
<br />
# specify where to save and/or look for postponed messages<br />
set postponed = +[Gmail]/Drafts<br />
<br />
# allow Mutt to open new imap connection automatically<br />
unset imap_passive<br />
<br />
# keep imap connection alive by polling intermittently (time in seconds)<br />
set imap_keepalive = 300<br />
<br />
# how often to check for new mail (time in seconds)<br />
set mail_check = 120<br />
}}<br />
<br />
====External IMAP support====<br />
While IMAP-functionality is built into Mutt, it does not download mail for offline-use. The [[OfflineIMAP]] article describes how to download your emails to a local folder which can then be processed by Mutt.<br />
<br />
Consider using applications such as [[spamassassin]] or [[imapfilter]] to sort mail.<br />
<br />
===POP3===<br />
''Retrieving and sorting mail with external applications''<br />
<br />
====Retrieving mail====<br />
Create the directory {{ic|~/.getmail/}}. Open the file {{ic|~/.getmail/getmailrc}} in your favorite text editor.<br />
<br />
Here is an example {{ic|getmailrc}} used with a gmail account.<br />
{{bc|1=<br />
[retriever]<br />
type = SimplePOP3SSLRetriever<br />
server = pop.gmail.com<br />
username = username@gmail.com<br />
port = 995<br />
password = password<br />
<br />
[destination]<br />
type = Maildir<br />
path = ~/mail/<br />
}}<br />
<br />
You can tweak this to your POP3 service's specification.<br />
<br />
Most people will like to add the following section to their {{ic|getmailrc}} to prevent all the mail on the server being downloaded every time getmail is ran.<br />
{{bc|1=<br />
[options]<br />
read_all = False<br />
}}<br />
<br />
As you can see {{ic|~/.getmail/getmailrc}} contains sensitive information (namely, email account passwords in plain text). You will want to change access permissions to the directory so only the owner can see it:<br />
<br />
$ chmod 700 ~/.getmail<br />
<br />
For this guide we will be storing our mail in the {{ic|maildir}} format. The two main mailbox formats are {{ic|mbox}} and {{ic|maildir}}. The main difference between the two is that {{ic|mbox}} is one file, with all of your mails and their headers stored in it, whereas a {{ic|maildir}} is a directory tree. Each mail is its own file, which will often speed things up.<br />
<br />
A {{ic|maildir}} is just a folder with the folders {{ic|cur}}, {{ic|new}} and {{ic|tmp}} in it.<br />
mkdir -p ~/mail/{cur,new,tmp}<br />
<br />
Now, run getmail. If it works fine, you can create a cronjob for getmail to run every n hours/minutes. Type {{ic|crontab -e}} to edit cronjobs, and enter the following:<br />
*/10 * * * * /usr/bin/getmail<br />
That will run {{ic|getmail}} every 10 minutes.<br />
<br />
Also, to quiet getmail down, we can reduce its verbosity to zero by adding the following to {{ic|getmailrc}}.<br />
{{bc|1=<br />
[options]<br />
verbose = 0<br />
}}<br />
<br />
=====More than one Email account with getmail=====<br />
By default, when you run {{ic|getmail}} the program searches for the file getmailrc created as seen above. If you have more than one mail account you would like to get mail from, then you can create such a file for each email address, and then tell getmail to run using both of them. Obviously if you have two accounts and two files you cannot have both of them called getmailrc. What you do is give them two different names, using myself as an example: I call one personal, and one university. These two files contain content relevant to my personal mail, and my university work mail respectively. Then to get getmail to work on these two files, instead of searching for getmailrc(default), I use the --rcfile switch like so: {{ic|getmail --rcfile university --rcfile personal}} This can work with more files if you have more email accounts, just make sure each file is in the .getmail directory and make sure to alter the cronjob to run the command with the --rcfile switches. E.g.<br />
'''*/30 * * * * /usr/bin/getmail --rcfile university --rcfile personal'''<br />
<br />
Obviously you can call your files whatever you want, providing you include them in the cronjob or shell command, and they are in the .getmail/ directory, getmail will fetch mail from those two accounts.<br />
<br />
====Sorting mail====<br />
[http://www.procmail.org/ Procmail] is an extremely powerful sorting tool. For the purposes of this wiki, we will do some primitive sorting to get started.<br />
<br />
You must edit your getmailrc to pass retrieved mail to procmail:<br />
{{bc|1=<br />
[destination]<br />
type = MDA_external<br />
path = /usr/bin/procmail<br />
}}<br />
<br />
Now, open up {{ic|.procmailrc}} in your favorite editor. The following will sort all mail from the happy-kangaroos mailing list, and all mail from your lovey-dovey friend in their own maildirs.<br />
{{bc|1=<br />
MAILDIR=$HOME/mail<br />
DEFAULT=$MAILDIR/inbox/<br />
LOGFILE=$MAILDIR/log<br />
<br />
:0:<br />
* ^To: happy-kangaroos@nicehost.com<br />
happy-kangaroos/<br />
<br />
:0:<br />
* ^From: loveydovey@iheartyou.net<br />
lovey-dovey/<br />
}}<br />
After you have saved your {{ic|.procmailrc}}, run getmail and see if procmail succeeds in sorting your mail into the appropriate directories.<br />
<br />
{{Note|One easy to make mistake with .procmailrc is the permission. procmail require it to have permission 644 and will not give meaningless error message if you do not.}}<br />
<br />
===Maildir===<br />
Maildir is a generic and standardized format. Almost every MUA is able to handle Maildirs and Mutt's support is excellent. There are just a few simple things that you need to do to get Mutt to use them. Open your muttrc and add the following lines:<br />
{{bc|1=<br />
set mbox_type=Maildir<br />
set folder=$HOME/mail<br />
set spoolfile=+/<br />
set header_cache=~/.hcache<br />
}}<br />
<br />
This is a minimal Configuration that enables you to access your Maildir and checks for new local Mails in INBOX. This configuration also caches the headers of the eMails to speed up directory-listings. It might not be enabled in your build (but it sure is in the Arch-Package). Note that this does not affect OfflineIMAP in any way. It always syncs the all directories on a Server. {{ic|spoolfile}} tells Mutt which local directories to poll for new Mail. You might want to add more Spoolfiles (for example the Directories of Mailing-Lists) and maybe other things. But this is subject to the Mutt manual and beyond the scope of this document.<br />
<br />
===SMTP===<br />
Whether you use POP or IMAP to receive mail you will probably still send mail using SMTP.<br />
<br />
====Using native SMTP support====<br />
The pacman version of Mutt is also compiled with SMTP support. Just check the online manual [http://manual.cream.org/index.cgi/muttrc.5 muttrc], or {{ic|man muttrc}} for more information.<br />
<br />
For example:<br />
{{bc|1=<br />
set my_pass='mysecretpass'<br />
set my_user=myname<br />
<br />
set smtp_url=smtps://$my_user:$my_pass@smtp.domain.tld<br />
set ssl_force_tls = yes<br />
}}<br />
<br />
Note that if your SMTP credentials are the same as your IMAP credentials, then you can use those variables:<br />
<br />
{{bc|1=<br />
set smtp_url=smtps://$imap_user:$imap_pass@smtp.domain.tld<br />
}}<br />
<br />
You may need to tweak the security parameters. If you get an error like<br />
{{ic|SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol}},<br />
then your server most probably uses the SMTP instead of SMTPS.<br />
<br />
{{bc|1=<br />
set smtp_url=smtp://$imap_user:$imap_pass@smtp.domain.tld<br />
}}<br />
<br />
There is other variable that you may need to set. For example for use of STARTTLS:<br />
{{bc|1=<br />
set ssl_starttls = yes<br />
}}<br />
<br />
====External SMTP support====<br />
An external SMTP agent such as [[msmtp]] or [[SSMTP]] can also be used. This section exclusively covers configuring Mutt for msmtp.<br />
<br />
Edit Mutt's configuration file or create it if unpresent:<br />
{{hc|muttrc|2=<br />
set realname='Disgruntled Kangaroo'<br />
<br />
set sendmail="/usr/bin/msmtp"<br />
<br />
set edit_headers=yes<br />
set folder=~/mail<br />
set mbox=+mbox<br />
set spoolfile=+inbox<br />
set record=+sent<br />
set postponed=+drafts<br />
set mbox_type=Maildir<br />
<br />
mailboxes +inbox +lovey-dovey +happy-kangaroos<br />
}}<br />
<br />
====Sending mails from Mutt====<br />
Now, startup {{Ic|mutt}}:<br />
<br />
You should see all the mail in {{ic|~/mail/inbox}}. Press {{keypress|m}} to compose mail; it will use the editor defined by your {{Ic|EDITOR}} environment variable. If this variable is not set, you can fix it before starting Mutt:<br />
$ export EDITOR=your-favorite-editor<br />
$ mutt<br />
<br />
You should store the EDITOR value into your shell resource configuration file (such as [[bashrc]]).<br />
You can also set the editor from Mutt's configuration file:<br />
{{hc|.muttrc|2=<br />
set editor=your-favorite-editor<br />
}}<br />
<br />
For testing purposes, address the letter to yourself. After you have written the letter, save and exit the editor. You will return to Mutt, which will now show information about your e-mail. Press {{keypress|y}} to send it.<br />
<br />
===Multiple accounts===<br />
<br />
Now you should have a working configuration for one account at least. You might wonder how to use several accounts, since we put everything into a single file.<br />
Mutt can handle this thanks to one of its most powerful feature: hooks.<br />
Basically a hook is a command that gets executed before a specific action.<br />
There are several hook availables. For multiple accounts, either account-hooks or folder-hooks are useful. Folder-hooks will run a command before switching folders. Let's give an example with folder-hooks:<br />
<br />
{{bc|1=<br />
folder-hook 'personal' 'source ~/.mutt/personal_config'<br />
folder-hook 'work' 'source ~/.mutt/work_config'<br />
<br />
## Switch to default account on startup.<br />
source "~/.mutt/work_config"<br />
}}<br />
<br />
In that case, all the IMAP/POP3/SMTP config for each account should go to its respective folder.<br />
{{Warning|When one account is setting a variable that is not specified for other accounts, you '''must unset''' it for them, otherwise configuration will overlap and you will most certainly experience unexpected behaviour.}}<br />
<br />
Now all your accounts are set, start Mutt. To switch from one account to another, just change the folder ({{keypress|c}} key). But since you have to type the complete address -- for IMAP/POP3 folders, this may be quite inconvenient -- let's bind some key to it.<br />
<br />
{{bc|<br />
## Shortcuts<br />
macro index <f2> '<sync-mailbox><enter-command>source ~/.mutt/personal_config<enter><change-folder>!<enter>'<br />
macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/work_config<enter><change-folder>!<enter>'<br />
}}<br />
<br />
===Passwords management===<br />
Keep in mind that writing your password in {{ic|.muttrc}} is a security risk, and it might be of your concern.<br />
The trivial way to keep your passwords safe is not writing them in the config file. Mutt will then prompt for it when needed.<br />
However, this is quiet combersome in the long run, especiallly if you have several accounts.<br />
<br />
Here follows a smart and convenient solution: all your passwords are encrypted into one file and Mutt will prompt for a passphrase on startup only.<br />
Since GPG is a Mutt dependency, we will use it, but you can use any other keyring tool as well (e.g. {{pkg|pwsafe}}).<br />
<br />
First create a pair of public/private keys:<br />
gpg --gen-key<br />
{{Note|Do not leave any blank when giving your full name (surname and given name). Use {{Keypress|_}} or {{Keypress|-}} as a separator}}<br />
If you do not understand this process have a look at [http://en.wikipedia.org/wiki/Asymmetric_cryptography Wikipedia/Asymmetric cryptography].<br />
<br />
Create a file '''in a secure environment''' since it will contain your passwords for a couple of seconds:<br />
{{hc|~/.my-pwds|<nowiki><br />
set my_pw_personal = ****<br />
set my_pw_work = ****</nowiki><br />
}}<br />
<br />
Now encrypt the file:<br />
gpg -e -r <your-name> ~/.my-pwds<br />
Note that <your-name> must match the one you provided at the {{ic|gpg --gen-key}} step.<br />
Now you can wipe your file containing your passwords in clear:<br />
shred -xu ~/.my-pwds<br />
Back to your account dedicated files, e.g. {{ic|.mutt/personal_config}}:<br />
{{bc|1=<br />
set imap_pass=$my_pw_personal<br />
# Every time the password is needed, use $my_pw_personal variable.<br />
}}<br />
<br />
And in your {{ic|.muttrc}}, '''before''' you source any account dedicated file:<br />
{{bc|<br />
source "gpg2 -dq ~/.my-pwds.gpg {{ic|<nowiki>|</nowiki>}}"<br />
}}<br />
<br />
* The {{ic|-q}} parameter makes gpg2 quiet which prevents gpg2 output messing with Mutt interface.<br />
* The pipe {{ic|<nowiki>|</nowiki>}} at the end of a string is the Mutt syntax to tell that you want the result of what is preceeding.<br />
<br />
Explanation: when Mutt starts, it will first source the result of the password decryption, that's why it will prompt for a passphrase. Then all passwords will be stored in memory in specific variables for the time Mutt runs. Then when a folder-hook is called, is sets the imap_pass variable to the variable holding the appropriate password. When switching account, the imap_pass variable will be set to another variable holding another password, etc.<br />
<br />
If you use external tools like OfflineIMAP and msmtp, you need to set up an agent (e.g. gpg-agent, see [[GnuPG#gpg-agent]]) to keep the passphrase into cache and thus avoiding those tools always prompting for it.<br />
<br />
==Customizing==<br />
Guides to get you started with using & customizing Mutt : <br />
* [http://mutt.blackfish.org.uk/ My first Mutt] (maintained by Bruno Postle) <br />
* [http://www.therandymon.com/woodnotes/mutt/using-mutt.html The Woodnotes Guide to the Mutt Email Client] (maintained by Randall Wood)<br />
<br />
If you have any Mutt specific questions, feel free to ask in [[ArchChannel|the irc channel]].<br />
<br />
===E-mail character encoding===<br />
You may be concerned with sending e-mail in a decent character set (charset for short) like UTF-8. Nowadays UTF-8 is highly recommended to almost everyone.<br />
<br />
When using Mutt there is two levels where the charset must be specified:<br />
* The text editor used to write the e-mail must save it in the desired encoding.<br />
* Mutt will then check the e-mail and determine which encoding is the more apropriate according to the priority you specified in the {{ic|send_charset}} variable. Default: "us-ascii:iso-8859-1:utf-8".<br />
<br />
So if you write an e-mail with characters allowed in ISO-8859-1 (like 'résumé'), but without characters specific to Unicode, then Mutt will set the encoding to ISO-8859-1.<br />
<br />
To avoid this behaviour, set the variable in your {{ic|muttrc}}:<br />
set send_charset="us-ascii:utf-8"<br />
or even<br />
set send_charset="utf-8"<br />
<br />
The first compatible charset starting from the left will be used.<br />
Since UTF-8 is a superset of US-ASCII it does not harm to leave it in front of UTF-8, it may ensure old MUA will not get confused when seeing the charset in the e-mail header.<br />
<br />
===Printing===<br />
You can install {{AUR|muttprint}} from the [[AUR]] for a fancier printing quality.<br />
In your muttrc file, insert:<br />
set print_command="/usr/bin/muttprint %s -p {PrinterName}"<br />
<br />
===Custom mail headers===<br />
One of the greatest thing in Mutt is that you can have full control over your mail header.<br />
<br />
First, make your headers editable when you write e-mails:<br />
set edit_headers=yes<br />
<br />
Mutt also features a special function {{ic|my_hdr}} for customizing your header. Yes, it is named just like a variable, but in fact it is a function.<br />
<br />
You can clear it completely, which you ''should'' do when switching accounts with different headers, otherwise they will overlap:<br />
unmy_hdr *<br />
<br />
Other variables have also an impact on the headers, so it is wise to clear them before using {{ic|my_hdr}}:<br />
unset use_from<br />
unset use_domain<br />
unset user_agent<br />
<br />
Now, you can add any field you want -- even non-standard one -- to your header using the following syntax:<br />
my_hdr <FIELD>: <VALUE><br />
Note that <VALUE> can be the result of a command.<br />
<br />
Example:<br />
{{bc|<br />
## Extra info.<br />
my_hdr X-Info: Keep It Simple, Stupid.<br />
<br />
## OS Info.<br />
my_hdr X-Operating-System: `uname -s`, kernel `uname -r`<br />
<br />
## This header only appears to MS Outlook users<br />
my_hdr X-Message-Flag: WARNING!! Outlook sucks<br />
<br />
## Custom Mail-User-Agent ID.<br />
my_hdr User-Agent: Every email client sucks, this one just sucks less.<br />
}}<br />
<br />
===Signature block===<br />
Create a .signature in your home directory. Your signature will be appended at the end of your email.<br />
Alternatively you can specify a file in your Mutt configuration:<br />
set signature="path/to/sig/file"<br />
====Random signature====<br />
You can use fortune to add a random signature to Mutt.<br />
{{bc|$ pacman -S fortune-mod}}<br />
<br />
Create a fortune file and then add the following line to your .muttrc:<br />
{{bc|1=set signature="fortune pathtofortunefile&#124;"}}<br />
Note the pipe at the end. It tells Mutt that the specified string is not a file, but a command.<br />
<br />
===Viewing URLs & opening your favorite web browser===<br />
Your should start by creating a .mutt directory in $HOME if not done yet. There, create a file named macros. Insert the following:<br />
macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'<br />
<br />
Then install {{AUR|urlview}} from the [[AUR]].<br />
<br />
Create a .urlview in $HOME and insert the following:<br />
REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]<br />
COMMAND <your-browser> %s <br />
<br />
When you read an email on the pager, hitting ctrl+b will list all the urls from the email. Navigate up or down with arrow keys and hit enter on the desired url. Your browser will start and go to the selected site.<br />
<br />
Some browser will require additional arguments to work properly. For example, [[Luakit]] will close on Mutt exit. You need to fork it to background, using the {{ic|-n}} parameter:<br />
COMMAND luakit -n %s 2>/dev/null<br />
The {{ic|2>/dev/null}} is to make it quiet, i.e. to prevent useless message printing where you do not want them to.<br />
<br />
*Note - If you have some problems with urlview due to Mutt's url encoding you can try [http://www.memoryhole.net/~kyle/extract_url/ extract_url.pl]<br />
<br />
*Note - If you would like to see a short contextual preview of the content around each URL, try [https://aur.archlinux.org/packages.php?ID=44853 urlscan]. The macro in your muttrc is the same as for urlview (except for the 'urlscan' command). There is no additional configuration required other than ensuring $BROWSER is set.<br />
<br />
===Viewing HTML===<br />
It is possible to pass the html body to an external HTML program and then dump it, keeping email viewing uniform and unobtrusive. Two programs are described here: lynx and w3m.<br />
<br />
Install lynx or w3m:<br />
pacman -S lynx<br />
or<br />
pacman -S w3m<br />
<br />
If {{ic|~/.mutt/mailcap}} does not exist you will need to create it and save the following to it.<br />
text/html; lynx -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput<br />
or, in case of w3m,<br />
text/html; w3m -I %{charset} -T text/html; copiousoutput;<br />
<br />
Edit muttrc and add the following,<br />
set mailcap_path = ~/.mutt/mailcap<br />
<br />
To automatically open HTML messages in lynx, add this additional line to the muttrc:<br />
auto_view text/html<br />
<br />
The beauty of this is, instead of seeing an html body as source or being opened<br />
by a separate program, in this case lynx, you see the formatted content directly,<br />
and any url links within the email can be displayed with {{keypress|Ctrl+b}}.<br />
<br />
If you receive many emails with multiple or alternate encodings Mutt may default to treating every email as html. To avoid this, add the following variable to your ~/.muttrc to have Mutt default to text when available and use w3m/lynx only when no text version is availble in the email:<br />
alternative_order text/plain text/html<br />
<br />
===Mutt and Vim===<br />
*To limit the width of text to 72 characters, edit your .[[vim]]rc file and add:<br />
au BufRead /tmp/mutt-* set tw=72<br />
<br />
*Another choice is to use Vim's mail filetype plugin to enable other mail-centric options besides 72 character width. Edit {{ic|~/.vim/filetype.vim}}, creating it if unpresent, and add:<br />
{{bc| <br />
augroup filetypedetect<br />
" Mail<br />
autocmd BufRead,BufNewFile *mutt-* setfiletype mail<br />
augroup END<br />
}}<br />
<br />
*To set a different tmp directory, e.g. ~/.tmp, add a line to your muttrc as follows:<br />
set tmpdir="~/.tmp"<br />
<br />
*To reformat a modified text see the Vim context help<br />
:h 10.7<br />
<br />
===Mutt and GNU nano===<br />
[[nano]] is another nice console editor to use with Mutt. <br />
<br />
To limit the width of text to 72 characters, edit your .nanorc file and add:<br />
set fill 72<br />
<br />
Also, in muttrc file, you can specify the line to start editing so that you will skip the mail header:<br />
set editor="nano +7"<br />
<br />
===Mutt and Emacs===<br />
Emacs has a ''mail'' major mode.<br />
To switch to mail-mode automatically when Emacs is called from Mutt, you can add the following to your {{ic|.emacs}}:<br />
{{hc|.emacs|<nowiki><br />
;; Mutt support. <br />
(setq auto-mode-alist<br />
(append<br />
'(("/tmp/mutt.*" . mail-mode)<br />
)<br />
auto-mode-alist)<br />
)</nowiki><br />
}}<br />
<br />
If you usually run Emacs daemon, you may want Mutt to connect to it. Add this to your {{ic|.muttrc}}:<br />
{{hc|.muttrc|<nowiki><br />
set editor="emacsclient -a \"\" -t"</nowiki><br />
}}<br />
<br />
===Colors===<br />
Append sample color definitions to your .muttrc file:<br />
$ cat /usr/share/doc/mutt/samples/colors.linux >> ~/.muttrc<br />
Then adjust to your liking.<br />
The actual color each of these settings will produce depends on the colors set in your [[Xresources|~/.Xresources]] file.<br />
<br />
Alternatively, you can source any file you want containing colors (and thus act as a theme file):<br />
{{bc|<br />
source ~/.mutt/colors.zenburn<br />
}}<br />
<br />
A nice theme example:<br />
{{bc|<nowiki><br />
## Theme kindly inspired from <br />
## http://nongeekshandbook.blogspot.ie/2009/03/mutt-color-configuration.html <br />
<br />
## Colours for items in the index <br />
color index brightcyan black ~N<br />
color index brightred black ~O<br />
color index brightyellow black ~F<br />
color index black green ~T<br />
color index brightred black ~D<br />
mono index bold ~N<br />
mono index bold ~F<br />
mono index bold ~T<br />
mono index bold ~D<br />
<br />
## Highlights inside the body of a message. <br />
<br />
## URLs <br />
color body brightgreen black "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"<br />
color body brightgreen black "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"<br />
mono body bold "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"<br />
mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"<br />
<br />
## Email addresses. <br />
color body brightgreen black "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"<br />
<br />
## Header <br />
color header green black "^from:"<br />
color header green black "^to:"<br />
color header green black "^cc:"<br />
color header green black "^date:"<br />
color header yellow black "^newsgroups:"<br />
color header yellow black "^reply-to:"<br />
color header brightcyan black "^subject:"<br />
color header red black "^x-spam-rule:"<br />
color header green black "^x-mailer:"<br />
color header yellow black "^message-id:"<br />
color header yellow black "^Organization:"<br />
color header yellow black "^Organisation:"<br />
color header yellow black "^User-Agent:"<br />
color header yellow black "^message-id: .*pine"<br />
color header yellow black "^X-Fnord:"<br />
color header yellow black "^X-WebTV-Stationery:"<br />
<br />
color header red black "^x-spam-rule:"<br />
color header green black "^x-mailer:"<br />
color header yellow black "^message-id:"<br />
color header yellow black "^Organization:"<br />
color header yellow black "^Organisation:"<br />
color header yellow black "^User-Agent:"<br />
color header yellow black "^message-id: .*pine"<br />
color header yellow black "^X-Fnord:"<br />
color header yellow black "^X-WebTV-Stationery:"<br />
color header yellow black "^X-Message-Flag:"<br />
color header yellow black "^X-Spam-Status:"<br />
color header yellow black "^X-SpamProbe:"<br />
color header red black "^X-SpamProbe: SPAM"<br />
<br />
## Coloring quoted text - coloring the first 7 levels: <br />
color quoted cyan black<br />
color quoted1 yellow black<br />
color quoted2 red black<br />
color quoted3 green black<br />
color quoted4 cyan black<br />
color quoted5 yellow black<br />
color quoted6 red black<br />
color quoted7 green black<br />
<br />
## Default color definitions <br />
#color hdrdefault white green <br />
color signature brightmagenta black<br />
color indicator black cyan<br />
color attachment black green<br />
color error red black<br />
color message white black<br />
color search brightwhite magenta<br />
color status brightyellow blue<br />
color tree brightblue black<br />
color normal white black<br />
color tilde green black<br />
color bold brightyellow black<br />
#color underline magenta black <br />
color markers brightcyan black<br />
<br />
## Colour definitions when on a mono screen <br />
mono bold bold<br />
mono underline underline<br />
mono indicator reverse</nowiki><br />
}}<br />
<br />
===Index Format===<br />
<br />
Here follows a quick example to put in your {{ic|.muttrc}} to customize the Index Format, i.e. the columns displayed in the folder view.<br />
{{bc|<nowiki><br />
set date_format="%y-%m-%d %T"<br />
set index_format="%2C | %Z [%d] %-30.30F (%-4.4c) %s"</nowiki><br />
}}<br />
See the [http://www.mutt.org/doc/manual/manual-6.html Mutt Reference], {{ic|man 3 strftime}} and {{ic|man 3 printf}} for more details.<br />
<br />
===Address aliases===<br />
''Aliases'' is the way Mutt manages contacts.<br />
An alias is '''nickname [longname] <address>'''.<br />
* The '''nickname''' is what you will type in Mutt to get your contact address. One word only, and should be easy to remember.<br />
* The '''longname''' is optional. It may be several words.<br />
* An '''<address>''' must be in a valid form (i.e. with an {{keypress|@}}).<br />
<br />
It is quite simple indeed. Add this to {{ic|.muttrc}}:<br />
{{bc|1=<br />
set alias_file = "~/.mutt/aliases"<br />
set sort_alias = alias<br />
set reverse_alias = yes<br />
source $alias_file<br />
}}<br />
<br />
Explanation:<br />
* {{ic|alias_file}} is the file where the information is getting stored when you add an alias from within Mutt.<br />
* {{ic|sort_alias}} specifies which field to use to sort the alias list when displayed in Mutt. Possible values: alias, address.<br />
* {{ic|reverse_alias}} sorts in reverse order if set to yes.<br />
* {{ic|source $alias_file}} tells Mutt to read aliases on startup. Needed for auto-completion.<br />
<br />
Now all you have to do when prompted {{ic|To:}} is writing the alias instead of the full address. The beauty of it is that you can auto-complete the alias using {{keypress|Tab}}.<br />
Autocompleting a wrong or an empty string will display the full list. You can select the alias as usual, or by typing its index number.<br />
<br />
There is two ways to create aliases:<br />
* From Mutt, press {{keypress|a}} when an e-mail of the targetted person if selected.<br />
* Edit the alias_file manually. The syntax is really simple:<br />
{{bc|<br />
alias nickname Long Name <my-friend@domain.tld><br />
}}<br />
<br />
== Tips and tricks ==<br />
<br />
===Request IMAP mail retrieval manually===<br />
If you do not want to wait for the next automatic IMAP fetching (or if you did not enable it), you might want to fetch mails manually.<br />
There is a mutt command {{ic|imap-fetch-mail}} for that.<br />
Alternatively, you could bind it to a key:<br />
bind index "^" imap-fetch-mail<br />
<br />
===Speed up folders switch===<br />
Add this to your {{ic|.muttrc}}:<br />
{{bc|1=<br />
set sleep_time = 0<br />
}}<br />
<br />
===Use Mutt to send mail from command line===<br />
Man pages will show all available commands and how to use them, but here are a couple of examples. You could use Mutt to send alerts, logs or some other system information, triggered by login through .bash_profile, or as a regular cron job.<br />
<br />
Send a message:<br />
mutt -s "Subject" somejoeorjane@someserver.com < /var/log/somelog<br />
<br />
Send a message with attachment:<br />
mutt -s "Subject" somejoeorjane@someserver.com -a somefile < /tmp/sometext.txt<br />
<br />
===Composing HTML e-mails===<br />
<br />
Since Mutt has nothing of a WYSIWIG client, HTML is quite straightforward, and you can do much more than with all WYSIWIG mail clients around since you edit the source code directly.<br />
Simply write your mail using HTML syntax. For example:<br />
{{bc|<nowiki><br />
This is normal text<br><br />
<b>This is bold text</b></nowiki><br />
}}<br />
Now before sending the mail, use the {{ic|edit-type}} command (default shortcut {{keypress|Ctrl+t}}), and replace {{ic|text/plain}} by {{ic|text/html}}.<br />
<br />
{{Note|HTML e-mails are regarded by many people as useless, cumbersome, and subject to reading issues. Mutt can read HTLM mails with a text browser like w3m or lynx, but it has clearly no advantage over a plain-text e-mail. You should avoid writing HTML e-mails when possible.}}<br />
<br />
===How to display another email while composing===<br />
A common complaint with Mutt is that when composing a new mail (or reply), you cannot open another mail (i.e. for checking with another correspondent) without closing the current mail (postponing). The following describes a solution:<br />
<br />
First, fire up Mutt as usual. Then, launch another terminal window. Now start a new Mutt with <br />
mutt -R<br />
This starts Mutt in read-only mode, and you can browse other emails at your convenience. It is strongly recommended to always launch a second Mutt in read-only mode, as conflicts will easily arise otherwise.<br />
<br />
Now, this solution calls for a bit of typing, so we would like to automate this. The following works with [[Awesome]], in other WM's or DE's similar solutions are probably available: just google how to add a key binding, and make the desired key execute <br />
$TERM -e mutt -R <br />
where $TERM is your terminal.<br />
<br />
As for Awesome: edit your rc.lua, and add the following on one of the first lines, after terminal = "yourTerminal" etc.<br />
mailview = terminal .. " -e mutt -R"<br />
This automatically uses your preferred terminal, ".." is concatenation in Lua. Note the space before -e.<br />
<br />
Then add the following inside --{{{ Key bindings<br />
awful.key({ modkey, }, "m", function() awful.util.spawn(mailview) end),<br />
<br />
Omit the final comma if this is the last line. You can, of course use another key than "m". Now, save&quit, and check your syntax with <br />
awesome -k<br />
If this is good, restart awesome and give it a try!<br />
<br />
Now, a usage example: Launch Mutt as usual. Start a new mail, and then press "Mod4"+"m". This opens your mailbox in a new terminal, and you can browse around and read other emails. Now, a neat bonus: exit this read-only-Mutt with "q", and the terminal window it created disappears!<br />
<br />
===Mutt-Sidebar===<br />
{{Aur|mutt-sidebar}} - A patch for a list of folders on the left side of the Mutt window.<br />
<br />
[http://www.lunar-linux.org/mutt-sidebar/ mutt-sidebar maintainer website and documentation]<br />
<br />
===Migrating mails from one computer to another===<br />
In case you are transfering your mails to a new machine (copy&paste), you probably need to delete ~/.hcache to make mutt able to read your migrated E-Mails. Otherwise mutt may freeze.<br />
<br />
==Troubleshooting==<br />
<br />
===Backspace does not work in Mutt===<br />
This is a common problem with some xterm-like terminals.<br />
Two solutions:<br />
* Either rebind the key in {{ic|.muttrc}}<br />
bind index,pager ^? previous-page<br />
Note that {{ic|^?}} is one single character representing backspace in [http://en.wikipedia.org/wiki/Caret_notation Caret notation]. To type in Emcas, use {{keypress|Ctrl+q Backspace}}, in Vim {{keypress|Ctrl+v Backspace}}.<br />
<br />
* Or fix your terminal:<br />
$ infocmp > termbs.src <br />
Edit {{ic|termbs.src}} and change {{ic|1= kbs=^H}} to {{ic|1= kbs=\177}}, then: <br />
$ tic -x termbs.src<br />
<br />
===Android's default MUA receives empty e-mail with attachment "Unknown.txt"===<br />
<br />
This is because Mutt adds 'Content-Disposition' line to every e-mail header.<br />
There is a patched version for Android available in the AUR. Installing {{AUR|mutt-android-patch}} will fix the issue.<br />
<br />
== See also ==<br />
* [http://www.mutt.org/ The official Mutt website]<br />
* [http://wiki.mutt.org/ The Mutt wiki]<br />
* [http://pbrisbin.com/posts/two_accounts_in_mutt/ Brisbin's great guide on how to setup different IMAP accounts with Mutt, offlineimap, msmtp]<br />
* [http://home.roadrunner.com/~computertaijutsu/mutt.html A Quick Guide to Mutt]<br />
* [http://pyropus.ca/software/getmail/configuration.html#running Documentation on Configuring Getmail with rcfiles]<br />
* [http://stevelosh.com/blog/2012/10/the-homely-mutt/ Steve Losh on Mutt, offlineimap, msmtp, notmuch (gmail focussed)]</div>Tlphttps://wiki.archlinux.org/index.php?title=Mutt&diff=229115Mutt2012-10-16T22:29:24Z<p>Tlp: Mention full message caching</p>
<hr />
<div>[[Category:Email Client]]<br />
[[es:Mutt]]<br />
[[it:Mutt]]<br />
[[zh-CN:Mutt]]<br />
[[zh-TW:Mutt]]<br />
{{Article summary start}}<br />
{{Article summary text|A guide on configuring and using Mutt.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|fdm}}<br />
{{Article summary wiki|msmtp}}<br />
{{Article summary wiki|offlineimap}}<br />
{{Article summary end}}<br />
<br />
'''Mutt''' is a text-based mail client renowned for its powerful features. Though over a decade old, Mutt remains the mail client of choice for a great number of power-users. Unfortunately, a default Mutt install is plagued by complex keybindings along with a daunting amount of documentation. This guide will help the average user get Mutt up and running, and begin customizing it to their particular needs.<br />
<br />
==Overview==<br />
Mutt focuses primarily on being a Mail User Agent (MUA), and was originally written to view mail. Later implementations added for retrieval, sending, and filtering mail are simplistic compared to other mail applications and, as such, users may wish to use external applications to extend Mutt's capabilities. <br />
<br />
Nevertheless, the Arch Linux {{Pkg|mutt}} package is compiled with IMAP, POP3 and SMTP support, removing the necessity for external applications.<br />
<br />
This article covers using both native IMAP sending and retrieval, and a setup depending on [[OfflineIMAP]] or [[getmail]] (POP3) to retrieve mail, [[procmail]] to filter it in the case of POP3, and [[msmtp]] to send it.<br />
<br />
==Installing==<br />
[[pacman|Install]] {{Pkg|mutt}}, available in the [[Official Repositories]]. <br />
<br />
Optionally install external helper applications for an IMAP setup, such as {{Pkg|offlineimap}} and {{Pkg|msmtp}}.<br />
<br />
Or (if using POP3) {{Pkg|getmail}} or {{Pkg|fdm}} and {{Pkg|procmail}}.<br />
<br />
{{Note|<br />
*If you just need the authentication methods LOGIN and PLAIN, these are satisfied with the dependency {{Pkg|libsasl}}<br />
*If you want to (or have to) use CRAM-MD5, GSSAPI or DIGEST-MD5, install the package {{Pkg|cyrus-sasl-gssapi}}<br />
*If you are using Gmail as your SMTP server, you may need to install the package {{Pkg|cyrus-sasl}}<br />
}}<br />
<br />
==Configuring==<br />
This section covers IMAP, [[#POP3]], [[#Maildir]] and [[#SMTP]] configuration.<br />
<br />
Note that Mutt will recognize two locations for its configuration file; {{ic|~/.muttrc}} and {{ic|~/.mutt/muttrc}}. Either location will work.<br />
You should also know some prerequisite for Mutt configuration. Its syntax is very close the Bourne Shell. For example, you can get the content of another config file:<br />
source /path/to/other/config/file<br />
You can use variables and assign the result of shell commands to them.<br />
set editor=`echo \$EDITOR`<br />
Here the {{ic|$}} gets escaped so that it does not get substituted by Mutt before being passed to the shell.<br />
Also note the use of the backquotes, as bash syntax {{ic|$(...)}} does not work.<br />
Mutt has a lot of predefined variables, but you can also set your own. User variable '''must begin with "my"!'''<br />
set my_name = "John Doe"<br />
<br />
===IMAP===<br />
''Native and external setups''<br />
<br />
====Using native IMAP support====<br />
The pacman version of Mutt is compiled with IMAP support. At the very least you need to have 4 lines in your muttrc file to be able to access your mail.<br />
<br />
=====imap_user=====<br />
set imap_user=USERNAME<br />
<br />
Continuing with the previous example, remember that Gmail requires your full email address (this is not standard):<br />
set imap_user=your.username@gmail.com<br />
<br />
=====imap_pass=====<br />
If unset, the password will be prompted for.<br />
set imap_pass=SECRET<br />
<br />
=====folder=====<br />
Instead of a local directory which contains all your mail (and directories), use your server (and the highest folder in the hierarchy, if needed).<br />
set folder=imap[s]://imap.server.domain[:port]/[folder/]<br />
<br />
You do not have to use a folder, but it might be convenient if you have all your other folders inside your INBOX, for example. Whatever you set here as your folder can be accessed later in Mutt with just an equal sign (=). Example:<br />
set folder=imaps://imap.gmail.com/<br />
<br />
It should be noted that for several accounts, it is best practice to use different folders -- e.g. for ''account-hook''. If you have several Gmail account, use<br />
set folder=imaps://username@imap.gmail.com/<br />
instead, where your account is ''username@gmail.com''.<br />
<br />
=====spoolfile=====<br />
You can now use '=' or '+' as a substitution for the full {{Ic|folder}} path that was configured above. For example:<br />
set spoolfile=+INBOX<br />
<br />
=====mailboxes=====<br />
Any imap folders that should be checked regularly for new mail should be listed here:<br />
mailboxes =INBOX =family<br />
mailboxes imaps://imap.gmail.com/INBOX imaps://imap.gmail.com/family<br />
<br />
Alternatively, check for all subscribed IMAP folders (as if all were added with a {{Ic|mailboxes}} line):<br />
set imap_check_subscribed<br />
<br />
These two versions are equivalent, but the first is much more convenient. Also, newer Mutt versions are configured by default to include a macro bound to the 'y' key which will allow you to change to any of the folders listed under mailboxes.<br />
<br />
=====Summary=====<br />
Using these options, you will be able to start Mutt, enter your IMAP password, and start reading your mail. Here is a muttrc snippet (for Gmail) with some other lines you might consider adding for better IMAP support.<br />
{{bc|1=<br />
set folder = imaps://imap.gmail.com/<br />
set imap_user = your.username@gmail.com<br />
set imap_pass = your-imap-password<br />
set spoolfile = +INBOX<br />
mailboxes = +INBOX<br />
<br />
# store message headers locally to speed things up<br />
# if hcache is a folder, Mutt will create sub cache folders for each account which may speeds things even more up<br />
set header_cache = ~/.mutt/hcache<br />
<br />
# store messages locally to speed things up, like searching message bodies <br />
# can be the same folder as header_cache<br />
set message_cachedir="~/.mutt/cache"<br />
<br />
# specify where to save and/or look for postponed messages<br />
set postponed = +[Gmail]/Drafts<br />
<br />
# allow Mutt to open new imap connection automatically<br />
unset imap_passive<br />
<br />
# keep imap connection alive by polling intermittently (time in seconds)<br />
set imap_keepalive = 300<br />
<br />
# how often to check for new mail (time in seconds)<br />
set mail_check = 120<br />
}}<br />
<br />
====External IMAP support====<br />
While IMAP-functionality is built into Mutt, it does not download mail for offline-use. The [[OfflineIMAP]] article describes how to download your emails to a local folder which can then be processed by Mutt.<br />
<br />
Consider using applications such as [[spamassassin]] or [[imapfilter]] to sort mail.<br />
<br />
===POP3===<br />
''Retrieving and sorting mail with external applications''<br />
<br />
====Retrieving mail====<br />
Create the directory {{ic|~/.getmail/}}. Open the file {{ic|~/.getmail/getmailrc}} in your favorite text editor.<br />
<br />
Here is an example {{ic|getmailrc}} used with a gmail account.<br />
{{bc|1=<br />
[retriever]<br />
type = SimplePOP3SSLRetriever<br />
server = pop.gmail.com<br />
username = username@gmail.com<br />
port = 995<br />
password = password<br />
<br />
[destination]<br />
type = Maildir<br />
path = ~/mail/<br />
}}<br />
<br />
You can tweak this to your POP3 service's specification.<br />
<br />
Most people will like to add the following section to their {{ic|getmailrc}} to prevent all the mail on the server being downloaded every time getmail is ran.<br />
{{bc|1=<br />
[options]<br />
read_all = False<br />
}}<br />
<br />
As you can see {{ic|~/.getmail/getmailrc}} contains sensitive information (namely, email account passwords in plain text). You will want to change access permissions to the directory so only the owner can see it:<br />
<br />
$ chmod 700 ~/.getmail<br />
<br />
For this guide we will be storing our mail in the {{ic|maildir}} format. The two main mailbox formats are {{ic|mbox}} and {{ic|maildir}}. The main difference between the two is that {{ic|mbox}} is one file, with all of your mails and their headers stored in it, whereas a {{ic|maildir}} is a directory tree. Each mail is its own file, which will often speed things up.<br />
<br />
A {{ic|maildir}} is just a folder with the folders {{ic|cur}}, {{ic|new}} and {{ic|tmp}} in it.<br />
mkdir -p ~/mail/{cur,new,tmp}<br />
<br />
Now, run getmail. If it works fine, you can create a cronjob for getmail to run every n hours/minutes. Type {{ic|crontab -e}} to edit cronjobs, and enter the following:<br />
*/10 * * * * /usr/bin/getmail<br />
That will run {{ic|getmail}} every 10 minutes.<br />
<br />
Also, to quiet getmail down, we can reduce its verbosity to zero by adding the following to {{ic|getmailrc}}.<br />
{{bc|1=<br />
[options]<br />
verbose = 0<br />
}}<br />
<br />
=====More than one Email account with getmail=====<br />
By default, when you run {{ic|getmail}} the program searches for the file getmailrc created as seen above. If you have more than one mail account you would like to get mail from, then you can create such a file for each email address, and then tell getmail to run using both of them. Obviously if you have two accounts and two files you cannot have both of them called getmailrc. What you do is give them two different names, using myself as an example: I call one personal, and one university. These two files contain content relevant to my personal mail, and my university work mail respectively. Then to get getmail to work on these two files, instead of searching for getmailrc(default), I use the --rcfile switch like so: {{ic|getmail --rcfile university --rcfile personal}} This can work with more files if you have more email accounts, just make sure each file is in the .getmail directory and make sure to alter the cronjob to run the command with the --rcfile switches. E.g.<br />
'''*/30 * * * * /usr/bin/getmail --rcfile university --rcfile personal'''<br />
<br />
Obviously you can call your files whatever you want, providing you include them in the cronjob or shell command, and they are in the .getmail/ directory, getmail will fetch mail from those two accounts.<br />
<br />
====Sorting mail====<br />
[http://www.procmail.org/ Procmail] is an extremely powerful sorting tool. For the purposes of this wiki, we will do some primitive sorting to get started.<br />
<br />
You must edit your getmailrc to pass retrieved mail to procmail:<br />
{{bc|1=<br />
[destination]<br />
type = MDA_external<br />
path = /usr/bin/procmail<br />
}}<br />
<br />
Now, open up {{ic|.procmailrc}} in your favorite editor. The following will sort all mail from the happy-kangaroos mailing list, and all mail from your lovey-dovey friend in their own maildirs.<br />
{{bc|1=<br />
MAILDIR=$HOME/mail<br />
DEFAULT=$MAILDIR/inbox/<br />
LOGFILE=$MAILDIR/log<br />
<br />
:0:<br />
* ^To: happy-kangaroos@nicehost.com<br />
happy-kangaroos/<br />
<br />
:0:<br />
* ^From: loveydovey@iheartyou.net<br />
lovey-dovey/<br />
}}<br />
After you have saved your {{ic|.procmailrc}}, run getmail and see if procmail succeeds in sorting your mail into the appropriate directories.<br />
<br />
{{Note|One easy to make mistake with .procmailrc is the permission. procmail require it to have permission 644 and will not give meaningless error message if you do not.}}<br />
<br />
===Maildir===<br />
Maildir is a generic and standardized format. Almost every MUA is able to handle Maildirs and Mutt's support is excellent. There are just a few simple things that you need to do to get Mutt to use them. Open your muttrc and add the following lines:<br />
{{bc|1=<br />
set mbox_type=Maildir<br />
set folder=$HOME/mail<br />
set spoolfile=+/<br />
set header_cache=~/.hcache<br />
}}<br />
<br />
This is a minimal Configuration that enables you to access your Maildir and checks for new local Mails in INBOX. This configuration also caches the headers of the eMails to speed up directory-listings. It might not be enabled in your build (but it sure is in the Arch-Package). Note that this does not affect OfflineIMAP in any way. It always syncs the all directories on a Server. {{ic|spoolfile}} tells Mutt which local directories to poll for new Mail. You might want to add more Spoolfiles (for example the Directories of Mailing-Lists) and maybe other things. But this is subject to the Mutt manual and beyond the scope of this document.<br />
<br />
===SMTP===<br />
Whether you use POP or IMAP to receive mail you will probably still send mail using SMTP.<br />
<br />
====Using native SMTP support====<br />
The pacman version of Mutt is also compiled with SMTP support. Just check the online manual [http://manual.cream.org/index.cgi/muttrc.5 muttrc], or {{ic|man muttrc}} for more information.<br />
<br />
For example:<br />
{{bc|1=<br />
set my_pass='mysecretpass'<br />
set my_user=myname<br />
<br />
set smtp_url=smtps://$my_user:$my_pass@smtp.domain.tld<br />
set ssl_force_tls = yes<br />
}}<br />
<br />
Note that if your SMTP credentials are the same as your IMAP credentials, then you can use those variables:<br />
<br />
{{bc|1=<br />
set smtp_url=smtps://$imap_user:$imap_pass@smtp.domain.tld<br />
}}<br />
<br />
You may need to tweak the security parameters. If you get an error like<br />
{{ic|SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol}},<br />
then your server most probably uses the SMTP instead of SMTPS.<br />
<br />
{{bc|1=<br />
set smtp_url=smtp://$imap_user:$imap_pass@smtp.domain.tld<br />
}}<br />
<br />
There is other variable that you may need to set. For example for use of STARTTLS:<br />
{{bc|1=<br />
set ssl_starttls = yes<br />
}}<br />
<br />
====External SMTP support====<br />
An external SMTP agent such as [[msmtp]] or [[SSMTP]] can also be used. This section exclusively covers configuring Mutt for msmtp.<br />
<br />
Edit Mutt's configuration file or create it if unpresent:<br />
{{hc|muttrc|2=<br />
set realname='Disgruntled Kangaroo'<br />
<br />
set sendmail="/usr/bin/msmtp"<br />
<br />
set edit_headers=yes<br />
set folder=~/mail<br />
set mbox=+mbox<br />
set spoolfile=+inbox<br />
set record=+sent<br />
set postponed=+drafts<br />
set mbox_type=Maildir<br />
<br />
mailboxes +inbox +lovey-dovey +happy-kangaroos<br />
}}<br />
<br />
====Sending mails from Mutt====<br />
Now, startup {{Ic|mutt}}:<br />
<br />
You should see all the mail in {{ic|~/mail/inbox}}. Press {{keypress|m}} to compose mail; it will use the editor defined by your {{Ic|EDITOR}} environment variable. If this variable is not set, you can fix it before starting Mutt:<br />
$ export EDITOR=your-favorite-editor<br />
$ mutt<br />
<br />
You should store the EDITOR value into your shell resource configuration file (such as [[bashrc]]).<br />
You can also set the editor from Mutt's configuration file:<br />
{{hc|.muttrc|2=<br />
set editor=your-favorite-editor<br />
}}<br />
<br />
For testing purposes, address the letter to yourself. After you have written the letter, save and exit the editor. You will return to Mutt, which will now show information about your e-mail. Press {{keypress|y}} to send it.<br />
<br />
===Multiple accounts===<br />
<br />
Now you should have a working configuration for one account at least. You might wonder how to use several accounts, since we put everything into a single file.<br />
Mutt can handle this thanks to one of its most powerful feature: hooks.<br />
Basically a hook is a command that gets executed before a specific action.<br />
There are several hook availables. For multiple accounts, either account-hooks or folder-hooks are useful. Folder-hooks will run a command before switching folders. Let's give an example with folder-hooks:<br />
<br />
{{bc|1=<br />
folder-hook 'personal' 'source ~/.mutt/personal_config'<br />
folder-hook 'work' 'source ~/.mutt/work_config'<br />
<br />
## Switch to default account on startup.<br />
source "~/.mutt/work_config"<br />
}}<br />
<br />
In that case, all the IMAP/POP3/SMTP config for each account should go to its respective folder.<br />
{{Warning|When one account is setting a variable that is not specified for other accounts, you '''must unset''' it for them, otherwise configuration will overlap and you will most certainly experience unexpected behaviour.}}<br />
<br />
Now all your accounts are set, start Mutt. To switch from one account to another, just change the folder ({{keypress|c}} key). But since you have to type the complete address -- for IMAP/POP3 folders, this may be quite inconvenient -- let's bind some key to it.<br />
<br />
{{bc|<br />
## Shortcuts<br />
macro index <f2> '<sync-mailbox><enter-command>source ~/.mutt/personal_config<enter><change-folder>!<enter>'<br />
macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/work_config<enter><change-folder>!<enter>'<br />
}}<br />
<br />
===Passwords management===<br />
Keep in mind that writing your password in {{ic|.muttrc}} is a security risk, and it might be of your concern.<br />
The trivial way to keep your passwords safe is not writing them in the config file. Mutt will then prompt for it when needed.<br />
However, this is quiet combersome in the long run, especiallly if you have several accounts.<br />
<br />
Here follows a smart and convenient solution: all your passwords are encrypted into one file and Mutt will prompt for a passphrase on startup only.<br />
Since GPG is a Mutt dependency, we will use it, but you can use any other keyring tool as well (e.g. {{pkg|pwsafe}}).<br />
<br />
First create a pair of public/private keys:<br />
gpg --gen-key<br />
{{Note|Do not leave any blank when giving your full name (surname and given name). Use {{Keypress|_}} or {{Keypress|-}} as a separator}}<br />
If you do not understand this process have a look at [http://en.wikipedia.org/wiki/Asymmetric_cryptography Wikipedia/Asymmetric cryptography].<br />
<br />
Create a file '''in a secure environment''' since it will contain your passwords for a couple of seconds:<br />
{{hc|~/.my-pwds|<nowiki><br />
set my_pw_personal = ****<br />
set my_pw_work = ****</nowiki><br />
}}<br />
<br />
Now encrypt the file:<br />
gpg -e -r <your-name> ~/.my-pwds<br />
Note that <your-name> must match the one you provided at the {{ic|gpg --gen-key}} step.<br />
Now you can wipe your file containing your passwords in clear:<br />
shred -xu ~/.my-pwds<br />
Back to your account dedicated files, e.g. {{ic|.mutt/personal_config}}:<br />
{{bc|1=<br />
set imap_pass=$my_pw_personal<br />
# Every time the password is needed, use $my_pw_personal variable.<br />
}}<br />
<br />
And in your {{ic|.muttrc}}, '''before''' you source any account dedicated file:<br />
{{bc|<br />
source "gpg2 -dq ~/.my-pwds.gpg {{ic|<nowiki>|</nowiki>}}"<br />
}}<br />
<br />
* The {{ic|-q}} parameter makes gpg2 quiet which prevents gpg2 output messing with Mutt interface.<br />
* The pipe {{ic|<nowiki>|</nowiki>}} at the end of a string is the Mutt syntax to tell that you want the result of what is preceeding.<br />
<br />
Explanation: when Mutt starts, it will first source the result of the password decryption, that's why it will prompt for a passphrase. Then all passwords will be stored in memory in specific variables for the time Mutt runs. Then when a folder-hook is called, is sets the imap_pass variable to the variable holding the appropriate password. When switching account, the imap_pass variable will be set to another variable holding another password, etc.<br />
<br />
If you use external tools like OfflineIMAP and msmtp, you need to set up an agent (e.g. gpg-agent, see [[GnuPG#gpg-agent]]) to keep the passphrase into cache and thus avoiding those tools always prompting for it.<br />
<br />
==Customizing==<br />
Guides to get you started with using & customizing Mutt : <br />
* [http://mutt.blackfish.org.uk/ My first Mutt] (maintained by Bruno Postle) <br />
* [http://www.therandymon.com/woodnotes/mutt/using-mutt.html The Woodnotes Guide to the Mutt Email Client] (maintained by Randall Wood)<br />
<br />
If you have any Mutt specific questions, feel free to ask in [[ArchChannel|the irc channel]].<br />
<br />
===E-mail character encoding===<br />
You may be concerned with sending e-mail in a decent character set (charset for short) like UTF-8. Nowadays UTF-8 is highly recommended to almost everyone.<br />
<br />
When using Mutt there is two levels where the charset must be specified:<br />
* The text editor used to write the e-mail must save it in the desired encoding.<br />
* Mutt will then check the e-mail and determine which encoding is the more apropriate according to the priority you specified in the {{ic|send_charset}} variable. Default: "us-ascii:iso-8859-1:utf-8".<br />
<br />
So if you write an e-mail with characters allowed in ISO-8859-1 (like 'résumé'), but without characters specific to Unicode, then Mutt will set the encoding to ISO-8859-1.<br />
<br />
To avoid this behaviour, set the variable in your {{ic|muttrc}}:<br />
set send_charset="us-ascii:utf-8"<br />
or even<br />
set send_charset="utf-8"<br />
<br />
The first compatible charset starting from the left will be used.<br />
Since UTF-8 is a superset of US-ASCII it does not harm to leave it in front of UTF-8, it may ensure old MUA will not get confused when seeing the charset in the e-mail header.<br />
<br />
===Printing===<br />
You can install {{AUR|muttprint}} from the [[AUR]] for a fancier printing quality.<br />
In your muttrc file, insert:<br />
set print_command="/usr/bin/muttprint %s -p {PrinterName}"<br />
<br />
===Custom mail headers===<br />
One of the greatest thing in Mutt is that you can have full control over your mail header.<br />
<br />
First, make your headers editable when you write e-mails:<br />
set edit_headers=yes<br />
<br />
Mutt also features a special function {{ic|my_hdr}} for customizing your header. Yes, it is named just like a variable, but in fact it is a function.<br />
<br />
You can clear it completely, which you ''should'' do when switching accounts with different headers, otherwise they will overlap:<br />
unmy_hdr *<br />
<br />
Other variables have also an impact on the headers, so it is wise to clear them before using {{ic|my_hdr}}:<br />
unset use_from<br />
unset use_domain<br />
unset user_agent<br />
<br />
Now, you can add any field you want -- even non-standard one -- to your header using the following syntax:<br />
my_hdr <FIELD>: <VALUE><br />
Note that <VALUE> can be the result of a command.<br />
<br />
Example:<br />
{{bc|<br />
## Extra info.<br />
my_hdr X-Info: Keep It Simple, Stupid.<br />
<br />
## OS Info.<br />
my_hdr X-Operating-System: `uname -s`, kernel `uname -r`<br />
<br />
## This header only appears to MS Outlook users<br />
my_hdr X-Message-Flag: WARNING!! Outlook sucks<br />
<br />
## Custom Mail-User-Agent ID.<br />
my_hdr User-Agent: Every email client sucks, this one just sucks less.<br />
}}<br />
<br />
===Signature block===<br />
Create a .signature in your home directory. Your signature will be appended at the end of your email.<br />
Alternatively you can specify a file in your Mutt configuration:<br />
set signature="path/to/sig/file"<br />
====Random signature====<br />
You can use fortune to add a random signature to Mutt.<br />
{{bc|$ pacman -S fortune-mod}}<br />
<br />
Create a fortune file and then add the following line to your .muttrc:<br />
{{bc|1=set signature="fortune pathtofortunefile&#124;"}}<br />
Note the pipe at the end. It tells Mutt that the specified string is not a file, but a command.<br />
<br />
===Viewing URLs & opening your favorite web browser===<br />
Your should start by creating a .mutt directory in $HOME if not done yet. There, create a file named macros. Insert the following:<br />
macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'<br />
<br />
Then install {{AUR|urlview}} from the [[AUR]].<br />
<br />
Create a .urlview in $HOME and insert the following:<br />
REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]<br />
COMMAND <your-browser> %s <br />
<br />
When you read an email on the pager, hitting ctrl+b will list all the urls from the email. Navigate up or down with arrow keys and hit enter on the desired url. Your browser will start and go to the selected site.<br />
<br />
Some browser will require additional arguments to work properly. For example, [[Luakit]] will close on Mutt exit. You need to fork it to background, using the {{ic|-n}} parameter:<br />
COMMAND luakit -n %s 2>/dev/null<br />
The {{ic|2>/dev/null}} is to make it quiet, i.e. to prevent useless message printing where you do not want them to.<br />
<br />
*Note - If you have some problems with urlview due to Mutt's url encoding you can try [http://www.memoryhole.net/~kyle/extract_url/ extract_url.pl]<br />
<br />
*Note - If you would like to see a short contextual preview of the content around each URL, try [https://aur.archlinux.org/packages.php?ID=44853 urlscan]. The macro in your muttrc is the same as for urlview (except for the 'urlscan' command). There is no additional configuration required other than ensuring $BROWSER is set.<br />
<br />
===Viewing HTML===<br />
It is possible to pass the html body to an external HTML program and then dump it, keeping email viewing uniform and unobtrusive. Two programs are described here: lynx and w3m.<br />
<br />
Install lynx or w3m:<br />
pacman -S lynx<br />
or<br />
pacman -S w3m<br />
<br />
If {{ic|~/.mutt/mailcap}} does not exist you will need to create it and save the following to it.<br />
text/html; lynx -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput<br />
or, in case of w3m,<br />
text/html; w3m -I %{charset} -T text/html; copiousoutput;<br />
<br />
Edit muttrc and add the following,<br />
set mailcap_path = ~/.mutt/mailcap<br />
<br />
To automatically open HTML messages in lynx, add this additional line to the muttrc:<br />
auto_view text/html<br />
<br />
The beauty of this is, instead of seeing an html body as source or being opened<br />
by a separate program, in this case lynx, you see the formatted content directly,<br />
and any url links within the email can be displayed with {{keypress|Ctrl+b}}.<br />
<br />
If you receive many emails with multiple or alternate encodings Mutt may default to treating every email as html. To avoid this, add the following variable to your ~/.muttrc to have Mutt default to text when available and use w3m/lynx only when no text version is availble in the email:<br />
alternative_order text/plain text/html<br />
<br />
===Mutt and Vim===<br />
*To limit the width of text to 72 characters, edit your .[[vim]]rc file and add:<br />
au BufRead /tmp/mutt-* set tw=72<br />
<br />
*Another choice is to use Vim's mail filetype plugin to enable other mail-centric options besides 72 character width. Edit {{ic|~/.vim/filetype.vim}}, creating it if unpresent, and add:<br />
{{bc| <br />
augroup filetypedetect<br />
" Mail<br />
autocmd BufRead,BufNewFile *mutt-* setfiletype mail<br />
augroup END<br />
}}<br />
<br />
*To set a different tmp directory, e.g. ~/.tmp, add a line to your muttrc as follows:<br />
set tmpdir="~/.tmp"<br />
<br />
*To reformat a modified text see the Vim context help<br />
:h 10.7<br />
<br />
===Mutt and GNU nano===<br />
[[nano]] is another nice console editor to use with Mutt. <br />
<br />
To limit the width of text to 72 characters, edit your .nanorc file and add:<br />
set fill 72<br />
<br />
Also, in muttrc file, you can specify the line to start editing so that you will skip the mail header:<br />
set editor="nano +7"<br />
<br />
===Mutt and Emacs===<br />
Emacs has a ''mail'' major mode.<br />
To switch to mail-mode automatically when Emacs is called from Mutt, you can add the following to your {{ic|.emacs}}:<br />
{{hc|.emacs|<nowiki><br />
;; Mutt support. <br />
(setq auto-mode-alist<br />
(append<br />
'(("/tmp/mutt.*" . mail-mode)<br />
)<br />
auto-mode-alist)<br />
)</nowiki><br />
}}<br />
<br />
If you usually run Emacs daemon, you may want Mutt to connect to it. Add this to your {{ic|.muttrc}}:<br />
{{hc|.muttrc|<nowiki><br />
set editor="emacsclient -a \"\" -t"</nowiki><br />
}}<br />
<br />
===Colors===<br />
Append sample color definitions to your .muttrc file:<br />
$ cat /usr/share/doc/mutt/samples/colors.linux >> ~/.muttrc<br />
Then adjust to your liking.<br />
The actual color each of these settings will produce depends on the colors set in your [[Xresources|~/.Xresources]] file.<br />
<br />
Alternatively, you can source any file you want containing colors (and thus act as a theme file):<br />
{{bc|<br />
source ~/.mutt/colors.zenburn<br />
}}<br />
<br />
A nice theme example:<br />
{{bc|<nowiki><br />
## Theme kindly inspired from <br />
## http://nongeekshandbook.blogspot.ie/2009/03/mutt-color-configuration.html <br />
<br />
## Colours for items in the index <br />
color index brightcyan black ~N<br />
color index brightred black ~O<br />
color index brightyellow black ~F<br />
color index black green ~T<br />
color index brightred black ~D<br />
mono index bold ~N<br />
mono index bold ~F<br />
mono index bold ~T<br />
mono index bold ~D<br />
<br />
## Highlights inside the body of a message. <br />
<br />
## URLs <br />
color body brightgreen black "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"<br />
color body brightgreen black "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"<br />
mono body bold "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"<br />
mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"<br />
<br />
## Email addresses. <br />
color body brightgreen black "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"<br />
<br />
## Header <br />
color header green black "^from:"<br />
color header green black "^to:"<br />
color header green black "^cc:"<br />
color header green black "^date:"<br />
color header yellow black "^newsgroups:"<br />
color header yellow black "^reply-to:"<br />
color header brightcyan black "^subject:"<br />
color header red black "^x-spam-rule:"<br />
color header green black "^x-mailer:"<br />
color header yellow black "^message-id:"<br />
color header yellow black "^Organization:"<br />
color header yellow black "^Organisation:"<br />
color header yellow black "^User-Agent:"<br />
color header yellow black "^message-id: .*pine"<br />
color header yellow black "^X-Fnord:"<br />
color header yellow black "^X-WebTV-Stationery:"<br />
<br />
color header red black "^x-spam-rule:"<br />
color header green black "^x-mailer:"<br />
color header yellow black "^message-id:"<br />
color header yellow black "^Organization:"<br />
color header yellow black "^Organisation:"<br />
color header yellow black "^User-Agent:"<br />
color header yellow black "^message-id: .*pine"<br />
color header yellow black "^X-Fnord:"<br />
color header yellow black "^X-WebTV-Stationery:"<br />
color header yellow black "^X-Message-Flag:"<br />
color header yellow black "^X-Spam-Status:"<br />
color header yellow black "^X-SpamProbe:"<br />
color header red black "^X-SpamProbe: SPAM"<br />
<br />
## Coloring quoted text - coloring the first 7 levels: <br />
color quoted cyan black<br />
color quoted1 yellow black<br />
color quoted2 red black<br />
color quoted3 green black<br />
color quoted4 cyan black<br />
color quoted5 yellow black<br />
color quoted6 red black<br />
color quoted7 green black<br />
<br />
## Default color definitions <br />
#color hdrdefault white green <br />
color signature brightmagenta black<br />
color indicator black cyan<br />
color attachment black green<br />
color error red black<br />
color message white black<br />
color search brightwhite magenta<br />
color status brightyellow blue<br />
color tree brightblue black<br />
color normal white black<br />
color tilde green black<br />
color bold brightyellow black<br />
#color underline magenta black <br />
color markers brightcyan black<br />
<br />
## Colour definitions when on a mono screen <br />
mono bold bold<br />
mono underline underline<br />
mono indicator reverse</nowiki><br />
}}<br />
<br />
===Index Format===<br />
<br />
Here follows a quick example to put in your {{ic|.muttrc}} to customize the Index Format, i.e. the columns displayed in the folder view.<br />
{{bc|<nowiki><br />
set date_format="%y-%m-%d %T"<br />
set index_format="%2C | %Z [%d] %-30.30F (%-4.4c) %s"</nowiki><br />
}}<br />
See the [http://www.mutt.org/doc/manual/manual-6.html Mutt Reference], {{ic|man 3 strftime}} and {{ic|man 3 printf}} for more details.<br />
<br />
===Address aliases===<br />
''Aliases'' is the way Mutt manages contacts.<br />
An alias is '''nickname [longname] <address>'''.<br />
* The '''nickname''' is what you will type in Mutt to get your contact address. One word only, and should be easy to remember.<br />
* The '''longname''' is optional. It may be several words.<br />
* An '''<address>''' must be in a valid form (i.e. with an {{keypress|@}}).<br />
<br />
It is quite simple indeed. Add this to {{ic|.muttrc}}:<br />
{{bc|1=<br />
set alias_file = "~/.mutt/aliases"<br />
set sort_alias = alias<br />
set reverse_alias = yes<br />
source $alias_file<br />
}}<br />
<br />
Explanation:<br />
* {{ic|alias_file}} is the file where the information is getting stored when you add an alias from within Mutt.<br />
* {{ic|sort_alias}} specifies which field to use to sort the alias list when displayed in Mutt. Possible values: alias, address.<br />
* {{ic|reverse_alias}} sorts in reverse order if set to yes.<br />
* {{ic|source $alias_file}} tells Mutt to read aliases on startup. Needed for auto-completion.<br />
<br />
Now all you have to do when prompted {{ic|To:}} is writing the alias instead of the full address. The beauty of it is that you can auto-complete the alias using {{keypress|Tab}}.<br />
Autocompleting a wrong or an empty string will display the full list. You can select the alias as usual, or by typing its index number.<br />
<br />
There is two ways to create aliases:<br />
* From Mutt, press {{keypress|a}} when an e-mail of the targetted person if selected.<br />
* Edit the alias_file manually. The syntax is really simple:<br />
{{bc|<br />
alias nickname Long Name <my-friend@domain.tld><br />
}}<br />
<br />
== Tips and tricks ==<br />
<br />
===Request IMAP mail retrieval manually===<br />
If you do not want to wait for the next automatic IMAP fetching (or if you did not enable it), you might want to fetch mails manually.<br />
There is a mutt command {{ic|imap-fetch-mail}} for that.<br />
Alternatively, you could bind it to a key:<br />
bind index "^" imap-fetch-mail<br />
<br />
===Speed up folders switch===<br />
Add this to your {{ic|.muttrc}}:<br />
{{bc|1=<br />
set sleep_time = 0<br />
}}<br />
<br />
===Use Mutt to send mail from command line===<br />
Man pages will show all available commands and how to use them, but here are a couple of examples. You could use Mutt to send alerts, logs or some other system information, triggered by login through .bash_profile, or as a regular cron job.<br />
<br />
Send a message:<br />
mutt -s "Subject" somejoeorjane@someserver.com < /var/log/somelog<br />
<br />
Send a message with attachment:<br />
mutt -s "Subject" somejoeorjane@someserver.com -a somefile < /tmp/sometext.txt<br />
<br />
===Composing HTML e-mails===<br />
<br />
Since Mutt has nothing of a WYSIWIG client, HTML is quite straightforward, and you can do much more than with all WYSIWIG mail clients around since you edit the source code directly.<br />
Simply write your mail using HTML syntax. For example:<br />
{{bc|<nowiki><br />
This is normal text<br><br />
<b>This is bold text</b></nowiki><br />
}}<br />
Now before sending the mail, use the {{ic|edit-type}} command (default shortcut {{keypress|Ctrl+t}}), and replace {{ic|text/plain}} by {{ic|text/html}}.<br />
<br />
{{Note|HTML e-mails are regarded by many people as useless, cumbersome, and subject to reading issues. Mutt can read HTLM mails with a text browser like w3m or lynx, but it has clearly no advantage over a plain-text e-mail. You should avoid writing HTML e-mails when possible.}}<br />
<br />
===How to display another email while composing===<br />
A common complaint with Mutt is that when composing a new mail (or reply), you cannot open another mail (i.e. for checking with another correspondent) without closing the current mail (postponing). The following describes a solution:<br />
<br />
First, fire up Mutt as usual. Then, launch another terminal window. Now start a new Mutt with <br />
mutt -R<br />
This starts Mutt in read-only mode, and you can browse other emails at your convenience. It is strongly recommended to always launch a second Mutt in read-only mode, as conflicts will easily arise otherwise.<br />
<br />
Now, this solution calls for a bit of typing, so we would like to automate this. The following works with [[Awesome]], in other WM's or DE's similar solutions are probably available: just google how to add a key binding, and make the desired key execute <br />
$TERM -e mutt -R <br />
where $TERM is your terminal.<br />
<br />
As for Awesome: edit your rc.lua, and add the following on one of the first lines, after terminal = "yourTerminal" etc.<br />
mailview = terminal .. " -e mutt -R"<br />
This automatically uses your preferred terminal, ".." is concatenation in Lua. Note the space before -e.<br />
<br />
Then add the following inside --{{{ Key bindings<br />
awful.key({ modkey, }, "m", function() awful.util.spawn(mailview) end),<br />
<br />
Omit the final comma if this is the last line. You can, of course use another key than "m". Now, save&quit, and check your syntax with <br />
awesome -k<br />
If this is good, restart awesome and give it a try!<br />
<br />
Now, a usage example: Launch Mutt as usual. Start a new mail, and then press "Mod4"+"m". This opens your mailbox in a new terminal, and you can browse around and read other emails. Now, a neat bonus: exit this read-only-Mutt with "q", and the terminal window it created disappears!<br />
<br />
===Mutt-Sidebar===<br />
{{Aur|mutt-sidebar}} - A patch for a list of folders on the left side of the Mutt window.<br />
<br />
[http://www.lunar-linux.org/mutt-sidebar/ mutt-sidebar maintainer website and documentation]<br />
<br />
===Migrating mails from one computer to another===<br />
In case you are transfering your mails to a new machine (copy&paste), you probably need to delete ~/.hcache to make mutt able to read your migrated E-Mails. Otherwise mutt may freeze.<br />
<br />
==Troubleshooting==<br />
<br />
===Backspace does not work in Mutt===<br />
This is a common problem with some xterm-like terminals.<br />
Two solutions:<br />
* Either rebind the key in {{ic|.muttrc}}<br />
bind index,pager ^? previous-page<br />
Note that {{ic|^?}} is one single character representing backspace in [http://en.wikipedia.org/wiki/Caret_notation Caret notation]. To type in Emcas, use {{keypress|Ctrl+q Backspace}}, in Vim {{keypress|Ctrl+v Backspace}}.<br />
<br />
* Or fix your terminal:<br />
$ infocmp > termbs.src <br />
Edit {{ic|termbs.src}} and change {{ic|1= kbs=^H}} to {{ic|1= kbs=\177}}, then: <br />
$ tic -x termbs.src<br />
<br />
===Android's default MUA receives empty e-mail with attachment "Unknown.txt"===<br />
<br />
This is because Mutt adds 'Content-Disposition' line to every e-mail header.<br />
There is a patched version for Android available in the AUR. Installing {{AUR|mutt-android-patch}} will fix the issue.<br />
<br />
== See also ==<br />
* [http://www.mutt.org/ The official Mutt website]<br />
* [http://wiki.mutt.org/ The Mutt wiki]<br />
* [http://pbrisbin.com/posts/two_accounts_in_mutt/ Brisbin's great guide on how to setup different IMAP accounts with Mutt, offlineimap, msmtp]<br />
* [http://home.roadrunner.com/~computertaijutsu/mutt.html A Quick Guide to Mutt]<br />
* [http://pyropus.ca/software/getmail/configuration.html#running Documentation on Configuring Getmail with rcfiles]<br />
* [http://stevelosh.com/blog/2012/10/the-homely-mutt/ Steve Losh on Mutt, offlineimap, msmtp, notmuch (gmail focussed)]</div>Tlphttps://wiki.archlinux.org/index.php?title=Lightweight_Applications&diff=128761Lightweight Applications2011-01-23T08:14:35Z<p>Tlp: /* Word Processors */ Add pandoc/markdown</p>
<hr />
<div>[[Category:Other desktop user's resources (English)]][[Category:General (English)]]<br />
{{i18n|Lightweight Applications}}<br />
<br />
Provides a list of lightweight software for those who wish to use programs that require less computer resources.<br />
<br />
==Internet==<br />
===Web Browsers===<br />
<br />
{{App|[[Wikipedia:Abaco (web browser)|Abaco]]|A multi-page graphical web browser|http://lab-fgb.com/abaco/|{{Package AUR|abaco}}}}<br />
{{App|[[Wikipedia:Arora (browser)|Arora]]|A cross platform web browser built using Qt and WebKit|http://code.google.com/p/arora/|{{Package Official|arora}}}}<br />
{{App|[[Chromium]]|The middleweight, open-source project behind Google Chrome|http://code.google.com/chromium/|{{Package Official|chromium}}}}<br />
{{App|[[Wikipedia:Conkeror|Conkeror]]|A highly programmable web browser based on Mozilla XULRunner|http://conkeror.org/|{{Package Official|conkeror}}}}<br />
{{App|[[Wikipedia:Dillo|Dillo]]|A small, fast graphical web browser built on FLTK|http://www.dillo.org/|{{Package Official|dillo}}}}<br />
{{App|[[Wikipedia:ELinks|ELinks]]|An advanced and well-established feature-rich text mode web browser|http://elinks.or.cz/|{{Package Official|elinks}}}}<br />
{{App|Hv3|A minimalist web browser based on tkhtml3|http://tkhtml.tcl.tk/hv3.html|{{Package AUR|hv3}}}}<br />
[http://pwmt.org/projects/jumanji jumanji] - "a highly customizable and functional web browser"<br />
<br />
{{App|[[Wikipedia:Links (web browser)|Links]]|A text WWW browser, similar to Lynx|http://links.twibright.com/|{{Package Official|links}}}}<br />
<br />
[http://luakit.org/projects/luakit/ Luakit] is a highly configurable, micro-browser framework based on the WebKit web content engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.<br />
<br />
[http://www.twotoasts.de/index.php?/pages/midori_summary.html Midori] is a lightweight web browser based on Gtk and WebKit. It passes the ACID3 test.<br />
<br />
[http://www.netsurf-browser.org Netsurf] is a featherweight browser written in C. Notable is its lack of JavaScript support and fast rendering through its own custom rendering engine.<br />
<br />
[http://aur.archlinux.org/packages.php?ID=37037 Sb] - A very lightweight webkit-based browser that uses keybindings to perform most things the URL bar would usually do.<br />
<br />
[http://surf.suckless.org surf] is another lightweight WebKit-based browser, which follows the [[suck less philosophy|suckless ideology]]. Which means, the software is even more lightweight (basically, the browser itself is a single C source file).<br />
<br />
[[Uzbl]] - "web interface tools which adhere to the unix philosophy."<br />
<br />
[http://vimprobable.org/ Vimprobable] is a browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine (using GTK bindings).<br />
<br />
===Email Clients===<br />
<!--Keep in sync with [[Common Applications]] and use the App template.--><br />
{{Wikipedia|Comparison of e-mail clients}}<br />
*{{App|[[Alpine]]|The Apache-licensed PINE (a tool for reading, sending, and managing electronic messages)|http://www.washington.edu/alpine|{{Package Official|alpine}}}}<br />
*{{App|[[Wikipedia:Claws Mail|Claws Mail]]|A GTK+ based e-mail client|http://www.claws-mail.org/|{{Package Official|claws-mail}}}}<br />
*{{App|[[mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Package Official|mutt}}}}<br />
*{{App|[[Sup]]|A CLI mail client with very fast searching, tagging, threading and gmail like operation.|http://sup.rubyforge.org/|{{Package AUR|sup}}}}<br />
*{{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly e-mail client (GTK)|http://sylpheed.sraoss.jp/en/|{{Package AUR|sylpheed}}}}<br />
<br />
===Instant Messengers===<br />
<br />
[[Bitlbee]] is a way to use other IM to your [[#IRC]] client.<br />
<br />
[http://funpidgin.sourceforge.net/ Carrier] is a fork of Pidgin with more options.<br />
<br />
[http://www.centerim.org Centerim] is a curses based fork of Centericq which supports several protocols.<br />
<br />
[http://www.emesene.org/ emesene] is a Python/GTK+ instant messenger for the Windows Live Messenger network.<br />
<br />
[http://developer.pidgin.im/wiki/Using%20Finch Finch] is a curses based version of Pidgin.<br />
<br />
[[Pidgin]] is a multiprotocol instant messenger.<br />
<br />
[http://pidgin.im Pidgin Light] is a light Pidgin version without gstreamer, tcl, tk, xscreensaver support.<br />
<br />
===IRC===<br />
<br />
[http://nenolod.net/ Conspire] Lightweight, simple, and powerful.<br />
<br />
[[Irssi]] is a modular text mode IRC client with Perl scripting.<br />
<br />
[[ERC]] is a powerful, modular, and extensible IRC client for [[Emacs]].<br />
<br />
[http://tools.suckless.org/ii II] Ultimate lightweight, literally `tail -f` the convo and `echo` back your replies.<br />
<br />
[http://www.ueber.net/code/r/ircfs ircfs] is a file system interface to irc written in [http://limbo.cat-v.org Limbo].<br />
<br />
[http://lostirc.sourceforge.net LostIRC] is a simple IRC client.<br />
<br />
[http://www.scrollz.com ScrollZ] is an advanced IRC client based on ircII.<br />
<br />
[http://weechat.org/ WeeChat] is a fast, light & extensible curses-based IRC client.<br />
<br />
[http://xchat.org XChat] is a GTK+ X client with Perl and Python scripting support.<br />
<br />
[http://bitbucket.org/emg/pcw pcw] is a frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel (depends on [http://bitbucket.org/emg/srw srw] by default)<br />
<br />
===BitTorrent Clients===<br />
<!--Keep in sync with [[Common Applications]] and use the App template.--><br />
{{Wikipedia|Comparison of BitTorrent clients}}<br />
*{{App|[[aria2]]|Command-line download manager that supports HTTP/HTTPS, FTP, BitTorrent and MetaLink protocols|http://aria2.sourceforge.net/|{{Package Official|aria2}}}}<br />
*{{App|[[Wikipedia:Deluge (software)|Deluge]]|User-friendly BitTorrent client written in Python and wrapped with PyGTK|http://deluge-torrent.org/|{{Package Official|deluge}}}}<br />
*{{App|[[Wikipedia:QBittorrent|qBittorrent]]|The closest open source (GNU GPL v2 license) equivalent to µtorrent|http://qbittorrent.sourceforge.net/|{{Package Official|qbittorrent}}}}<br />
*{{App|[[Wikipedia:RTorrent|rTorrent]]|Simple and lightweight ncurses BitTorrent client|http://libtorrent.rakshasa.no/|{{Package Official|rtorrent}}}}<br />
*{{App|[[Wikipedia:Transmission (BitTorrent client)|Transmission]]|Simple and easy-to-use BitTorrent client with (GTK+) GUI and CLI front-ends|http://www.transmissionbt.com/|{{Package Official|transmission}}}}<br />
<br />
===Network Managers===<br />
*{{App|[[Wicd|wicd]]|Manages wireless and wired interfaces, requiring fewer dependencies than other network managers. In addition to GUI interfaces, a curses version is also available.|http://wicd.sourceforge.net/|{{Package Official|wicd}}}}<br />
<br />
===News Aggregators===<br />
[[Canto]] - A ncurses RSS aggregator http://codezen.org/canto/<br />
<br />
[[Gnus]] - mail, nntp, rss client for Emacs.<br />
<br />
[[Newsbeuter]] - A ncurses RSS aggregator with layout and keybinding similar to mutt. Does not use the traditional 3 panes setup.<br />
<br />
[[Rawdog]] - An "RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in date order http://offog.org/code/rawdog.html<br />
<br />
[[Snownews]] - Text mode RSS newsreader.<br />
<br />
==Multimedia==<br />
<br />
===Audio Players===<br />
<br />
[http://cmus.sourceforge.net/ C* Music Player] is a very feature-rich ncurses-based music player.<br />
<br />
[http://deadbeef.sourceforge.net/ Deadbeef] is a light and fast music player with many features, no GNOME or KDE dependencies, supports console-only and as well GTK2-gui, comes with many plugins, and has a metadata editor. <br />
<br />
[http://sourceforge.net/projects/cplay/ cplay] is a curses front-end for various audio players.<br />
<br />
[http://code.google.com/p/gogglesmm/ Goggles Music Manager] is a music collection manager and player that automatically categorizes your music, supports gapless playback, features easy tag editing, and internet radio support.<br />
<br />
[http://aur.archlinux.org/packages.php?ID=11623 Herrie] is a minimalistic console-based music player with native AudioScrobbler support.<br />
<br />
[http://moc.daper.net/ MOC (Music On Console)] is an ncurses console audio player with support for the MP3, Ogg, and WAV formats.<br />
<br />
[http://offog.org/code/potamus.html Potamus] is a lightweight, intuitive GTK+ audio player with an emphasis on high audio quality.<br />
<br />
[http://pragha.wikispaces.com/ Pragha] is a GTK+ music manager that was a fork of Consonance Music Manager.<br />
<br />
[http://www.mpg123.de/ mpg123] A fast free MP3 console audio player for Linux, FreeBSD, Solaris, Hpux and near all other UNIX systems. Also decodes mp1 and mp2 files.<br />
<br />
[[mpd|MPD]] clients:<br />
<br />
[http://ario-player.sourceforge.net/ Ario] is very feature-rich GTK2 client for [[mpd]], inspired by Rhythmbox<br />
<br />
[http://hem.bredband.net/kaw/ncmpc/ ncmpc] is a curses client for [[mpd]].<br />
<br />
[http://unkart.ovh.org/ncmpcpp/ ncmpcpp] is an almost exact clone of ncmpc with some new features.<br />
<br />
[http://www.archlinux.org/packages/community/i686/qmpdclient/ QmpdClient] is Qt4 based mpd client.<br />
<br />
[http://sonata.berlios.de/ Sonata] is an elegant GTK+ music client for [[mpd]].<br />
<br />
===Image Editors===<br />
<br />
[http://mtpaint.sourceforge.net/ mtPaint] is a graphic editing program geared towards creating indexed palette images and pixel art.<br />
<br />
===Image Viewers===<br />
<br />
[http://linuxbrit.co.uk/feh/ Feh] is a fast, lightweight image viewer that uses imlib2.<br />
<br />
[http://lxde.sourceforge.net/gpicview/ GPicView] is a simple and fast image viewer for X. Made by the developers of [[LXDE]]<br />
<br />
[http://gqview.sourceforge.net/ GQview] is an image browser that features single click access to view images and move around the directory tree.<br />
<br />
[http://geeqie.sourceforge.net/ Geeqie] is an image browser/viewer fork of GQview. Adds additional functionality such as support for RAW files.<br />
<br />
{{App|Mirage|PyGTK image viewer featuring support for crop and resize, custom actions and a thumbnail pane.|http://mirageiv.berlios.de|{{Package Official|mirage}}}}<br />
<br />
[http://goodies.xfce.org/projects/applications/ristretto Ristretto] is a fast and lightweight picture-viewer for the Xfce desktop environment.<br />
<br />
[http://spiegl.de/qiv/ QIV] (Quick Image Viewer) is a very small and fast gdk/Imlib image viewer.<br />
<br />
{{App|Viewnior|Minimalistic GTK2 viewer featuring support for flip, rotate, animations and configurable mouse actions|http://xsisqox.github.com/Viewnior/about.html|{{Package Official|viewnior}}}}<br />
<br />
[http://web.archive.org/web/19981207030422/http://world.std.com/~jimf/xloadimage.html Xloadimage] is the classic X image viewer.<br />
<br />
[http://xsisqox.github.com/Viewnior/download.html Viewnior] iis a fast and simple image viewer for GNU/Linux.<br />
<br />
===Video Players===<br />
<br />
[http://kdekorte.googlepages.com/gnomemplayer Gnome-Mplayer] is a simple GTK-based GUI for [[mplayer]] without GNOME dependencies<br />
<br />
[[mplayer]] and [[mencoder]] support a complete and versatile array of video/audio formats.<br />
<br />
[http://smplayer.sourceforge.net/ SMPlayer] is a middleweight QT frontend for mplayer with additional patches.<br />
<br />
[http://www.videolan.org/vlc/ VLC] is a a middleweight video player with support for a wide variety of audio/video formats.<br />
<br />
==Office==<br />
<br />
===Calendars===<br />
<br />
[http://palcal.sourceforge.net/ Pal] is a very lightweight calendar with both interactive and non-interactive interfaces.<br />
<br />
[http://culot.org/calcurse/ Calcurse] is a text-based curses calendar and scheduling system.<br />
<br />
[http://www.roaringpenguin.com/products/remind Remind] is a highly sophisticated text-based calendaring and notification system.<br />
<br />
[http://pessimization.com/software/wyrd/ Wyrd] is an curses front-end to Remind.<br />
<br />
[http://www.duke.edu/~dgraham/wxRemind/ wxRemind] is a Python text and graphical frontend to Remind.<br />
<br />
===PDF Tools===<br />
<br />
[http://code.google.com/p/apvlv/ apvlv] is a lightweight PDF viewer with VIM key bindings.<br />
<br />
[http://www.emma-soft.com/projects/epdfview/ ePDFView] is a free lightweight PDF document viewer using Poppler and GTK+ libraries.<br />
<br />
[http://repo.or.cz/w/llpp.git llpp] is a very fast PDF reader based off of MuPDF, that supports continuous page scrolling, bookmarking, and text search through the whole document (unlike MuPDF). <br />
<br />
[http://ccxvii.net/mupdf/ MuPDF] is a very fast PDF viewer and toolkit written in portable C. Features CJK font support.<br />
<br />
[http://www.foolabs.com/xpdf/ Xpdf] is a viewer for Portable Document Format (PDF) files.<br />
<br />
[http://zathura.pwmt.org/projects/zathura zathura] is another lightweight PDF viewer similar to apvlv, only lighter.<br />
<br />
===Text Editors===<br />
<br />
[http://acme.cat-v.org Acme] a minimalist and flexible programming environment by Rob Pike.<br />
<br />
[http://www.nongnu.org/beaver/ Beaver] is an Early AdVanced EditoR.<br />
<br />
[http://www.geany.org Geany] is a text editor using the GTK+ 2 toolkit with basic features of an integrated development environment.<br />
<br />
[http://edile.googlecode.com Edile] is a PyGTK code/scripting editor implemented in one file.<br />
<br />
[http://tarot.freeshell.org/leafpad/ Leafpad] is a notepad clone for GTK+ 2.x that emphasizes simplicity.<br />
<br />
[http://mooedit.sourceforge.net/ medit] is a lightweight IDE text editor featuring support for tabs, sessions, plugins and syntax highlighting.<br />
<br />
[http://www.xfce.org/projects/mousepad/ Mousepad] is a simple text editor for Xfce based on Leafpad.<br />
<br />
[[nano]] is a console text editor based on pico with on-screen key binding help.<br />
<br />
[http://pyroom.org/ PyRoom] is a great distractionless PyGTK text editor, a clone of the infamous WriteRoom<br />
<br />
[http://sam.cat-v.org Sam] a graphical text editor by Rob Pike (still used by Ken Thompson and others).<br />
<br />
Vi, [[Vim]], gVim, the classic vi text editor.<br />
<br />
===Word Processors===<br />
<br />
[[Abiword]] is a full-featured word processor, there is also an even lighter version in the AUR, [http://aur.archlinux.org/packages.php?ID=25601/ Abiword-light].<br />
<br />
[http://daringfireball.net/projects/markdown Markdown] is a text-to-HTML conversion tool that allows you to write using a simple plain text format<br />
<br />
[http://johnmacfarlane.net/pandoc pandoc] is a swiss-army knife for converting one markup format into another (supports Markdown)<br />
<br />
[http://txt2tags.sourceforge.net txt2tags] is a dead-simple, KISS-compliant lightweight, human-readable markup language to produce rich format content out of plain text files<br />
<br />
===Todo List Managers===<br />
[http://aur.archlinux.org/packages.php?ID=7673 Todo.txt] manages your Todo list from the command line.<br />
<br />
[http://orgmode.org org-mode] - an [[Emacs]] Mode for Notes, Project Planning, and Authoring.<br />
<br />
==System==<br />
<br />
===File Managers===<br />
<br />
[http://emelfm2.net/ emelFM2] is file manager that implements the popular two-pane design.<br />
<br />
[http://www.midnight-commander.org Midnight Commander] is a console-based, dual-paned, file manager.<br />
<br />
[http://pcmanfm.sourceforge.net/ PCManFM] is a lightweight file manager which features tabbed browsing and can optionally manage the desktop background.<br />
<br />
[[Ranger]] is a console based file manager with vi bindings, customizability, and lots of features.<br />
<br />
[http://rox.sourceforge.net ROX] is a small and fast file manager which can optionally manage the desktop background and panels.<br />
<br />
[[Thunar]] can be run as a daemon with excellent start up and directory load times. Features support for customizable actions.<br />
<br />
[[Vifm]] is a ncurses based two-pane file manager with vi like keybindings.<br />
<br />
[http://roland65.free.fr/xfe/index.php/ Xfe] X File Explorer (Xfe) is an MS-Explorer or Commander like file manager for X.<br />
<br />
[http://www.qtfm.org/ qtfm] small, lightweight filemanager for Linux desktops based on pure Qt<br />
and works great with minimal desktop environments like Openbox.<br />
<br />
===GUI Compression Tools===<br />
<br />
[http://squeeze.xfce.org/ Squeeze] is a modern and advanced archive manager.<br />
<br />
[http://xarchive.sourceforge.net Xarchive] is a GTK+ 2 front-end for various command line archiving tools.<br />
<br />
[http://xarchiver.sourceforge.net/ Xarchiver] is a lightweight desktop independent archive manager built with GTK+ 2. At the time of writing, it appears to be the most functional and up to date of the three tools listed here.<br />
<br />
===CD/DVD Burning Tools===<br />
<br />
{{App|recorder|Simple frontend to cdrkit/cdrtools, cdrdao, mkisofs and growisofs with limited options and preferences|http://code.google.com/p/recorder/|{{Package Official|recorder}}}}<br />
{{App|Xfburn|Simple frontend to the libburnia libraries with support for CD/DVD(-RW), ISO images and BurnFree.|http://www.xfce.org/projects/xfburn/|{{Package Official|xfburn}}}}<br />
<br />
===Login managers===<br />
<br />
[[CDM]] provides an ultra-minimalistic, yet full-featured login manager written in bash.<br />
<br />
[[SLiM]] provides a lightweight and elegant graphical login solution.<br />
<br />
[[Qingy]] is ultralight and very configurable graphical login independent on X Windows.<br />
<br />
===Monitors===<br />
<br />
[[Conky]] is a lightweight, scriptable system monitor.<br />
<br />
[http://htop.sourceforge.net/ htop] is a simple, ncurses interactive process viewer.<br />
<br />
[http://wiki.lxde.org/en/LXTask LXTask] is a lightweight task manager for [[LXDE]].<br />
<br />
===Panels===<br />
<br />
[http://nsf.110mb.com/bmpanel/ BMPanel] (BitMap Panel) is a lightweight, NETWM compliant panel for the X11 system.<br />
<br />
[http://fbpanel.sourceforge.net fbpanel] is a lightweight, NETWM compliant desktop panel.<br />
<br />
[http://lxde.org LXPanel] is a lightweight X11 desktop panel (part of LXDE).<br />
<br />
[http://pypanel.sourceforge.net/ PyPanel] is a lightweight panel/taskbar written in Python and C ([[PyPanel|HOWTO]]).<br />
<br />
[http://code.google.com/p/tint2/ Tint] is a simple panel/taskbar intentionally made for openbox3, but should also work with other window managers ([[Tint|HOWTO]]).<br />
<br />
[http://www.failedprojects.de/pancake/ pancake] is a highly configurable, modular panel for X.<br />
<br />
===Terminals===<br />
<br />
[[LilyTerm]] is a light and easy to use libvte based X Terminal Emulator.<br />
<br />
[http://rox.sourceforge.net ROXTerm] is a tabbed, VTE-based terminal emulator with a small footprint.<br />
<br />
[[urxvt]] is a highly extendable unicode enabled rxvt-clone terminal emulator featuring tabbing, url launching, quake-style dropdown, pseudo-transparency, and is extensible with perl.<br />
<br />
[http://www.pleyades.net/david/sakura.php Sakura] is a terminal emulator based on GTK+ and VTE.<br />
<br />
[http://invisible-island.net/xterm/ xterm] is a terminal emulator for the X Window System.<br />
<br />
[http://sourceforge.net/projects/tilda/files/ tilda] Tilda is a Linux terminal taking after the likeness of many classic terminals from first person shooter games, Quake, Doom and Half-Life (to name a few), where the terminal has no border and is hidden from the desktop until a key is pressed.<br />
<br />
===Trays===<br />
<br />
[http://icculus.org/openbox/2/docker/ Docker] is a docking application which acts as a system tray.<br />
<br />
[http://stalonetray.sourceforge.net Stalonetray] is a stand-alone system tray.<br />
<br />
[http://gna.org/projects/fvwm-crystal/ Trayer] swallows GTK+ 1.2/2.x application docklets, and KDE docklets.<br />
<br />
===Window managers===<br />
<br />
[[Window Manager#List of window managers]]<br />
<br />
==Games==<br />
[[Netbook Games List]]<br />
<br />
==Links==<br />
[http://bbs.archlinux.org/viewtopic.php?id=88515 Arch Linux Forums / LnF Awards 2010] - The best Light & Fast apps of 2010.</div>Tlphttps://wiki.archlinux.org/index.php?title=Lightweight_Applications&diff=128760Lightweight Applications2011-01-23T08:02:08Z<p>Tlp: /* Internet */ Add Network Managers and wicd</p>
<hr />
<div>[[Category:Other desktop user's resources (English)]][[Category:General (English)]]<br />
{{i18n|Lightweight Applications}}<br />
<br />
Provides a list of lightweight software for those who wish to use programs that require less computer resources.<br />
<br />
==Internet==<br />
===Web Browsers===<br />
<br />
{{App|[[Wikipedia:Abaco (web browser)|Abaco]]|A multi-page graphical web browser|http://lab-fgb.com/abaco/|{{Package AUR|abaco}}}}<br />
{{App|[[Wikipedia:Arora (browser)|Arora]]|A cross platform web browser built using Qt and WebKit|http://code.google.com/p/arora/|{{Package Official|arora}}}}<br />
{{App|[[Chromium]]|The middleweight, open-source project behind Google Chrome|http://code.google.com/chromium/|{{Package Official|chromium}}}}<br />
{{App|[[Wikipedia:Conkeror|Conkeror]]|A highly programmable web browser based on Mozilla XULRunner|http://conkeror.org/|{{Package Official|conkeror}}}}<br />
{{App|[[Wikipedia:Dillo|Dillo]]|A small, fast graphical web browser built on FLTK|http://www.dillo.org/|{{Package Official|dillo}}}}<br />
{{App|[[Wikipedia:ELinks|ELinks]]|An advanced and well-established feature-rich text mode web browser|http://elinks.or.cz/|{{Package Official|elinks}}}}<br />
{{App|Hv3|A minimalist web browser based on tkhtml3|http://tkhtml.tcl.tk/hv3.html|{{Package AUR|hv3}}}}<br />
[http://pwmt.org/projects/jumanji jumanji] - "a highly customizable and functional web browser"<br />
<br />
{{App|[[Wikipedia:Links (web browser)|Links]]|A text WWW browser, similar to Lynx|http://links.twibright.com/|{{Package Official|links}}}}<br />
<br />
[http://luakit.org/projects/luakit/ Luakit] is a highly configurable, micro-browser framework based on the WebKit web content engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.<br />
<br />
[http://www.twotoasts.de/index.php?/pages/midori_summary.html Midori] is a lightweight web browser based on Gtk and WebKit. It passes the ACID3 test.<br />
<br />
[http://www.netsurf-browser.org Netsurf] is a featherweight browser written in C. Notable is its lack of JavaScript support and fast rendering through its own custom rendering engine.<br />
<br />
[http://aur.archlinux.org/packages.php?ID=37037 Sb] - A very lightweight webkit-based browser that uses keybindings to perform most things the URL bar would usually do.<br />
<br />
[http://surf.suckless.org surf] is another lightweight WebKit-based browser, which follows the [[suck less philosophy|suckless ideology]]. Which means, the software is even more lightweight (basically, the browser itself is a single C source file).<br />
<br />
[[Uzbl]] - "web interface tools which adhere to the unix philosophy."<br />
<br />
[http://vimprobable.org/ Vimprobable] is a browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine (using GTK bindings).<br />
<br />
===Email Clients===<br />
<!--Keep in sync with [[Common Applications]] and use the App template.--><br />
{{Wikipedia|Comparison of e-mail clients}}<br />
*{{App|[[Alpine]]|The Apache-licensed PINE (a tool for reading, sending, and managing electronic messages)|http://www.washington.edu/alpine|{{Package Official|alpine}}}}<br />
*{{App|[[Wikipedia:Claws Mail|Claws Mail]]|A GTK+ based e-mail client|http://www.claws-mail.org/|{{Package Official|claws-mail}}}}<br />
*{{App|[[mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Package Official|mutt}}}}<br />
*{{App|[[Sup]]|A CLI mail client with very fast searching, tagging, threading and gmail like operation.|http://sup.rubyforge.org/|{{Package AUR|sup}}}}<br />
*{{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly e-mail client (GTK)|http://sylpheed.sraoss.jp/en/|{{Package AUR|sylpheed}}}}<br />
<br />
===Instant Messengers===<br />
<br />
[[Bitlbee]] is a way to use other IM to your [[#IRC]] client.<br />
<br />
[http://funpidgin.sourceforge.net/ Carrier] is a fork of Pidgin with more options.<br />
<br />
[http://www.centerim.org Centerim] is a curses based fork of Centericq which supports several protocols.<br />
<br />
[http://www.emesene.org/ emesene] is a Python/GTK+ instant messenger for the Windows Live Messenger network.<br />
<br />
[http://developer.pidgin.im/wiki/Using%20Finch Finch] is a curses based version of Pidgin.<br />
<br />
[[Pidgin]] is a multiprotocol instant messenger.<br />
<br />
[http://pidgin.im Pidgin Light] is a light Pidgin version without gstreamer, tcl, tk, xscreensaver support.<br />
<br />
===IRC===<br />
<br />
[http://nenolod.net/ Conspire] Lightweight, simple, and powerful.<br />
<br />
[[Irssi]] is a modular text mode IRC client with Perl scripting.<br />
<br />
[[ERC]] is a powerful, modular, and extensible IRC client for [[Emacs]].<br />
<br />
[http://tools.suckless.org/ii II] Ultimate lightweight, literally `tail -f` the convo and `echo` back your replies.<br />
<br />
[http://www.ueber.net/code/r/ircfs ircfs] is a file system interface to irc written in [http://limbo.cat-v.org Limbo].<br />
<br />
[http://lostirc.sourceforge.net LostIRC] is a simple IRC client.<br />
<br />
[http://www.scrollz.com ScrollZ] is an advanced IRC client based on ircII.<br />
<br />
[http://weechat.org/ WeeChat] is a fast, light & extensible curses-based IRC client.<br />
<br />
[http://xchat.org XChat] is a GTK+ X client with Perl and Python scripting support.<br />
<br />
[http://bitbucket.org/emg/pcw pcw] is a frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel (depends on [http://bitbucket.org/emg/srw srw] by default)<br />
<br />
===BitTorrent Clients===<br />
<!--Keep in sync with [[Common Applications]] and use the App template.--><br />
{{Wikipedia|Comparison of BitTorrent clients}}<br />
*{{App|[[aria2]]|Command-line download manager that supports HTTP/HTTPS, FTP, BitTorrent and MetaLink protocols|http://aria2.sourceforge.net/|{{Package Official|aria2}}}}<br />
*{{App|[[Wikipedia:Deluge (software)|Deluge]]|User-friendly BitTorrent client written in Python and wrapped with PyGTK|http://deluge-torrent.org/|{{Package Official|deluge}}}}<br />
*{{App|[[Wikipedia:QBittorrent|qBittorrent]]|The closest open source (GNU GPL v2 license) equivalent to µtorrent|http://qbittorrent.sourceforge.net/|{{Package Official|qbittorrent}}}}<br />
*{{App|[[Wikipedia:RTorrent|rTorrent]]|Simple and lightweight ncurses BitTorrent client|http://libtorrent.rakshasa.no/|{{Package Official|rtorrent}}}}<br />
*{{App|[[Wikipedia:Transmission (BitTorrent client)|Transmission]]|Simple and easy-to-use BitTorrent client with (GTK+) GUI and CLI front-ends|http://www.transmissionbt.com/|{{Package Official|transmission}}}}<br />
<br />
===Network Managers===<br />
*{{App|[[Wicd|wicd]]|Manages wireless and wired interfaces, requiring fewer dependencies than other network managers. In addition to GUI interfaces, a curses version is also available.|http://wicd.sourceforge.net/|{{Package Official|wicd}}}}<br />
<br />
===News Aggregators===<br />
[[Canto]] - A ncurses RSS aggregator http://codezen.org/canto/<br />
<br />
[[Gnus]] - mail, nntp, rss client for Emacs.<br />
<br />
[[Newsbeuter]] - A ncurses RSS aggregator with layout and keybinding similar to mutt. Does not use the traditional 3 panes setup.<br />
<br />
[[Rawdog]] - An "RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in date order http://offog.org/code/rawdog.html<br />
<br />
[[Snownews]] - Text mode RSS newsreader.<br />
<br />
==Multimedia==<br />
<br />
===Audio Players===<br />
<br />
[http://cmus.sourceforge.net/ C* Music Player] is a very feature-rich ncurses-based music player.<br />
<br />
[http://deadbeef.sourceforge.net/ Deadbeef] is a light and fast music player with many features, no GNOME or KDE dependencies, supports console-only and as well GTK2-gui, comes with many plugins, and has a metadata editor. <br />
<br />
[http://sourceforge.net/projects/cplay/ cplay] is a curses front-end for various audio players.<br />
<br />
[http://code.google.com/p/gogglesmm/ Goggles Music Manager] is a music collection manager and player that automatically categorizes your music, supports gapless playback, features easy tag editing, and internet radio support.<br />
<br />
[http://aur.archlinux.org/packages.php?ID=11623 Herrie] is a minimalistic console-based music player with native AudioScrobbler support.<br />
<br />
[http://moc.daper.net/ MOC (Music On Console)] is an ncurses console audio player with support for the MP3, Ogg, and WAV formats.<br />
<br />
[http://offog.org/code/potamus.html Potamus] is a lightweight, intuitive GTK+ audio player with an emphasis on high audio quality.<br />
<br />
[http://pragha.wikispaces.com/ Pragha] is a GTK+ music manager that was a fork of Consonance Music Manager.<br />
<br />
[http://www.mpg123.de/ mpg123] A fast free MP3 console audio player for Linux, FreeBSD, Solaris, Hpux and near all other UNIX systems. Also decodes mp1 and mp2 files.<br />
<br />
[[mpd|MPD]] clients:<br />
<br />
[http://ario-player.sourceforge.net/ Ario] is very feature-rich GTK2 client for [[mpd]], inspired by Rhythmbox<br />
<br />
[http://hem.bredband.net/kaw/ncmpc/ ncmpc] is a curses client for [[mpd]].<br />
<br />
[http://unkart.ovh.org/ncmpcpp/ ncmpcpp] is an almost exact clone of ncmpc with some new features.<br />
<br />
[http://www.archlinux.org/packages/community/i686/qmpdclient/ QmpdClient] is Qt4 based mpd client.<br />
<br />
[http://sonata.berlios.de/ Sonata] is an elegant GTK+ music client for [[mpd]].<br />
<br />
===Image Editors===<br />
<br />
[http://mtpaint.sourceforge.net/ mtPaint] is a graphic editing program geared towards creating indexed palette images and pixel art.<br />
<br />
===Image Viewers===<br />
<br />
[http://linuxbrit.co.uk/feh/ Feh] is a fast, lightweight image viewer that uses imlib2.<br />
<br />
[http://lxde.sourceforge.net/gpicview/ GPicView] is a simple and fast image viewer for X. Made by the developers of [[LXDE]]<br />
<br />
[http://gqview.sourceforge.net/ GQview] is an image browser that features single click access to view images and move around the directory tree.<br />
<br />
[http://geeqie.sourceforge.net/ Geeqie] is an image browser/viewer fork of GQview. Adds additional functionality such as support for RAW files.<br />
<br />
{{App|Mirage|PyGTK image viewer featuring support for crop and resize, custom actions and a thumbnail pane.|http://mirageiv.berlios.de|{{Package Official|mirage}}}}<br />
<br />
[http://goodies.xfce.org/projects/applications/ristretto Ristretto] is a fast and lightweight picture-viewer for the Xfce desktop environment.<br />
<br />
[http://spiegl.de/qiv/ QIV] (Quick Image Viewer) is a very small and fast gdk/Imlib image viewer.<br />
<br />
{{App|Viewnior|Minimalistic GTK2 viewer featuring support for flip, rotate, animations and configurable mouse actions|http://xsisqox.github.com/Viewnior/about.html|{{Package Official|viewnior}}}}<br />
<br />
[http://web.archive.org/web/19981207030422/http://world.std.com/~jimf/xloadimage.html Xloadimage] is the classic X image viewer.<br />
<br />
[http://xsisqox.github.com/Viewnior/download.html Viewnior] iis a fast and simple image viewer for GNU/Linux.<br />
<br />
===Video Players===<br />
<br />
[http://kdekorte.googlepages.com/gnomemplayer Gnome-Mplayer] is a simple GTK-based GUI for [[mplayer]] without GNOME dependencies<br />
<br />
[[mplayer]] and [[mencoder]] support a complete and versatile array of video/audio formats.<br />
<br />
[http://smplayer.sourceforge.net/ SMPlayer] is a middleweight QT frontend for mplayer with additional patches.<br />
<br />
[http://www.videolan.org/vlc/ VLC] is a a middleweight video player with support for a wide variety of audio/video formats.<br />
<br />
==Office==<br />
<br />
===Calendars===<br />
<br />
[http://palcal.sourceforge.net/ Pal] is a very lightweight calendar with both interactive and non-interactive interfaces.<br />
<br />
[http://culot.org/calcurse/ Calcurse] is a text-based curses calendar and scheduling system.<br />
<br />
[http://www.roaringpenguin.com/products/remind Remind] is a highly sophisticated text-based calendaring and notification system.<br />
<br />
[http://pessimization.com/software/wyrd/ Wyrd] is an curses front-end to Remind.<br />
<br />
[http://www.duke.edu/~dgraham/wxRemind/ wxRemind] is a Python text and graphical frontend to Remind.<br />
<br />
===PDF Tools===<br />
<br />
[http://code.google.com/p/apvlv/ apvlv] is a lightweight PDF viewer with VIM key bindings.<br />
<br />
[http://www.emma-soft.com/projects/epdfview/ ePDFView] is a free lightweight PDF document viewer using Poppler and GTK+ libraries.<br />
<br />
[http://repo.or.cz/w/llpp.git llpp] is a very fast PDF reader based off of MuPDF, that supports continuous page scrolling, bookmarking, and text search through the whole document (unlike MuPDF). <br />
<br />
[http://ccxvii.net/mupdf/ MuPDF] is a very fast PDF viewer and toolkit written in portable C. Features CJK font support.<br />
<br />
[http://www.foolabs.com/xpdf/ Xpdf] is a viewer for Portable Document Format (PDF) files.<br />
<br />
[http://zathura.pwmt.org/projects/zathura zathura] is another lightweight PDF viewer similar to apvlv, only lighter.<br />
<br />
===Text Editors===<br />
<br />
[http://acme.cat-v.org Acme] a minimalist and flexible programming environment by Rob Pike.<br />
<br />
[http://www.nongnu.org/beaver/ Beaver] is an Early AdVanced EditoR.<br />
<br />
[http://www.geany.org Geany] is a text editor using the GTK+ 2 toolkit with basic features of an integrated development environment.<br />
<br />
[http://edile.googlecode.com Edile] is a PyGTK code/scripting editor implemented in one file.<br />
<br />
[http://tarot.freeshell.org/leafpad/ Leafpad] is a notepad clone for GTK+ 2.x that emphasizes simplicity.<br />
<br />
[http://mooedit.sourceforge.net/ medit] is a lightweight IDE text editor featuring support for tabs, sessions, plugins and syntax highlighting.<br />
<br />
[http://www.xfce.org/projects/mousepad/ Mousepad] is a simple text editor for Xfce based on Leafpad.<br />
<br />
[[nano]] is a console text editor based on pico with on-screen key binding help.<br />
<br />
[http://pyroom.org/ PyRoom] is a great distractionless PyGTK text editor, a clone of the infamous WriteRoom<br />
<br />
[http://sam.cat-v.org Sam] a graphical text editor by Rob Pike (still used by Ken Thompson and others).<br />
<br />
Vi, [[Vim]], gVim, the classic vi text editor.<br />
<br />
===Word Processors===<br />
<br />
[[Abiword]] is a full-featured word processor, there is also an even lighter version in the AUR, [http://aur.archlinux.org/packages.php?ID=25601/ Abiword-light].<br />
<br />
[http://txt2tags.sourceforge.net txt2tags] is a dead-simple, KISS-compliant lightweight, human-readable markup language to produce rich format content out of plain text files<br />
<br />
===Todo List Managers===<br />
[http://aur.archlinux.org/packages.php?ID=7673 Todo.txt] manages your Todo list from the command line.<br />
<br />
[http://orgmode.org org-mode] - an [[Emacs]] Mode for Notes, Project Planning, and Authoring.<br />
<br />
==System==<br />
<br />
===File Managers===<br />
<br />
[http://emelfm2.net/ emelFM2] is file manager that implements the popular two-pane design.<br />
<br />
[http://www.midnight-commander.org Midnight Commander] is a console-based, dual-paned, file manager.<br />
<br />
[http://pcmanfm.sourceforge.net/ PCManFM] is a lightweight file manager which features tabbed browsing and can optionally manage the desktop background.<br />
<br />
[[Ranger]] is a console based file manager with vi bindings, customizability, and lots of features.<br />
<br />
[http://rox.sourceforge.net ROX] is a small and fast file manager which can optionally manage the desktop background and panels.<br />
<br />
[[Thunar]] can be run as a daemon with excellent start up and directory load times. Features support for customizable actions.<br />
<br />
[[Vifm]] is a ncurses based two-pane file manager with vi like keybindings.<br />
<br />
[http://roland65.free.fr/xfe/index.php/ Xfe] X File Explorer (Xfe) is an MS-Explorer or Commander like file manager for X.<br />
<br />
[http://www.qtfm.org/ qtfm] small, lightweight filemanager for Linux desktops based on pure Qt<br />
and works great with minimal desktop environments like Openbox.<br />
<br />
===GUI Compression Tools===<br />
<br />
[http://squeeze.xfce.org/ Squeeze] is a modern and advanced archive manager.<br />
<br />
[http://xarchive.sourceforge.net Xarchive] is a GTK+ 2 front-end for various command line archiving tools.<br />
<br />
[http://xarchiver.sourceforge.net/ Xarchiver] is a lightweight desktop independent archive manager built with GTK+ 2. At the time of writing, it appears to be the most functional and up to date of the three tools listed here.<br />
<br />
===CD/DVD Burning Tools===<br />
<br />
{{App|recorder|Simple frontend to cdrkit/cdrtools, cdrdao, mkisofs and growisofs with limited options and preferences|http://code.google.com/p/recorder/|{{Package Official|recorder}}}}<br />
{{App|Xfburn|Simple frontend to the libburnia libraries with support for CD/DVD(-RW), ISO images and BurnFree.|http://www.xfce.org/projects/xfburn/|{{Package Official|xfburn}}}}<br />
<br />
===Login managers===<br />
<br />
[[CDM]] provides an ultra-minimalistic, yet full-featured login manager written in bash.<br />
<br />
[[SLiM]] provides a lightweight and elegant graphical login solution.<br />
<br />
[[Qingy]] is ultralight and very configurable graphical login independent on X Windows.<br />
<br />
===Monitors===<br />
<br />
[[Conky]] is a lightweight, scriptable system monitor.<br />
<br />
[http://htop.sourceforge.net/ htop] is a simple, ncurses interactive process viewer.<br />
<br />
[http://wiki.lxde.org/en/LXTask LXTask] is a lightweight task manager for [[LXDE]].<br />
<br />
===Panels===<br />
<br />
[http://nsf.110mb.com/bmpanel/ BMPanel] (BitMap Panel) is a lightweight, NETWM compliant panel for the X11 system.<br />
<br />
[http://fbpanel.sourceforge.net fbpanel] is a lightweight, NETWM compliant desktop panel.<br />
<br />
[http://lxde.org LXPanel] is a lightweight X11 desktop panel (part of LXDE).<br />
<br />
[http://pypanel.sourceforge.net/ PyPanel] is a lightweight panel/taskbar written in Python and C ([[PyPanel|HOWTO]]).<br />
<br />
[http://code.google.com/p/tint2/ Tint] is a simple panel/taskbar intentionally made for openbox3, but should also work with other window managers ([[Tint|HOWTO]]).<br />
<br />
[http://www.failedprojects.de/pancake/ pancake] is a highly configurable, modular panel for X.<br />
<br />
===Terminals===<br />
<br />
[[LilyTerm]] is a light and easy to use libvte based X Terminal Emulator.<br />
<br />
[http://rox.sourceforge.net ROXTerm] is a tabbed, VTE-based terminal emulator with a small footprint.<br />
<br />
[[urxvt]] is a highly extendable unicode enabled rxvt-clone terminal emulator featuring tabbing, url launching, quake-style dropdown, pseudo-transparency, and is extensible with perl.<br />
<br />
[http://www.pleyades.net/david/sakura.php Sakura] is a terminal emulator based on GTK+ and VTE.<br />
<br />
[http://invisible-island.net/xterm/ xterm] is a terminal emulator for the X Window System.<br />
<br />
[http://sourceforge.net/projects/tilda/files/ tilda] Tilda is a Linux terminal taking after the likeness of many classic terminals from first person shooter games, Quake, Doom and Half-Life (to name a few), where the terminal has no border and is hidden from the desktop until a key is pressed.<br />
<br />
===Trays===<br />
<br />
[http://icculus.org/openbox/2/docker/ Docker] is a docking application which acts as a system tray.<br />
<br />
[http://stalonetray.sourceforge.net Stalonetray] is a stand-alone system tray.<br />
<br />
[http://gna.org/projects/fvwm-crystal/ Trayer] swallows GTK+ 1.2/2.x application docklets, and KDE docklets.<br />
<br />
===Window managers===<br />
<br />
[[Window Manager#List of window managers]]<br />
<br />
==Games==<br />
[[Netbook Games List]]<br />
<br />
==Links==<br />
[http://bbs.archlinux.org/viewtopic.php?id=88515 Arch Linux Forums / LnF Awards 2010] - The best Light & Fast apps of 2010.</div>Tlp