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

Re: Dselect proposed interface (was Re: 1.1 installation notes.)



Kevin M Bealer (kmb203@psu.edu) wrote:

: The current dselect screen isn't bad -- it's efficient, etc.  But it is
: too 'unix' ... which is to say, you're expected to think.  At this stage
: the first time user has ~ 400 packages to deal with.  All the power in
: the world can be hidden _just_below_ the surface, but the steering wheel
: and brakes have to be easy to find.

I suggest a tree structure for hiding the details. Displaying everthing
plus the kitchen sink to new users is only confusing. Call me stupid but is
is even still confusing to me, after 1 year of debian.

Sorry for wasting your time with the following incomplete and contradictory
concept (Ian, I can already hear you moaning). I have no time to work this
over, but I want to trough in some ideas. 

-Winfried


###############################################################################
 Hint	Sektion		Type of Selection				 Size
	"admin"		<X> individual  < > most complete  < > none       3.7
	Important packages in section admin:
	    [X] at           delayed job execution and batch processing
	    [-] cpio         GNU cpio: a program to manage archives of files.
	    [+] cron         management of regular background processing
        Optional packages in section admin:
	    ]-[ acct         The GNU accounting utilities.
	    [ ] dump         Ported 4.4BSD dump and restore utilities.
 <NEW>	    [ ] linconf      A GUI to configure every aspect of Linux
 <ERROR>    [ ] quota        An implementation of the diskquota system.
===============================================================================
at - delayed job execution and batch processing (admin/important)

at and batch read commands which are to be executed later.               
at is used to run a command at some specified future time, and batch is
used to run a command when system load levels permit.
The at system uses cron to get the commands executed, so you need cron to
use at.
Keys: ## v=verbose ## h=help ## ?=search ## +=select ## -=deselect ## q=quit ##
###############################################################################


Perhaps I should explain the meaning of the checklist-buttons:

	Symbol	Description
	------------------------------------------------------
	[X]	installed
	[+]	selected for installation
	[-]	installed, selected for de-installation
	]-[	installed, selected for de-installation and purge everything
	[ ]	not installed

I think this is an improvement over the current "bitmask" consisting of
stars because it is more intuitive and directly corresponds to keys.

Note that there is also enough leading space for unencrypted hints like
"NEW" or "ERROR". This space comes from not displaying the Section an
priority over and over again (it wastes 15% of the space of every line on
the upper half of the screen. Provoking: this is much better used by
spaces).
My motivation for calling it a waste:

	*** devel    Opt dchanges     build the changes file for a debian
	*** devel    Opt dld          dld - a library package of C functions
	*** devel    Opt dlltools     Tools used to create DLL jumptable
	*** devel    Opt expect       The expect/expectk programs and
	*** devel    Opt f2c          A Fortran77 to C/C++ translator, plus
	*** devel    Opt fort77       An f2c front end to make it look like a
	*** devel    Opt g77          The GNU Fortran 77 compiler (ELF
	*** devel    Opt gcl          GNU Common Lisp compiler.
	*** devel    Opt glibcdoc     GNU C library Info documentation.
	*** devel    Opt guile        The GNU extension language.

You see 10 times, that your're in section "devel", inspecting the
"optional" packages. Even if the current view is splitted up:

	   ----- All Standard packages in section base -----
	*** base     Std libc5        The Linux C library version 5 (run-time
	*** base     Std libdb1       the Berkeley database routines (runtime
	*** base     Std libgdbm1     GNU dbm database routines (runtime
	   ----- All Unclassified packages in section base -----
	*** base     ?   passwd       Change password data.                  
	*** base     ?   util-linux   Miscellaneous system utilities.
	    --- All packages in section comm ---                           
	    ----- All Optional packages in section comm -----
	*** comm     Opt lrzsz        zmodem/ymodem/xmodem transfer package
   

you _can_ see that your're in a certain section, by looking at the
headings. (This is even easier, if the screen is not full with chars).
So, the information about the section and the priority could be displayed
once instead. Where? 
For example, use the line in the middle:

	libdb1       installed;  selected (was: selected).  Standard

It is no longer required to display this information when using my
intuitive checkbox-syntax.
Anyway, I would not use this line for displaying information but instead
for a "graphical" splitting of the upper and lower half of the screen.
This way we enhanced the ease of orientation for the eye (only by
re-arranging the information).

Another, more philosophical argument is, that were're on the highest level
of detail. And the meaning of "detail" from my point of view is: look at
the leaves and forget about the rest of the tree, including the root and
all branches.

Sorry for my bad English.

Ok, now a look at the rest of the screen: the last line contains the basic
keystrokes (it is the standard place for providing such information).
[These double-#s I used are awful. But this is e-mail and I can play with
inverse presentation.]
Stating "description of XYZ" there is non-productive. It should be
perfectly clear from what the user sees above.


The high level of detail could be folded on keypress, resulting in
something like:
###############################################################################
dselect - inspection sections
	Sektion		Selection of Packages			      Size (MB)
	-----------------------------------------------------------------------
	admin		<X> individual  < > most complete  < > no         3.7
	base		< > individual  <X> most complete  < > no         8.5
	comm		<X> individual  < > most complete  < > no         2.7
	devel		< > individual  <X> most complete  < > no        23.4
	doc		< > individual  <X> most complete  < > no         3.14
	editors		<X> individual  <X> most complete  < > no        99.9
	electronics	< > individual  <X> most complete  <X> no         0.0
	games		<X> individual  <X> most complete  <X> no         0.0
	graphics	< > individual  <X> most complete  < > no        10.5
======================================================================  233.9 =
Sektion:
	admin
Description:
	Tools to administer your Linux-Box
	blah-blah-blah

###############################################################################
Note the mix of pre-defined and "individual" selections. Who really cares,
if "TeX" eats up 9 or 10 MB on the hard-disk if he needs it? And if
somebody wants to configure his linux box not to waste a single bit on his
hard-disk, he is free to do so via the individual selections.

Argh, I don't really like these last screen-layouts. But you may get the idea.

The lowest level of detail (this way we can handle pre-defined setups):
###############################################################################
dselect - Debian package selection at highest level (lowest detail)

	<X> Workstation setup
		< > most complete system possible (size: 2 GB)
		< > everything one normally needs (size: 1 GB)
		< > smallest system possible (size: 5 MB)
		< > get most stuff via NFS (size: 20 MB)
		<X> individual selection of packages by the user (default)
	< > Firewall setup (size: 20 MB)
	< > WWW-Server setup (size: 20 MB)

===============================================================================
Workstation setup:
	Most flexible setup, your machine is not used for one specific
	purpose only.
	blah-blah-blah	


###############################################################################


Reply to: