antiright-devel
[Top][All Lists]
Advanced

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

[Antiright-devel] antiright Makefile configure description-pak do...


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright Makefile configure description-pak do...
Date: Thu, 01 Feb 2007 20:45:50 +0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 07/02/01 20:45:49

Modified files:
        .              : Makefile configure description-pak 
        doc            : TODO antiright.lsm 
        gtkshell       : Makefile main.c 
        libantiright   : Makefile util.c 
Added files:
        doc            : gtkshell.1 
        gshedit        : Makefile 
        gtkshell       : add_options.c add_options.h arguments.c 
                         arguments.h button.c button.h callbacks.c 
                         callbacks.h dialog_options.c dialog_options.h 
                         file_dialog.c file_dialog.h gtkshell.c 
                         gtkshell.h label.c label.h option_options.c 
                         option_options.h options.c options.h text.c 
                         text.h updated.c updated.h updated_label.c 
                         updated_label.h updated_options.c 
                         updated_options.h updated_progress.c 
                         updated_progress.h 
Removed files:
        .              : ACE postinstall-pak system.antiright 
        doc            : ACE.1 flshell.1 system.antiright.5 

Log message:
        Brought CVS up to date.  This syncs with the antiright-2.99.4 source 
tree.
        ACE has been separated into ACE-desktop, but will be reintegrated into 
the tree
        soon.  

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/Makefile?cvsroot=antiright&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/antiright/configure?cvsroot=antiright&r1=1.68&r2=1.69
http://cvs.savannah.gnu.org/viewcvs/antiright/description-pak?cvsroot=antiright&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/antiright/ACE?cvsroot=antiright&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/antiright/postinstall-pak?cvsroot=antiright&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/antiright/system.antiright?cvsroot=antiright&r1=1.4&r2=0
http://cvs.savannah.gnu.org/viewcvs/antiright/doc/TODO?cvsroot=antiright&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/antiright/doc/antiright.lsm?cvsroot=antiright&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/antiright/doc/gtkshell.1?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/doc/ACE.1?cvsroot=antiright&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/antiright/doc/flshell.1?cvsroot=antiright&r1=1.1&r2=0
http://cvs.savannah.gnu.org/viewcvs/antiright/doc/system.antiright.5?cvsroot=antiright&r1=1.3&r2=0
http://cvs.savannah.gnu.org/viewcvs/antiright/gshedit/Makefile?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/Makefile?cvsroot=antiright&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/main.c?cvsroot=antiright&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/add_options.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/add_options.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/arguments.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/arguments.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/button.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/button.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/callbacks.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/callbacks.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/dialog_options.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/dialog_options.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/file_dialog.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/file_dialog.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/label.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/label.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/option_options.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/option_options.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/options.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/options.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/text.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/text.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_label.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_label.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_options.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_options.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_progress.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_progress.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/Makefile?cvsroot=antiright&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/util.c?cvsroot=antiright&r1=1.1&r2=1.2

Patches:
Index: Makefile
===================================================================
RCS file: /sources/antiright/antiright/Makefile,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- Makefile    12 Aug 2006 03:52:48 -0000      1.4
+++ Makefile    1 Feb 2007 20:45:49 -0000       1.5
@@ -22,21 +22,22 @@
 #
 ###############################################################################
 
-.include "config.mk"
+include ./config.mk
 
 CFLAGS += $(INCLUDE) $(DEFS) -Wall -W -g
 
 all: 
-       cd libantiright && make
-       cd flshell && make
+       cd libantiright && $(MAKE)
+       cd gtkshell && $(MAKE)
 
 clean:
-       cd libantiright && make clean
-       cd flshell && make clean
+       cd libantiright && $(MAKE) clean
+       cd gtkshell && $(MAKE) clean
 
 distclean: clean
        rm config.mk
 
+INSTALL=install
 INSTALL_PROGRAM=$(INSTALL) -c -s
 INSTALL_SCRIPT=$(INSTALL) -c -m 755
 INSTALL_DATA=$(INSTALL) -c -m 644
@@ -49,20 +50,17 @@
 docdir=$(datadir)/doc
 
 install: all
-       cd flshell && make install
-       $(INSTALL_DIR) $(bindir) $(man1dir) $(man2dir) $(docdir)/antiright\
+       $(INSTALL_DIR) $(PREFIX) $(bindir) $(man1dir) $(man2dir) 
$(docdir)/antiright\
         $(datadir)/antiright 
