avr@hou2d.UUCP (Adam V. Reed) (07/31/87)
In order to start the X11-beta.1 on a stand-alone sun, and kill it without having to re-boot, I'm using the following ksh aliases and their associated script and program: alias -x xkill='kill -9 `ps -g|/bin/grep Xsun|cut -c1-5`'\ xrun=". $HOME/.xrun 2>/dev/null" ***************** cut here $HOME/.xrun follows ********************* PATH=/usr/X11$PATH DISPLAY=mysun:0;export DISPLAY (sleep 10 ; xterm =81x66+657+30) & 2>/dev/null (sleep 15 ; xterm =81x66+162+30) & 2>/dev/null (sleep 20; wm)& 2>/dev/null Xsun >/$HOME/junk 2>&1 fixKbd clear ***************** cut here fixKbd.c follows ************************ #include "/usr/include/stdio.h" #include "/usr/include/fcntl.h" #include "/usr/include/sundev/kbd.h" #include "kbio.h" int main() { register int kbdFd; int zeroisoff=0, trans=TR_ASCII; kbdFd = open ("/dev/kbd", O_RDWR, 0); if (kbdFd < 0) { return (-1); } (void) ioctl (kbdFd, KIOCSDIRECT, &zeroisoff); (void) ioctl (kbdFd, KIOCTRANS, &trans); return (0); } ***************** cut here kbio.h follows ************************** #include "/usr/include/sys/ioctl.h" /* * See sundev/kbd.h for TR_NONE (don't translate) and TR_ASCII * (translate to ASCII) TR_EVENT (translate to virtual input * device codes) */ #define KIOCTRANS _IOW(k, 0, int) /* set keyboard translation */ #define KIOCGTRANS _IOR(k, 5, int) /* get keyboard translation */ #define KIOCTRANSABLE _IOW(k, 6, int) /* set keyboard translatability */ #define KIOCGTRANSABLE _IOR(k, 7, int) /* get keyboard translatability */ #define TR_CANNOT 0 /* Cannot translate keyboard using tables */ #define TR_CAN 1 /* Can translate keyboard using tables */ #define KIOCABORT1 -1 /* Special "mask": abort1 keystation */ #define KIOCABORT2 -2 /* Special "mask": abort2 keystation */ /* * Set kio_tablemask table's kio_station to kio_entry. * Copy kio_string to string table if kio_entry is between STRING and * STRING+15. EINVAL is possible if there are invalid arguments. */ #define KIOCSETKEY _IOW(k, 1, struct kiockey) /* * Get kio_tablemask table's kio_station to kio_entry. * Get kio_string from string table if kio_entry is between STRING and * STRING+15. EINVAL is possible if there are invalid arguments. */ #define KIOCGETKEY _IOWR(k, 2, struct kiockey) /* * Send the keyboard device a control command. sundev/kbd.h contains * the constants that define the commands. Normal values are: * KBD_CMD_BELL, KBD_CMD_NOBELL, KBD_CMD_CLICK, KBD_CMD_NOCLICK. * Inappropriate commands for particular keyboard types are ignored. * * Since there is no reliable way to get the state of the bell or click * or LED (because we can't query the kdb, and also one could do writes * to the appropriate serial driver--thus going around this ioctl) * we don't provide an equivalent state querying ioctl. */ #define KIOCCMD _IOW(k, 8, int) /* Send keyboard command */ /* * Get keyboard type. Return values are one of KB_* from sundev/kbd.h, * e.g., KB_KLUNK, KB_VT100, KB_SUN2, KB_SUN3, KB_ASCII. -1 means that * the type is not known. */ #define KIOCTYPE _IOR(k, 9, int) /* get keyboard type */ /* * Set flag indicating whether keystrokes get routed to /dev/console. */ #define KIOCSDIRECT _IOW(k, 10, int) /* * Get flag indicating whether keystrokes get routed to /dev/console. */ #define KIOCGDIRECT _IOR(k, 11, int)