[NeXT_FAQ] 04_Miscellaneous information
이름: capri91 2001-03-26 09:52:51

4 Miscellaneous information


4.1 How do I get pictures of people from remote sites to appear in Mail.app and NewsGrazer?

Pictures, in Mail
Pictures, in NewsGrazer
Mail, remote Pictures
Newsgrazer, remote Pictures

You can do this in the following ways.
  • Mail

    In /LocalLibrary/Images/People put a tiff (64x64) in the form of person@remote.site.domain.tiff (all lowercase). In /LocalLibrary/Images/People/passwd add an entry for the person:


    (person and sitename need to be all lowercase as well) In the future anytime you get mail from the person their picture should appear.

    You can include an "aliases" file in /LocalLibrary/Images/People too. This allows you to use the same picture for somebody that might send you mail from accounts on many different sites, or for those people whose letters use several different routings.

    To do this, you include entries in this local aliases file like so:


    There should then be a .tiff file called bkohler.gonzo.ucr.edu.tiff.

    There can be no CAPITAL LETTERS in this file. So even if the address in the From: field looks like gonzo.ucr.edu!bkohler@uupsi2.UUCP, keep the letters lowercase in the aliases file. As always, you have to restart Mail before these changes take effect.

  • NewsGrazer

    In /LocalLibrary/NewsGrazer/People put a tiff (64x64) in the form of person.remote.site.domain (all lowercase). This is a different naming convention from what Mail uses.

    There is a large archive of some 4000 or 5000 pictures prepared for this purpose. The name of this archive is Faces3.tar.Z and it is about 4.1 MBytes large. Currently it is available from several anonymous ftp sites (e.g. ftp://sonata.cc.purdue.edu/pub/next/graphics/Images/icons/people)

    That image archive also contains a script which automatically creates proper alias and passwd files.

4.2 How to manipulate and examine default settings

  • A command line utility for examining defaults is available from: ftp://sutro.sfsu.edu/pub/wmdefaults1.0.tar.Z

  • A PD App, DefaultMgr.app, is available on the NeXT ftp archives.

  • A more brute approach (done by DefaultMgr.app):

    Start the application under gdb, and then try the following sequence of commands:

    break *0x500976a
    commands 1
    printf "%s: ", *$a2
    output {char *}(4+$a2)
    echo \n
[Carl Edman <cedman@capitalist.princeton.edu>] adds:

DefaultMgr.app doesn't any longer work properly under 3.0. It still is able to manipulate defaults but can't any longer "investigate" apps to find out which defaults they use.

[eps@toaster.SFSU.EDU (Eric P. Scott)] adds:

Needs to be revised for 3.x systems. wmdefaults is only for 2.x; it's not needed for 3.0 and later.

4.3 How do I run NextApps remotely?

Remote running

On the local machine make sure you have public window server access, this is set from the Preferences application. On the foreign NeXT machine run the application from a terminal window with the -NXHost . Both machines should be running the same version of NeXTstep.

[shayman@Objectario.com (Steve Hayman)]

NeXTSTEP 3.1 and higher includes a demo application called OpenSesame that simplifies this. You can select a program in Workspace and use > Service > Open Sesame > Open on Another Host... to launch a program on a remote machine. This is a way to run old, non-fat-binary software on new NeXTSTEP/Intel machines.

4.4 Why does UUCP hangs on outgoing connections after sending the password, but other communications software do not have a problem with it?


What is happening is that the remote machine is waiting for you to end your login or password by typing a "Return" (aka &Mcirc; or CR or CARRIAGE RETURN). UUCP ends a line by sending a LineFeed (aka Ĵ or LF). Since UUCP doesn't send the CR, the login sequence is never completed, and you will usually get one of two error messages:

wanted "password:" (means that username needs to end with a CR)
imsg waiting for SYNC< (means that password needs to end with CR)

So how do you get UUCP to send CR, instead of LF?

End the send string with the sequence \n\c. For instance this line in L.sys will send a LF after login, but a CR after password.

myfeed Any DIR 9600 cub "" ATTD19095551212 9600 \
"" ogin:--ogin: Unext ssword: secret\n\c

4.5 How do I access the NeXT's Digital Webster Dictionary from a program?


Get Jiro Nakamura's define program from the archiver servers: define.tar.Z. This will allow you to access the database from the command line. This program breaks under 3.x. For 3.x there are two other programs which might be useful: Webster.a5 and websterd.

4.6 How do I get the arrow keys to work in csh?

csh, arrow keys

This is for people who use a terminal app that does vt100 keyboard emulation - pasc

First, add these lines to your .cshrc (preferably between the if and endif):

set editmode=emacs
set macrofiles=.macros

Then create a file called .bindings and put in it:

bind-to-key ExecuteNamedMacro '\e['

And, next, you need to make a file called ".macros". Using an editor like emacs (which can insert control characters using a &Qcirc; prefix), into this file put:


where &@circ; means Control-@ and  means Control-A, etc. Also, don't put in the leading spaces. This will set up the left and right arrows to move back and forth on the line, and the up and down arrows will cycle through your history.

On Intel machines these sequences are a little different:


Then source .cshrc and the changes should take effect.

4.7 What default affects menu location?

Menu, location

Do the following.

dwrite GLOBAL NXMenuX <value>
dwrite GLOBAL NXMenuY <value>

4.8 How to get Gourmet to boot up the Mathematica 2.0 kernel?


Login as root, or get root privileges running su, and execute the following five commands:

mkdirs /NextApps/Mathematica.app/Kernel/NeXT
cd /NextApps/Mathematica.app/Kernel
ln -s uuuuu/Mathematica.app/Kernel/Display Utilities
cd NeXT
ln -s vvvvv/math mathexe

where uuuuu is the directory where Mathematica was placed (typically, /LocalApps) and vvvvv is the directory where the executable math was placed (typically, /usr/local/bin)

4.9 Manipulating the Loginwindow


There are some for loginwindow:

[Jess Anderson writes:]

Here, I hope, is the quasi-definitive story on dwrites that affect the loginwindow. I'm indebted to several people, notably Art Isbell, Kristian Koehntopp, Dan Danz, Louie Mamakos, John Kheit, Felix Lugo, and Paul Sears, for some of the information presented here.

Remember that dwrites are not supported by NeXT; they may change with any subsequent system release. These I've checked out using 3.0; some or all may work with earlier releases, but I can't vouch for most of them.

All these dwrites must be done as root. You can also run as root and use DefaultMgr to set them (which is a whole lot more convenient if you're intending to fiddle with some of them).

After setting the things you want, restart the WindowServer by logging out of the current session and typing exit on the login panel.

OK, here's what we know (or think we do :-):

dwrite loginwindow DefaultUser <login-name>

Most new machines have set to me. This dwrite logs in user automatically. User must not have a password set, hence don't use this in a networked environment!

dwrite loginwindow HostName "<host_name>"
dwrite loginwindow HostName localhost

These cause your host name to appear on the login panel. You need quote marks only if there's a space in the name. The first form hard-codes the name into root's defaults database. The second form uses whatever name has been set as localhost in NetInfo, which is convenient for networked machines.

The font, size, color, and position of the printed string are not accessible (drat!).

dwrite loginwindow ImageFile <path/to/a/suitable.tiff>

This uses the tiff image pointed to instead of the standard one (in /usr/lib/NextStep/loginwindow.app/English.lproj/nextlogin.tiff, .lproj as appropriate for your main language) as the login panel. Be sure you get the pointer right, though, or you'll have to boot single-user to fix it. In practical terms, the image is constrained in various ways I won't detail here.

dwrite loginwindow TimeToDim <integer_number>

No relation to the dim time set by Preferences. The units are odd, I think. Felix reported them as 1/34 second. However, when I changed it to 1020, I got 15 seconds to dimming, and 680 gives 10 seconds, that I'm sure of. So I think the units are 1/68 second. Maybe Felix just thought it was too damn long! We all know it seems longer when you're not having fun waiting. :-) Whatever, the login screen dims to about half after this length of time.

dwrite loginwindow MoveWhenIdle YES

This causes the panel to move around approximately in Backspace bouncing-off-the-walls-tiff fashion. The point is to avoid burning the screen phosphors, as a static image would tend to do. The animation is controlled by the next couple dwrites.

dwrite loginwindow MovementTimeout <real_number>

The units are seconds. The panel starts moving (assuming the preceding is set to YES) after this time. If you set it to be less than the TimeToDim time, the movement starts before the dimming occurs. I did not try zero. I can't stand waiting around for things to happen, so I use 10 seconds for both times. The default appears to be 5 minutes.

dwrite loginwindow MovementScale <integer_number>

No movement occurs if this is set to 1. But it looks like the units might be approximately pixels for each change of position (the frequency of which is controlled by the next dwrite). If you put a big number here, say 200, the image moves in big jumps, but I don't know if the 200 is divided up somehow between change in x- and y-coordinates. I wouldn't worry about it much, just set it to something you like. Since my image contains readable text, I want it to scroll smoothly around, so I use the apparently minimum value, 2. The default appears to be 10.

dwrite loginwindow MovementRate <real_number>

The units are seconds. The image jumps by the amount above every this many seconds. The default is 0.0666 seconds. Bigger numbers mean slower motion. Since I don't like things being too jumpy or zooming around, I set this to 0.1 seconds. This makes my image ooze at a pace befitting an elderly person like me.

dwrite loginwindow PowerOffDisabled YES

This makes it a little harder to turn the machine off; you have to use the monitor or the minimonitor (<right-command>- ) if it's set, rather than the <power> key.

dwrite loginwindow LoginHook <path/to/loginhook/executable>
dwrite loginwindow LogoutHook <path/to/logouthook/executable>

Pointers to the login and logout hooks, if used. It should be pointed out that some of these things (login/logout hooks, for example) are maybe more logically set where the loginwindow is invoked by the WindowServer, namely /etc/ttys.

There are yet others. Here's the full list (thanks, Art):

NXGetDefaultValue("loginwindow", "DebugHook") => 0x0
NXGetDefaultValue("loginwindow", "DryRun") => 0x0
NXGetDefaultValue("loginwindow", "WindowServerTimeout") => 0x0
NXRegisterDefaults("loginwindow", 0x16024)
KeyMapPath: 0x12d97
Keymap: 0x12de1 "/NextLibrary/Keyboards/USA"
SwappedKeymap: 0x12e0a "No"
LoginHook: 0x0
LogoutHook: 0x0
HostName: 0x0
ImageFile: 0x0
DefaultUser: 0x12e41 "me"
PowerOffDisabled: 0x0
TimeToDim: 0x12e69 "2040"
MoveWhenIdle: 0x12e0a "No"
MovementTimeout: 0x12e8b "300.0"
MovementRate: 0x12e9e "0.06666"
MovementScale: 0x12eb4 "10"

[Christopher J. Kane kane@cs.purdue.edu]

Under NeXTSTEP 3.1, the login window has two buttons labeled "Reboot" and "Power" that allow a user to reboot and power down from the login window. In a public lab, this feature may be undesirable. The PowerOffDisabled default can be used to disable the buttons, but they are still shown in the window and push in when clicked (a bad user interface decision, IMHO).

The program below patches loginwindow to eradicate the restart and power buttons. It makes the loginwindow's LoginButton class instance method initWithImage:altImage:andString: a no-op (just return nil). This patch has been applied to the machines in the NeXT lab at Purdue (like sonata.cc.purdue.edu for instance), and no adverse effects have been noted.

This program must be run as root, since it writes to the file /usr/lib/NextStep/loginwindow.app/loginwindow.

An archive with a compiled executable has been submitted to sonata.cc.purdue.edu.

* Patches the loginwindow.app to eradicate the restart and power
* buttons from the login window.
* Christopher J. Kane (kane@cs.purdue.edu)
* Released into public domain; August 13, 1993.

#include <libc.h>
#include <errno.h>

void main(int argc, char *argv[])
  unsigned char patch[8] = {0x0, 0x0, 0x42, 0x80, 0x4e, 0x5e, 0x4e, 0x75};
  int file = open("/usr/lib/NextStep/loginwindow.app/loginwindow", O_WRONLY);
  if (-1==file)
    goto error;
  if (-1==lseek(file, 21170, SEEK_SET))
    goto error;
  if (-1==write(file, patch, 8))
    goto error;
  if (-1==close(file))
    goto error;
  fprintf(stderr, "%s: %s\n", argv[0], strerror(errno));

FAQ-Authors note: We strongly recommend to do a backup of the loginwindow application, because the patch alters the file directly and will most likely not work on different versions of the OS.

4.10 How does one set UNIX man pages to be viewed in nroff format with DL like the standard manual pages in NS2.x?

man pages, NS2.x

Beyond looking in the man pages under ixBuild, etc., what you want to do is put a few files (contents listed below file name) the .index directory:


tbl %s | nroff -man

-fman -Nwhatis -Ncat[1-8ln] -V

Other options that people suggested for ixBuildOptions:

-fman -Nwhatis -Ncat[1-8] -V /usr/local/man
-fman -Nwhatis -V /usr/local/man/man*

I don't think you need to explicitly name the directory in the first alternative, but you do in the second unless you want the cat* directories indexed as well.

Note: Do NOT leave a trailing return after the line in ixBuildOptions; DL will barf. (I think someone said that, as shipped, the standard man .index/ixBuildOptions had this problem.)

[From: Eric D. Engstrom <eric%basilisk@src.honeywell.com>]

Can anyone tell me what the command line for this might be under NEXTSTEP 3.0?

Short answer: RTM on ixbuild(1) - specifically the parameter "-g".

In addition, I'd like to inform the newsgroup of a simple hack I setup on my own machine to create a unified DL target for all UNIX Manual pages (including system, local, gnu, whatever). This was easier under 2.x because IXBuild (pre IXKit) had more hacks in it...

Basically, you need to setup a directory with sym-links to the various man-page directories; For example:

(397)basilisk% pwd
(398)basilisk% ls -alg
total 728
drwxrwxr-x 2  eric wheel   1024 Mar 28 18:03 ./
drwxrwxr-x 11 root wheel   1024 Mar 27 00:41 ../
-rw-r--r-- 1  eric wheel    370 Feb 27 22:01 .README
-rw-rw-r-- 1  eric wheel    872 Feb 27 17:11 .dir.tiff
-rw-rw-r-- 1  eric wheel     20 Feb 27 17:11 .displayCommand
-rw-rw-r-- 1  eric wheel     47 Feb 27 17:10 .index.iname
-rw-rw-r-- 1  eric wheel      6 Feb 27 17:10 .index.itype
-rw-r--r-- 1  eric wheel 729088 Mar 28 18:44 .index.store
-rw-rw-r-- 1  eric wheel      5 Feb 27 17:11 .roffArgs
lrwxrwxrwx 1  eric wheel     18 Feb 27 17:53 gnu -> /usr/local/gnu/man/@
lrwxrwxrwx 1  eric wheel     14 Feb 27 17:53 local -> /usr/local/man/@
lrwxrwxrwx 1  eric wheel      9 Feb 27 17:53 news -> /news/man/@
lrwxrwxrwx 1  eric wheel     35 Feb 27 17:53 system -> /usr/man/@

Notice that I also copied all the .[a-z]* files from the /usr/man/ directory as well.

Then, use ixbuild -gl to (re)build the index. If your any of the links point to directories on other devices, add "d" to "-gl". "-v" will give you verbose output (like my writing style ;-). RTM under ixbuild(1) for more info.

Unfortunately, once the index is built, I've never successfully gotten DL to update it correctly. Instead I have to do it by hand using ixbuild -ogldvc (actually, I setup a cron job to reindex weekly.)

If you have troubles, try removing the .index.store file and rebuilding the entire database. I've had intermittent problems with ixbuild under 3.0.

4.11 Appending a signature and addition headers to your e-mail


There is a bundle for Mail to which, beside other features, allows you to add a .signature file to outgoing e-mails: EnhancedMail.bundle. This software package is available by the FTP archive sites.

Here are other solutions which might serve you as well:

[Carl Edman <cedman@capitalist.princeton.edu>]

First create a simple text file the following content:

if test -r ${HOME}/.add-header; then cat ${HOME}/.add-header; fi
cat -
if test -r ${HOME}/.signature; then echo "--"; cat ${HOME}/.signature; fi
}| /usr/lib/sendmail "$@"

