#!/bin/rc
. /bin/riostart/common.rc

# -- FUNS
fn TopRow{
  { xlen=$1       ; shift 1     } # param 1: list x length
  { x=$*(1-$xlen) ; shift $xlen } # param 2: list x
  { ylen=$1       ; shift 1     } # param 3: list y length
  { y=$*(1-$ylen) ; shift $ylen } # param 4: list y
  # -- stats
  window -r ($x(1)                  $y(1) \
             `{echo $x(2) - 260|bc} $y(2)) stats -lme term.home nine.home
  # -- vdir
  window -r (`{echo $x(2) - 250|bc} $y(1) \
             `{echo $x(3) + 250|bc} $y(2)) vdir
  # -- winwatch
  window `{echo $x(3) + 260|bc}^,^$y(1)^,^$x(4)^,^$y(2) winwatch -e '^(clock|winwatch|stats|faces|vdir)'
}
fn MidRow{
  { xlen=$1       ; shift 1     } # param 1: list x length
  { x=$*(1-$xlen) ; shift $xlen } # param 2: list x
  { ylen=$1       ; shift 1     } # param 3: list y length
  { y=$*(1-$ylen) ; shift $ylen } # param 4: list y
  w=`{echo $x(4) - $x(1)|bc}
  h=`{echo $y(4) - $y(3)|bc}
  PutWsDim $w $h
  # -- Workspaces
  window -hide -r ($x(1) $y(3) $x(4) $y(4)) rio -i riostart/ws/www
  window -hide -r ($x(1) $y(3) $x(4) $y(4)) rio -i riostart/ws/irc
  # -- acme
  window -r ($x(1) $y(3) $x(4) $y(4)) acme -c3 -a
  # -- rc (left|right)
  window -hide -scroll -r ($x(1) $y(3) $x(2) $y(4)) 'label rc:left;  rc'
  window -hide -scroll -r ($x(3) $y(3) $x(4) $y(4)) 'label rc:right; rc'
  # -- rcpu (left|right)
  window -hide -scroll -r ($x(1) $y(3) $x(2) $y(4)) 'label nine:rc:left;  rcpu -p'
  window -hide -scroll -r ($x(3) $y(3) $x(4) $y(4)) 'label nine:rc:right; rcpu -p'
}
fn BotRow{
  { xlen=$1       ; shift 1     } # param 1: list x length
  { x=$*(1-$xlen) ; shift $xlen } # param 2: list x
  { ylen=$1       ; shift 1     } # param 3: list y length
  { y=$*(1-$ylen) ; shift $ylen } # param 4: list y
  # -- kmesg
  window -scroll -r ($x(1)                 $y(5) \
                     `{echo $x(2) - 90|bc} $y(6)) 'label console:term; tail +0f /dev/kmesg'
  # -- clock
  window -r         (`{echo $x(2) - 80|bc} $y(5) \
                     `{echo $x(3) + 80|bc} $y(6)) clock
  # -- faces
  window -scroll -r (`{echo $x(3) + 90|bc} $y(5) \
                     $x(4)                 $y(6)) faces -i
}
fn TileScreen{
  Dim=(`{ScrDim})                    # screen dimension (W x H)
  W=$Dim(1)
  H=$Dim(2)
  s=5                                # space from border
  w=`{echo $W | awk '{print $1/2}'}  # window width ratio
  h=`{echo $H | awk '{print $1/10}'} # window height ratio
  # x..list of x point pairs (2 columns -> 2 pairs)
  x=(`{echo $w $s | awk '{printf("%d %d %d %d",
                                 (0*$1)+$2 , (1*$1)-$2,
                                 (1*$1)+$2 , (2*$1)-$2)}'})
  # y..list of y point pairs (3 rows -> 3 pairs)
  y=(`{echo $h $s | awk '{printf("%d %d %d %d %d %d",
                                 (0*$1)+$2 , ( 1*$1)-$2,
                                 (1*$1)+$2 , ( 9*$1)-$2,
                                 (9*$1)+$2 , (10*$1)-$2)}'})
  TopRow $#x ($x) $#y ($y)
  MidRow $#x ($x) $#y ($y)
  BotRow $#x ($x) $#y ($y)
}
# -- MAIN
TileScreen
