Index: trunk/Ohana/src/kapa2/include/structures.h
===================================================================
--- trunk/Ohana/src/kapa2/include/structures.h	(revision 17484)
+++ trunk/Ohana/src/kapa2/include/structures.h	(revision 17530)
@@ -138,4 +138,6 @@
   char isaxis, areticks, islabel, islog;
   double fx, dfx, fy, dfy;  /* axis location on graphic */
+  double lweight;
+  int color;
 } Axis;
 
Index: trunk/Ohana/src/kapa2/src/DrawFrame.c
===================================================================
--- trunk/Ohana/src/kapa2/src/DrawFrame.c	(revision 17484)
+++ trunk/Ohana/src/kapa2/src/DrawFrame.c	(revision 17530)
@@ -8,10 +8,7 @@
   
   int i, fx, fy, dfx, dfy, P, IsLabel, IsMajor;
-  double range, major, minor, first, next;
+  double range, major, minor, first, next, lweight;
 
   graphic = GetGraphic();
-
-  // XXX why is this called for every redraw?
-  DrawRotTextInit (graphic->display, graphic->window, graphic->gc, graphic->fore, graphic->back);
 
   /* each axis is drawn independently, but ticks and labels are placed according to
@@ -23,4 +20,9 @@
     dfy = graph[0].axis[i].dfy;
     P = hypot ((double)graph[0].axis[(i+1)%2].dfx, (double)graph[0].axis[(i+1)%2].dfy);
+
+    lweight = MAX (0, MIN (10, graph[0].axis[i].lweight));
+    XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter);
+    XSetForeground (graphic->display, graphic->gc, graphic->color[graph[0].axis[i].color]);
+    DrawRotTextInit (graphic->display, graphic->window, graphic->gc, graphic->color[graph[0].axis[i].color], graphic->back);
 
     if (graph[0].axis[i].isaxis) {
Index: trunk/Ohana/src/kapa2/src/LoadFrame.c
===================================================================
--- trunk/Ohana/src/kapa2/src/LoadFrame.c	(revision 17484)
+++ trunk/Ohana/src/kapa2/src/LoadFrame.c	(revision 17530)
@@ -3,6 +3,7 @@
 int LoadFrame (int sock) {
   
-  int i;
+  int i, color;
   char Axis[16], Labels[16], Ticks[16];
+  double lweight;
   Section *section;
   KapaGraphWidget *graph;
@@ -24,7 +25,12 @@
   graph[0].axis[2].max = graph[0].axis[0].max;
   
+  KiiScanMessage (sock, "%lf %d", &lweight, &color);
+
   KiiScanMessage (sock, "%s %s %s", Axis, Labels, Ticks);
 
   for (i = 0; i < 4; i++) {
+    graph[0].axis[i].lweight = lweight;
+    graph[0].axis[i].color = color;
+
     switch (Axis[i]) {
     case '0':
Index: trunk/Ohana/src/libkapa/src/KapaWindow.c
===================================================================
--- trunk/Ohana/src/libkapa/src/KapaWindow.c	(revision 17484)
+++ trunk/Ohana/src/libkapa/src/KapaWindow.c	(revision 17530)
@@ -23,4 +23,6 @@
   KiiSendMessage (fd, "%12.6g %12.6g %12.6g %12.6g", 
 		    graphdata[0].xmin, graphdata[0].xmax, graphdata[0].ymin, graphdata[0].ymax);
+
+  KiiSendMessage (fd, "%lf %d", graphdata[0].lweight, graphdata[0].color);
 
   KiiSendMessage (fd, "%s %s %s", graphdata[0].axis, graphdata[0].labels, graphdata[0].ticks);
Index: trunk/Ohana/src/opihi/cmd.data/box.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/box.c	(revision 17484)
+++ trunk/Ohana/src/opihi/cmd.data/box.c	(revision 17530)
@@ -15,4 +15,19 @@
   if (!GetGraph (&graphmode, &kapa, name)) return (FALSE);
   FREE (name);
+
+  graphmode.lweight = 1;
+  if ((N = get_argument (argc, argv, "-lw"))) {
+    remove_argument (N, &argc, argv);
+    graphmode.lweight = atof(argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+
+  graphmode.color = KapaColorByName ("black");
+  if ((N = get_argument (argc, argv, "-c"))) {
+    remove_argument (N, &argc, argv);
+    graphmode.color = KapaColorByName (argv[N]);
+    if (graphmode.color == -1) return (FALSE);
+    remove_argument (N, &argc, argv);
+  }
 
   strcpy (graphmode.ticks, "2222");
