#!/dis/sh load tk echo nl=' ' #run slider.sh fn slider { (chan w) := $* x scale $w -orient horizontal -from 0 -to 255 -command '{send '^$chan^'}' } # run colour.sh fn colour { (nil w) := $* x frame $w x pack propagate $w 0 x $w configure -width 100 -height 100 } fn colourcmd { (w col) := $* x $w configure -bg $col } # run label.sh fn label { (nil w) := $* x label $w } fn labelcmd { (w label) := $* x $w configure -text ${tkquote $label} } wid=${tk window 'sliders'} fn x { a := $*; or {tk $wid $a} {echo error on tk cmd $"a':' $status }} pctl newpgrp while {} {tk winctl $wid ${recv $wid}} & x update for (i in slider1 slider2 slider3) { chan $i tk namechan $wid $i } slider slider1 .s1 slider slider2 .s2 slider slider3 .s3 label '' .label colour '' .col x pack .s1 .s2 .s3 .label .col -side top -fill x slider1 := slider2 := slider3 := 0 colourcmd .col '#000000' tk onscreen $wid x update while {} { (chan val) := ${alt slider1 slider2 slider3} $chan = $val echo $slider1 $slider2 $slider3 } | rgb2tkcol | { getlines { colourcmd .col $line labelcmd .label $line x update } }