Re: [dev] SWK: The simple widget kit

From: Robert Ransom <>
Date: Sun, 9 May 2010 20:42:48 -0700

On Sun, 09 May 2010 04:58:46 +0200
pancake <> wrote:

> Applied.
> I was expecting a diff, but bundle is ok too :)
> The debug printfs you removed are ok..i mean.. I was using them for debugging purposes, and its not something to be in mainstream.

I only moved one fprintf to a different line in the same block, so that
it would provide accurate debugging information. (When I saw the test
program printing out a keycode from the previously received event, I
was worried that there was a subtly broken ring buffer somewhere in the

> What was your impression? What you would add or change?

My recommendation:

$ sudo updatedb
$ sudo rm -rf `locate swk`

I second Uriel's comments. SWK might be tolerable in an infrequently
used menu system for a graphical game, but it cannot be made useful for
much else.

The problem is not SWK's lack of functionality, it is the fact that
SWK's interface cannot encapsulate the complexity needed to implement
the expected functionality of a modern widget kit:

* a movable insertion point in text fields,
* selection of text using the keyboard and/or mouse,
* placement of the insertion point using the mouse,
* a multi-line text editor that does not need to be run as a separate
* support for non-monospaced fonts,
* support for Unicode combining characters,
* support for right-to-left scripts,
* user customization of the color scheme,
* support for user-selected input methods,
* etc.

> I forgot to explain some of the keybindings or features..
> Use control +/- to increase/decrease font size

Useless bloat.

> control + j/k like tab/shift tab to change focus

I want to use C-k for delete-to-EOL.

> it supports touchscreens and normal desktops

What do you mean by 'supports'?

> scrolling boxes is done by click+drag or mouse wheel

What's a box? I didn't see any indication in the test programs that
anything could be scrolled.

> there is no support for multiline widgets like text area widget

That's not a feature, it's a defect.

> mouse button configuration will be done when we get x11 backend
> looking for ports to x11,android,w32,osx,iphone...
> X11 backend can add a widget to embed other x11 apps like tabbed does, so would be a good exercice to try to write a replacdment in swk, or just think on possible apps, design their interfaces correctly and implement them. This will help us to find the requirements.. To know which widgets we need, enhace the layout algorithm, rendering...
> This step adds another step in the chain.. This is.. We need a guideline to design suckless user interfaces...i have some ideas in mind..but i would prefer to have swk more stable to think on that atm.

You need a definition of 'suckless user interface' before you start
specifying guidelines for how to produce one.

Here's a draft:

  A suckless user interface is:

  * useful,
  * usable,
  * transparent,
  * either discoverable or well-documented,
  * reliable,
  * as simple as possible, and no simpler, and
  * customizable.

Robert Ransom
Received on Mon May 10 2010 - 03:42:48 UTC

This archive was generated by hypermail 2.2.0 : Mon May 10 2010 - 03:48:02 UTC