From b7d9a0b434bb0d32857fc47611926cb59ac7f3c5 Mon Sep 17 00:00:00 2001 From: Kaleb Keithley Date: Fri, 14 Nov 2003 16:49:22 +0000 Subject: Initial revision --- startx.cmd | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ xinit.def | 4 +++ xinitrc.cmd | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 startx.cmd create mode 100644 xinit.def create mode 100644 xinitrc.cmd diff --git a/startx.cmd b/startx.cmd new file mode 100644 index 0000000..8e40750 --- /dev/null +++ b/startx.cmd @@ -0,0 +1,81 @@ +/* OS/2 REXX */ +/* $XFree86: xc/programs/xinit/startx.cmd,v 3.3 1996/10/17 15:23:47 dawes Exp $ + * + * This is just a sample implementation of a slightly less primitive + * interface than xinit. It looks for user xinitrc.cmd and xservrc.cmd + * files, then system xinitrc.cmd and xservrc.cmd files, else lets xinit choose + * its default. The system xinitrc should probably do things like check + * for Xresources files and merge them in, startup up a window manager, + * and pop a clock and serveral xterms. + * + * Site administrators are STRONGLY urged to write nicer versions. + */ +'@echo off' +ADDRESS CMD +env = 'OS2ENVIRONMENT' +x11root = VALUE('X11ROOT',,env) +IF x11root = '' THEN DO + SAY "The environment variable X11ROOT is not set. XFree86/OS2 won't run without it." + EXIT +END + +home = VALUE('HOME',,env) +IF home = '' THEN home = x11root +os_shell = VALUE('X11SHELL',,env) +IF os_shell = '' THEN os_shell = VALUE('SHELL',,env) +IF os_shell = '' THEN os_shell = VALUE('OS2_SHELL',,env) +IF os_shell = '' THEN DO + SAY "There is no command interpreter in OS2_SHELL ???" + EXIT +END + +userclientrc = home'\xinitrc.cmd' +userserverrc = home'\xservrc.cmd' +sysclientrc = x11root'\XFree86\lib\X11\xinit\xinitrc.cmd' +sysserverrc = x11root'\XFree86\lib\X11\xinit\xservrc.cmd' +clientargs = '' +serverargs = '' + +IF exists(userclientrc) THEN + clientargs = userclientrc +ELSE +IF exists(sysclientrc) THEN + clientargs = sysclientrc + +IF exists(userserverrc) THEN + serverargs = userserverrc +ELSE +IF exists(sysserverrc) THEN + serverargs = sysserverrc + +whoseargs = "client" +PARSE ARG all + +DO i=1 TO WORDS(all) + cur = WORD(all,i) + IF \(FILESPEC('DRIVE',cur) = '') THEN DO + IF whoseargs = "client" THEN + clientargs = cur + ELSE + serverargs = cur + END + ELSE + IF cur = "--" THEN + whoseargs = "server" + ELSE + IF whoseargs = "client" THEN + clientargs = clientargs' 'cur + ELSE + serverargs = serverargs' 'cur +END + +xinit = x11root'\XFree86\bin\xinit' +xinit os_shell' /c 'clientargs' -- 'serverargs + +RETURN + +exists: + IF STREAM(arg(1), 'C', 'QUERY EXISTS') = '' THEN + RETURN 0 + ELSE + RETURN 1 diff --git a/xinit.def b/xinit.def new file mode 100644 index 0000000..a3273c6 --- /dev/null +++ b/xinit.def @@ -0,0 +1,4 @@ +NAME xinit NOTWINDOWCOMPAT +DESCRIPTION "@#XFREE86:4.2.0#@ $XFree86: xc/programs/xinit/xinit.def,v 3.2 2002/05/31 18:46:13 dawes Exp $" +PROTMODE +EXETYPE OS2 diff --git a/xinitrc.cmd b/xinitrc.cmd new file mode 100644 index 0000000..0e746a0 --- /dev/null +++ b/xinitrc.cmd @@ -0,0 +1,62 @@ +/* OS/2 REXX */ +/* $XFree86: xc/programs/xinit/xinitrc.cmd,v 3.5 1997/01/27 08:26:14 dawes Exp $ */ +'@echo off' +env = 'OS2ENVIRONMENT' +x11root = VALUE('X11ROOT',,env) +IF x11root = '' THEN DO + SAY "The environment variable X11ROOT is not set. XFree86/OS2 won't run without it." + EXIT +END +home = VALUE('HOME',,env) +IF home = '' THEN home = x11root + +userresources = home'\.Xresources' +usermodmap = home'\.Xmodmap' +sysresources = x11root'\XFree86\lib\X11\xinit\.Xresources' +sysmodmap = x11root'\XFree86\lib\X11\xinit\.Xmodmap' +xbitmapdir = x11root'\XFree86\include\X11\bitmaps' +manpath = VALUE('MANPATH',,env) + +/* merge in defaults */ +IF exists(sysresources) THEN + 'xrdb -merge 'sysresources + +IF exists(sysmodmap) THEN + 'xmodmap 'sysmodmap + +IF exists(userresources) THEN + 'xrdb -merge 'userresources + +IF exists(usermodmap) THEN + 'xmodmap 'usermodmap + +/* start some nice :-) test programs */ +'xsetroot -bitmap 'xbitmapdir'\xos2' +/* also try out the following ones: + * 'xsetroot -bitmap 'xbitmapdir'\xfree1' + * 'xsetroot -bitmap 'xbitmapdir'\xfree2' + */ + +/****** WARNING! ********* + * Below some programs are started minimized, some are started detached. + * In general, those that spawn other shells are minimized, others may be + * detached. You might be tempted to run the xterm's as well as detached. + * This works, but leaves you with an independent xterm/cmd pair, when the + * server shuts down, which you can only see in watchcat, not the process list. + * If you start and stop x11 multiple times, this will let you run out of + * PTYs, and will lead to a large number of background sessions. + */ +'detach xclock -update 1 -geometry 100x100-1+1' +'start/min/n "Login Xterm" xterm -sb -geometry 80x25+0+0 -name login' +IF manpath \= '' THEN + 'detach xman -geometry 100x100-105+1' +/* 'startx/min/n "Xterm 1" xterm -sb -geometry 80x50+494+51' */ +/* 'startx/min/n "Xterm 2" xterm -sb -geometry 80x20+494-0' */ +'twm' + +EXIT + +exists: +'DIR "'arg(1)'" >nul 2>&1' +if rc = 0 THEN RETURN 1 +RETURN 0 -- cgit v1.2.3