A good name for this file would be sendmail-addheader. If you want to and can install it for system-wide use put this file in e.g. /usr/lib. Otherwise your private /Unix/bin directory is also fine. Make certain that this file has execute permission. To set that, use e.g. chmod 755 /usr/lib/sendmail-addheader.

Next, open up the preferences panel in Mail. Switch to the expert options. Change the Mailer option from /usr/lib/sendmail (which it should originally be) to /usr/lib/sendmail-addheader (or whatever the name of the file you created is). OK this and you should be set.

From now on your file /.signature file should always be appended to all mail sent out with Mail.app. In addition if you have a file called add-header in your home-directory it should automatically be prepended to your outgoing mail. To implement a reply-to line, you would simply give it the following content:

Reply-to: My Real Human Name <name@my.real.address>

IMPORTANT: Make certain that you have one and exactly one newline at the end of /.add-header. Anything might break outgoing mail. Beware!

BUG: The /.signature file is not added properly for NeXT mail containing attachments. The headers will still be added properly. This could be fixed but probably is more of a hassle than it is worth.

[From: jbrow@radical1.radical.com (Jim Brownfield)]

I have added a Terminal Service to terminal to add a signature file whenever I type "0" (command/zero), and I thought this might be of interest to people who read your FAQ. I have used this technique for over a year with no problems, and it has the advantage of working both with non-NeXT and NeXT Mail.

First, you must create a file with your signature containing the characters "--" on the first line (there has been some discussion as to whether this should be "-- " ("--" followed by a blank), but my file only has the "--" as the first line. The rest of the file should contain your normal signature. If you place the file in your home directory, I recommend NOT using the filename ".signature" for this file since it may conflict with other programs (like NewsGrazer). I use the filename ".fullSignature". The file used for the signature should be ascii and not RTF to allow the file to be used for NeXT and non-NeXT mail.

You can create a "Get signature" service by launching Terminal and accessing the "Terminal Services" window through the "Info/Terminal Services..." menu item. Then perform the following:
  • Create a new service by clicking on the "New" button. Change the service name to "Get signature".

  • Add the command "cat " and "0" (zero) to the "Command and Key Equivalent" entry. The "0" is obviously arbitrary, but I've found that it doesn't conflict with any of the commands I normally use.

  • De-select any items checked within the "Accept" grouping. Select the "As Input" radio button under the "Use Selection" section.

  • Change the "Execution" popup to "Run Service in the Background". Select the "Return Output" and "No Shell" radio buttons.

  • Click the "Save" button.
Now, when you type "0" (actually, from any application), your signature will be added wherever your cursor is located (be careful not to have text selected as it will replace the selected text with your signature). I have found this to be very convenient for adding my .sig to outgoing mail.

4.12 How can I quickly find a file if I don't know its directory?

searching, files

The Unix find command on the NeXT has the capability of quickly searching a database of all the files. This database is located in /etc/find.codes and has to be generated periodically. You can automatically generate this database, say twice a week at 3:15 a.m., by adding this line to your file /etc/crontab.local (you might have to create this file).

15 03 * * 2,5 root /usr/lib/find/updatedb > /usr/adm/updatedb.err

After this has run, you can quickly find any file from a terminal by typing find where is a part of the file name you want (it is case-sensitive).

[Carl Edman <cedman@capitalist.princeton.edu>] adds:

Find still works under 3.0, but now has to match the entire filename (including the path) for a match to be recognized i.e. where under 2.x you would have find foobar, under 3.0 you have find '*foobar*' (The ' are necessary to prevent the shell from expanding the wildcards itself).

[From: Geert Jan van Oldenborgh <gj@csun.psi.ch>]

I find the following script in /usr/local/bin very handy to bring back the behavior that God Intended find to have:

if ( $#argv == 1 ) then
  /usr/bin/find \*$1\*
  set noglob
  /usr/bin/find $argv[1-]
  unset noglob

4.13 Mail.app suddenly stopped working!

Mail, doesn't start

When I double-click the Mail.app icon it loads and seems to start but then just terminates. How can I fix this ?

Usually the problem is caused by Mail.app being terminated with extreme prejudice such as by a power outage or kill -9. Under those circumstances Mail.app may leave a lock file in your active mailbox. Due to a bug 3.0 Mail.app doesn't ask for permission to override this lock when started up again but just dies. Open a shell and look in /Mailboxes/Active.mbox. If this directory contains a file called .lock you have found the culprit. You can safely remove this file.

4.14 Recycler doesn't work anymore?!


For some reason, after moving my home directory, my recycler no longer works?

[From: eric%basilisk@src.honeywell.com (Eric D. Engstrom)]

Basically, when you dump a file in the recycler, the workspace manager (attempts) to move it to one of the following locations:

(note: no order implied here, because I'm unsure of the actual order used)

- $HOME/.NeXT/.NextTrash
(Should always exist; unsure what happens if it doesn't)

- /tmp/.NextTrash_$USER
(Automatically created if non-existent)

- $MNT-POINT/.NextTrash/$USER
(.NextTrash NOT automatically created if non-existent)

Also, the workspace requires that the trash directory into which it puts the to-be-deleted file be on the same disk partition that the file originally came from (for speed, I assume).

Also, an example of the permissions for the external disk .NextTrash directory (which is not automatically created) should be :

ls -aldg /private/mnt2/local/.NextTrash
drwxrwxrwt [...] /private/mnt2/local/.NextTrash/

Note: /private/mnt2/local is the mount point. Do chmod 1777 .NextTrash to get the permissions right.

Thus, if you moved your home directory from one partition to another, the one you left may not have a "recycler-repository" to use.

4.15 How to hear sound from CDPlayer.app thought NEXTSTEP system?

digital audio

To hear sound, the following info is important.

[Carl Edman <cedman@capitalist.princeton.edu>]

Hearing the sound directly on the NeXT can be done with the play3401 program from the archives if you have a Toshiba 3401 series drive. Theoretically this can also be done with NEC [78]4-1s and Apple CD 300s, though I know of no NeXT program which supports them. Most other drives (including the NeXT CD-ROM) just don't have the hardware to do it.

There is another player available: CD_evil, which is based on play3401 but offers a GUI.

FAQ-Authors note: On Intel system it's very easy: just connect the CD-Audio out (internal) to your CD-in of the soundcard (internal).

Anyway there are problems with different drives. E.g. we know, that the Toshiba, Sony and Nec drives currently use the same instruction set to access audio data. So be aware that there are drives which simply can't be accessed through CDPlayer.

4.16 How do I decompress a file with the extension .compressed?


Do this with the following methods.

[From: sanguish@digifix.com]

.compressed files have been compressed in the Workspace Manager. Basically, they are just .tar.Z files. Even single files are tarred as well as compressed.

There are several methods of decompressing these files.
  • They can be decompressed by selecting them in the Workspace, and Selecting uncompress from the file menu.

  • They can be decompressed by selecting them in the Workspace, and bringing up the Workspace Inspector. (You can double click to get there faster)

  • You can rename them to be .tar.Z and handle them the way you do them.
FAQ-Authors note: use uncompress to access the .Z files and/or gunzip to access .z/.gz files. Use tar to access .tar files. You might also you gnutar to access both together, e.g. to access a .tar.gz at once. Read the man pages for more information.

4.17 How do I change the Workspace compression app?


Change it with the given method.

[Stephen Peters <SPETERS.93Aug23144549@samsun.us.oracle.com>]

You can change the tools that the Workspace uses to create and read its .compressed files by issuing the following commands in a terminal window:

dwrite Workspace compress /usr/bin/gzip
dwrite Workspace uncompress /usr/bin/gunzip
dwrite Workspace AlwaysTarForCompress YES

[Reuven M. Lerner reuven@the-tech.mit.edu]

This is generally a good thing, except that people might follow your advice and then try to send NeXTmail to someone who is still using compress/uncompress. Changing Workspace/uncompress to gunzip isn't a problem, since it uncompresses all sorts of files, but people should be very careful not to change Workspace/compress to gzip unless they will only be dealing with other gzip-equipped users.

4.18 console: loginwindow: netinfo problem - No such directory.

netinfo problem, <NS2.1

The netinfo problem is because the /keyboard directory is missing. It's benign... but annoying.

niutil -create . /keyboard

Fixed in 2.1 and up.

4.19 Root login not possible on client machine

root login

A number of people have complained about the situation where root can log onto the configuration server, but not its clients. Login proceeds normally, then a window with "Workspace error Internal error (signal 10)" pops up. Other users are not affected.

This scenario occurs with NetBooted clients that are not permitted root access to / via the server's /etc/exports file, either via an explicit root= option or (the most heinous) anon=0. For security reasons many sites will NOT want to permit such access.

Note that what you're up against is only a Workspace Manager misfeature; there's no problem logging in as root on the real UNIX console, or logging in as a non-root user and then using "su" to obtain root privileges.

Root access is needed to:
  • Log in a root Workspace.

  • Perform BuildDisk on a client.

  • Run the GuidedTour demo for the first time subsequent invocations will not autologin, but they will run just fine if you log in as NextTour (no password).
It is not required to perform updates on the local NetInfo database, for any normal user operations, nor to run programs requiring root access on the server using -NXHost.

4.20 How to boot NEXTSTEP from the second (higher SCSI ID) HD?

Boot, from higher SCSI ID
Boot, from second drive

Use the following command.

bsd(1,0,0) -a

which will then ask you for the drive to use as the root disk, or still easier,

bsd(1,0,0)sdmach rootdev=sd1

In the boot command the name of the bootfile can be replaced by '-'. This is very useful as the length of the bootcommand which can be stored in the permanent memory is very limited (on NeXT machines only). So the only way to eg. increase the number of buffers permanently to 128 in the boot command is to use the following boot command: sd- nbu=128 (sdmach nbu=128 would have been too long).

4.21 How to make swapfile shrink to the normal size?


The swapfile is located in /private/vm. The only current way to make it shrink is to reboot the machine.

See the man pages for swaptab for more information. Note, that putting a space after the comma in /etc/swaptab (lowat=,hiwat=) makes swapon ignore the hiwat entry.

There is a short trick which seems to work for several people: type exit in the login panel. This will exit the window server and restart it immediatly. If you are lucky, this will reclaim some space.

4.22 Does netinfo work between machines running NEXTSTEP 2.x and 3.x?



4.23 Why does the console user "own" the external disk filesystem?

filesystem, external

You need an entry in /etc/fstab so the disk will be mounted at boot time, rather than being "automounted" when somebody logs in. Automounted disks are owned by whoever logged in, fstab-mounted disks are owned by root. Something like this:

/dev/sd0a /     4.3 rw,noquota,noauto 0 1
/dev/sd1a /Disk 4.3 rw,noquota        0 2

(assuming the external disk is to be mounted as /Disk)

fstab should be niloaded into the Netinfo database if it contains any NFS mounts.

4.24 How to limit coredump sizes?

coredump, size limit

Limit it by the following command.

This will work for apps running from a shell.

limit coredumpsize 0

If your dock or workspace apps are dumping core, there's also:

dwrite Workspace CoreLimit <bytesize>

4.25 What is the maximum value of nbuf that I can specify on bootup?

buffers, ROM

I know the ROM monitor only allows twelve characters, but I use something like this:

bsd sdmach nbuf=xxx

(NeXT machines only) Enter the hardware monitor. Hit 'p' to adjust the configuration parameters. It will respond: Boot command: <something>? Enter sd- nbu=xxx, where xxx is a number less than 256.

4.26 How can I change the mouse pointer shape and color?

Maybe this could point you into the right direction. Pipe it to pft and see what happens....

%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 0 0 16 16
0 0 16 16 Retained window
dup windowdeviceround
16 16 scale
16 16 4
[16 0 0 -16 0 16]
>} false 3 alphaimage
nextdict /_NXSharedGrayAlpha get
NX_TwelveBitRGB 1 index setwindowdepthlimit
0 0 16 16 5 4 roll 0 32 Copy composite

Maybe somebody wants to write some kind of "pointer editor"?

There is also a commercial application named 'MouseMagic' which handles this and custom acceleration modes.

4.27 How do I customize BuildDisk to create a bootable disk of my own configuration?

BuildDisk, customization

The BuildDisk application is extremely limited in terms of the types of disks configuration it knows how to build. Essentially it "knows" about swapdisks, optical disks, 330 and 660 MB SCSI disks. If you wish to do custom configurations you should look at existing BLD script files in /etc/BLD.* There is a script which you can use to specify which BLD script you are using, which disktab entry, and other useful parameters in /usr/etc/builddisk

Some things to note:
  • the fstab installed on the target disk is specified in the newclient command in the BLD script. standard fstabs are extracted from /usr/template/client/fstab.*

  • the BLD scripts do not put down a new boot block on the scsi disk, you may want to install one by hand using the /usr/etc/disk program.

  • some disks boot fine but NeXTstep comes up with a blank window and no login window. This is due sometimes to forgetting to install an accessible /NextLibrary/{Fonts,Sounds}. In general you need quite a lot of things to make a bootable disk.
You can build a minimally usable bootable floppy (for crash recovery purposes). There is a modified version of builddisk (to make it support building floppies, a minimal change) and a BLD script to build the boot floppy available at ftp://cs.orst.edu/next/sources/Bootfloppy.tar.Z. (I put this together in response to several requests.) A newer version of Bootfloppy for 2.1 is on the archives as ftp://cs.orst.edu/next/sources/util/Bootfloppy2.1.tar.Z.

Also available from the archives is BootFloopy 3.x (for --- you guessed it --- NEXTSTEP 3.x). I might also add that one can improve on disk usage while enhancing functionality. BuildDisk (which is used by the various BootFloppy scripts) just copies the standard binaries for ls, mv, cp aso. from /bin. These binaries are statically linked as shipped by NeXT which makes them huge. (e.g. /bin/ls is 106496 bytes large. /usr/local/bin/gls with more features is just 16268 bytes). If you replace these binaries by the BSD or GNU equivalents you can save several hundred kBytes on your boot floppy. This extra diskspace can be used for tar, dump and more tools which makes the boot floppy actually usable. Tested.

4.28 Are there any more dwrites useful for the workspace, ...?

dwrite, misc

There a lot of dwrite useful for you. (self explanatory)

dwrite Workspace compress /usr/bin/gzip
dwrite Workspace uncompress /usr/bin/gunzip
dwrite Workspace AlwaysTarForCompress Yes
dwrite Workspace DockOrginX (some number)
dwrite Workspace DockOrginY (some number)
dwrite Workspace DockOffsetX -1057 (leftmost)
dwrite Workspace DockOnTop (0 or 1 for true or false)

dwrite appname NXCMYKAdjust YES
dwrite Preferences 24HourClock yes

4.29 What is the @LongLink message from gnutar all about?


Because gnutar tries to be somewhat compatible to the old tar format, it can't store pathnames longer than 100 chars. In order to store files with longer names, it generates a special file entry containing just the longer filename. These are the long links you see. Nothing to worry about.

4.30 What stands the file .place3_0.wmd for?


The Workspace uses it to record the window attributes (sort order, view type, icon positions and so on)

Switching the 'UNIX Expert' flag in UNIX Preferences panel off hides all files which start by '.'

4.31 How to create transparent icons with IconBuilder

icon, transparent

If you are repainting an icon on the filesystem e.g. .dir.tiff make a copy and remove it first. Then reload the directory (the default icon gets shown). This is needed because the system caches icons.

Now here comes how to create transparent backgrounds using IconBuilder:
  • Select Format->Document Layout (or New document layout)

  • 'Has alpha' must be checkedus

  • Open the color inspector

  • UNcheck 'paint in overlay mode'

  • Choose any color (I took white)

  • Set Opacity to 0

  • Use Paintbucket to fill the whole icon

  • Now set Opacity back to 100

  • Draw the icon
What 'Paint in overlay mode' does, is that when checked, it will use both the alpha (opacity) of the existing pixel and the alpha selected in the color inspector and combine both into a new color. When unchecked the existing pixel will just be replaced with one using color and alpha as selected in the inspector.

4.32 How to access the MAC format of a mixed DOS/MAC CD-ROM


Some CD-ROMs are using multiple fileformats to adress more people. This is done by putting two filesystems on the disk. With NEXTSTEP you are able to acess both. But what to do if the Workspace only shows you the DOS side of a disk, while the Mac side is often more convenient (due to e.g. long filenames).

The solution is to change the priority the system is searching for a usable filesystem. You need to rearange the filesystems in /usr/filesystems to fit your needs. Here is how:
  • ls -lR /usr/filesystems shows the actual searching queue.

  • mv /usr/filesystems /tmp/filesystems to backup things

  • mkdir /usr/filesystems recreate the directory.

  • cp -p -r /tmp/filesystems/xx /usr/filesystems copy the filesystems in order of searching back to the default location.

  • chmod 4755 /usr/filesystems/xx.fs/xx.util reset SUID mode

  • reset the links in /usr/filesystems/DOS.fs/.

4.33 Is there a PPP for NEXTSTEP


There is a commercial PPP and a public domain PPP implementation.

For the public domain PPP there is an additional FAQ available at: http://www.thoughtport.com:8080/PPP/

The public domain PPP is based on the PPP-2.2 distribution. This distribution offers several enhancements over ppp-2.1.2. Especially noteworty is that it implements BSD packet compression. Using packet compression can lead to higher throughput than you get using compressing modems.

The port works on Motorola, Intel (both Mux and NeXT supplied serial drivers), and HP systems running OS 3.2 and 3.3. It also works in conjunction with Black and White's NXFAX software.

You may also want to join the mailing list for PPP. This will keep you informed of new releases and will provide an arena for discussing problems with the NeXT specific PPP port. To add yourself to the list (or for any other administrative requests), send an email message to: listproc@listproc.thoughtport.com requesting you be placed on the list. Make sure to include your proper return email address. To send mail to all the participants on the list, address your messages to: nextppp@listproc.thoughtport.com

4.34 NIS and OpenStep


There's a new lookupd in OpenStep for Mach 4.0, which works a bit differently than the old lookupd. The new lookupd has a number of "agents" that do lookups from various information systems (NetInfo, DNS, NIS, the Flat Files, and the internal cache). You can specify which information sources should be consulted, and in what order. You can also specify which information sources should be consulted for different categories. There is documentation for all this in the file /NextLibrary/Documentation/NextAdmin/ReleaseNotes/lookupd.rtf.

One change in NIS lookups is that a "+" in the /etc/passwd file does not trigger a NIS lookup. If you want user lookups to consult both /etc/passwd and the NIS passwd maps, you need to tell lookupd to use both Flat File and NIS agents. For example, if you configure all this in your root domain, you could set user lookups to use Cache+NetInfo+Flat Files+NIS like this:

niutil -create / /locations/lookupd
niutil -create / /locations/lookupd/users
niutil -createprop / /locations/lookupd/users LookupOrder \
CacheAgent NIAgent FFAgent NISAgent

4.35 System overloaded due to swapping

CPU overload

Several people discovered the problem, that their system get's unusable due to swapping. This is extremely bad, because if this swapping occurs, you can't even break the CPU load causing process, because you can't even open a terminal window. There exists a programmed solution to this problem.

Here it is! I should warn you that this will just kill the app --- it will not give you a chance to save files, nor will it bring up a nice panel asking if you really meant to do that. There is no warranty for anything by using his code.

To use it, simple hold down alternate and right click on any window owned by the application or its icon on the dock. This will not kill some apps like Terminal because they run as root.

In order to install it, you will have to edit /usr/lib/NextStep/windowpackage.ps. Make sure that you make a backup of this file before editing it! It is owned by root, so not just anyone can do this.

To apply the patch, search for a line stating: rmdownEvProc (the procedure for processing right mouse button down events), and replace it with the code named examples/windowpackage.patch in the FAQ archive. For NS3.3 this code is located at line 1319.

Disclaimer: you should not attempt this if you do not know what you are doing. You may be unable to log in (you will have to boot single user to restore the windowpackage.ps) if you mess it up. You can kill apps that you did not mean to kill. I cannot be responsible for what happens!

Thanks to David Koski dkoski@cs.wisc.edu for supplying this code.

4.36 Swapfile issues

swap, speed
swap, size
  • use 'mkfile' to generate the lowat file size of you swapfile. This decreases the number of inodes used and keeps the permanent lowat size defragmented.

  • on fast machines, compress the swapfile (only possible on the primary file), on slow machines, disable compressing.

  • place the swapfile on the fastest hard disk drive you have. Use 'man swaptab' to learn more about configuring swap files.

  • to learn more about the never shrinking swapfile question, read the NeXTanswers about it. http://www.next.com/NeXTanswers/

  • if your swaptab ignores some options: be aware that options must not contain spaces!

4.37 Garbage collection and Objective-C

garbage collection
memory allocation

Note that Boehm's conservative garbage collector from ftp://ftp.parc.xerox.com/pub/gc/ works great with Objective-C, so you can use GC also with the other compilers.

That GC could be enhanced a little by taking advantage of the Objective-C runtime type information; the hooks are there for it.

4.38 Setting up an anonymous FTP server

ftp server

Many people suggested just to read the online manual to ftpd. Probably a good idea. Anyway I included a not tested script in the FAQ distribution package which might be convinient for most people.
번호작성자날짜조회제    목
11capri912001-03-2619415   [NeXT_FAQ] 09_Obsolete but still interesting
10capri912001-03-2611720   [NeXT_FAQ] 08_Printing
9capri912001-03-2612384   [NeXT_FAQ] 07_Storage
8capri912001-03-2616557   [NeXT_FAQ] 06_White (Intel) hardware
7capri912001-03-2691476   [NeXT_FAQ] 05_Black (NeXT) hardware
6capri912001-03-2614181   [NeXT_FAQ] 04_Miscellaneous information
5capri912001-03-0610884   [NeXT_FAQ] 03_What is
4capri912001-03-0628962   [NeXT_FAQ] 02_General information
3capri912001-03-0630800   [NeXT_FAQ] 01_Introduction
2capri912001-03-0610712   [NeXT_FAQ] 00_Contents
1capri912000-12-1311921   <공지> Documentation 게시판의 용도
[목록보기] [글쓰기]