From bda643ec6e93e91d440e6246b123f12de8e82a62 Mon Sep 17 00:00:00 2001 From: Patrick Totzke Date: Thu, 18 Aug 2011 09:16:13 +0100 Subject: mention argparse for debian in install --- INSTALL | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'INSTALL') diff --git a/INSTALL b/INSTALL index 4b251725..c0e9b444 100644 --- a/INSTALL +++ b/INSTALL @@ -27,8 +27,12 @@ Alot depends on development versions of notmuch and urwid. 3. make sure you have argparse installed: ----------------------------------------- -If you are running debian and are still on python 2.6, +argparse is part of the stadndard library since python v2.7. +If you are running debian and are still on python 2.6, use +aptitude install python-argparse +or easy_install argparse +to get a backported version. 4. get alot and install it from git: -- cgit v1.2.3 From 662228c1f64cd305ca1e0522b1fccaaa079e2ae5 Mon Sep 17 00:00:00 2001 From: dtk Date: Wed, 17 Aug 2011 22:38:12 +0200 Subject: Fix minor typos in documentation --- INSTALL | 4 ++-- README | 4 ++-- USAGE | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'INSTALL') diff --git a/INSTALL b/INSTALL index c0e9b444..88512dd7 100644 --- a/INSTALL +++ b/INSTALL @@ -42,7 +42,7 @@ to get a backported version. > cd alot > sudo python setup.py install -Thats it, now "alot" should be in your path. +That's it, now "alot" should be in your path. Alot tries to be as unobtrusive as possible, with one exception: It forces you to use UTF-8 encoding whereever it can: @@ -53,7 +53,7 @@ All configs are optional, but if you want to send mails you need to specify at least one account section: [account uoe] - realname = Your Name + realname = Your Name address = your@address sendmail_command = msmtp sent_mailbox = maildir:///home/you/mail/Sent diff --git a/README b/README index c984bd9e..facd5334 100644 --- a/README +++ b/README @@ -6,7 +6,7 @@ Current features include: * spawn terminals for asynchronous editing of mails * theming, optionally in monochromatic, 16 or 256 colours * tag specific theming and tagstring translation - * a hook system to inject ones own python code + * a hook system to inject one's own python code * python shell for introspection * forward/reply/group-reply of emails * multiple accounts for sending mails via sendmail @@ -15,7 +15,7 @@ Current features include: * database manager that manages a write queue to the notmuch index * user configurable keyboard maps -Soonish to be addresses non-features: +Soonish to be addressed non-features: ------------------------------------- * encryption/decryption for messages * search for strings in displayed buffer diff --git a/USAGE b/USAGE index f291db0b..509dec23 100644 --- a/USAGE +++ b/USAGE @@ -1,7 +1,7 @@ USAGE ===== In all views, arrows, page-up/down, j,k and space can be used to move the focus. -escape cancels prompts. You can hit ":" at any time and type in commands +Escape cancels prompts. You can hit ":" at any time and type in commands to the prompt. Any commandline can be mapped by using the "MODE-maps" sections in the config file. These are the default keymaps: -- cgit v1.2.3 From 0c37bb7d8cf823c77a6b9e8a9df23cf80c80b936 Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 18 Aug 2011 14:33:34 +0100 Subject: make python 2.7 a requirement --- INSTALL | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'INSTALL') diff --git a/INSTALL b/INSTALL index 88512dd7..8ed2eaeb 100644 --- a/INSTALL +++ b/INSTALL @@ -2,7 +2,8 @@ INSTALL ======= Alot depends on development versions of notmuch and urwid. - +Note that due to restrictions on argparse and subprocess, +you need to run python v>=2.7. 1. make sure you have urwid V>= 1.0 ------------------------------------- @@ -10,6 +11,9 @@ Alot depends on development versions of notmuch and urwid. > git clone http://github.com/wardi/urwid > cd urwid > sudo python setup.py install +It seems you need the python headers for this. +On debian/ubuntu: +>aptitude install python2.7-dev 2. install notmuch and python bindings from git: @@ -24,18 +28,7 @@ Alot depends on development versions of notmuch and urwid. > sudo python setup.py install -3. make sure you have argparse installed: ------------------------------------------ - -argparse is part of the stadndard library since python v2.7. -If you are running debian and are still on python 2.6, use -aptitude install python-argparse -or -easy_install argparse -to get a backported version. - - -4. get alot and install it from git: +3. get alot and install it from git: ------------------------------------ > git clone git://github.com/pazz/alot alot -- cgit v1.2.3 From 7f662432cb978069cdf2aafcb05a000377362c16 Mon Sep 17 00:00:00 2001 From: Patrick Totzke Date: Thu, 25 Aug 2011 22:59:27 +0100 Subject: restructured text --- INSTALL | 62 ++++++++--------- README | 14 +++- USAGE | 243 +++++++++++++++++++++++++++++++++------------------------------- 3 files changed, 168 insertions(+), 151 deletions(-) (limited to 'INSTALL') diff --git a/INSTALL b/INSTALL index 8ed2eaeb..585be457 100644 --- a/INSTALL +++ b/INSTALL @@ -3,39 +3,41 @@ INSTALL Alot depends on development versions of notmuch and urwid. Note that due to restrictions on argparse and subprocess, -you need to run python v>=2.7. +you need to run *python v>=2.7*. -1. make sure you have urwid V>= 1.0 -------------------------------------- - -> git clone http://github.com/wardi/urwid -> cd urwid -> sudo python setup.py install -It seems you need the python headers for this. -On debian/ubuntu: ->aptitude install python2.7-dev +1. urwid +-------- +make sure you have urwid V>= 1.0:: + git clone http://github.com/wardi/urwid + cd urwid + sudo python setup.py install -2. install notmuch and python bindings from git: ------------------------------------------------- +It seems you need the python headers for this. +On debian/ubuntu\::: + aptitude install python2.7-dev -> git clone git://notmuchmail.org/git/notmuch -> cd notmuch -> ./configure -> make -> sudo make install -> cd bindings/python -> sudo python setup.py install +2. notmuch +---------- +install notmuch *and* python bindings from git\::: + git clone git://notmuchmail.org/git/notmuch + cd notmuch + ./configure + make + sudo make install + cd bindings/python + sudo python setup.py install -3. get alot and install it from git: ------------------------------------- +3. alot +------- +get alot and install it from git\::: -> git clone git://github.com/pazz/alot alot -> cd alot -> sudo python setup.py install + git clone git://github.com/pazz/alot alot + cd alot + sudo python setup.py install -That's it, now "alot" should be in your path. +That's it, now `alot` should be in your path. Alot tries to be as unobtrusive as possible, with one exception: It forces you to use UTF-8 encoding whereever it can: @@ -43,12 +45,10 @@ All text parts and headers of outgoing emails are converted to utf-8, notmuch tagstrings, edited emails and config files are interpreted as utf-8. All configs are optional, but if you want to send mails you need to -specify at least one account section: +specify at least one account section in you config\::: - [account uoe] - realname = Your Name - address = your@address - sendmail_command = msmtp - sent_mailbox = maildir:///home/you/mail/Sent + [account uoe] + realname = Your Name + address = your@address See USAGE for default keymaps and how to do fancy customization. diff --git a/README b/README index facd5334..9ca6df73 100644 --- a/README +++ b/README @@ -1,5 +1,15 @@ -This is a proposal for a terminal gui for notmuch mail, written in python. -You can find some old screenshots in data/alot*png +This is a proposal for a terminal gui for `notmuch mail `, +written in python using the `urwid ` toolkit. + +You can find some old screenshots in `data/alot*png`, +the files `INSTALL` and `USAGE` contain instructions on how to set it up, +use and customize. These files are nicely rendered in the github +`wiki `. +The API docs for the current master branch are `here `, +the `docs` directory contains their sources. + +Do comment on the code or file issues! I'm curious what you think of it. +Talk to me in #notmuch@Freenode. Current features include: ------------------------- diff --git a/USAGE b/USAGE index d69e2562..117cf42a 100644 --- a/USAGE +++ b/USAGE @@ -1,61 +1,60 @@ -USAGE +Usage ===== In all views, arrows, page-up/down, j,k and space can be used to move the focus. Escape cancels prompts. You can hit ":" at any time and type in commands to the prompt. Any commandline can be mapped by using the "MODE-maps" sections -in the config file. These are the default keymaps: - -[global-maps] -$ = flush -: = prompt -; = bufferlist -@ = refresh -I = search tag:inbox AND NOT tag:killed -L = taglist -U = search tag:unread -\ = prompt search -d = bclose -m = compose -o = prompt search -q = exit -shift tab = bprevious -tab = bnext - -[bufferlist-maps] -enter = openfocussed -x = closefocussed - -[search-maps] -& = toggletag killed -O = refineprompt -a = toggletag inbox -enter = openthread -l = retagprompt -| = refineprompt - -[envelope-maps] -a = attach -enter = reedit -s = prompt subject -t = prompt to -y = send - -[taglist-maps] -enter = select - -[thread-maps] -C = fold --all -E = unfold --all -H = toggleheaders -a = toggletag inbox -enter = select -f = forward -g = groupreply -r = reply - - -CONFIG -===== +in the config file. These are the default keymaps\::: + + [global-maps] + $ = flush + : = prompt + ; = bufferlist + @ = refresh + I = search tag:inbox AND NOT tag:killed + L = taglist + U = search tag:unread + \ = prompt search + d = bclose + m = compose + o = prompt search + q = exit + shift tab = bprevious + tab = bnext + + [bufferlist-maps] + enter = openfocussed + x = closefocussed + + [search-maps] + & = toggletag killed + O = refineprompt + a = toggletag inbox + enter = openthread + l = retagprompt + | = refineprompt + + [envelope-maps] + a = attach + enter = reedit + s = prompt subject + t = prompt to + y = send + + [taglist-maps] + enter = select + + [thread-maps] + C = fold --all + E = unfold --all + H = toggleheaders + a = toggletag inbox + enter = select + f = forward + g = groupreply + r = reply + +Config +------ Just like offlineimap or notmuch itself, alot reads a config file in the "INI" syntax: It consists of some sections whose names are given in square brackets, followed by key-value pairs that use "=" or ":" as separator, ';' and '#' are comment-prefixes. @@ -64,101 +63,109 @@ The default location for the config file is ~/.alot.rc. You can find a complete example config in data/example.full.rc. Here is a key for the interpreted sections: -[general] : global settings: set your editor etc -[account X] : defines the account X: realname, email address, sendmail -[X-maps] : defines keymaps for mode X. possible modes are: - envelope, search, thread, taglist, bufferlist and global. - global-maps are valid in all modes. -[tag translate] : defines a map from tagnames to strings that is used when - displaying tags. utf-8 symbols welcome. -[Xc-theme] : define colour palette for colour mode. X is in {1, 16, 256}. +[general] + global settings: set your editor etc + +[account X] + defines the account X: realname, email address, sendmail + +[X-maps] + defines keymaps for mode X. possible modes are: + envelope, search, thread, taglist, bufferlist and global. + global-maps are valid in all modes. + +[tag-translate] + defines a map from tagnames to strings that is used when + displaying tags. utf-8 symbols welcome. + +[Xc-theme] + define colour palette for colour mode. X is in {1, 16, 256}. All configs are optional, but if you want to send mails you need to specify at least one account section. -A sample gmail section: - - [account gmail] - realname = Patrick Totzke - address = patricktotzke@gmail.com - aliases = patricktotzke@googlemail.com - gpg_key = D7D6C5AA - sender_type = sendmail - sendmail_command = msmtp --account=gmail -t - -I use this for my uni-account: - - [account uoe] - realname = Patrick Totzke - address = ... - aliases = foobar@myuni.uk;f.bar@myuni.uk;f.b100@students.myuni.uk - sender_type = sendmail - sendmail_command = msmtp --account=uoe -t - sent_box = maildir:///home/pazz/mail/uoe/Sent +A sample gmail section looks like this\::: + + [account gmail] + realname = Patrick Totzke + address = patricktotzke@gmail.com + aliases = patricktotzke@googlemail.com + gpg_key = D7D6C5AA + sender_type = sendmail + sendmail_command = msmtp --account=gmail -t + +I use this for my uni-account\::: + + [account uoe] + realname = Patrick Totzke + address = ... + aliases = foobar@myuni.uk;f.bar@myuni.uk;f.b100@students.myuni.uk + sender_type = sendmail + sendmail_command = msmtp --account=uoe -t + sent_box = maildir:///home/pazz/mail/uoe/Sent + draft_box = maildir:///home/pazz/mail/uoe/Drafts Caution: Sending mails is only supported via sendmail for now. If you want -to use a sendmail command different from 'sendmail', specify it as sendmail_command. +to use a sendmail command different from `sendmail`, specify it as `sendmail_command`. -send_mailbox specifies the mailbox where you want outgoing mails to be stored +`send_mailbox` specifies the mailbox where you want outgoing mails to be stored after successfully sending them. You can use mbox, maildir, mh, babyl and mmdf in the protocol part of the url. - - Hooks -===== - +----- Before and after every command execution, alot calls this commands pre/post hook: Hooks are python callables with arity 4 that live in a module specified by -hooksfile in the global section of your config. Per default this points to '~/.alot.py' +`hooksfile` in the `[global]` section of your config. Per default this points to `~/.alot.py` For every command X, the callable 'pre_X' will be called before X and 'post_X' afterwards. When a hook gets called, it receives instances of -1) alot.ui.UI, the main user interface object that can prompt etc. -2) alot.db.DBManager, the applications database manager -3) alot.account.AccountManager, can be used to look up account info -4) alot.settings.config, a configparser to access the user's config +1. `alot.ui.UI`, the main user interface object that can prompt etc. +2. `alot.db.DBManager`, the applications database manager +3. `alot.account.AccountManager`, can be used to look up account info +4. `alot.settings.config`, a configparser to access the users config + +An autogenerated API doc for these can be found at http://pazz.github.com/alot/ , +the sphinx sources live in the `docs` folder. As an example, consider this pre-hook for the exit command, -that logs a personalized goodby message: +that logs a personalized goodby message\::: -def pre_exit(ui, dbman, accountman, config): - accounts = accountman.get_accounts() - if accounts: - ui.logger.info('goodbye, %s!' % accounts[0].realname) - else: - ui.logger.info('goodbye!') + def pre_exit(ui, dbman, accountman, config): + accounts = accountman.get_accounts() + if accounts: + ui.logger.info('goodbye, %s!' % accounts[0].realname) + else: + ui.logger.info('goodbye!') Theming -======= - -You can change the colour settings in the section [Xc-theme], where X is the +------- +You can change the colour settings in the section `[Xc-theme]`, where X is the colour mode you use. This defaults to 256, but 16 and 1 are also possible. The colourmode can be changed in the globals section or given as a commandline parameter (-C). The keys in this section should be self explanatory. In 16c and 256c modes you can define Y_fg and Y_bg for the foreground and background of each keyword Y. These can define colorcodes and flags -like 'underline' or 'bold', comma separated if you want more than one. See urwids doc on Attributes: - http://excess.org/urwid/reference.html#AttrSpec +like `underline` or `bold`, comma separated if you want more than one. See urwids doc on Attributes: +http://excess.org/urwid/reference.html#AttrSpec Urwid privides a neat script that makes choosing colours easy, which can be found here: - http://excess.org/urwid/browser/palette_test.py +http://excess.org/urwid/browser/palette_test.py -See data/example.full.rc for a complete list of widgets that can be themed. +See `data/example.full.rc` for a complete list of widgets that can be themed. Moreover, keywords that start with "tag_" will be used to display specific tags. For instance, you -can use the following to always display the "todo" tag in white on red, when in 256c-mode. +can use the following to always display the "todo" tag in white on red, when in 256c-mode. :: -[256c-theme] -tag_todo_bg = #d66 -tag_todo_fg = white + [256c-theme] + tag_todo_bg = #d66 + tag_todo_fg = white -You can translate tag strings before displaying them using the [tag translate] section. +You can translate tag strings before displaying them using the [tag-translate] section. A key=value statement in this section is interpreted as: -Always display the tag "key" as string "value". Utf-8 symbols are welcome here. +Always display the tag `key` as string `value`. Utf-8 symbols are welcome here. See e.g. http://panmental.de/symbols/info.htm -I personally display my maildir flags like this: - -[tag translate] -flagged = ⚑ -unread = ✉ -replied = ⇄ +I personally display my maildir flags like this\::: + [tag-translate] + flagged = ⚑ + unread = ✉ + replied = ⇄ -- cgit v1.2.3 From 87f367406cf30f7c829b63b8e90a8d58794110da Mon Sep 17 00:00:00 2001 From: Patrick Totzke Date: Fri, 26 Aug 2011 10:24:41 +0100 Subject: markdown --- INSTALL | 8 ++++---- README | 39 +++++++++++++++++++++++++++++++++++ README.rst | 35 -------------------------------- USAGE | 68 ++++++++++++++++++++++++++++++++------------------------------ 4 files changed, 78 insertions(+), 72 deletions(-) create mode 100644 README delete mode 100644 README.rst (limited to 'INSTALL') diff --git a/INSTALL b/INSTALL index 585be457..786c6fb4 100644 --- a/INSTALL +++ b/INSTALL @@ -7,7 +7,7 @@ you need to run *python v>=2.7*. 1. urwid -------- -make sure you have urwid V>= 1.0:: +make sure you have urwid V>= 1.0 git clone http://github.com/wardi/urwid cd urwid @@ -19,7 +19,7 @@ On debian/ubuntu\::: 2. notmuch ---------- -install notmuch *and* python bindings from git\::: +install notmuch *and* python bindings from git: git clone git://notmuchmail.org/git/notmuch cd notmuch @@ -31,7 +31,7 @@ install notmuch *and* python bindings from git\::: 3. alot ------- -get alot and install it from git\::: +get alot and install it from git: git clone git://github.com/pazz/alot alot cd alot @@ -45,7 +45,7 @@ All text parts and headers of outgoing emails are converted to utf-8, notmuch tagstrings, edited emails and config files are interpreted as utf-8. All configs are optional, but if you want to send mails you need to -specify at least one account section in you config\::: +specify at least one account section in you config: [account uoe] realname = Your Name diff --git a/README b/README new file mode 100644 index 00000000..27a1e21b --- /dev/null +++ b/README @@ -0,0 +1,39 @@ +This is a proposal for a terminal gui for [notmuch mail][notmuch] +written in python using the [urwid][urwid] toolkit. + +You can find some old screenshots in `data/alot*png`, +the files `INSTALL` and `USAGE` contain instructions on how to set it up, +use and customize. These files are nicely rendered in the [github wiki][wiki]. +The API docs for the current master branch are [here][api]. +the `docs` directory contains their sources. + +Do comment on the code or file issues! I'm curious what you think of it. +Talk to me in #notmuch@Freenode. + +Current features include: +------------------------- + * spawn terminals for asynchronous editing of mails + * theming, optionally in monochromatic, 16 or 256 colours + * tag specific theming and tagstring translation + * a hook system to inject one's own python code + * python shell for introspection + * forward/reply/group-reply of emails + * multiple accounts for sending mails via sendmail + * tab completion for commands and querystrings + * priorizable notification popups + * database manager that manages a write queue to the notmuch index + * user configurable keyboard maps + +Soonish to be addressed non-features: +------------------------------------- + * encryption/decryption for messages + * search for strings in displayed buffer + * print command + * folding for message parts + * undo for commands + * addressbook integration + +[notmuch]: http://notmuchmail.org/ +[urwid]: http://excess.org/urwid/ +[api]: http://pazz.github.com/alot/ +[wiki]: https://github.com/pazz/alot/wiki diff --git a/README.rst b/README.rst deleted file mode 100644 index 9ca6df73..00000000 --- a/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -This is a proposal for a terminal gui for `notmuch mail `, -written in python using the `urwid ` toolkit. - -You can find some old screenshots in `data/alot*png`, -the files `INSTALL` and `USAGE` contain instructions on how to set it up, -use and customize. These files are nicely rendered in the github -`wiki `. -The API docs for the current master branch are `here `, -the `docs` directory contains their sources. - -Do comment on the code or file issues! I'm curious what you think of it. -Talk to me in #notmuch@Freenode. - -Current features include: -------------------------- - * spawn terminals for asynchronous editing of mails - * theming, optionally in monochromatic, 16 or 256 colours - * tag specific theming and tagstring translation - * a hook system to inject one's own python code - * python shell for introspection - * forward/reply/group-reply of emails - * multiple accounts for sending mails via sendmail - * tab completion for commands and querystrings - * priorizable notification popups - * database manager that manages a write queue to the notmuch index - * user configurable keyboard maps - -Soonish to be addressed non-features: -------------------------------------- - * encryption/decryption for messages - * search for strings in displayed buffer - * print command - * folding for message parts - * undo for commands - * addressbook integration diff --git a/USAGE b/USAGE index 117cf42a..0c4f5608 100644 --- a/USAGE +++ b/USAGE @@ -3,7 +3,7 @@ Usage In all views, arrows, page-up/down, j,k and space can be used to move the focus. Escape cancels prompts. You can hit ":" at any time and type in commands to the prompt. Any commandline can be mapped by using the "MODE-maps" sections -in the config file. These are the default keymaps\::: +in the config file. These are the default keymaps: [global-maps] $ = flush @@ -63,27 +63,27 @@ The default location for the config file is ~/.alot.rc. You can find a complete example config in data/example.full.rc. Here is a key for the interpreted sections: -[general] - global settings: set your editor etc - -[account X] - defines the account X: realname, email address, sendmail - -[X-maps] - defines keymaps for mode X. possible modes are: - envelope, search, thread, taglist, bufferlist and global. - global-maps are valid in all modes. - -[tag-translate] - defines a map from tagnames to strings that is used when - displaying tags. utf-8 symbols welcome. - -[Xc-theme] - define colour palette for colour mode. X is in {1, 16, 256}. + [general] + global settings: set your editor etc + + [account X] + defines the account X: realname, email address, sendmail + + [X-maps] + defines keymaps for mode X. possible modes are: + envelope, search, thread, taglist, bufferlist and global. + global-maps are valid in all modes. + + [tag-translate] + defines a map from tagnames to strings that is used when + displaying tags. utf-8 symbols welcome. + + [Xc-theme] + define colour palette for colour mode. X is in {1, 16, 256}. All configs are optional, but if you want to send mails you need to specify at least one account section. -A sample gmail section looks like this\::: +A sample gmail section looks like this: [account gmail] realname = Patrick Totzke @@ -93,7 +93,7 @@ A sample gmail section looks like this\::: sender_type = sendmail sendmail_command = msmtp --account=gmail -t -I use this for my uni-account\::: +I use this for my uni-account: [account uoe] realname = Patrick Totzke @@ -120,22 +120,24 @@ For every command X, the callable 'pre_X' will be called before X and 'post_X' a When a hook gets called, it receives instances of -1. `alot.ui.UI`, the main user interface object that can prompt etc. -2. `alot.db.DBManager`, the applications database manager -3. `alot.account.AccountManager`, can be used to look up account info -4. `alot.settings.config`, a configparser to access the users config +1. `alot.ui.UI`, the main user interface object that can prompt etc. +2. `alot.db.DBManager`, the applications database manager +3. `alot.account.AccountManager`, can be used to look up account info +4. `alot.settings.config`, a configparser to access the users config An autogenerated API doc for these can be found at http://pazz.github.com/alot/ , the sphinx sources live in the `docs` folder. As an example, consider this pre-hook for the exit command, -that logs a personalized goodby message\::: +that logs a personalized goodby message: - def pre_exit(ui, dbman, accountman, config): - accounts = accountman.get_accounts() - if accounts: - ui.logger.info('goodbye, %s!' % accounts[0].realname) - else: - ui.logger.info('goodbye!') +```python +def pre_exit(ui, dbman, accountman, config): + accounts = accountman.get_accounts() + if accounts: + ui.logger.info('goodbye, %s!' % accounts[0].realname) + else: + ui.logger.info('goodbye!') +``` Theming @@ -153,7 +155,7 @@ http://excess.org/urwid/browser/palette_test.py See `data/example.full.rc` for a complete list of widgets that can be themed. Moreover, keywords that start with "tag_" will be used to display specific tags. For instance, you -can use the following to always display the "todo" tag in white on red, when in 256c-mode. :: +can use the following to always display the "todo" tag in white on red, when in 256c-mode. [256c-theme] tag_todo_bg = #d66 @@ -163,7 +165,7 @@ You can translate tag strings before displaying them using the [tag-translate] s A key=value statement in this section is interpreted as: Always display the tag `key` as string `value`. Utf-8 symbols are welcome here. See e.g. http://panmental.de/symbols/info.htm -I personally display my maildir flags like this\::: +I personally display my maildir flags like this: [tag-translate] flagged = ⚑ -- cgit v1.2.3