This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bug in startxwin.bat after installing with setup.exe in win98SE


Harold L Hunt wrote:
I am inclined to let this issue work itself out without my involvement, other
than to release a patched startxwin.bat if necessay.
Hi harold,

Here is a script that will generate the startxwin.bat file. You might want to verify that the batch file is like the original. I had mine modified but hopefully I reverted all of the changes.

So this script should run as a postintall to the XFree86-startup-scripts package. It depends on u2d to convert the newlines so you'll have to add cygutils to the package dependencies.

Also, I didn't want to do to much in this script yet but you may want to remove the logic about NT vs 9x from the batch and move it into the script itself. This would make a batch file easier to read/modify for the newbies... right, they *are* the same now that you use "run" instead of "start" (or is it one of my unreverted change?)

Jehan
#!/bin/sh

BATCH_FILE=/usr/X11R6/bin/startxwin.bat

################################
# First part of the batch file
cat << EOF > $BATCH_FILE
@echo off
SET DISPLAY=127.0.0.1:0.0


REM 
REM The path in the CYGWIN_ROOT environment variable assignment assume
REM that Cygwin is installed in a directory called 'cygwin' in the root
REM directory of the current drive.  You will only need to modify
REM CYGWIN_ROOT if you have installed Cygwin in another directory.  For
REM example, if you installed Cygwin in \foo\bar\baz\cygwin, you will need 
REM to change \cygwin to \foo\bar\baz\cygwin.
REM 
REM This batch file will almost always be run from the same drive (and
REM directory) as the drive that contains Cygwin/XFree86, therefore you will
REM not need to add a drive letter to CYGWIN_ROOT.  For example, you do
REM not need to change \cygwin to c:\cygwin if you are running this
REM batch file from the C drive.
REM 

EOF

################################
# Get the DOS path to cygwin
echo SET CYGWIN_ROOT=`cygpath -w /` >> $BATCH_FILE

################################
# Second part of the batch file
cat << EOF >> $BATCH_FILE

SET PATH=.;%CYGWIN_ROOT%\bin;%CYGWIN_ROOT%\usr\X11R6\bin;%PATH%

REM
REM Cleanup after last run.
REM

if not exist %CYGWIN_ROOT%\tmp\.X11-unix\X0 goto CLEANUP-FINISH
attrib -s %CYGWIN_ROOT%\tmp\.X11-unix\X0
del %CYGWIN_ROOT%\tmp\.X11-unix\X0

:CLEANUP-FINISH
if exist %CYGWIN_ROOT%\tmp\.X11-unix rmdir %CYGWIN_ROOT%\tmp\.X11-unix


REM
REM Startup the X Server, the twm window manager, and an xterm.
REM 
REM Notice that the window manager and the xterm will wait for
REM the server to finish starting before trying to connect; the
REM error "Cannot Open Display: 127.0.0.1:0.0" is not due to the
REM clients attempting to connect before the server has started, rather
REM that error is due to a bug in some versions of cygwin1.dll.  Upgrade
REM to the latest cygwin1.dll if you get the "Cannot Open Display" error.
REM See the Cygwin/XFree86 FAQ for more information:
REM http://xfree86.cygwin.com/docs/faq/
REM
REM The error "Fatal server error: could not open default font 'fixed'" is
REM caused by using a DOS mode mount for the mount that the Cygwin/XFree86
REM fonts are accessed through.  See the Cygwin/XFree86 FAQ for more 
REM information:
REM http://xfree86.cygwin.com/docs/faq/cygwin-xfree-faq.html#q-error-font-eof
REM

REM
REM Use the /B switch only when we can positively confirm that the OS
REM is Windows NT/2000.  Do not use the switch in any other case.  This
REM should work fine, as it assumes we cannot use /B, except when a certain
REM criterion is met.  A previous version of this batch file assumed that
REM we could use /B, except when some criterion was met; needless to say,
REM that didn't work.
REM 

if "%OS%" == "Windows_NT" goto USE-B-SWITCH

REM Windows 95/98/Me
echo startxwin.bat - Starting on Windows 95/98/Me

REM Startup the X Server.

start XWin

REM Startup an xterm, using bash as the shell.

run xterm -sl 1000 -sb -ms red -fg gray -bg black -e /usr/bin/bash

REM Startup the twm window manager.

run twm

goto END


REM
REM Use the /B switch.  This starts the specified process in the background;
REM in other words, it does not cause a new Command Prompt window to be
REM opened for each 'start' command.
REM

:USE-B-SWITCH

REM Windows NT/2000
echo startxwin.bat - Starting on Windows NT/2000

REM Startup the X Server.

start XWin

REM Startup an xterm, using bash as the shell.
run xterm -sl 10000 -sb -ms red -fg gray -bg black -e /usr/bin/bash

REM Startup the twm window manager.

run twm

:END


REM Set a background color to comply with FCC regulations :)

run xsetroot -solid aquamarine4
EOF

################################
# Convert the file to dos format
# and update the permission
u2d $BATCH_FILE
chmod 755 $BATCH_FILE

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]