Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!usc!snorkelwacker!bloom-beacon!WILKINS.BCM.TMC.EDU!jcarson From: jcarson@WILKINS.BCM.TMC.EDU (Janet L. Carson) Newsgroups: comp.windows.x Subject: Re: X-terminals & xinit Message-ID: <9002120402.AA00448@wilkins.bcm.tmc.edu> Date: 12 Feb 90 04:02:22 GMT Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 33 Here's how we've solved the problem around here: For startup, the .login plays around with $TERM and a few other things to guess what you're on (a type of workstation or an X terminal). To start on an X terminal, my script does a "sh .xinitrc" to start up the same processes I run in a workstation environment, but different people do different things. The shutdown problem is worse than you thought... killpg will *not* kill all of your clients in a heterogeneous environment, as everything displaying on the same screen is not necessarily running on the same machine. (And frequently isn't around here!) Moreover, even if you are only using one machine to start all of your clients from, they are not always all in the same process group. I've developed a "shutdown" program which basically walks through the window tree shutting down clients. It identifies application top-level windows by looking for the WM_STATE variable, then checks WM_PROTOCOLS. If the client supports WM_DELETE_WINDOW, I send that message. Otherwise, I do an XKillClient on it. (I have an error handler catch me if an application has multiple windows and I try to kill it twice.) I sleep for a while, then walk through again, doing an XKillClient on anything still surviving. (The second pass doesn't seem to get executed when the window manager is twm, but seems to be necessary to kill swm when I use that window manager.) I've tried to follow ICCCM standards, but I'm not sure whether this is really a "nice" application to have around. I can send you a copy if you are interested in looking at it. --Janet Janet L. Carson internet: jcarson@bcm.tmc.edu Baylor College of Medicine uucp: {rutgers,mailrus}!bcm!jcarson