-       $(INSTALL_DATA) system.antiright $(datadir)/antiright/
-       $(INSTALL_SCRIPT) ACE $(bindir)
        $(INSTALL_DATA) doc/*.1 $(man1dir)
-       $(INSTALL_DATA) doc/*.5 $(man5dir)
+#      $(INSTALL_DATA) doc/*.5 $(man5dir)
        $(INSTALL_DATA) COPYING $(docdir)/antiright
        $(INSTALL_DATA) doc/AUTHORS $(docdir)/antiright
        $(INSTALL_DATA) README $(docdir)/antiright
        $(INSTALL_DATA) doc/TODO $(docdir)/antiright
        $(INSTALL_DATA) doc/INSTALL $(docdir)/antiright
        $(INSTALL_DATA) doc/HACKING $(docdir)/antiright
-       $(INSTALL_DATA) ChangeLog $(docdir)/antiright
+       cd gtkshell && $(MAKE) install
 
 tarball: distclean
        cd .. && tar czf antiright-$(VERSION).tar.gz antiright

Index: configure
===================================================================
RCS file: /sources/antiright/antiright/configure,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -b -r1.68 -r1.69
--- configure   24 Jul 2006 21:53:15 -0000      1.68
+++ configure   1 Feb 2007 20:45:49 -0000       1.69
@@ -24,15 +24,18 @@
 #
 ###############################################################################
 
-VERSION=3.0
+VERSION=2.99.4
 
-if [ "$1" = "-d" ]; then
+for ARG in $@; do
+       if [ "$ARG" = "-d" ]; then
         echo 'Configuring with debug options...'
-        CFLAGS="-g3 -Wall -W -Werror -DDEBUG"
-elif [ "$1" = "-s" ]; then
-        echo 'Setting up PREFIX for user install in ~/opt.'
+               CFLAGS="$CFLAGS -g3 -Wall -W -Werror -DDEBUG"
+       elif [ "$ARG" = "-s" ]; then
         PREFIX=~/opt/antiright
-fi
+       elif [ "$ARG" = "-S" ]; then
+               PREFIX=/usr/local/stow/antiright
+       fi
+done
 
 DEFS="$DEFS -DPACKAGE_STRING='\"AntiRight_$VERSION\"'"
 
@@ -42,26 +45,32 @@
 fi
 DEFS="$DEFS -DPREFIX='\"$PREFIX\"'"
 
+if [ "$MAKE" = "" ]; then
+       MAKE="$(which make)"
+fi
+if [ "$MAKE" = "" ]; then
+       MAKE="$(which gmake)"
+fi
+if [ "$MAKE" = "" ]; then
+       echo Make not found in path, defaulting to /usr/bin/make.
+       MAKE=/usr/bin/make
+fi
 
 INCLUDE="$INCLUDE -I/usr/pkg/include -I/usr/local/include -I/usr/X11R6/include"
 LIBDIR="$LIBDIR -L/usr/pkg/lib -L/usr/local/lib -L/usr/X11R6/lib"
 
-#if [ ! -f /usr/X11R6/include/Xm/XpmP.h ]; then
-#    LIBS="$LIBS -lXpm"
-#else
-#    DEFS="$DEFS -DHAVE_XMXPM"
-#fi
-
-#LIBS="$LIBS -lXm -lXt -lX11 -lm"
 DEFS="$DEFS -D_GNU_SOURCE"
+
+INSTALL=/usr/bin/install
+
 echo Prefix is $PREFIX
 echo "# Local Build Configuration" > config.mk
+echo "VERSION=$VERSION" >> config.mk
 echo "PREFIX=$PREFIX" >> config.mk
 echo "INCLUDE=$INCLUDE" >> config.mk
 echo "LIBDIR=$LIBDIR" >> config.mk
-#echo "LIBS=$LIBS" >> config.mk
-echo "ICONDIR=$ICONDIR" >> config.mk
-echo "CPPFLAGS=$CPPFLAGS" >> config.mk
 echo "DEFS=$DEFS" >> config.mk
-echo "RESDIR=$RESDIR" >> config.mk
+echo "MAKE=$MAKE" >> config.mk
+echo "INSTALL=$INSTALL" >> config.mk
+echo "CFLAGS=$CFLAGS" >> config.mk
 

Index: description-pak
===================================================================
RCS file: /sources/antiright/antiright/description-pak,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- description-pak     12 Aug 2006 03:52:48 -0000      1.7
+++ description-pak     1 Feb 2007 20:45:49 -0000       1.8
@@ -1,4 +1,4 @@
 
-AntiRight is a lightweight, scripted desktop environment which utilizes the 
FLTK toolkit.  The arshell utility allows for graphical applications to be 
created from within shell scripts.  It is upon this utility that the sample 
desktop environment, ACE, is defined.   
+AntiRight is a lightweight, scripted desktop environment which utilizes the 
GTK toolkit.  The gtkshell utility allows for graphical applications to be 
created from within shell scripts.  It is upon this utility that the sample 
desktop environment, ACE, is defined.   
 
 

Index: doc/TODO
===================================================================
RCS file: /sources/antiright/antiright/doc/TODO,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- doc/TODO    13 Mar 2006 03:38:18 -0000      1.11
+++ doc/TODO    1 Feb 2007 20:45:49 -0000       1.12
@@ -1,7 +1,5 @@
 TODO
 ----
 
-* Remove bitmaps, and their dependencies.
-They take up too much space in the tarball.
-
+* Write gtkshell manual page, such that it reflects actual API.  
 

Index: doc/antiright.lsm
===================================================================
RCS file: /sources/antiright/antiright/doc/antiright.lsm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- doc/antiright.lsm   27 Jan 2006 03:50:41 -0000      1.9
+++ doc/antiright.lsm   1 Feb 2007 20:45:49 -0000       1.10
@@ -1,11 +1,11 @@
 Begin4
 Title:         AntiRight
-Version:       2.12
-Entered-date:  2005-09-24
-Description:   AntiRight is a lightweight desktop environment.  It utilizes 
the Motif/LessTif toolkit.  Its architecture is known as the AntiRight 
Configuration Environment (ACE).  Through this architecture, which is 
implemented with arshell, ACE, and system.antiright, a useable, scripted, and 
diverse utility set is implemented.  Arshell implements the core GUI with 
minimalistic aims in mind, allowing easy changing of GUI toolkits and an 
entirely interpreted environment.  
+Version:       2.99.2
+Entered-date:  2006-10-23
+Description:   AntiRight provides gtkshell, a GTK2-based wrapper application, 
through which applications can be defined at the command line, particularly in 
scripts.    
 Keywords:      AntiRight, desktop, shell, motif, sh, browser, clock, 
calculator, command, launcher, panel, file, manager, load, meter, theme, 
background, color, sticky, note, CD, music, text, editor
 Author:                address@hidden (Jeffrey Bedard)
 Maintained-by: address@hidden (Jeffrey Bedard)
-Primary-site:  http://www.nongnu.org/antiright
+Primary-site:  http://antiright.googlepages.com/home
 Copying-policy:        GPL
 End

Index: gtkshell/Makefile
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- gtkshell/Makefile   23 Aug 2006 07:15:22 -0000      1.1
+++ gtkshell/Makefile   1 Feb 2007 20:45:49 -0000       1.2
@@ -1,14 +1,20 @@
-.include "../config.mk"
+include ../config.mk
 
-CFLAGS+=`pkg-config --cflags gtk+-2.0`
+#CFLAGS+=`pkg-config --cflags gtk+-2.0` -g3 -Wall -W -Werror
+CFLAGS+=`pkg-config --cflags gtk+-2.0` $(DEFS)
 LDFLAGS+=-L../libantiright -lantiright
 LDFLAGS+=`pkg-config --libs gtk+-2.0`
 
-objects=main.o
-all: ${objects}
-       cc -o gtkshell ${objects} ${LDFLAGS}
+objects=gtkshell.o arguments.o options.o callbacks.o updated.o\
+       label.o button.o text.o updated_label.o updated_progress.o\
+       updated_options.o add_options.o option_options.o dialog_options.o\
+       file_dialog.o
+all: $(objects) main.o
+       cc -o gtkshell $(objects) main.o $(LDFLAGS)
+       ar rcs libgtkshell.a $(objects)
+
 clean:
-       rm -f gtkshell *.o
+       rm -f gtkshell *.o libgtkshell.a
 install:
-       install gtkshell ${PREFIX}/bin
+       install gtkshell $(PREFIX)/bin
 

Index: gtkshell/main.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/main.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- gtkshell/main.c     23 Aug 2006 07:15:22 -0000      1.1
+++ gtkshell/main.c     1 Feb 2007 20:45:49 -0000       1.2
@@ -1,169 +1,119 @@
-#include <gtk/gtk.h>
-#include <errno.h>
-#include "../libantiright/library.h"
-
-GtkWidget *gsh_window;
-GtkWidget *gsh_button;
-unsigned int gsh_rows=8;
-unsigned int gsh_row=1;
-GtkWidget *gsh_hbox;
-GtkWidget *gsh_vbox;
-GtkWidget *gsh_label;
-gboolean gsh_updater_defined=FALSE;
-gboolean gsh_button_exits=FALSE;
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+GtkWidget *scrolled_window;
+extern char *gsh_geometry;
+gboolean gsh_dont_scroll=FALSE;
 
-static void
-system_cb(GtkWidget *widget, gpointer data)
+void
+gsh_setup_scrolled_window()
 {
-       system(data);
-       if(gsh_button_exits==TRUE)
-       {
-               exit(0);
-       }
-}
-gint
-gsh_updater(gpointer data)
-{
-       char *results;
-       results=antiright_pipe_read(data);
-       gtk_label_set_text(GTK_LABEL(gsh_label), results);
-       free(results);
-       return(TRUE);
-}
+       scrolled_window=gtk_scrolled_window_new(NULL,NULL);
+       gtk_scrolled_window_set_policy(
+               GTK_SCROLLED_WINDOW(scrolled_window),
+               GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+       gtk_scrolled_window_set_shadow_type(
+               GTK_SCROLLED_WINDOW(scrolled_window),
+               GTK_SHADOW_OUT);
+       gtk_container_add(GTK_CONTAINER(gsh_window), 
+               scrolled_window);
+       gtk_widget_show(scrolled_window);
 
-static void
-entry_cb(GtkWidget *widget, gpointer data)
-{
-       const gchar *entry_text;
-       char *formatted;
-       entry_text=gtk_entry_get_text(GTK_ENTRY(widget));
-       asprintf(&formatted, "%s %s", (char*)data, entry_text);
-       system(formatted);
-       free(formatted);
 }
 
-int 
-main(int argc, char **argv)
+void
+gsh_setup_containers()
 {
-       unsigned int counter;
-
-       gtk_init(&argc, &argv);
-
-       gsh_window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
+       gsh_hbox = gtk_hbox_new(FALSE, 2);
 
-       gsh_hbox=gtk_hbox_new(FALSE, 2);
-       gtk_container_add(GTK_CONTAINER(gsh_window), gsh_hbox);
-       gtk_widget_show(gsh_hbox);
-
-       gsh_vbox=gtk_vbox_new(FALSE, 2);
-       gtk_container_add(GTK_CONTAINER(gsh_hbox), gsh_vbox);
-       gtk_widget_show(gsh_vbox);
-       
-       for(counter=1; counter<argc; counter++)
-       {
-               if(gsh_row==gsh_rows)
+       if(!gsh_dont_scroll)
                {
-                       gsh_vbox=gtk_vbox_new(FALSE, 2);
-                       gtk_container_add(GTK_CONTAINER(gsh_hbox), gsh_vbox);
-                       gtk_widget_show(gsh_vbox);
-                       gsh_row=1;
+               gsh_setup_scrolled_window();
+               gtk_scrolled_window_add_with_viewport(
+                       GTK_SCROLLED_WINDOW(scrolled_window), 
+                       gsh_hbox);
                }
-               if(argv[counter][0]=='-')
-               {
-                       switch(argv[counter][1])
-                       {
-                               case 'E':
-                                       gsh_button_exits=TRUE;
-                                       break;
-                               case 'g':
-                                       counter++;
-                                       gtk_window_parse_geometry(
-                                               GTK_WINDOW(gsh_window),
-                                               argv[counter]);
-                                       break;
-                               case 'r':
-                                       counter++;
-                                       assert(counter<=argc);
-                                       gsh_rows=atoi(argv[counter]);
-                                       break;
-                               case 'l':
+       else
                                        {
-                                               GtkWidget *label;
-                                               counter++;
-                                               assert(counter<=argc);
-                                               
label=gtk_label_new(argv[counter]);
-                                               gtk_container_add(
-                                               GTK_CONTAINER(gsh_vbox),
-                                               label);
-                                               gtk_widget_show(label);
-                                               gsh_row++;
+               gtk_container_add(GTK_CONTAINER(gsh_window),
+                       gsh_hbox);
                                        }
-                                       break;
-                               case 't':
-                                       {
-                                       GtkWidget *entry;
-                                       counter++;
-                                       assert(counter<=argc);
-                                       gsh_row++;
-                                       entry=gtk_entry_new();
-                                       g_signal_connect(
-                                       G_OBJECT(entry), "activate",
-                                       G_CALLBACK(entry_cb),
-                                       (gpointer)argv[counter]);
-                                       gtk_container_add(
-                                       GTK_CONTAINER(gsh_vbox),
-                                       entry);
-                                       gtk_widget_show(entry);
 
-                                       }
-                                       break;
-                               case 'u':
-                                       if(gsh_updater_defined==FALSE)
+ gtk_widget_show(gsh_hbox);
+ gsh_vbox = gtk_vbox_new(FALSE, 2);
+ gtk_container_add(GTK_CONTAINER(gsh_hbox), gsh_vbox);
+ gtk_widget_show(gsh_vbox);
+}
+
+void
+gsh_set_geometry()
+{
+       assert(gsh_geometry);
+       gtk_window_parse_geometry(GTK_WINDOW(gsh_window), 
+               gsh_geometry);
+}
+void
+gsh_check_and_set_geometry()
+{
+       if(gsh_geometry!=NULL)
                                        {
-                                       gsh_label=gtk_label_new("Dynamic 
Label");
-                                       gtk_container_add(
-                                               GTK_CONTAINER(gsh_vbox),
-                                               gsh_label);
-                                       gtk_widget_show(gsh_label);
-
-                                       gsh_row++;
-                                       counter++;
-                                       assert(counter<=argc);
-                                       gsh_updater(argv[counter]);
-                                       g_timeout_add(1000,gsh_updater,
-                                               argv[counter]);
-                                       gsh_updater_defined=TRUE;
+               gsh_set_geometry();
+               free(gsh_geometry);
                                        }
                                        else
                                        {
-       errno=1;
-       g_warning("%s: %d: Attempt to define multiple dynamic labels: %s",
-       __FILE__, __LINE__, g_strerror(errno));
-       counter++;
-       assert(counter<=argc);
+               asprintf(&gsh_geometry, "500x300");
+               gsh_set_geometry();
+               free(gsh_geometry);
                                        }
-                                       break;
-                       }
-               }
-               else
+
+}
+
+int
+main(int argc, char **argv)
+{
+       gtk_init(&argc, &argv);
+
+       gsh_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+       g_signal_connect (gsh_window, "delete-event",
+               G_CALLBACK (gtk_main_quit), NULL);
+       g_signal_connect (gsh_window, "destroy",
+               G_CALLBACK (gtk_main_quit), NULL); 
+
+       if(((argc > 1) && (strlen(argv[1]) == 3)) 
+               && !strncmp(argv[1], "-os", 3))
                {
-                       char *label_text;
-                       label_text=antiright_beautified_label(argv[counter]);
-                       gsh_button=gtk_button_new_with_label(label_text);
-                       free(label_text);
-                       g_signal_connect(G_OBJECT(gsh_button), "clicked",
-                               G_CALLBACK(system_cb),argv[counter]);
-                       gtk_container_add(GTK_CONTAINER(gsh_vbox), gsh_button);
-                       gtk_widget_show(gsh_button);
-                       gsh_row++;
-               }
+               gsh_dont_scroll=TRUE;
        }
+       gsh_setup_containers();
+       gsh_parse_arguments(argc, argv);
 
+       gsh_check_and_set_geometry();
        
        gtk_widget_show(gsh_window);
 
        gtk_main();
 
-       return(0);
+       return (0);
 }
-

Index: libantiright/Makefile
===================================================================
RCS file: /sources/antiright/antiright/libantiright/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libantiright/Makefile       12 Aug 2006 03:52:48 -0000      1.1
+++ libantiright/Makefile       1 Feb 2007 20:45:49 -0000       1.2
@@ -1,3 +1,6 @@
+include ../config.mk
+
+CFLAGS=$(DEFS)
 
 all: pipe.o string.o system.o util.o
        ar rcs libantiright.a pipe.o string.o system.o util.o

Index: libantiright/util.c
===================================================================
RCS file: /sources/antiright/antiright/libantiright/util.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libantiright/util.c 12 Aug 2006 03:52:48 -0000      1.1
+++ libantiright/util.c 1 Feb 2007 20:45:49 -0000       1.2
@@ -32,21 +32,4 @@
   return(pointer);
 }
 
-/* char * */
-/* antiright_get_file_extension(char *filename) */
-/* { */
-/*   char *extension=(char*)xmalloc((size_t)4); */
-/*   unsigned int filename_length=strlen(filename); */
-/*   unsigned int counter=filename_length-3; */
-/*   unsigned int extension_counter=0; */
 
-  
-/*   while(counter < filename_length) */
-/*     { */
-/*       extension[extension_counter]=filename[counter]; */
-/*       counter++; */
-/*       extension_counter++; */
-/*     } */
-/*   extension[extension_counter]='\0'; */
-/*   return(extension); */
-/* } */

