1*46439007SCharles.Forsyth# /dis/sh script 2*46439007SCharles.Forsyth# wm defines "menu" and "delmenu" builtins 3*46439007SCharles.Forsythload std 4*46439007SCharles.Forsythprompt='% ' '' 5*46439007SCharles.Forsythfn % {$*} 6*46439007SCharles.Forsythautoload=std 7*46439007SCharles.Forsythhome=/usr/^"{cat /dev/user} 8*46439007SCharles.Forsyth 9*46439007SCharles.Forsythif {! {~ wm ${loaded}}} { 10*46439007SCharles.Forsyth echo wmsetup must run under wm >[1=2] 11*46439007SCharles.Forsyth raise usage 12*46439007SCharles.Forsyth} 13*46439007SCharles.Forsyth 14*46439007SCharles.Forsythfn wmrun { 15*46439007SCharles.Forsyth args := $* 16*46439007SCharles.Forsyth { 17*46439007SCharles.Forsyth pctl newpgrp 18*46439007SCharles.Forsyth fn wmrun 19*46439007SCharles.Forsyth $args 20*46439007SCharles.Forsyth } > /chan/wmstdout >[2] /chan/wmstderr & 21*46439007SCharles.Forsyth} 22*46439007SCharles.Forsyth 23*46439007SCharles.Forsythfn cd { 24*46439007SCharles.Forsyth builtin cd $*; 25*46439007SCharles.Forsyth rescue 'bad redir' {} { 26*46439007SCharles.Forsyth echo cwd `{pwd} > /chan/shctl 27*46439007SCharles.Forsyth } >[2] /dev/null 28*46439007SCharles.Forsyth} 29*46439007SCharles.Forsyth 30*46439007SCharles.Forsythplumber >/chan/wmstdout >[2=1] 31*46439007SCharles.Forsythmenu Shell {wmrun wm/sh} 32*46439007SCharles.Forsythmenu Acme {wmrun acme} 33*46439007SCharles.Forsythmenu Edit {wmrun wm/edit} 34*46439007SCharles.Forsythmenu Charon {wmrun charon} 35*46439007SCharles.Forsythmenu Manual {wmrun wm/man} 36*46439007SCharles.Forsythmenu Files {if {ftest -d $home} {wmrun wm/ftree $home} {wmrun wm/ftree /}} 37*46439007SCharles.Forsythmenu '' '' 38*46439007SCharles.Forsythmenu System 'Debugger' {wmrun wm/deb} 39*46439007SCharles.Forsythmenu System 'Module manager' {wmrun wm/rt} 40*46439007SCharles.Forsythmenu System 'Task manager' {wmrun wm/task} 41*46439007SCharles.Forsythmenu System 'Memory monitor' {wmrun wm/memory} 42*46439007SCharles.Forsythmenu System 'About' {wmrun wm/about} 43*46439007SCharles.Forsythmenu Misc 'Coffee' {wmrun wm/coffee} 44*46439007SCharles.Forsythmenu Misc 'Colours' {wmrun wm/colors} 45*46439007SCharles.Forsyth#menu Misc 'Winctl' {wmrun wm/winctl} 46*46439007SCharles.Forsythmenu Misc 'Clock' {wmrun wm/date} 47*46439007SCharles.Forsythmenu Games 'Tetris' {wmrun wm/tetris} 48*46439007SCharles.Forsythmenu Games 'Bounce' {wmrun wm/bounce} 49*46439007SCharles.Forsyth#menu Games 'Game client' {wmrun games/gameclient >/dev/null >[2=1]} 50*46439007SCharles.Forsyth#menu Games 'Game client (local)' {wmrun games/gameclient -l > /dev/null >[2=1]} 51*46439007SCharles.Forsyth 52*46439007SCharles.Forsythif {ftest -f $home/lib/wmsetup} {run $home/lib/wmsetup} {} 53