/* * [ ctwm ] * * Copyright 1992 Claude Lecommandeur. * * Permission to use, copy, modify and distribute this software [ctwm] and * its documentation for any purpose is hereby granted without fee, provided * that the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting documen- * tation, and that the name of Claude Lecommandeur not be used in adverti- * sing or publicity pertaining to distribution of the software without * specific, written prior permission. Claude Lecommandeur make no represen- * tations about the suitability of this software for any purpose. It is * provided "as is" without express or implied warranty. * * Claude Lecommandeur DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO * EVENT SHALL Claude Lecommandeur BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. * * Author: Claude Lecommandeur [ lecom@sic.epfl.ch ][ April 1992 ] */ #include #include #include /* #include #include */ #ifdef macII int strcmp(); /* missing from string.h in AUX 2.0 */ #endif Atom _XA_WM_CURRENTWORKSPACE, _XA_WM_OCCUPATION; Display *dpy; main (argc, argv) int argc; char **argv; { Window w; dpy = XOpenDisplay (NULL); if (dpy == NULL) { fprintf (stderr, "Can't open display\n"); exit (1); } switch (argc) { case 2: gotoWorkspace (argv [1]); break; case 3: sscanf (argv [1], "%x", &w); changeOccupation (w, argv [2]); break; default: fprintf (stderr, "usage %s name\n", argv [0]); break; } } gotoWorkspace (name) char *name; { _XA_WM_CURRENTWORKSPACE = XInternAtom (dpy, "WM_CURRENTWORKSPACE", True); if (_XA_WM_CURRENTWORKSPACE == None) { fprintf (stderr, "Can't get WM_CURRENTWORKSPACE atom\n"); exit (1); } XChangeProperty (dpy, RootWindow (dpy, 0), _XA_WM_CURRENTWORKSPACE, XA_STRING, 8, PropModeReplace, (unsigned char *) name, strlen (name)); XFlush (dpy); } changeOccupation (w, occup) Window w; char *occup; { _XA_WM_OCCUPATION = XInternAtom (dpy, "WM_OCCUPATION", True); if (_XA_WM_OCCUPATION == None) { fprintf (stderr, "Can't get WM_WORKSPACES atom\n"); exit (1); } XChangeProperty (dpy, w, _XA_WM_OCCUPATION, XA_STRING, 8, PropModeReplace, (unsigned char *) occup, strlen (occup)); XFlush (dpy); }