Index: doc/gtkshell.1
===================================================================
RCS file: doc/gtkshell.1
diff -N doc/gtkshell.1
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ doc/gtkshell.1      1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,152 @@
+.TH ARSHELL 1
+.SH NAME
+arshell \- invocation configurable GUI shell
+.SH SYNOPSIS
+.B arshell
+ [[-[-help [-fifo COMMAND FIFO]]][-A[[C][c][D[Ff][mp label]]][bi label icon]
+[l label][m[[fevh] label]][s][t label][w]]E[f file]p
+[r rows]t[U[[LPTW] command][f frequency]][W label]][command]
+.SH DESCRIPTION
+.I Arshell
+is a GUI shell that is defined at its invocation through command line 
+arguments.  It was developed as the primary interface to the GUI toolkit in 
+the AntiRight project, as part of ACE, the AntiRight Configuration 
+Environment.  A user interface is defined at invocation and arshell handles 
+user input and program output.  It is very useful, as was intended initially, 
+for providing a user interface for shell scripts.  
+.I ACE 
+is such a script, defining the AntiRight environment and its core logic.  
+.SH OPTIONS
+.TP
+.B \-\-help
+Shows the command line help information.
+.TP  
+.B \-\-fifo 
+Starts a fifo server instance.  COMMAND is the command to which the server 
writes.  FIFO is the FIFO file from where the data that is written into COMMAND 
comes.  
+.TP
+.B \-A
+Adds a widget.  Secondary option
+.B b
+adds an icon button, with
+.I label
+as both label and command and 
+.I icon
+as the xbm or xpm icon to be displayed.  Secondary option
+.B C
+adds a color selector.  Secondary option 
+.B c
+adds a clockload/mailcheck applet.  Secondary option
+.B D
+adds a dialog.  Tertiary option
+.B F
+adds a font selector.  Tertiary option
+.B f
+adds a file selector.  Tertiary option
+.B m
+adds a message box and takes 
+.I label 
+as an argument.  The label will be displayed as the message.  Tertiary option
+.B p
+adds a prompt and takes 
+.I label 
+as an argument.  The label is displayed as the prompt to the user.  In the
+text field that this creates, the user is to enter the requested information.
+Once the information is entered, it is echoed to the console, where it can be
+further processed.  Secondary option
+.B i
+adds an icon button with
+.I label
+as its undisplayed command and 
+.I icon
+as the xbm or xpm icon to be displayed.  Secondary option
+.B l
+adds a label with 
+.I label
+as its value.  Secondary option
+.B m
+adds a menu bar if specified alone.  All tertiary arguments to this argument
+take
+.I label
+as a mandatory argument, as the command and label of the added button.  
Tertiary
+argument
+.B f
+adds a button to the file menu.  Tertiary argument
+.B e
+adds a button to the edit menu.  Tertiary argument
+.B v
+adds a button to the view menu.  Tertiary argument
+.B h
+adds a button to the help menu.  Secondary argument
+.B s
+adds a status bar to the bottom of the application window.  Secondary argument
+.B t
+adds a text field, with
+.I label
+as the mandatory prompt to the user.  Pressing return in such a field will 
+cause the prompt, followed by the entered text, to be echoed to the console.  
+The prompt is echoed to allow a means of identification of the field from 
+which the entered text originated.  Secondary argument
+.B w
+adds a scrolled text work area, with a toolbar, to the application window and
+changes the properties of a previously added menubar to be suitable for text
+editing.
+.B \-E
+Makes it so that a button press cause the arshell to exit after the action for 
+the button is performed.  
+.B \-f
+This loads and parses the interface definition contained within
+.I file.
+This feature is only available if yetanotherclib is installed.  
+.B \-p
+Creates a work area, if necessary, and accepts input from a pipe, placing it 
+in the work area.  
+.TP
+.B \-r 
+Sets the number of button rows in the application window to 
+.I rows.
+.TP
+.B \-t
+Forces tooltips to be used, even if the the overrideRedirect resource is 
+set to True.  
+.TP
+.B \-U
+If used alone, causes
+.I command
+to be run every second, its output displayed in a status area.  Secondary
+argument
+.B f
+causes updating to be performed every
+.I frequency
+miliseconds.  Other secondary arguments require 
+.I command
+to be specified.  Secondary argument 
+.B L
+causes a label to be created in which the output of a command is displayed at 
+a regular frequency.  Secondary argument 
+.B P
+causes a progress bar to be created in which the value echoed by the run
+command, which must be in between 0 and 100, is displayed graphically.  This is
+useful for load meters and progress dialogs, for example.  Secondary argument
+.B T 
+casues a work area to be used to display the regularly executed command.  
+Secondary argument 
+.B W
+casues the regularly executed command to be displayed in the window titlebar.  
+.TP
+.B \-W
+Sets the window title and the text area filename of piped in text to 
+.I label.  
+Any other arguments, if not specified as options, are set as buttons.  The text
+entered becomes both the label and the command for a button.  Only the last 
word
+of this entered command is taken as a label, allowing the labels to be better
+formatted, and thus more aesthetically pleasing.
+.SH AUTHORS
+Arshell was written by Jeffrey Bedard <address@hidden>.  
+.SH REPORTING BUGS
+Report bugs to <address@hidden>
+.SH COPYRIGHT
+Copyright 2002-2006, Jeffrey E. Bedard
+This  is  free software; see the source for copying conditions.  There is NO 
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+ACE (1) arshell(1) system.antiright(5) X(7)

Index: gshedit/Makefile
===================================================================
RCS file: gshedit/Makefile
diff -N gshedit/Makefile
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gshedit/Makefile    1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,20 @@
+include ../config.mk
+
+#CFLAGS+=`pkg-config --cflags gtk+-2.0` -g3 -Wall -W -Werror
+CFLAGS+=`pkg-config --cflags gtk+-2.0` $(DEFS)
+LDFLAGS+=-L../libantiright -lantiright
+LDFLAGS+=`pkg-config --libs gtk+-2.0`
+
+objects=gtkshell.o arguments.o options.o callbacks.o updated.o\
+       label.o button.o text.o updated_label.o updated_progress.o\
+       updated_options.o add_options.o option_options.o dialog_options.o\
+       file_dialog.o
+all: $(objects) main.o
+       cc -o gtkshell $(objects) main.o $(LDFLAGS)
+       ar rcs libgtkshell.a $(objects)
+
+clean:
+       rm -f gtkshell *.o libgtkshell.a
+install:
+       install gtkshell $(PREFIX)/bin
+

Index: gtkshell/add_options.c
===================================================================
RCS file: gtkshell/add_options.c
diff -N gtkshell/add_options.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/add_options.c      1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,71 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+extern GtkWidget *gsh_button;
+
+void
+gsh_handle_add_arguments(int argc, char **argv, unsigned int *counter)
+{
+       assert(strlen(argv[(*counter)])>1);
+       switch(argv[(*counter)][2])
+       {
+               case 'b':
+                       gsh_count(argc, counter);
+                       {
+                               GtkWidget *icon_view;
+                               icon_view=gtk_icon_view_new();
+                       }
+                       break;
+               case 'I':
+                       gsh_count(argc, counter);
+                       gsh_image_button(argv[*counter], argv[*counter+1]);
+                       gsh_count(argc, counter);
+                       gtk_button_set_label(GTK_BUTTON(gsh_button), "");
+                       break;
+               case 'i':
+                       gsh_count(argc, counter);
+                       gsh_image_button(argv[(*counter)], argv[(*counter)+1]);
+                       gsh_count(argc, counter);
+                       break;
+               case 'l':
+                       gsh_count(argc, counter);
+                       gsh_add_label(argv[(*counter)]);
+                       break;
+               case 'p':
+                       gsh_count(argc, counter);
+                       gsh_setup_prompt_command_entry(argv[(*counter)]);
+                       break;
+               case 't':
+                       gsh_count(argc, counter);
+                       gsh_setup_command_entry(argv[(*counter)]);
+                       break;
+               case 'T':
+                       gsh_text_area();
+                       break;
+               case 'u':
+                       gsh_handle_updated_arguments(argc, argv, counter);
+                       break;
+       }
+}
+

Index: gtkshell/add_options.h
===================================================================
RCS file: gtkshell/add_options.h
diff -N gtkshell/add_options.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/add_options.h      1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,30 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_ADD_OPTIONS_H
+#define GSH_ADD_OPTIONS_H
+
+void
+gsh_handle_add_arguments(int argc, char **argv, unsigned int *counter);
+
+#endif
+

Index: gtkshell/arguments.c
===================================================================
RCS file: gtkshell/arguments.c
diff -N gtkshell/arguments.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/arguments.c        1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,67 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+unsigned int gsh_rows=8;
+unsigned int gsh_row=1;
+
+void
+gsh_new_row()
+{
+ gsh_vbox = gtk_vbox_new(FALSE, 2);
+ gtk_container_add(GTK_CONTAINER(gsh_hbox), gsh_vbox);
+ gtk_widget_show(gsh_vbox);
+ gsh_row = 1;
+}
+
+void
+gsh_check_row()
+{
+#ifdef DEBUG
+ printf("==> gsh_row: %d, gsh_rows: %d\n", gsh_row, gsh_rows);
+#endif
+
+ if(gsh_row > gsh_rows)
+ {
+  gsh_new_row();
+ }
+}
+
+void
+gsh_parse_arguments(int argc, char **argv)
+{
+ unsigned int counter;
+
+ for (counter = 1; counter < (unsigned int)argc; counter++)
+ {
+  if (argv[counter][0] == '-')
+  {
+   gsh_handle_switch_arguments(argc, argv, &counter);
+  }
+  else
+  {
+   gsh_command_button(argv[counter]);
+  }
+ }
+}
+

Index: gtkshell/arguments.h
===================================================================
RCS file: gtkshell/arguments.h
diff -N gtkshell/arguments.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/arguments.h        1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,31 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+#ifndef GSH_ARGUMENTS_H
+#define GSH_ARGUMENTS_H
+
+void
+gsh_parse_arguments(int argc, char **argv);
+
+void
+gsh_check_row();
+
+#endif

Index: gtkshell/button.c
===================================================================
RCS file: gtkshell/button.c
diff -N gtkshell/button.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/button.c   1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,48 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+GtkWidget *gsh_button;
+
+void
+gsh_command_button(char *command)
+{
+ char           *label_text;
+ label_text = antiright_beautified_label(command);
+ gsh_button = gtk_button_new_with_label(label_text);
+ free(label_text);
+ g_signal_connect(G_OBJECT(gsh_button), "clicked",
+                 G_CALLBACK(system_cb), command);
+ gsh_manage(gsh_button);
+}
+
+void
+gsh_image_button(char *command, char *filename)
+{
+       GtkWidget *image;
+       image=gtk_image_new_from_file(filename);
+       gsh_command_button(command);
+       gtk_button_set_image(GTK_BUTTON(gsh_button), image);
+       gtk_button_set_relief(GTK_BUTTON(gsh_button), GTK_RELIEF_NONE);
+}
+

Index: gtkshell/button.h
===================================================================
RCS file: gtkshell/button.h
diff -N gtkshell/button.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/button.h   1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,31 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+#ifndef GSH_BUTTON_H
+#define GSH_BUTTON_H
+
+void
+gsh_command_button(char *command);
+
+void
+gsh_image_button(char *command, char *filename);
+
+#endif

Index: gtkshell/callbacks.c
===================================================================
RCS file: gtkshell/callbacks.c
diff -N gtkshell/callbacks.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/callbacks.c        1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,56 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+gboolean gsh_button_exits=FALSE;
+
+void
+gsh_test_exit()
+{
+ if (gsh_button_exits == TRUE)
+ {
+  exit(0);
+ }
+}
+
+void
+system_cb(GtkWidget * widget, gpointer data)
+{
+       widget=NULL;
+
+       antiright_system(data);
+       gsh_test_exit();
+}
+
+void
+entry_cb(GtkWidget * widget, gpointer data)
+{
+       gchar          *command;
+       const gchar    *input;
+
+       input = gtk_entry_get_text(GTK_ENTRY(widget));
+       asprintf(&command, "%s %s", (char *) data, (char *) input);
+       system_cb(NULL, command);
+       free(command);
+}
+

Index: gtkshell/callbacks.h
===================================================================
RCS file: gtkshell/callbacks.h
diff -N gtkshell/callbacks.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/callbacks.h        1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,30 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+#ifndef GSH_CALLBACKS_H
+#define GSH_CALLBACKS_H
+
+void
+                system_cb(GtkWidget * widget, gpointer data);
+
+void
+                entry_cb(GtkWidget * widget, gpointer data);
+#endif

Index: gtkshell/dialog_options.c
===================================================================
RCS file: gtkshell/dialog_options.c
diff -N gtkshell/dialog_options.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/dialog_options.c   1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,102 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+void
+gsh_message_dialog(GtkMessageType type, char *text)
+{
+       GtkWidget *dialog;
+       dialog=gtk_message_dialog_new(
+               GTK_WINDOW(gsh_window),
+               GTK_DIALOG_DESTROY_WITH_PARENT,
+               type,
+               GTK_BUTTONS_CLOSE,
+               (gchar*)text);
+       gtk_dialog_run(GTK_DIALOG (dialog));
+       exit(0);
+}
+void
+gsh_setup_message_dialog(int argc, char **argv,
+       unsigned int *counter, GtkMessageType type)
+{
+       gsh_count(argc, counter);
+       gsh_message_dialog(type, argv[(*counter)]);
+}
+
+void
+gsh_font_dialog()
+{
+       GtkWidget *dialog;
+
+       dialog=gtk_font_selection_dialog_new("Font Selector");
+       if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)
+       {
+               gchar *font;
+               font=gtk_font_selection_dialog_get_font_name(
+                       GTK_FONT_SELECTION_DIALOG(dialog));
+               puts(font);
+               g_free(font);
+       }
+       exit(0);
+}
+
+
+void
+gsh_handle_dialog_arguments(int argc, char **argv,
+       unsigned int *counter)
+{
+       assert(strlen(argv[(*counter)])>2);
+       switch(argv[(*counter)][2])
+       {
+               case 'D': /* Folder Creation Selector */
+                       gsh_folder_create_dialog();
+                       break;
+               case 'd': /* Folder Selector */
+                       gsh_folder_open_dialog();
+                       break;
+               case 'e': /* Error Message */
+                       gsh_setup_message_dialog(argc,argv,
+                               counter, GTK_MESSAGE_ERROR);
+                       break;
+               case 'F': /* Font Selection */
+                       gsh_font_dialog();
+               case 'f': /* File Selection */
+                       gsh_file_open_dialog();
+                       break;
+               case 'i': /* Information */
+                       gsh_setup_message_dialog(argc,argv,
+                               counter, GTK_MESSAGE_INFO);
+                       break;
+               case 's': /* Filename Selection for Saving */
+                       gsh_file_save_dialog();
+                       break;
+               case 'w': /* Warning */
+                       gsh_setup_message_dialog(argc,argv,
+                               counter,
+                               GTK_MESSAGE_WARNING);
+                       break;
+
+       }
+}
+
+

Index: gtkshell/dialog_options.h
===================================================================
RCS file: gtkshell/dialog_options.h
diff -N gtkshell/dialog_options.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/dialog_options.h   1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,34 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_DIALOG_OPTIONS
+#define GSH_DIALOG_OPTIONS
+
+void
+gsh_handle_dialog_arguments(int argc, char **argv,
+       unsigned int *counter);
+
+
+#endif
+
+
+

Index: gtkshell/file_dialog.c
===================================================================
RCS file: gtkshell/file_dialog.c
diff -N gtkshell/file_dialog.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/file_dialog.c      1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,74 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+#include "gtkshell.h"
+
+
+/* Taken from the GTK+ Reference Manual */
+void
+gsh_file_dialog(GtkFileChooserAction action)
+{
+       GtkWidget *dialog;
+
+       dialog=
+               gtk_file_chooser_dialog_new(
+                       "File Chooser",
+                       GTK_WINDOW(gsh_window),
+                       action,
+                       GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                       GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                       NULL);
+
+       if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
+       {
+               gchar *name;
+               name=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+               puts(name);
+               g_free(name);
+       }
+
+       exit(0);
+}
+
+void
+gsh_file_open_dialog()
+{
+       gsh_file_dialog(GTK_FILE_CHOOSER_ACTION_OPEN);
+}
+
+void
+gsh_file_save_dialog()
+{
+       gsh_file_dialog(GTK_FILE_CHOOSER_ACTION_SAVE);
+}
+
+void
+gsh_folder_create_dialog()
+{
+       gsh_file_dialog(GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER);
+}
+
+void
+gsh_folder_open_dialog()
+{
+       gsh_file_dialog(GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+}
+

Index: gtkshell/file_dialog.h
===================================================================
RCS file: gtkshell/file_dialog.h
diff -N gtkshell/file_dialog.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/file_dialog.h      1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,36 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_FILE_DIALOG
+#define GSH_FILE_DIALOG
+void   
+gsh_file_dialog(GtkFileChooserAction action);
+void
+gsh_file_open_dialog();
+void
+gsh_file_save_dialog();
+void
+gsh_folder_open_dialog();
+void
+gsh_folder_create_dialog();
+#endif
+

Index: gtkshell/gtkshell.c
===================================================================
RCS file: gtkshell/gtkshell.c
diff -N gtkshell/gtkshell.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/gtkshell.c 1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,39 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+extern unsigned int gsh_rows;
+extern unsigned int gsh_row;
+
+void
+gsh_manage(GtkWidget *widget)
+{
+ gsh_check_row();
+ gtk_container_add(GTK_CONTAINER(gsh_vbox), widget);
+ gtk_widget_show(widget);
+ gsh_row++;
+#ifdef DEBUG
+ printf("gsh_row: %d, gsh_rows: %d\n", gsh_row, gsh_rows);
+#endif
+}
+

Index: gtkshell/gtkshell.h
===================================================================
RCS file: gtkshell/gtkshell.h
diff -N gtkshell/gtkshell.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/gtkshell.h 1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,54 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+#ifndef GSH_GTKSHELL_H
+#define GSH_GTKSHELL_H
+
+#include <gtk/gtk.h>
+#include <errno.h>
+#include "../libantiright/library.h"
+
+#include "arguments.h"
+#include "options.h"
+#include "callbacks.h"
+#include "updated.h"
+#include "label.h"
+#include "button.h"
+#include "text.h"
+#include "updated_label.h"
+#include "updated_progress.h"
+#include "option_options.h"
+#include "updated_options.h"
+#include "add_options.h"
+#include "dialog_options.h"
+#include "file_dialog.h"
+
+GtkWidget      *gsh_window;
+GtkWidget      *gsh_hbox;
+GtkWidget      *gsh_vbox;
+GtkWidget      *gsh_label;
+
+
+void
+gsh_manage(GtkWidget *widget);
+
+
+#endif

Index: gtkshell/label.c
===================================================================
RCS file: gtkshell/label.c
diff -N gtkshell/label.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/label.c    1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,43 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+void
+gsh_add_label(char *text)
+{
+ GtkWidget      *label;
+
+ label = gtk_label_new(text);
+ gsh_manage(label);
+}
+
+void
+gsh_set_label(GtkWidget *label, char *text)
+{
+       gchar *markup;
+       
+       markup=g_markup_printf_escaped
+               ("<span size=\"small\"><tt>%s</tt></span>", text);
+       gtk_label_set_markup(GTK_LABEL(label), markup);
+       g_free(markup);
+}

Index: gtkshell/label.h
===================================================================
RCS file: gtkshell/label.h
diff -N gtkshell/label.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/label.h    1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,33 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_LABEL_H
+#define GSH_LABEL_H
+
+void
+gsh_add_label(char *text);
+
+void
+gsh_set_label(GtkWidget *label, char *text);
+
+#endif
+

Index: gtkshell/option_options.c
===================================================================
RCS file: gtkshell/option_options.c
diff -N gtkshell/option_options.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/option_options.c   1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,57 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+extern unsigned int gsh_rows;
+extern gboolean gsh_button_exits;
+extern unsigned int gsh_update_period;
+char *gsh_geometry;
+
+void
+gsh_handle_option_arguments(int argc, char **argv, unsigned int *counter)
+{
+       switch(argv[(*counter)][2])
+       {
+               case 'e':
+                       gsh_button_exits=TRUE;
+                       break;
+               case 'g':
+                       gsh_count(argc, counter);
+                       asprintf(&gsh_geometry, "%s", argv[(*counter)]);
+                       break;
+               case 'n':
+                       gtk_window_set_decorated(GTK_WINDOW(gsh_window), 
FALSE);                                             
+                       gtk_window_set_skip_taskbar_hint(
+                               GTK_WINDOW(gsh_window), TRUE);                  
                    
+                       break;
+               case 'r':
+                       gsh_count(argc, counter);
+                       gsh_rows=(unsigned int)atoi(argv[(*counter)]);
+                       break;
+               case 'u':
+                       gsh_count(argc, counter);
+                       gsh_update_period=atoi(argv[*counter]);
+                       break;
+       }
+}
+

Index: gtkshell/option_options.h
===================================================================
RCS file: gtkshell/option_options.h
diff -N gtkshell/option_options.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/option_options.h   1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,29 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_OPTION_OPTIONS_H
+#define GSH_OPTION_OPTIONS_H
+
+void
+gsh_handle_option_arguments(int argc, char **argv, unsigned int *counter);
+
+#endif

Index: gtkshell/options.c
===================================================================
RCS file: gtkshell/options.c
diff -N gtkshell/options.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/options.c  1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,64 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+extern unsigned int gsh_rows;
+extern GtkWidget *gsh_button;
+
+void
+gsh_count(int argc, int *counter)
+{
+ (*counter)++;
+ assert((*counter) <= argc);
+}
+
+void
+gsh_handle_switch_arguments(int argc, char **argv, unsigned int *counter)
+{
+       gsh_check_row();
+       switch (argv[(*counter)][1])
+       {
+               case 'a':
+                       gsh_handle_add_arguments(
+                               argc, 
+                               argv, 
+                               counter);
+                       break;
+               case 'd':       
+                       gsh_handle_dialog_arguments(
+                               argc, 
+                               argv, 
+                               counter);
+                       break;
+               case 'o':
+                       gsh_handle_option_arguments(
+                               argc, 
+                               argv, 
+                               counter);
+                       break;
+               default:
+                       printf("%s:  undefined\n", argv[(*counter)]);
+                       break;
+       }
+}
+

Index: gtkshell/options.h
===================================================================
RCS file: gtkshell/options.h
diff -N gtkshell/options.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/options.h  1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,31 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+#ifndef GSH_OPTIONS_H
+#define GSH_OPTIONS_H
+
+void
+gsh_count(int argc, int *counter);
+
+void
+gsh_handle_switch_arguments(int argc, char **argv, unsigned int *counter);
+
+#endif

Index: gtkshell/text.c
===================================================================
RCS file: gtkshell/text.c
diff -N gtkshell/text.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/text.c     1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,54 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+GtkWidget*
+gsh_setup_command_entry(char *command)
+{
+ GtkWidget      *entry;
+
+ entry = gtk_entry_new();
+ g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(entry_cb),
+                 (gpointer) command);
+ gsh_manage(entry);
+ return(entry);
+}
+
+void
+gsh_setup_prompt_command_entry(char *command)
+{
+       GtkWidget *entry;
+       entry=gsh_setup_command_entry(command);
+       g_signal_connect(G_OBJECT(entry), "activate", 
+               G_CALLBACK(gtk_main_quit), (gpointer) command);
+}
+
+void
+gsh_text_area()
+{
+       GtkWidget *text;
+       
+       text=gtk_text_view_new();
+       gsh_manage(text);
+}
+

Index: gtkshell/text.h
===================================================================
RCS file: gtkshell/text.h
diff -N gtkshell/text.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/text.h     1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,35 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_TEXT_H
+#define GSH_TEXT_H
+
+GtkWidget*
+gsh_setup_command_entry(char *command);
+
+void
+gsh_setup_prompt_command_entry(char *command);
+
+void
+gsh_text_area();
+
+#endif

Index: gtkshell/updated.c
===================================================================
RCS file: gtkshell/updated.c
diff -N gtkshell/updated.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated.c  1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,119 @@
+/*
+  AntiRight
+  (c) 2002-2007 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+/*
+
+TODO: Use hierarchical structures for globals.  
+       This was done on the Motif version.
+       It will allow the use of a single global entity 
+       on the namespace, and further organization can
+       be achieved.  
+
+*/
+
+guint gsh_update_period=1000;
+GSList *gsh_updater_list;
+
+void
+gsh_append_updater(gsh_updater_data *item)
+{
+       gsh_updater_list=g_slist_append(gsh_updater_list, item);
+}
+
+void
+gsh_assign_updater(
+       gsh_updater_data *item,
+       void (*function)(char*, void*),
+       char *command, void *widget)
+{
+       /* Assign the values to ITEM's members.  */
+
+       asprintf(&item->command, "%s", command);
+
+       /* No allocation necessary as these are
+        duplicate pointers.  */
+
+        item->widget=widget;
+        item->function=function;
+}
+
+void
+gsh_add_updater(
+       void (*function)(char*, void*),
+       char *command, void *widget)
+{
+       gsh_updater_data *item;
+
+       /* Allocate memory for ITEM cell.  */
+       item=(gsh_updater_data*)xmalloc(sizeof(gsh_updater_data));
+       /* Initialize.  */
+       gsh_assign_updater(item, function, command, widget);
+       /* Add to singly linked list.  */
+       gsh_append_updater(item);
+}
+
+void gsh_update_each(gpointer data, gpointer user_data)
+{
+       gsh_updater_data *item;
+
+
+       user_data=NULL; /* USER_DATA is unused.  */ 
+
+       /* Ensure that the argument containing 
+       the structure is not empty.  */
+
+       assert(data != NULL);
+
+       /* Assign data to structure and call
+        function pointer with parameters.  */
+
+       item=(gsh_updater_data*)data;
+       item->function(item->command, item->widget);
+}
+
+gint
+gsh_perform_updates(gpointer data)
+{
+
+#ifdef DEBUG
+       g_message("gsh_perform_updates()");
+#endif
+       
+       data=NULL; /* DATA is unused.  */
+
+       g_slist_foreach(gsh_updater_list, gsh_update_each, NULL);
+       
+       return(TRUE);   
+}
+
+void
+gsh_start_updates()
+{
+#ifdef DEBUG
+       g_message("gsh_start_updates()");
+#endif
+       gsh_perform_updates(NULL);
+       g_timeout_add(gsh_update_period, gsh_perform_updates, NULL);    
+}
+

