Some suggestions for GNOME..




I got a copy of RH6.0 for my birthday, and have been learning the new
setup, including GNOME. In short, I'm impressed. But I have some
suggestions..

This (rather heavy-duty) mail has two main areas: The first is a detailed
suggestion for my Most Wanted Applet, and there's a few lines right at the
end which contain suggestions for the panel/drawers. This is a text file I
typed up at home before investigating mailing lists and the like, which is
why it has a fairly abrupt introduction. Here goes..

---------------------------------------------------------------------------

OK, here's my idea for a killer Desk App.

Being of a computer science/engineering nature, I have on my desk a
deskpad - a large pad of paper (about a foot and a half by a foot and a
third) covered in little drawings, mathematical calculations, and general
information.

While I'm not at my desk, I frequently need calculations performed. This
usually means whipping out a pocket calculator, or starting a terminal and
bc, or for more complex things, a spreadsheet of some kind. What I really
want, however, is a digital desk pad that combines all of these.

The simplest solution for your online calculation needs would be something
like xcalc/gcalc. But I don't like having to click on all those buttons,
it only stores one answer at a time (well, two, if you include the
display), no dynamic recalculation, in short all the ills that beset a
normal calculator.

At first, I thought the ideal solution would be to simply embed a gnumeric
spreadsheet in an applet. However, this has the problem of being
restricted to a fixed grid, and possibly needing further auxillary screen
real-estate to function usefully (toolbars, maybe menus, depending on
how many keyboard shortcuts there are).

My next attempt was embedding a gnome-terminal running bc in a drawer.
This is working quite nicely, but again misses some things - there's no
visual representation of previous calculations (I might forget what
values are in which variables), calculations aren't remembered between
sessions, no dynamic recalculation, etc.

My ideal solution would meld spreadsheets, bc (dc?) and general scrawling
in a single applet.

Here's the idea. Picture a large expansive applet, white background
(pixmap background? So we can put coffee stains on?). Say, up to the size
of a normal gnome-terminal. You can click anywhere on this sheet, and you
get a text entry cursor. Type in some formula (gnumeric's formula library
will come in handy here) in either bc or gnumeric format (basically, in
the form "=<formula>" or "<variable>=<formula>"), and hit enter. DeskPad
performs the calculation, and prints out the answer just below. To the
left it places a lable of the form "EQN(n)", where n is the ordinal number
of the calculation (we're talking allocation like PIDs here). See? Simple
desktop calculator, like bc (with more functions).

Now click somewhere else. Pretend you want to make a calculation that
references the result of the first. Click, type.. When you get to the point
where you need to reference the previous result, you have (naturally)
several choices for describing the reference. Firstly, if you used a
bc-style formula (<variable>=<formula>), you can use the variable name.
Otherwise, use the special function EQN(n), which evaluates to the result
of the function referenced (this is why the labels). Lastly, I think it
would be a good idea if clicking on an equation inserted the correct
reference (EQN(n)) - possibly drawing (XOR?) a line from the equation to
its reference.

There, we have dynamic recalculation, free-form format, possibility for
saving data between sessions, the works.

Detailed suggestions: 
* We must be able to set initial size of pad (pixels), initial size of 
virtual pad (if not already infinite), in pixels (like XFree86 virtual 
desktop) or multiples of original size (like pagers in fvwm)
* Choice of font (of course)
* Having sheets (like excel/gnumeric) would be nice
* Actually, a lot of the gnumeric backend code would be very useful. To
wit, the function library (with this new EQN function/array included), the
calculation libraries (detection of divide by zero, dynamic recalculation,
detection of undefined references) and so on.
* Arbitrary precision would also be nice.
* Intelligent base-conversion? So if a number begins with "0x", it's hex,
if it begins with a 0 and the remaining digits are all <= 7, it's octal,
and so forth.. As for converting *to* hex/octal, I dunno.
* Putting in text strings would be fairly useless from a calculation point
of view, but it seems to be something that would be needed for
completeness.
* Since we don't have the limitations of cell-width, we could define our
own limits for number of significant figures, the switch point for
scientific notation, and so on.
* Unlike bc, I want to be able to raise a number to a non-integer power!
* Naturally, you can paste into the pad.
* Annotations? Lines, boxes, circles, arrows?
* Tab-completion of formulae?

I know that you're supposed to have some example or proof-of-concept code
before you can announce it to the world, but (as is the common refrain)
I'm not sufficiently proficient as a programmer to do something even this
simple. And as my exams are approaching quite quickly, I don't currently
have time to teach myself GTK/GNOME. However, I fancy I know a thing or
two about user-interfaces, and I think I've given a fairly detailed
briefing on the design.

Here's extra credit tasks I've thought of, but I'm not seriously suggesting
they be implemented - this is more pipe dreaming.

* Have an optional dc (as opposed to bc) interface. If you can imagine an
RPN spreadsheet..
* Backtick support, so you can include an arbitary shell command and have
stdout placed on the pad (this could be useful for things like extracting
an interesting number from somewhere in /proc).
	- Varying shell syntax (or predefined shell to use for backticks)
* Export/import of useful calculations (so someone can write a useful
function, say, comparing various /proc numbers, and pass it around). This
includes export/import of *clusters* of inter-referenced calculations.
* For the very, very brave: Start on the long, painful road to
Mathematica..:)

Well, that's about it for the applet. I'm also a very novice GNOME user, and
as such, I've a few suggestions for the panel generally. I have no idea if
some of these things have been discussed and disapproved of, or unthought of,
or already implemented in a more recent version, so please ignore them if
they are. 

* A tear-off bar for drawers would be nice. Being able to dock torn-off drawers as new corner panels would be nice also.. I'm not exactly sure why it would, 
but it seems a logical extension. I know! Interface simplicity. Not dividing
panels into "normal panels" and "special panels" but letting all the panels
work the same way - a principle of good UI design, I think.
* Scrolling of panels/drawers that are longer than the screen? I'm thinking of
IE4 ($DEITY forgive me) here. I'm currently running in a limited resolution
(vesafb doesn't seem to be able to force interlaced for 1024x768), and 
sometimes I just plain run out of room.
* Multiple rows/columns for a panel/drawer? Instead of scrolling? Automatic
when an applet in the panel is higher than 48 pixels? (or wider, for vertical
panels..)
* When a drawer unfolds, it should be moved so that it is entirely within the
screen (like menus are). Put an outsize (bigger than 48x48 in both dimensions) 
drawer at the end of an edge-panel, and open it. Ideally, it would be moved
so that it is entirely in the screen, but at the moment it's not.
* When a swallowed app is created, it gets a little toolbar-drag-bar on one
side. I have two problems with this.
	- I can't drag the thing like I can a real toolbar (or the mini-
	commander), so why does it look like I can? Suggestion - take the 
	texture off it (so it's just a bar without those lumps on it).
	- If I want to change the settings for it, I have to remove it and
	create it again. Why can't I have a "Properties..." entry on the little
	right-click menu? OK, so changing the commandline requires restarting
	the app. Fine by me. All I want to do is change the dimensions.

------------------------------------------------------------------------------

I'm subscribed to gnome-list now, so the return address probably goes back
to the list. If you want to flame me personally, the email address is
thristian@atdot.org. 

Tim Allen




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]