1 Return-Path: <patricktotzke@googlemail.com>
\r
2 X-Original-To: notmuch@notmuchmail.org
\r
3 Delivered-To: notmuch@notmuchmail.org
\r
4 Received: from localhost (localhost [127.0.0.1])
\r
5 by olra.theworths.org (Postfix) with ESMTP id 5CE8B431FD0
\r
6 for <notmuch@notmuchmail.org>; Fri, 20 May 2011 03:47:29 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=1.976 tagged_above=-999 required=5
\r
12 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
\r
13 FREEMAIL_FROM=0.001, FREEMAIL_REPLYTO=2.775, RCVD_IN_DNSWL_LOW=-0.7]
\r
15 Received: from olra.theworths.org ([127.0.0.1])
\r
16 by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
\r
17 with ESMTP id m5c5CR-eG3-G for <notmuch@notmuchmail.org>;
\r
18 Fri, 20 May 2011 03:47:28 -0700 (PDT)
\r
19 Received: from mail-ww0-f45.google.com (mail-ww0-f45.google.com
\r
20 [74.125.82.45]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client
\r
21 certificate requested) by olra.theworths.org (Postfix) with ESMTPS id
\r
22 20D3E431FB6 for <notmuch@notmuchmail.org>; Fri, 20 May 2011 03:47:27 -0700
\r
24 Received: by wwi36 with SMTP id 36so3164655wwi.2
\r
25 for <notmuch@notmuchmail.org>; Fri, 20 May 2011 03:47:26 -0700 (PDT)
\r
26 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
\r
27 d=googlemail.com; s=gamma;
\r
28 h=domainkey-signature:subject:from:to:reply-to:date:message-id
\r
29 :user-agent:content-transfer-encoding:mime-version:content-type;
\r
30 bh=GLBOEhqegePBBCrwzqJJwdWmKQy3cxQaoxBFkgnqdNk=;
\r
31 b=necW+FN7uP4zpusx8mMXgUWorBGX0zHoOhSmt2U8KVHRYKS4dct4+6mhWqBc3OUiMB
\r
32 lmppivfrlbMUYtKqgRFaG/SCrj/+L0SZ6T9NUnqqGRMi25MiIfPFvmeYmL8tfup1M9Wn
\r
33 AlcANxG/Dtt6KPMwX6mhA97G19NxViMysx87Y=
\r
34 DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma;
\r
35 h=subject:from:to:reply-to:date:message-id:user-agent
\r
36 :content-transfer-encoding:mime-version:content-type;
\r
37 b=GU47ajyedW5z8kuu4Uhv/JSLnwJDKEUbz1cVkHUpRSVVgYdkMNARXnMJJui14X6B+O
\r
38 Ra9ycymrZHq/a2eyjRjSXovHlUI8MC9qzC4+LFS0weTTnkkn9vtTPjPW7EpIZrpXHfKn
\r
39 ygGIl5RW4W2wsipTaHebfN/S81Nt776s3/c3E=
\r
40 Received: by 10.216.69.21 with SMTP id m21mr491823wed.4.1305888446069;
\r
41 Fri, 20 May 2011 03:47:26 -0700 (PDT)
\r
42 Received: from localhost (dhcp-90-080.inf.ed.ac.uk [129.215.90.80])
\r
43 by mx.google.com with ESMTPS id bd8sm2196435wbb.31.2011.05.20.03.47.23
\r
44 (version=TLSv1/SSLv3 cipher=OTHER);
\r
45 Fri, 20 May 2011 03:47:24 -0700 (PDT)
\r
46 Subject: a python terminal gui?
\r
47 From: Patrick Totzke <patricktotzke@googlemail.com>
\r
48 To: notmuch-list <notmuch@notmuchmail.org>
\r
49 Date: Fri, 20 May 2011 11:47:41 +0100
\r
50 Message-Id: <1305888097-sup-2343@optimusprime>
\r
52 Content-Transfer-Encoding: 8bit
\r
54 Content-Type: multipart/signed; boundary="=-1305888461-517614-26690-4998-2-=";
\r
55 protocol="application/pgp-signature"
\r
56 X-BeenThere: notmuch@notmuchmail.org
\r
57 X-Mailman-Version: 2.1.13
\r
59 Reply-To: Patrick Totzke <patricktotzke@gmail.com>
\r
60 List-Id: "Use and development of the notmuch mail system."
\r
61 <notmuch.notmuchmail.org>
\r
62 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
63 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
64 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
65 List-Post: <mailto:notmuch@notmuchmail.org>
\r
66 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
67 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
68 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
69 X-List-Received-Date: Fri, 20 May 2011 10:47:29 -0000
\r
72 --=-1305888461-517614-26690-4998-2-=
\r
73 Content-Type: text/plain; charset=UTF-8
\r
74 Content-Transfer-Encoding: quoted-printable
\r
78 First of all, Thanks to everybody involved in the project. Using notmuch =
\r
80 good fun and I totally agree that the spin-off/rewrite of sup is a great =
\r
82 However, as a vim user I feel that the one thing that's truly missing is =
\r
85 maintainable, feature-rich commandline GUI. Let's change that.
\r
86 I'm aware of existing proposed guis: vala-notmuch, notsomuch, I have also=
\r
89 a minimal non-oop python gui that doesn't use the python bindings and who=
\r
94 This is a proposal for a terminal gui, written in python.
\r
95 Currently, it is more a sketch of a framework, so let me explain the key =
\r
98 * I use python because I personally am heavily biased in the python vs. r=
\r
100 I've been working with python for a while and have never used ruby anyw=
\r
103 for my sup-mail config. I find rubys syntax highly unintuitive, had (an=
\r
105 problems to install/work with up-to-date ruby-gems on my ubuntu system.=
\r
107 Also, I read somewhere=E2=84=A2 that sup is based on a email library th=
\r
108 at is no longer maintained.
\r
109 I know these are only my personal, non representative and maybe uninfor=
\r
111 but I have the feeling that I'm not alone here.
\r
112 On the other hand, cnotmuch and all other libs I (plan to) use in this =
\r
114 were easy_installed without any problems.
\r
116 * I want a gui that looks and feels like sup, without the ugly parts.
\r
118 * use libraries wherever possible. Therefore, instead of
\r
119 programming raw curses, I go for the urwid toolkit: It's a bit like gtk=
\r
121 you create a bunch of widgets and put them together in a tree-like stru=
\r
123 and the library handles redrawing the screen and redirecting key presse=
\r
125 I'm aware of some arguments against urwid (PEP8 compatibility, slow py3=
\r
127 but consider the advantages:
\r
128 - no boring and error-prone ncurses hacking
\r
129 - possibly multiple frontends (curses, web)
\r
130 - correct display of unicode chars
\r
131 - a lot of ready-made widgets are available (textboxes, selectable lis=
\r
133 an additional widget-lib called urwid-sat that defines widgets for p=
\r
134 assword inputs etc.
\r
135 - ready made colour theming for mono/16/256 colours.
\r
138 one might also look around for a mutt/abook contact lib
\r
140 You can find the code at here: https://github.com/pazz/notmuch-gui =
\r
142 Obviously, there is a lot that's missing, but I think having this framewo=
\r
144 for anyone to contribute. For example, to be able to display mails,
\r
145 one could code a urwid.Widget that can display a given email.message.Mess=
\r
147 That widget will then be used in a widget that displays a whole notmuch.t=
\r
149 which we could put inside a new buffer class that extends my ng.buffer.Bu=
\r
151 So far, there are only two modi (ng.buffer.Buffer subclasses):
\r
152 a bufferlist and one to display thread search results.
\r
154 I consider all of this to be a proof-of-concept, any part of this proposa=
\r
156 is up for discussion. I'd be interested in any feedback whatsoever, and h=
\r
158 to delegate work to anybody willing to contribute. I'm aware that the cod=
\r
160 is not pretty, probably not the sleekest oop design and non-conforming =
\r
162 with a lot of conventions. Hit me :)
\r
168 --=-1305888461-517614-26690-4998-2-=
\r
169 Content-Disposition: attachment; filename="signature.asc"
\r
170 Content-Type: application/pgp-signature; name="signature.asc"
\r
172 -----BEGIN PGP SIGNATURE-----
\r
173 Version: GnuPG v1.4.11 (GNU/Linux)
\r
175 iEYEARECAAYFAk3WRs0ACgkQlDQDZ9fWxaoVlQCcCE2Yibg1tiLZ5atytcJhsJHS
\r
176 SRkAoL+1TBtrucv3YN9xyjllBIf0Hmc+
\r
178 -----END PGP SIGNATURE-----
\r
180 --=-1305888461-517614-26690-4998-2-=--
\r