[Urwid] SàT: XMPP client with urwid frontend + smalls remarks about urwid

Ian Ward ian at excess.org
Sat Aug 21 08:51:33 EDT 2010

goffi wrote on 2010-08-20 05:52:
> I've just release SàT 0.0.3 which is a XMMP client based on a
> daemon/frontend architecture, communicating by DBus.
> The idea is to have everything done in the daemon, and the frontend only
> manage the view.
> Currently the following frontends exist:
> - Wix (WxWidget): GUI
> - Primitivus (Urwid): Console interface
> - Jp: CLI
> A Web and Qt (Kde ?) frontend are also planed.
> The daemon is based on Twisted/Wokkel. The sources and some screenshots
> are available on my website
> (http://www.goffi.org/index.php?post/2010/08/19/Salut-%C3%A0-Toi-v0.0.3
> - in french sorry - or http://www.goffi.org/index.php?download/35 for
> the direct download). Note that the project is *not yet intended for

Wow.  It looks really nice.  I've added a link to it from
http://excess.org/urwid/wiki/ApplicationList and marked it "ALPHA".
Please update the link as you see fit.

> end-user*, and the installation is currently a bit complex (but there is
> step-by-step how-to in INSTALL file). The project will hopefully be
> usable for end-user around the end of the year, and should be
> multi-platform.
> I talk about this here because my previously-ncurses based console
> interface now uses Urwid, and thanks to you I could do stuffs quickly
> and efficiently. I have made some widgets which can eventually be useful
> to others (advanced edit, tabs container, or file selection dialog box),
> you can check in frontends/primitivus directory, you will probably be
> interested by custom_widgets.py and files_management.py. Everything is
> under GPL v3

That's great to see.  Is there any chance you would license that file
more permissively so that parts of it might become part of Urwid? (Urwid
is LGPLv2)

> I have two small remarks:
> - except if I have missed something, there is nothing to dynamically
> change Colums and Pile widget, I had to manually change widget_list and
> column_types, which can be broken if the Urwid code change. I think a
> few methods to add/remove dynamically widget should be useful

That's correct.  Every time I start to work on that I seem to get
sidetracked by my desire to refactor all the container widgets to pull
out the common parts.  There's even a plan on the wiki from 3 years (!) ago.

Your point is well taken.  It's more important to have an interface to
modify Columns/Pile than that the interface and implementation are perfect.

> - I heavily use DBus, and dbus return dbus.String objects, which are
> subclasses of unicode. But Urwid do a strict type comparison, and I have
> a TagMarkupException when trying, for e.g. to create an urwid.Text.
> Using isinstance can fix it. As suggested on IRC chan, you can find a
> small patch attached.

Applied.  Thanks.


More information about the Urwid mailing list