xref: /inferno-os/lib/wmsetup (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
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