Window Maker (logo by Klaus Klingmueller)
 FAQ

   SITE MENU...
 
 * know it
introduction  
features  
gallery  
people  

 * learn it
FAQs  
news archive  
documentation  
mailing lists  
IRC forums  

 * grab it
ftp area [http]  
mercurial  

 * use it
projects  
themes  
misc links  

 * code it
development  


   FAQ - CHAPTER 7

Chapter 7: Miscellaneous Questions




7.1  Is there a pager for Window Maker?
Not at the moment because there is not a pressing need for a pager. The concept of multiple desktops does exist and there are currently 3 ways to switch between them.

First, the Meta+Number combination will switch between desktops. The Workspaces menu will also let you switch workspaces. Lastly, the clip will also scroll one through workspaces. For those that would like to send an application to a specific workspace, either drag it to the edge of the desktop onto the next workspace, or right click on its title bar, select 'Move To', and click the workspace you want it to be moved to.

However, Window Maker does support KDE and GNOME protocols, including their workspace management, so you may use their pager in conjunction with Window Maker in these. Note that in order for this to work, you must enable support when you configure Window Maker (using the --enable-kde and --enable-gnome configure options).

Note also that the Blackbox pager application will work with Window Maker.

7.2  How do I use getstyle and setstyle?

To capture the current Window Maker style, use the command

	getstyle > current.style
To replace the current style, use the command

	setstyle filename.style

7.3  Why was libPropList removed from the distribution?

Alfredo Kojima writes:

libPropList was removed from Window Maker because other programs also use it, such as GNOME. If libPropList is distributed with wmaker, it would cause problems with whatever version of libPropList you already had installed.

Now, there is no more GNOME libproplist and Window Maker libproplist. There is only libPropList which is worked on as a single community effort.

7.4  Why don't you distribute normal diff or xdelta patches?

Whenever possible, plain diff patches are distributed. If the new version has new binary files, normal diff won't be able to handle them, so a patch package is distributed instead. We don't use xdelta because a) most systems do not have xdelta installed and b) xdelta is picky and requires the files to be patched to be exactly the same as the one used to make the patch. The patch package scheme used is much more flexible.

We do not distribute a simple diff with the binary files separately (and variations, like uuencoding the binary files) because a) it is more complicated and error prone to require the user to manually move the files to the correct places b) the current patch package scheme does distribute the binary files and diff files separately. If the user wants to install everything by hand, nobody will object to that and c) sooner or later someone will certainly ask for a script to automate the file moving stuff.

So we hacked a script (mkpatch) that automatically creates a patch package with the normal text diff file, a list of removed files and the binary files that have changed or been added, plus a script that does the patching automatically. If you don't like the script, you can apply the patch and move the files manually. Or download the whole distribution.

7.5  Will you add GNOME or KDE support?

Support for GNOME and KDE hints has been included since 0.50.0.

Note that you must enable this support at compile time with the proper arguments to configure (--enable-kde and --enable-gnome).

7.6  How can I produce a backtrace when Window Maker keeps crashing?

Thanks to Paul Seelig for this answer:

You can use the GNU debugger "gdb" to get exact information about how and where wmaker crashed. Sending this information to the developers is the most convenient way to help in debugging.

The wmaker binary needs to be compiled with debugging turned on ("./configure --with-debug etc.") for this to work.

Exit wmaker and start a failsafe X session with an open xterm.

First type the command "script" to log the following session into a file commonly called "~/typescript". Then enter "gdb wmaker" at the shellprompt:

	[shell prompt]~ > script
	Script started, output file is typescript
	[shell prompt]~ > gdb wmaker
	GNU gdb 4.17.m68k.objc.threads.hwwp.fpu.gnat
	Copyright 1998 Free Software Foundation, Inc.
	GDB is free software, covered by the GNU General Public License, and you are
	welcome to change it and/or distribute copies of it under certain conditions.
	Type "show copying" to see the conditions.
	There is absolutely no warranty for GDB.  Type "show warranty" for details.
	This GDB was configured as "i486-pc-linux-gnu"...
	(gdb)
At the gdb prompt simply type "run" to start the WMaker session:

	(gdb) run
	Starting program: /usr/bin/X11/wmaker
Try to reproduce the error which has provoked the crash before and if you succeed the session will simply freeze and you will see something similiar to following prompt:

	Program received signal SIGSEGV, Segmentation fault.
	0x809ea0c in WMGetFirstInBag (bag=0x0, item=0x811e170) at bag.c:84
	84	    for (i = 0; i < bag->count; i++) {
	(gdb)
Now you just type "bt" for "backtrace" and gdb will show you where the crash happened:

	(gdb) bt
	#0  0x809ea0c in WMGetFirstInBag (bag=0x0, item=0x811e170) at bag.c:84
	#1  0x807c542 in wSessionSaveState (scr=0x80c28e8) at session.c:299
	#2  0x807bd88 in wScreenSaveState (scr=0x80c28e8) at screen.c:1089
	#3  0x807cf54 in Shutdown (mode=WSExitMode) at shutdown.c:111
	#4  0x8078101 in exitCommand (menu=0x80f7230, entry=0x80fdb38)
	    at rootmenu.c:193
	#5  0x8078403 in wRootMenuPerformShortcut (event=0xbffff360) at rootmenu.c:401
	#6  0x80630f7 in handleKeyPress (event=0xbffff360) at event.c:1492
	#7  0x8061c86 in DispatchEvent (event=0xbffff360) at event.c:232
	#8  0x8093092 in WMHandleEvent (event=0xbffff360) at wevent.c:585
	#9  0x8061dae in EventLoop () at event.c:322
	#10 0x806b238 in main (argc=1, argv=0xbffff404) at main.c:594
	(gdb)
To quit the debugger just type "quit" and say "y":

	(gdb) quit
	The program is running.  Exit anyway? (y or n) y
	[shell prompt]~ >
To quit the script session type "exit" again:

	[shell prompt]~ > exit
	exit
	Script done, output file is typescript
	[shell prompt]~ >
Send the resulting "~/typescript" together with a concise explanation about how to reproduce the bug (please use the included BUGFORM for instruction) to the developers.


 


Window Maker is © [1997 - 2010] Alfredo Kojima
We welcome community feedback related to the project.
Read the disclaimer for licensing information and other details.
 Your Next Window Manager!
The Window Maker window manager is in no way associated with Windowmaker, the world's leading software for windows and doors.