# /dis/sh script
# wm defines "menu" and "delmenu" builtins
load std
prompt='% ' ''
fn % {$*}
autoload=std
home=/usr/^"{cat /dev/user}

if {! {~ wm ${loaded}}} {
	echo wmsetup must run under wm >[1=2]
	raise usage
}

fn wmrun {
	args := $*
	{
		pctl newpgrp
		fn wmrun
		$args
	} > /chan/wmstdout >[2] /chan/wmstderr &
}

fn cd {
	builtin cd $*;
	rescue 'bad redir' {} {
		echo cwd `{pwd} > /chan/shctl
	} >[2] /dev/null
}

plumber >/chan/wmstdout >[2=1]
menu Toggle			{echo > '#a/fullscreen'}
menu Shell			{wmrun wm/sh}
menu Acme			{wmrun acme -c1}
menu Manual			{wmrun wm/man}
menu Charon			{wmrun charon}
menu ''	''
menu System			'Debugger'		{wmrun wm/deb}
menu System			'Module manager'	{wmrun wm/rt}
menu System			'Task manager'		{wmrun wm/task}
menu System			'Memory monitor'	{wmrun wm/memory}
menu Misc			'Colours'			{wmrun wm/colors}
menu Misc			'Clock'			{wmrun wm/clock}

if {ftest -f $home/lib/wmsetup} {run $home/lib/wmsetup} {}