Index: gtkshell/updated.h
===================================================================
RCS file: gtkshell/updated.h
diff -N gtkshell/updated.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated.h  1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,41 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_UPDATED_H
+#define GSH_UPDATED_H
+
+typedef struct
+{
+       void (*function)(char *, void *);
+       char *command;
+       void *widget;
+} gsh_updater_data;
+
+void
+gsh_add_updater(void (*function)(char *, void *),
+        char *command, void *widget);
+
+void
+gsh_start_updates();
+
+#endif
+

Index: gtkshell/updated_label.c
===================================================================
RCS file: gtkshell/updated_label.c
diff -N gtkshell/updated_label.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated_label.c    1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,51 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+void
+gsh_update_label(char *command, void *widget)
+{
+       char *results;
+
+#ifdef DEBUG
+       puts("gsh_update_label()");
+#endif
+       
+       results=antiright_pipe_read(command);
+       gsh_set_label((GtkWidget*)widget, results);
+       free(results);
+}
+
+void
+gsh_add_updated_label(char *command)
+{
+       GtkWidget *widget;
+
+#ifdef DEBUG
+       puts("gsh_add_updated_label()");
+#endif
+       widget=gtk_label_new("");
+       gsh_manage(widget);
+       gsh_add_updater(&gsh_update_label, command, (void*)widget);
+}
+

Index: gtkshell/updated_label.h
===================================================================
RCS file: gtkshell/updated_label.h
diff -N gtkshell/updated_label.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated_label.h    1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,33 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_UPDATED_LABEL_H
+#define GSH_UPDATED_LABEL_H
+
+void
+gsh_update_label(char *command, void *widget);
+
+void
+gsh_add_updated_label(char *command);
+
+#endif
+

Index: gtkshell/updated_options.c
===================================================================
RCS file: gtkshell/updated_options.c
diff -N gtkshell/updated_options.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated_options.c  1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,56 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+extern GSList *gsh_updater_list;
+gboolean gsh_is_updating=FALSE;
+
+void
+gsh_test_updating()
+{
+       if(!gsh_is_updating)      
+        {
+               gsh_start_updates();
+               gsh_is_updating=TRUE;
+        }
+}
+
+void
+gsh_handle_updated_arguments(int argc, char **argv, unsigned int *counter)
+{
+       assert(strlen(argv[(*counter)])>2);
+       switch(argv[(*counter)][3])
+       {
+               case 'l':
+                       gsh_count(argc, counter);
+                       gsh_add_updated_label(argv[*counter]);
+                       gsh_test_updating();
+                       break;
+               case 'p':
+                       gsh_count(argc, counter);
+                       gsh_add_updated_progress(argv[*counter]);
+                       gsh_test_updating();
+                       break;
+       }
+}
+

Index: gtkshell/updated_options.h
===================================================================
RCS file: gtkshell/updated_options.h
diff -N gtkshell/updated_options.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated_options.h  1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,29 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_UPDATED_OPTIONS_H
+#define GSH_UPDATED_OPTIONS_H
+
+void
+gsh_handle_updated_arguments(int argc, char **argv, unsigned int *counter);
+
+#endif

Index: gtkshell/updated_progress.c
===================================================================
RCS file: gtkshell/updated_progress.c
diff -N gtkshell/updated_progress.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated_progress.c 1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,42 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "gtkshell.h"
+
+void
+gsh_update_progress(char *command, void *widget)
+{
+       char *results;
+       results=antiright_pipe_read(command);
+       gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR((GtkWidget*) widget),
+               strtod(results, NULL));
+       free(results);
+}
+void
+gsh_add_updated_progress(char *command)
+{
+       GtkWidget *widget;
+       widget=gtk_progress_bar_new();
+       gsh_manage(widget);
+       gsh_add_updater(&gsh_update_progress, command, (void*)widget);
+}
+

