summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--startx.cmd81
-rw-r--r--xinit.def4
-rw-r--r--xinitrc.cmd62
3 files changed, 147 insertions, 0 deletions
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