Index: gtkshell/updated_progress.h
===================================================================
RCS file: gtkshell/updated_progress.h
diff -N gtkshell/updated_progress.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/updated_progress.h 1 Feb 2007 20:45:49 -0000       1.1
@@ -0,0 +1,33 @@
+/*
+  AntiRight
+  (c) 2002-2006 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#ifndef GSH_UPDATED_PROGRESS_H
+#define GSH_UPDATED_PROGRESS_H
+
+void
+gsh_update_progress(char *command, void *widget);
+
+void
+gsh_add_updated_progress(char *command);
+
+#endif
+

Index: ACE
===================================================================
RCS file: ACE
diff -N ACE
--- ACE 24 Jul 2006 21:53:15 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,872 +0,0 @@
-#!/bin/sh
-
-#    AntiRight (c) 2002-2006 Jeffrey Bedard address@hidden
-
-#    This file is part of AntiRight.
-
-#     AntiRight is free software; you can redistribute it and/or
-#     modify it under the terms of the GNU General Public License as
-#     published by the Free Software Foundation; either version 2 of
-#     the License, or (at your option) any later version.  AntiRight
-#     is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of
-#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#     GNU General Public License for more details.  You should have
-#     received a copy of the GNU General Public License along with
-#     AntiRight; if not, write to the Free Software Foundation, Inc.,
-#     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-DEBUG=0
-if [ "$DEBUG" = "1" ]; then
-       COUNTER=$(($COUNTER+1))
-       echo $COUNTER
-       set -vx
-fi
-
-ARSHELL=flshell
-AWK=awk 
-
-ACE_Verification()
-{
-    $ARSHELL "$1"\
-       'echo -n 1 \# Yes,_do_that.' 'echo -n 0 \# No,_do_not_do_that.'
-}
-ACE_Check_Configuration_File()
-{
-    # This probably should be replaced with a for loop.
-    # In such the likely prefixes are what will be processed.
-    if [ ! -f ~/.antiright ]; then
-       if [ -e /usr/local/share/antiright/system.antiright ]; then
-           cp /usr/local/share/antiright/system.antiright ~/.antiright
-       elif [ -e /usr/share/antiright/system.antiright ]; then
-           cp /usr/share/antiright/system.antiright ~/.antiright
-       fi
-    else
-       # If ~/.antiright doesnt contain the text "revision" it does
-       # not keep track of revisions and therefore is an old version.
-       if [ "$(grep revision ~/.antiright)" = "" ]; then
-           # Backup customizations.
-           mv ~/.antiright ~/.antiright.old
-           # Restore2 ~/.antiright with a new instance.
-           ACE_Check_Configuration_File
-           # Alert the user.
-           echo 'Your old ~/.antiright has been saved to ~/.antiright.old'
-           echo 'This is due to the use of a new revision of the file,'
-           echo 'changing the theme support.'
-       fi
-    fi
-}
-ACE_record_titles()
-{
-    $AWK -F : 'NF > 0 {if ($0 !~ /#/){print $1}}' ~/.antiright\
-       | sort | uniq | tr '\n' ' '
-}
-ACE_read_configuration_value()
-{
-# This prints values of records matching $1 that do not contain # characters
-    $AWK -v config_item=$1 '\
-       BEGIN {FS=":"}\
-       $0 ~ config_item {if ($0 !~ /#/) value=$2}\
-       END {print value}' ~/.antiright
-# The value is printed in the end to ensure that it is the most recent value
-}
-AR()
-{
-       xrdb ~/.Xdefaults
-       xsetroot -solid darkgrey
-       ACE_Check_Configuration_File
-       touch ~/.antirightrc
-       chmod +x ~/.antirightrc
-       ~/.antirightrc
-       ACE -A Panel
-       if [ "$WINDOWMANAGER" != "" ]; then
-               exec $WINDOWMANAGER
-       else
-               exec mwm
-       fi
-}
-
-ARO()
-{
-       TMP=/tmp/ARO.$$
-       if [ $# -gt 0 ]; then
-               file $1 > $TMP
-               if grep script $TMP; then
-                       $@ &
-               elif grep HTML $TMP; then
-                       ACE Terminal lynx $1 & 
-               elif grep text $TMP; then
-                       ACE -A Text_Editor $1 &
-               elif grep executable $TMP; then
-                       # Execute the file and any arguments.  
-                       $@ &
-               elif grep gzip $TMP; then
-                       # Decompress the file.  
-                       gzip -d $1 &
-               elif grep tar $TMP; then
-                       # Untar the file.  
-                       tar xf $1 &
-               elif grep emacs $TMP; then
-               # Open the file in GNU Emacs.  No xterm is needed because most
-               # modern emacs builds link to the X libraries.
-                       emacs $1 &
-               elif grep MP3 $TMP; then
-                       mpg123 $1 &
-               elif grep image $TMP; then
-                       # ImageMagick's display command is used.
-                       display $1 &
-               elif grep MS $TMP; then
-                       # Wine is used to run MS programs.
-                       wine $1 & 
-               elif grep "No such file or directory" $TMP; then
-                       touch $1
-                       ACE -A Text_Editor $1 &
-               elif grep empty $TMP; then
-                       ACE -A Text_Editor $1 &
-               elif grep directory $TMP; then
-                       cd $1
-                       ACE -A File_Manager
-               else
-                       # Execute the file.  
-                       $@ &
-               fi
-       else
-               arshell -Al 'No arguments were specified.'\
-               -E 'echo Close'
-       fi
-       rm -f $TMP
-}
-Read_Man_Page()
-{
-       ACE Terminal -T $2 -e man $1 $2
-}
-rmp()
-{
-       Read_Man_Page $@
-}
-Man_Browse_Section()
-{
-       local tf=/tmp/mbs.$$
-       touch $tf
-       chmod og-rwx $tf
-       chmod u+x $tf
-       echo '#!/bin/sh' >> $tf
-       echo 'flshell -r 42\' >> $tf
-       manual_root=$(ACE Manual_Root)
-       cd $manual_root/man$1
-       echo "'Manual Section "$1"' \\" >> $tf
-       for file in $(ls | cut -d. -f1); do
-               echo " 'ACE -A rmp "$1 $file"' \\" >> $tf
-       done
-       echo " 'ACE -A Man_Browse_Section $1 # Back'" >> $tf
-       #cat $tf > /tmp/tf.out
-       $tf
-       rm -f $tf
-}
-mbs()
-{
-       Man_Browse_Section $@
-}
-Manual_Browser()
-{
-       flshell -r 3 'Manual section:' 'ACE -A mbs 1' 'ACE -A mbs 2'\
-               'ACE -A mbs 3' 'ACE -A mbs 4' 'ACE -A mbs 5'\
-               'ACE -A mbs 6' 'ACE -A mbs 7' 'ACE -A mbs 8' 'ACE -A mbs 9' 
-}
-Manual()
-{
-       Manual_Browser
-}
-Man_Page()
-{
-       rmp " " $1
-}
-Deb_Search()
-{
-    keywords="$(arshell -At Keywords: | cut -d: -f2)"
-    apt-cache search $keywords | arshell -p -geometry 550x400
-}
-Deb_Install()
-{
-    package="$(arshell -At Package: | cut -d: -f2)"
-    ACE Terminal -e su -c "apt-get install $package"
-}
-Deb_Show()
-{
-    package="$(arshell -At Package: | cut -d: -f2)"
-    apt-cache show $package | arshell -p -geometry 550x400
-}
-Debian_Panel()
-{
-       flshell -r 4\
-       'ACE -A Deb_Search'\
-       'dpkg -l | arshell -p -geometry 550x400 # List_All_Packages'\
-       'ACE -A Deb_Install'\
-       'ACE -A Deb_Show'
-}
-NetBSD_Package_Info()
-{
-       pkg_info | arshell -Aw -p
-}
-NetBSD_Panel()
-{
-       flshell -r 4\
-               'ACE -A NetBSD_Package_Info'
-}
-ACE_Panel()
-{
-   flshell -r 6\
-       'ACE IRC' \
-       'ACE Calculator' \
-       'ACE CD_Player' \
-       'ACE File_Manager' \
-       'ACE -A Sticky_Note' \
-       'ACE Lock' \
-       'ACE -A Manual' \
-       'ACE Editor' \
-       'ACE -A Alarm' \
-       'ACE Load_Meter' \
-       'ACE Terminal' \
-       'ACE Browser' \
-       'ACE Imager' \
-       'ACE Mail' \
-       'ACE -A Background_Editor' \
-       'ACE -A Settings' \
-       'ACE -A Command' \
-       'ACE -A Administration_Panel' \
-       'ACE -A NetBSD_Panel' \
-       'ACE -A Debian_Panel' \
-       'ACE -A File_System_Panel' \
-       'ACE -A Network_Panel' \
-       'ACE -A Manual_Browser' \
-
-}
-Panel()
-{
-       ACE_Panel
-}
-
-Command()
-{
-       command="$(arshell -At Command:)"
-       command="$(echo $command | cut -d: -f2)"
-       echo $command
-       $command &
-}
-
-Calendar()
-{
-       ACE Terminal -e "cal | less"
-}
-ARI()
-{
-    $ARSHELL 'make install; flshell -r 1 Done; echo Install' > /dev/null &
-}
-return_pseudorandom_color()
-{
-       local colors="powderblue lavender pink wheat azure antiquewhite \
-               lightsteelblue gainsboro thistle darkseagreen"
-       local ones=$(date +%S | cut -c 2)
-       echo $colors | awk '{print $'$(($ones+1))'}'
-}
-Sticky_Note()
-{
-    local background=$(return_pseudorandom_color)
-    $ARSHELL -W 'Sticky Note' -Am -Amf 'ACE -A Sticky_Note \# New' -Aw\
-       -xrm "*XmText.background: $background"\
-       -xrm '*XmText.height: 256' -xrm '*XmText.width: 192'\
-       -xrm '*XmText.wordWrap: True' 
-}
-Delete_File()
-{
-    rm $($ARSHELL -Al 'Select File to Delete:' -ADf)
-    # Start a new file manager to show the results and allow further
-    # operations.
-    ACE -A File_Manager
-}
-Copy_File()
-{
-       cp $($ARSHELL -Al 'Select Source:' -ADf) \
-       $($ARSHELL -Al 'Select Destination:' -ADf)
-    # Start a new file manager to show the results and allow further
-    # operations.
-       ACE -A File_Manager
-}
-Cancel_File_Operation()
-{
-    ACE -A File_Manager
-}
-Manage_Files()
-{
-    flshell -r 4 "Choose an operation to perform"\
-       'ACE -A Delete_File'\
-       'ACE -A Copy_File'\
-       'ACE -A Cancel_File_Operation'
-}
-File_Manager()
-{
-    local file=$($ARSHELL -Am -ADf -E 'ACE -A Manage_Files')
-    if [ "$file" != "" ]; then
-       ARO $file
-    fi
-}
-Diff()
-{
-       local file_a="$(arshell -Al 'Select the first file.' -ADf)"
-       if [ "$file_a" = "" ]; then
-               exit
-       fi
-       local file_b="$(arshell -Al 'Select the second file.' -ADf)"
-       if [ "$file_b" = "" ]; then
-               exit
-       fi
-       diff $file_a $file_b | arshell -p -geometry 550x400 &
-}
-Files()
-{
-    File_Manager
-}
-Message_Dialog()
-{
-    $ARSHELL "$(echo $1 | tr '_' ' ')"
-}
-Help_Dialog()
-{
-    Message_Dialog "$1"
-}
-
-set_value()
-{
-    echo "$1":"$2" >> ~/.antiright
-}
-
-Settings_Node()
-{
-    new_value=$($ARSHELL\
-       -ADp "$1: [$(ACE_read_configuration_value $1)]")
-    #echo new value is $new_value
-    if [ "$new_value" != "" ]; then
-       set_value $1 "$new_value"
-    fi
-}
-Settings()
-{
-       # Ensure the existance of a configuration file.
-    ACE_Check_Configuration_File
-    TMP=${TMPDIR:-/tmp}/ACE.$$
-    echo "flshell -r 8"\\ > $TMP
-    for title in $(ACE_record_titles)
-      do
-      echo " \"ACE -A Settings_Node $title\""\\ >> $TMP
-    done
-    echo ' "Select an option to configure."' >> $TMP
-    sh $TMP
-    trap "rm $TMP* 2>/dev/null" 0
-}
-ACE_print_time_and_load()
-{
-    date_and_time="$(date +'%X %x')"
-    mail_or_users=$(users | awk '{print NF " Users."}')
-    if [ -f /var/mail/$USER ]; then
-       if [ "$(ls -l /var/mail/jefbed | $AWK '{print $5}')" != "0" ]; then
-           mail_or_users="Mail."
-       fi
-    fi
-    # In order to conserve space, only the 5 minute load is given.
-    echo -n\
-        ' ' $date_and_time $(uptime | cut -d : -f 4 | cut -d , -f 2)\
-       $mail_or_users
-}
-
-ACE_load_value()
-{
-    local load=$(uptime | cut -d : -f 4 | cut -d , -f $1)
-    local to_show=$(echo $load | cut -d . -f 2)
-    local divide_by=$(($(echo $load | cut -d . -f 1) + 1))
-    echo $(($to_show / $divide_by))
-}
-Load_Meter()
-{
-    $ARSHELL -Uf 30000 -Am\
-       -UP "ACE -A ACE_load_value 1"\
-       -UP "ACE -A ACE_load_value 2"\
-       -UP "ACE -A ACE_load_value 3"\
-       -As -U "uptime | cut -d : -f 4"
-}
-VMStat()
-{
-    $ARSHELL -Uf 5000 -UL 'vmstat' -xrm '*fontList: fixed'
-}
-# This is the panel that I use for mwm.
-# Things do-able from mwm, like launching apps, are not duplicated.
-Dashboard()
-{
-       arshell -Uf 3000 -Ac\
-               -xrm '*overrideRedirect: True'\
-               -xrm '*background: black'\
-               -xrm '*foreground: red3'\
-               -xrm '*fontList: -*-lucidatypewriter-*-*-*-*-12-*-*-*-*-*-*-*'\
-               -UL 'envstat -r'\
-               -geometry 1600x320+0+0 1> /dev/null 2> /dev/null
-}
-Alarm()
-{
-    local alarm_time="$($ARSHELL -W Alarm -ADp 'Time (ex 22:40):')"
-    if [ "$alarm_time" != "" ]; then
-       $ARSHELL -W Alarm -ADp Command: | at "$alarm_time"
-    fi
-}
-
-ACE_get_color()
-{
-    $ARSHELL -W $1 -At "$1 Value:" |  $AWK '{print $3}'
-}
-File_System_Panel()
-{
-    $ARSHELL -Am -r 2 -W 'File Systems'\
-       'ACE -A Mount_File_System'\
-       'ACE -A Unmount_File_System'\
-       'ACE See_Free_Space'\
-       'ACE -A Show_All_File_Systems'\
-       'ACE -A Diff'
-}
-
-Network_Panel()
-{
-    $ARSHELL -Am -r 4 -W 'Network Panel'\
-       'ACE -A Open_Display' 'ACE Open_URL'\
-       'ACE -A ACE_peer_operation ftp'\
-       'ACE -A ACE_peer_operation telnet'\
-       'ACE -A ACE_Peer_operation ssh'\
-       'ACE -A ACE_peer_operation sftp'\
-       'ACE PPP_On' 'ACE PPP_Off'
-}
-
-Uptime()
-{
-       arshell -ADm "$(uptime)"
-}
-
-IOStat()
-{
-       arshell -ADm "$(iostat)" -xrm '*fontList: fixed'
-}
-
-Administration_Panel()
-{
-    $ARSHELL -W Administration -Am -r 5 \
-       'ACE -A Secure_Permissions'\
-       'ACE Root_Shell'\
-       'ACE -A See_All_Processes'\
-       'ACE -A See_All_Users'\
-       'ACE -A See_Disk_Info'\
-       'ACE -A SysV_Init'\
-       'ACE -A See_Open_Ports'\
-       'ACE -A See_User_Processes'\
-       'ACE System_Monitor'\
-       'ACE -A VMStat & # Memory_Statistics' \
-       'ACE -A Uptime' \
-       'ACE -A Load_Meter'\
-       'ACE -A System_Accounting'\
-       'xload -bg red4 -fg yellow -hl yellow & # X_Load'
-}
-Run_SAR()
-{
-       sar | arshell -p -geometry 550x400 -W System_Accounting \
-               -xrm '*XmText.fontList: fixed'
-}
-System_Accounting()
-{
-       if [ "$(which sar)" != "" ]; then
-               Run_SAR
-       else
-               $ARSHELL -ADm 'SAR must be installed.' &
-       fi
-}
-Secure_Permissions()
-{
-    chmod og-rwx ~/.*/*
-}
-See_All_Processes()
-{
-    ps xau | $ARSHELL -W 'All Processes' -Am -Aw -p -geometry 550x400\
-       -xrm "*work.fontList: fixed"
-}
-See_All_Users()
-{
-    who        | $ARSHELL -Am -W 'Users' -Aw -p\
-       -xrm "*work.fontList: fixed" -geometry 550x400 
-}
-See_Disk_Info()
-{
-    df | $ARSHELL -Am -W 'Disk Info' -Aw -p\
-       -xrm "*work.fontList: fixed" -geometry 550x400 
-}
-See_Open_Ports()
-{
-    nmap 127.0.0.1 | $ARSHELL -Am -W 'Network Ports' -Aw -p\
-       -xrm "*work.fontList: fixed" -geometry 550x400 
-}
-See_User_Processes()
-{
-    ps u | $ARSHELL -Am -W 'User Processes' -Aw -p\
-       -xrm "*work.fontList: fixed" -geometry 550x400 
-}
-rgb_background()
-{
-    if [ -f $HOME/.antiright_background ]; then
-       cat $HOME/.antiright_background
-    else
-       echo black
-    fi
-}
-Background_Editor()
-{
-    color="$($ARSHELL -AC)"
-    if [ "$color" != "" ]; then
-       echo $HOME
-       echo $color > $HOME/.antiright_background
-       set_value background 'ACE -A rgb_background'
-       restart_desktop
-    fi
-}
-Mount_File_System()
-{
-    ACE -L 'File System' mount
-}
-Unmount_File_System()
-{
-    ACE -L 'File System' umount
-}
-See_Free_Space()
-{
-    df | $ARSHELL -Am -W 'Disk Space' -Aw -p\
-       -xrm "*work.fontList: fixed" -geometry 550x400 
-}
-Show_All_File_Systems()
-{
-    cat /etc/fstab | $ARSHELL -W 'File System Table' -Am -Aw -p\
-       -xrm "*work.fontList: fixed" -geometry 550x400 
-}
-texted_base()
-{
-       $ARSHELL -Am -Aw -As -geometry 550x400 -xrm '*XmText.fontList: fixed' \
-               -Amf 'ACE -A Text_Editor' $@
-}
-Text_Editor()
-{
-    local file
-
-
-    if [ -z "$1" ]; then
-       texted_base
-    else
-       file=$1
-
-       if [ ! -f $file ]; then
-           touch $file
-       fi
-
-       cat $file | texted_base -p -W $file
-    fi
-}
-Manual_Page()
-{
-    ACE Terminal -e man $1
-}
-ACE_peer_operation()
-{
-    ACE -L "$(echo -n $1 | tr [a-z] [A-Z]) Peer" ACE Terminal -e $1
-}
-Open_Display()
-{
-    ACE_peer_operation 'xhost +'
-}
-Show_Runlevel_Information()
-{
-    runlevel=$($ARSHELL -At "Runlevel:" | cut -d : -f 2)
-    $ARSHELL -Al "$(ls /etc/init.d.d/rc${runlevel}.d)" -E "echo Dismiss"
-}
-SysV_Delete_Service()
-{
-    local runlevel=$($ARSHELL -At Runlevel:)
-    rm /etc/init.d/rc${runlevel}.d/*${1}
-}
-SysV_Service()
-{
-    local order=$($ARSHELL -Al "Enter 'runlevel:order'"\
-       -At "$1:" "ACE -A Show_Runlevel_Information"\
-       "ACE -A SysV_Delete_Service $1" | cut -d : -f 2-)
-    local runlevel=$(echo $order | cut -d : -f 1)
-    local order=$(echo $order | cut -d : -f 2)
-    cp /etc/init.d/$1 /etc/init.d/rc${runlevel}.d/S${order}${1}
-}
-SysV_Init()
-{
-    local service=$(ls /etc/init.d | grep -v '.d' | $ARSHELL -Am\
-       -Aw -p -geometry 550x400 -At Modify: | cut -d : -f 2)
-    if [ "$service" != "" ] && [ "$service" != "Dismiss" ]; then
-       SysV_Service $service &
-       SysV_Init &
-    fi
-}
-
-# desktop pulishing with roff
-arroff()
-{
-       groff -Tps \
-       "$(ACE roff_flags)"\
-       "$(ACE roff_file)" \
-       > /tmp/roff.ps.$$
-}
-clean_roff()
-{
-       rm -f /tmp/roff.ps.$$
-}
-Preview_roff()
-{
-       arroff
-       gv /tmp/roff.ps.$$ &
-       clean_roff
-}
-Print_roff()
-{
-       arroff
-       $(ACE print_command)\
-       /tmp/roff.ps.$$ 
-       clean_roff
-}
-Save_PS()
-{
-       arroff
-       mv /tmp/roff.ps.$$ \
-       $(ACE roff_file).ps
-}
-Save_PDF()
-{
-       arroff
-       ps2pdf /tmp/roff.ps.$$\
-               $(ACE roff_file).pdf
-       clean_roff
-}
-Publishing_Panel()
-{
-       arshell -r 4\
-               'ACE -A Preview_roff'\
-               'ACE -A Print_roff'\
-               'ACE -A Save_PDF'\
-               'ACE -A Save_PS'\
-               'ACE -A Save_TEXT'\
-               'ACE -A Save_JPEG'\
-               'ACE -A Word_Count_roff'
-}
-Word_Count_roff()
-{
-       wc "$(ACE roff_file)"\
-               | arshell -Aw -p
-}
-Save_JPEG()
-{
-       arroff
-       convert /tmp/roff.ps.$$\
-               $(ACE roff_file).jpg
-       clean_roff
-}
-Save_TEXT()
-{
-       groff -Tascii\
-       "$(ACE roff_flags)"\
-       "$(ACE roff_file)"\
-       > $(ACE roff_file).txt
-}
-# Disk space admin commands
-Select_Directory()
-{
-       directory="$(arshell \ 
-               -Al 'Select the directory'\
-               -Al 'in which you wish to'\
-               -Al 'operate.'\
-               -At Directory: \
-               | cut -d : -f 2)"
-}
-Get_Largest_Files()
-{
-       du -a | sort -n | tail -n\
-       "$(arshell \
-       -Al 'Enter the number'\
-       -Al 'of files to show.'\
-       -At Directory:\
-       | cut -d : -f 2)"
-}
-Show_Largest_Files()
-{
-       Get_Largest_Files\
-               | arshell -Aw -p
-}
-ask_del()
-{
-       local file_type=\
-       "$(file $1)"
-       local choice=$(arshell \
-               -Al "Delete $1?"\
-               -Al 'File type:'\
-               -Al "$file_type"\
-               'echo Yes' 'echo No')
-       if ["$choice" = "Yes"]; then
-               rm -rf $1
-       fi
-}
-Prompt_to_Clean()      
-{
-       local files="$(ACE -A \
-               Get_Largest_Files)"
-       echo $files | arshell -Aw -p &
-       for file in "$files"; do
-               ask_del $file
-       done
-}
-IRC_Panel()
-{
-       arshell -r 4 \
-               'ACE -A IRC_Kick' \
-               'ACE -A IRC_Ban' \
-               'ACE -A IRC_Topic' \
-               'ACE -A IRC_Invite'\
-               'ACE -A IRC_Mode'\
-               'ACE -A X_Command'
-}
-X_Command()
-{
-       local command=\
-       "$(arshell \
-       -Al 'Enter the command to'\
-       -Al 'pass to X'\
-       -At Command:\
-       | cut -d : -f 2)"
-       echo "msg \
-       address@hidden
-       $command"
-}
-getirc()
-{
-       nick="$(ACE -A getircuser)"
-       chan="$(ACE -A getircchan)"
-}
-IRC_Topic()
-{
-       getirc
-       local topic=\
-               "$(arshell -At Text:\
-               | cut -d : -f 2)"
-       echo "topic $chan $topic"
-}
-IRC_Kick()
-{
-       getirc
-       echo "kick $chan $nick"
-}
-IRC_Ban()
-{
-       getirc
-       echo "mode $chan +b $nick"
-}
-getircchan()
-{
-       arshell \
-               -Al 'Enter the name of'\
-               -Al 'the channel on which'\
-               -Al 'you wishbto perform'\
-               -Al 'an operation'\
-               -At Channel: | cut -d : -f 2
-}
-getircuser()
-{
-       arshell \
-               -Al 'Enter the user on'\
-               -Al 'which you wish to'\
-               -Al 'perform an operation.'\
-               -At Nick: | cut -d : -f 2
-}
-IRC_Mode()
-{
-       echo "mode\
-               $(arshell -At Object:\
-                | cut -d : -f 2) $(arshell \
-                -At Flag: | cut -d : -f 2) \
-               $(arshell -At Value: \
-               | cut -d : -f 2)"
-               
-}
-IRC_Invite()
-{
-       getirc
-       echo "$nick $channel"
-}
-ACE_show_usage_and_exit()
-{
-    echo "usage: `basename $1` [+-ctr ARG] [+-p ARG] [+-L ARG] [+-V ARG]\
-       [+-A ARG] [--] ARGS..."
-    exit 2
-}
-
-while getopts :ctp:r:L:V:A: OPT; do
-    case $OPT in
-       c|+c)
-       ACE_Check_Configuration_File
-       exit 0
-       ;;
-       t|+t)
-       ACE_record_titles
-       exit 0
-       ;;
-       p|+p) # This argument allows executing a configured binding
-             # while not passing any proceeding arguments.
-       $(ACE_read_configuration_value "$OPTARG")
-       exit 0
-       ;;
-       r|+r)
-       ACE_read_configuration_value "$OPTARG"
-       exit 0
-       ;;
-       L|+L)
-       arguments=$($ARSHELL -W Launch -ADp "$OPTARG:  ")
-       shift $(($OPTIND - 1))
-       $@ $arguments &
-       exit 0
-       ;;
-       V|+V)
-       ACE_Verification "$OPTARG"
-       ;;
-       A|+A)
-       shift $(($OPTIND-2))
-       $@
-       exit 0
-       ;;
-       *)
-       ACE_show_usage_and_exit $0
-    esac
-done
-shift `expr $OPTIND - 1`
-
-if [ $# -gt 0 ]; then # This runs a command configured in ~/.antiright
-    if grep theme <<EOF
-$1
-EOF
-       then
-       ACE_set_theme $1
-    else
-        # This allows parameters to be passed to a configured command.
-       command="$(ACE_read_configuration_value $1)"
-       shift
-       $command $@ &
-    fi
-else
-    ACE_Panel
-fi
-
-
-
-
-
-
-

Index: postinstall-pak
===================================================================
RCS file: postinstall-pak
diff -N postinstall-pak
--- postinstall-pak     29 Mar 2006 02:09:23 -0000      1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-#! /bin/sh
-
-#    postinstall-pak
-#    (c) 2003-2004 Joe Klemmer
-#
-#    This file is part of AntiRight.
-#
-#     AntiRight is free software; you can redistribute it and/or modify
-#     it under the terms of the GNU General Public License as published by
-#     the Free Software Foundation; either version 2 of the License, or
-#     (at your option) any later version.
-#
-#     AntiRight is distributed in the hope that it will be useful,
-#     but WITHOUT ANY WARRANTY; without even the implied warranty of
-#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#     GNU General Public License for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with AntiRight; if not, write to the Free Software
-#     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
02110-1301  USA
-
-echo "Installing AntiRight into GDM sessions..."
-
-mkdir -p /etc/X11/gdm/Sessions
-cat > /etc/X11/gdm/Sessions/AntiRight <<-EOF
-#!/bin/sh
-
-       # /etc/X11/gdm/Sessions/AntiRight
-       # (c) 2003-2004 Joe Klemmer
-
- 
-       # This file is part of AntiRight.
-
-       # AntiRight is free software; you can redistribute it and/or modify
-       # it under the terms of the GNU General Public License as published by
-       # the Free Software Foundation; either version 2 of the License, or
-       # (at your option) any later version.
-
-       # AntiRight is distributed in the hope that it will be useful,
-       # but WITHOUT ANY WARRANTY; without even the implied warranty of
-       # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-       # GNU General Public License for more details.
-
-       # You should have received a copy of the GNU General Public License
-       # along with AntiRight; if not, write to the Free Software
-       # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
02110-1301  USA
-             
-EOF
-echo "exec $PREFIX/bin/ACE -A AR" >> /etc/X11/gdm/Sessions/AntiRight
-

Index: system.antiright
===================================================================
RCS file: system.antiright
diff -N system.antiright
--- system.antiright    24 Jul 2006 21:53:15 -0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,74 +0,0 @@
-###############################################################################
-#
-#    AntiRight
-#    (c) 2002-2006 Jeffrey Bedard
-#    address@hidden
-# 
-#    This file is part of AntiRight.
-#
-#     AntiRight is free software; you can redistribute it and/or modify
-#     it under the terms of the GNU General Public License as published by
-#     the Free Software Foundation; either version 2 of the License, or
-#     (at your option) any later version.
-#
-#     AntiRight is distributed in the hope that it will be useful,
-#     but WITHOUT ANY WARRANTY; without even the implied warranty of
-#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#     GNU General Public License for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with AntiRight; if not, write to the Free Software
-#     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
02110-1301  USA
-#
-##############################################################################
-
-# This is the AntiRight configuration file.
-# It is esential to operation of AntiRight.  
-# The format is defined as follows:  
-# item:value
-# : is the field separator, and only the second field is counted as data.  
-
-# revision 2
-
-# With this preference scheme, the entire AntiRight environment can be
-# customized.  
-
-# Applications
-Mail:xterm -e mutt
-Imager:bitmap
-Load_Meter: xterm -e top
-Lock_Display:xlock
-File_Manager: ACE -A File_Manager
-Calculator: xcalc
-Text_Editor: ACE -A Text_Editor
-CD_Player:xmcd
-Cal: ACE -A Calendar
-System_Monitor: xterm -e top
-Print:lpr
-Terminal:xterm
-IRC:xterm -e irssi
-PPP_On:wvdial
-PPP_Off:killall wvdial
-mp3_dir:~/mp3
-mp3_player:mpg123
-# This is the administration panel configuration.  
-Root_Shell: ACE Terminal -e su
-# This is the file system panel configuration.  
-See_Free_space: ACE -A See_Free_Space
-# This is the network panel configuration
-Open_URL: ACE -L Open_URL xterm -e lynx
-
-# Meta Information
-background: echo skyblue
-foreground: echo black
-# Customizations
-Terminal:xterm
-IRC:xterm -e irssi
-
-PPP_Off:pkill pppd
-background:black
-foreground:white
-mp3_dir:~/archive/music
-Manual_Root:echo /usr/share/man
-Lock_Display:xscreensaver-command -lock
-Lock_Display:xlock -mode blank

Index: doc/ACE.1
===================================================================
RCS file: doc/ACE.1
diff -N doc/ACE.1
--- doc/ACE.1   29 Mar 2006 02:06:56 -0000      1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,153 +0,0 @@
-.TH ANTIRIGHT 1
-.SH NAME
-ACE \- The AntiRight Configuration Environment
-.SH SYNOPSIS
-.B ACE
-[+-ctr ARG] [+-p ARG] [+-L ARG] [+-V ARG] [+-A ARG] [--] ARGS...
-.SH DESCRIPTION
-.PP
-.I ACE
-is the main component of the AntiRight desktop environment.  It is a script 
which defines the function of arshell instances.  It makes use of a 
configuration lookup mechanism to use user configurable bindings where 
appropriate.  Due to the scripted nature, the desktop environment behavior can 
be carried across different graphical user interfaces by simply changing the 
arshell program.  Since the arshell program event loop is maintained by 
arshell, which is typically written in C, speed is not an issue.  This is 
despite the scripted nature of the environment.  The ACE script can easily be 
modified to change the environment, greatly easing development time.
-.PP
-To start the environment, simply invoke ACE with no options.  A panel will 
appear.  On this panel one can launch the calculator, the CD player, the file 
manager, the sticky note utility, the desk bar/pager, the text editor, the load 
meter/system monitor, the terminal, the browser, the image editor, the mail 
utility, the background selection utility, the configuration utility, and the 
run dialog.  All button bindings are configurable through the settings utility. 
 For example, one can change the default browser, which is a lynx instance in 
an xterm, to dillo or mozilla.  The view menu allows one to access other 
panels, including other instances of the current panel.  The view menu contains 
an
-.I ACE Panel
-button, which launches an instance of the main panel, an
-.I Administration Panel
-button, a
-.I File System Panel
-button, a
-.I Network Panel
-button, and a
-.I Themes Panel
-button.
-.PP
-The
-.I Administration Panel
-contains a 
-.I Fix File Permissions
-button, a 
-.I Root Shell
-button, a 
-.I See All Processes
-button, a 
-.I See All Users 
-button, a 
-.I See Disk Info 
-button, a 
-.I See Open Ports
-button, a 
-.I See User Processes
-button, and a 
-.I System Monitor
-button. The
-.I Fix File Permissions
-button changes the permissions of all the files in a user's home directory so 
that others and group members cannot read, write, or execute them.  This is a 
needed action in maintaining personal privacy and security.  The
-.I Root Shell
-button launches an instance of su in an xterm window.  Entering the root 
password will give the user a root shell.  The
-.I See All Processes
-button lists all processes in an arshell work area.  The ps command used is ps 
xau.  If such a command does not work, modify the ACE script such that it 
executes ps -A.  The
-.I See All Users
-button lists the users, as reported by the who command, in an arshell work 
area.  The
-.I See Disk Info
-button pipes the results of the df command into an arshell work area.  The
-.I See Open Ports
-button runs a portscan of the local host and pipes the results into an arshell 
work area.  This requires the nmap utility.  The
-.I See User Processes
-button allows the user to view detailed information about his or her 
processes.  The results of the ps u command are piped into an arshell work 
area.  The
-.I System Monitor
-button launches the configured system monitor.  By default, this is an 
instance of top in an xterm.  
-.PP
-The
-.I File System Panel
-contains a
-.I Mount File System
-button, an
-.I Unmount File System
-button, a
-.I Show Free Space
-button, and a
-.I Show All File Systems
-button.  The
-.I Mount File System
-button launches a dialog in which the filesystem to be mounted can be entered. 
 Simply type the filesystem name and press enter.  The
-.I Unmount File System
-button launches a dialog in which the filesystem to be unmounted can be 
entered.  The
-.I Show Free Space
-button pipes the output of the df command into an arshell work area.  This 
shows detailed disk usage information.  The
-.I Show All File Systems
-button launches an instance of arshell in which the work area displays the 
contents of /etc/fstab.
-.PP
-The
-.I Network Panel
-contains an
-.I Open Display
-button, an
-.I Open URL
-button, a
-.I FTP
-button, a
-.I Telnet
-button, an
-.I SSH
-button, an
-.I SFTP
-button, a
-.I PPP On
-button, and a
-.I PPP Off
-button.  The
-.I Open Display
-button allows one to open the X display to another host.  The
-.I Open URL
-button launches the browser, starting at the entered url.  The
-.I FTP
-button starts a file transfer protocol session with the host entered at the 
dialog prompt.  The
-.I Telnet
-button launches a telnet session with the entered host.  The
-.I SSH
-button launches a secure shell session with the entered host.  The
-.I SFTP
-button launches a secure file transfer protocol session with the entered host. 
 The 
-.I PPP On
-button launches the configured command for dialing an Internet service 
provider through PPP.  It is recommended that this option be examined in the 
configuration utility and customized to whatever command is used locally.  The
-.I PPP Off
-button stops the PPP connection.  Configure this as is appropriate for your 
site.  These commands use the ACE Launcher facility, which allows easy passing 
of options from the user to commands.  
-.PP
-The
-.I Themes Panel
-allows one to select the current X resource theme for applications.  The 
themes are defined in system.antiright, and therefore in ~/.antiright, allowing 
easy addition and modification of such through the settings utility and the 
text editor.  The default theme, as specified by ~/.Xdefaults, can be restored 
with the
-.I Reset Theme
-button.  The set of theme buttons is generated automatically from the theme 
definitions in the aforementioned ~/.antiright.
-.SH OPTIONS
-.B \-c
-Check the presence of ~/.antiright, the configuration file, and create one if 
it does not exist.  
-.TP
-.B \-t
-List the titles of the configuration options.
-.TP
-.B \-p
-Execute a configured binding but don't pass proceeding arguments to the bound 
command.  
-.TP
-.B \-r ARG
-Read the value of a configured option ARG.
-.TP
-.B \-L ARG
-Launch command ARG, gathering and passing to command ARG a user specified 
argument with an arshell dialog.  
-.TP
-.B \-V ARG
-Launch a verification dialog, verifying the desire to perform command ARG. 
-.TP
-.B \-A ARG
-Launch an AntiRight Configuration Environment function.  Please examine the 
ACE file for such functions.  
-.PP
-Other options will result in the printing of usage information.  
-.SH AUTHORS
-Written by Jeffrey Bedard <address@hidden>.  
-.SH REPORTING BUGS
-Report bugs to <address@hidden>
-.SH COPYRIGHT
-Copyright 2002-2004, Jeffrey E. Bedard
-This  is  free software; see the source for copying conditions.  There is NO 
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.SH SEE ALSO
-arshell(1) system.antiright(5) X(7)

Index: doc/flshell.1
===================================================================
RCS file: doc/flshell.1
diff -N doc/flshell.1
--- doc/flshell.1       24 Jul 2006 21:53:15 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,152 +0,0 @@
-.TH ARSHELL 1
-.SH NAME
-arshell \- invocation configurable GUI shell
-.SH SYNOPSIS
-.B arshell
- [[-[-help [-fifo COMMAND FIFO]]][-A[[C][c][D[Ff][mp label]]][bi label icon]
-[l label][m[[fevh] label]][s][t label][w]]E[f file]p
-[r rows]t[U[[LPTW] command][f frequency]][W label]][command]
-.SH DESCRIPTION
-.I Arshell
-is a GUI shell that is defined at its invocation through command line 
-arguments.  It was developed as the primary interface to the motif toolkit in 
-the AntiRight project, as part of ACE, the AntiRight Configuration 
-Environment.  A user interface is defined at invocation and arshell handles 
-user input and program output.  It is very useful, as was intended initially, 
-for providing a user interface for shell scripts.  
-.I ACE 
-is such a script, defining the AntiRight environment and its core logic.  
-.SH OPTIONS
-.TP
-.B \-\-help
-Shows the command line help information.
-.TP  
-.B \-\-fifo 
-Starts a fifo server instance.  COMMAND is the command to which the server 
writes.  FIFO is the FIFO file from where the data that is written into COMMAND 
comes.  
-.TP
-.B \-A
-Adds a widget.  Secondary option
-.B b
-adds an icon button, with
-.I label
-as both label and command and 
-.I icon
-as the xbm or xpm icon to be displayed.  Secondary option
-.B C
-adds a color selector.  Secondary option 
-.B c
-adds a clockload/mailcheck applet.  Secondary option
-.B D
-adds a dialog.  Tertiary option
-.B F
-adds a font selector.  Tertiary option
-.B f
-adds a file selector.  Tertiary option
-.B m
-adds a message box and takes 
-.I label 
-as an argument.  The label will be displayed as the message.  Tertiary option
-.B p
-adds a prompt and takes 
-.I label 
-as an argument.  The label is displayed as the prompt to the user.  In the
-text field that this creates, the user is to enter the requested information.
-Once the information is entered, it is echoed to the console, where it can be
-further processed.  Secondary option
-.B i
-adds an icon button with
-.I label
-as its undisplayed command and 
-.I icon
-as the xbm or xpm icon to be displayed.  Secondary option
-.B l
-adds a label with 
-.I label
-as its value.  Secondary option
-.B m
-adds a menu bar if specified alone.  All tertiary arguments to this argument
-take
-.I label
-as a mandatory argument, as the command and label of the added button.  
Tertiary
-argument
-.B f
-adds a button to the file menu.  Tertiary argument
-.B e
-adds a button to the edit menu.  Tertiary argument
-.B v
-adds a button to the view menu.  Tertiary argument
-.B h
-adds a button to the help menu.  Secondary argument
-.B s
-adds a status bar to the bottom of the application window.  Secondary argument
-.B t
-adds a text field, with
-.I label
-as the mandatory prompt to the user.  Pressing return in such a field will 
-cause the prompt, followed by the entered text, to be echoed to the console.  
-The prompt is echoed to allow a means of identification of the field from 
-which the entered text originated.  Secondary argument
-.B w
-adds a scrolled text work area, with a toolbar, to the application window and
-changes the properties of a previously added menubar to be suitable for text
-editing.
-.B \-E
-Makes it so that a button press cause the arshell to exit after the action for 
-the button is performed.  
-.B \-f
-This loads and parses the interface definition contained within
-.I file.
-This feature is only available if yetanotherclib is installed.  
-.B \-p
-Creates a work area, if necessary, and accepts input from a pipe, placing it 
-in the work area.  
-.TP
-.B \-r 
-Sets the number of button rows in the application window to 
-.I rows.
-.TP
-.B \-t
-Forces tooltips to be used, even if the the overrideRedirect resource is 
-set to True.  
-.TP
-.B \-U
-If used alone, causes
-.I command
-to be run every second, its output displayed in a status area.  Secondary
-argument
-.B f
-causes updating to be performed every
-.I frequency
-miliseconds.  Other secondary arguments require 
-.I command
-to be specified.  Secondary argument 
-.B L
-causes a label to be created in which the output of a command is displayed at 
-a regular frequency.  Secondary argument 
-.B P
-causes a progress bar to be created in which the value echoed by the run
-command, which must be in between 0 and 100, is displayed graphically.  This is
-useful for load meters and progress dialogs, for example.  Secondary argument
-.B T 
-casues a work area to be used to display the regularly executed command.  
-Secondary argument 
-.B W
-casues the regularly executed command to be displayed in the window titlebar.  
-.TP
-.B \-W
-Sets the window title and the text area filename of piped in text to 
-.I label.  
-Any other arguments, if not specified as options, are set as buttons.  The text
-entered becomes both the label and the command for a button.  Only the last 
word
-of this entered command is taken as a label, allowing the labels to be better
-formatted, and thus more aesthetically pleasing.
-.SH AUTHORS
-Arshell was written by Jeffrey Bedard <address@hidden>.  
-.SH REPORTING BUGS
-Report bugs to <address@hidden>
-.SH COPYRIGHT
-Copyright 2002-2006, Jeffrey E. Bedard
-This  is  free software; see the source for copying conditions.  There is NO 
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.SH SEE ALSO
-ACE (1) arshell(1) system.antiright(5) X(7)

Index: doc/system.antiright.5
===================================================================
RCS file: doc/system.antiright.5
diff -N doc/system.antiright.5
--- doc/system.antiright.5      29 Mar 2006 02:06:56 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-.TH SYSTEM.ANTIRIGHT 1
-.SH NAME
-system.antiright \- AntiRight's configuration file
-.SH DESCRIPTION
-.I system.antiright
-is a the configuration file defining the bindings for the AntiRight 
Configuration Environment.  
-.SH FILES
-[PREFIX]/share/antiright/system.antiright
-~/.antiright
-.SH AUTHORS
-Written by Jeffrey Bedard <address@hidden>.  
-.SH REPORTING BUGS
-Report bugs to <address@hidden>
-.SH COPYRIGHT
-Copyright 2002-2004, Jeffrey E. Bedard
-This  is  free software; see the source for copying conditions.  There is NO 
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.SH SEE ALSO
-ACE(1)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]