diff --git a/README.md b/README.md index 723489b..9a9e96c 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,8 @@ files accepted by [Jekyll](https://jekyllrb.com) static site generator. Build/serve ----------- -In order to build the site, you'll need Jekyll framework installed. Easiest way +In order to build the site, you'll need Jekyll framework installed and +[jekyll-rst](https://github.com/gryf/jekyll-rst) plugin. Easiest way to achieve it, is to install it from system repositories. If your distribution doesn't contain it (even in external ones, like PPA for @@ -18,10 +19,18 @@ typical usage would be as follows: ``` $ cd window-maker.github.io && bundler init $ bundler add jekyll +$ mkdir _plugins +$ git clone https://github.com/gryf/jekyll-rst _plugins/jekyll-rst +$ pip install docutils pygments +$ gem install RbST nokogiri $ bundler exec jekyll serve ``` -which will initialize gemfile, add jekyll to it, and then perform `jekyll serve` -which underneath will build the site and than run simple http server on +Consult [jekyll-rst](https://github.com/gryf/jekyll-rst) plugin documentation +for requirements. Other options for installing dependencies are also possible - +they might be installed from distribution repositories. + +Last line will initialize gemfile, add jekyll to it, and then perform `jekyll +serve` which underneath will build the site and than run simple http server on `http://localhost:4000` in development mode. More about jekyll you can find [on it's page](https://jekyllrb.com/docs) diff --git a/_config.yml b/_config.yml index 5af0498..088b618 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,3 @@ title: Window Maker +rst: + initial_header_level: 1 diff --git a/docs/FAQ.html b/docs/FAQ.html deleted file mode 100644 index 9984aeb..0000000 --- a/docs/FAQ.html +++ /dev/null @@ -1,2104 +0,0 @@ ---- -layout: default -title: FAQ ---- -
-
- -

FAQ

- -

Have questions about Window Maker? If so, look no further. Below is our collection of Frequently Asked Questions and - their corresponding answers. Many of these have been adapted from the original FAQ by Chris - Green. Questions are routinely taken and added in from the mailing lists and IRC forums.

- -
    -
  1. Introduction to Window Maker
  2. - -
  3. Installing Window Maker
  4. - -
  5. Configuring Window Maker
  6. - -
  7. Using Window Maker
  8. - -
  9. Application Compatibility
  10. - -
  11. Themes and Dockapps
  12. - -
  13. Miscellaneous Questions
  14. - -
  15. Troubleshooting Tips
  16. - -
  17. Programming for Window Maker
  18. -
- -

Chapter 1: Introduction to Window Maker

- -


- -

1.1  What is Window Maker?

-Window Maker is an X11 window manager -originally designed to provide integration -support for the GNUstep Desktop Environment. -In every way possible, it reproduces the -elegant look and feel of the NEXTSTEP[tm] -user interface. It is fast, feature rich, -easy to configure, and easy to use. It is -also free software and part of the GNU -Project, with contributions being made by -programmers from around the world - -

1.2  Where can I get Window Maker?

-Window Maker can be obtained from the -official website, http://windowmaker.org/, -or from various mirror sites listed at -http://windowmaker.org/mirrors.html - -

1.3  Where are the mailing lists and archives?

-All information regarding the Window Maker -mailing lists can be found at http://windowmaker.org/lists.html - -

1.4  Where can I find more documentation?

-Additional documentation can be found in -the Window Maker source distribution, or -at http://windowmaker.org/documentation.html - -

1.5  What is an appicon?

-An appicon is the icon produced by an -application that initially is in the -bottom left corner of the screen while -an application is running. For an example, -run xterm and notice the icon in the -corner (make sure that you use xterm and -not a default rxvt when testing, because -many versions of rxvt do not properly set -their window attributes).

- -For a more indepth discussion of how an -appicon relates to Window Maker, see -question 1.10 - -

1.6  How can I get a question added to the FAQ?

-For now, the best method is to E-mail your -question to faq@windowmaker.org. We are -working on a web-based submission form -to our FAQ system, which will enable -users to submit questions for review. - -

1.7  How do I report bugs?

-You can look at the BUGFORM file in -the source distribution of Window Maker. -Alternatively, you can use the -Window Maker Bug Tracker at -http://windowmaker.org/cgi-bin/bugs - -

1.8  Is there an anomymous cvs server?

-Yes there is. To check out from cvs, first -

-

-	export CVSROOT=":pserver:anoncvs@cvs.windowmaker.org:/cvsroot"
-        cvs login
-
-There is no password, so simply hit enter when prompted. -

-Then issue the following command ("wm" is the name of the module): -

-

-	cvs -z3 checkout -d WindowMaker wm
-
-To update your source tree, cd to the WindowMaker directory and type -

-

-	cvs -z3 update -dP
-
-inside the WindowMaker directory. -

- -For more detailed CVS instructions, please -visit http://windowmaker.org/development-cvs.html - -

1.9  Where can I find the Window Maker IRC channel?

-The official Window Maker IRC channel can be accessed by connecting to irc.windowmaker.org on port 6667, -and joining #WindowMaker - - -

1.10  What is the difference between appicons, mini-windows, and minimized applications?

-Thanks to Jim Knoble for this answer: -

-Many window managers are capable of turning large windows into -smaller `icons' which represent the window yet don't take as much -screen real estate. We're all familiar with that model. -

-Window Maker has two kinds of these icons. One kind is created when -an application---technically, a window group---is started. It -represents the entire application and is called an `appicon'. Such -icons are square tiles containing only the picture which represents -the application; they have no titles. -

-The second kind of icon in Window Maker is created when a particular -window (possibly one belonging to an application displaying more than -one window) is `miniaturized' (which is the same action as -`minimizing' or `iconifying' in other window management models) using -the miniaturization button on the window's titlebar. These -miniaturized windows are called `miniwindows' and can normally be -distinguished from appicons by their small titlebar at the top of the -tile. - -

1.11  How do I make sense of Window Maker's version number scheme?

-The numbering scheme is relatively simple, -and is in the format of three numbers separated -by dots. The first number is the "major" revision -number. The second is the "minor" revision number. -And finally, the third is the "patch level" number. -

-To put this all into perspective, let's examine the -version number "0.65.1". This number signifies -that there has not been a major revision release, -that its minor revision is newer than the previous -one (0.64.x), and that it's on the first patch level -after the 0.65.0 release. This still might be -confusing, so go away with this in mind: numbers -ending in .0 tend to be new feature releases -but less stable than .1, .2, .3 patch level releases, -the latter of which are used to fix bugs. -

-It is generally safe to go with the highest numbered -patch release. - -

Chapter 2: Installing Window Maker

- - -


- -

2.1  Why are no icons showing up after installing Window Maker?

-As of WindowMaker version 0.15.0, the default setup includes .tiff icons which -require you to have compiled Window Maker with libtiff support. For assistance -on compiling libtiff, see the following question. - -

2.2  How do I make Window Maker link against libtiff?

-Many UNIX operating systems have -difficulty finding third party libraries -by default. Unfortunately, there are too -many of these to include instructions for -them all. -

-In general, you will want to ensure the -latest version of libtiff is installed (see -ftp://www.libtiff.org). Typically on non-Linux -systems, libtiff will be located under -/usr/local, with includes and libs in those -respective sub-directories. -

-Often, it will be necessary to add /usr/local/lib -to the system's LD_LIBRARY_PATH environment -variable (especially so on Solaris, but see 'man ld' -for details on your platform). Furthermore, -it is possible to supply special flags to the -configure script to help it find where the libraries -are. An example is given below:
-

-

-./configure --with-libs-from="-L/usr/local/lib" \
-	    --with-incs-from="-I/usr/local/include"
-
- -

-Also, you will want to make sure you're using GNU make -(gmake) for the Window Maker compile. - -

2.3  How do I switch CDE's window manager to use WindowMaker?

-Method 1: -

-Peter Ilberg gives us this answer: -

-Install WM wherever you want it, mine is in /opt/WindowMaker-0.16.0 (eg. use -./configure --prefix=/opt/WindowMaker-0.16.0). Run the install script wmaker.inst in -your home directory. -

-Add the following two lines to .dtprofile in your home directory: -

-

-	SESSIONTYPE=xdm; export SESSIONTYPE
-	PATH=:/usr/contrib/bin/X11:$PATH:.; export PATH
-
-This tells CDE to go looking for an .xinitrc/.xsession instead of using the default -environment. -

-Make your .xsession/.xinitrc executable (VERY IMPORTANT, wmaker.inst did NOT -do this automatically for me) using eg. -

-

-	chmod ugo+x .xsession
-
-Your .xsession/.xinitrc should look something like this: -

-

-	#!/bin/sh
-
-
-	<some other init stuff that you want/need>
-
-
-	exec wmaker
-
-Things to try if it doesn't work: (somewhat fuzzy and random) -

-This should do it although I did have problems sometimes initially which I fixed by -randomly trying absolute pathes for wmaker in .xsession/.xinitrc and/or making the -dtprofile/.xinitrc/etc executable. It helps logging in on the console (select from CDE -login screen) and start X manually using "X". If it works that way it should work when -logging into the CDE environment. Remember to Check your paths! -

-If it doesn't work, you can also substitute some other window manager for wmaker in -the .xinitrc and see if that works. If it does you know at least that .xinitrc is getting -called/executed, so your WM path is wrong or not set. -

-Method 2: -

-Thomas Hanselman gave this alternative answer (via Peter Ilberg): -

-Build and install WM wherever you want, as described in Method 1. You can install -and run WM just fine from your home directory. That's what I'm doing, since I don't -have root access at work :(. Then, in your Xdefaults file in your home directory, add -the following line: -

-

-	Dtsession*wmStartupCommand: <path to WindowMaker executable>
-
-Then, log out, and log back in, and, unless I've forgotten a step (or this is a custom -Nortel thing), you should be in Window Maker heaven ;). -

-Difference between the methods: (according to Thomas) -

-I've been told that the difference between setting the resource and Peter's method is -that if you override the window manager with the resouce, you still get the CDE -resources read into the resource database (so you still have your color settings & -such from CDE), whereas with Peter's, the CDE resource don't get read into the -database. I don't know if this is true or not, however. Also, another thing to note with -Window Maker and HP-UX 10.20 -- if you select "Exit Session" from the WM root -menu, WindowMaker and all of your applications are killed, but you may not be -logged out. Again, this might be an artifact from my work environment, or the way I -start Window Maker. -

-Owen Stenseth adds: -

-When using this method it is possible to exit Window Maker cleanly by using the -dtaction command. I use the following in my Window Maker menu: -

-

-            "Exit Session"      EXEC dtaction ExitSession
-
-

-The only problem I have at the moment is I seem to get multiple copies of asclock -running when I log in again. - -

2.4  Do I need to rerun wmaker.inst with every new version of Window Maker?

-Dan Pascu reveals the answer: -

-If this is necessary, it will be listed in the NEWS -file included in the source distribution. -Since 0.15.x, the domain files have been changed -in such a way that re-running wmaker.inst is -redundant. The user config files are by default -merged in with the global ones normally located -in /usr/local/share/WindowMaker/Defaults. -So, even if new options are added, they should -be automatically added to the environment. - -

2.5  Why am I only getting a root menu with xterm and exit items?

-Most likely, the problem is that Window Maker can not find a copy of the C pre -processor in a directory such as /lib. The file /lib/cpp should be a symbolic link to -whatever C compiler's cpp you are using. For example: -

-

-	cpp -> /usr/bin/cpp-2.95*
-
-Another possibility is your /usr/X11/lib/X11/xinit/xinitrc is a -broken symlink. Either create a new symlink, or do something like: -

-

-	$ cp /usr/X11/lib/X11/xinit/xinitrc.fvwm2 \
-		/usr/X11/lib/X11/xinit/xinitrc.wmaker
-
-
-	$ ln -sf /usr/X11/lib/X11/xinit/xinitrc.wmaker \
-		/usr/X11/lib/X11/xinit/xinitrc
-
-then just edit /usr/X11/lib/X11/xinit/xinitrc and replace the exec of 'fvwm2' -by '/usr/local/bin/wmaker' (should be somewhere towards the end of the file, -most probably the very last line). -

-Thanks to Tomas Szepe for the second part. - -

2.6  How do I get Window Maker to use more than 16 colors on my SGI Indy Workstation?

-Thanks to Peter H. Choufor this answer: -

-By default, the SGI X Server uses 8-bit Pseudocolor mode. -To change it, edit (as root) the file /usr/lib/X11/xdm/Xservers. -Change it to read: -

-

-    :0 secure /usr/bin/X11/X -bs -c -class TrueColor -depth 24
-
- -

2.7  Using WindowMaker with Solaris 2.6 CDE

-Thanks to Rob Funk for this answer: -

-Assuming you installed Window Maker according to the README's that come -with the source, all you need to run Window Maker on a Solaris box is -an entry in the .xinitrc. This should work for any version. When -you run wmaker.inst the first time, allow it to make changes -to the .xinitrc file. Mine looks like this: -

-

- #!/bin/sh
- # Window Maker Default .xinitrc
- exec /usr/local/bin/wmaker
-
-Believe it or not, that's all that it takes. This, in fact, runs Window Maker -instead of OpenWindows. In order to choose Window Maker, you simply choose -"OpenWindows Desktop" in the "Options - Session" Menus And Choose "CDE -Desktop" if you want CDE. -

-The color schemes and settings for Window Maker are seperate from CDE. -I tested on a SPARC 10, but I assume Solaris x86 would work also. -

-(webmaster note: It works fine on Solaris x86) - -

2.8  How do I install Window Maker on a Solaris box?

-Here are some hints from John Kemp: -

-Installing Window Maker on a Solaris 2.6 box might require -one or two little hints. Here you are (this was on a system -running xdm by the way, but similar suggestions apply otherwise): -

-1) /usr/openwin/lib/X11/xdm/Xservers like this: -

-:0 local /usr/openwin/bin/X -dev /dev/fb defdepth 24 defclass TrueColor -

-2) Turn off shm in the WindowMaker configure: -

-./configure --disable-shm -

-3) might have to modify your LD_LIBRARY_PATH:, or make "wmaker" -

-   a script that does it for you (mv wmaker wmaker.exe):
-
-LD_LIBRARY_PATH=/usr/local/lib:/usr/local/X11/lib:/usr/lib:/usr/openwin/lib -export LD_LIBRARY_PATH -/usr/local/bin/wmaker.exe $* -

-The real key is the "--disable-shm". -

-(webmaster note: Window Maker should work fine with - SHM enabled, at least it does under Solaris 8. Try - the default first, and then use this if you run into - problems with it) - -

2.9  How do I fix an error such as libwraster.so.1: cannot open shared object file?

-If you have an error when running Window Maker such as -

-

-	libwraster.so.1: cannot open shared object file
-
-These are the instructions for Linux. -

-First, make sure that /usr/local/lib ( or whatever directory you installed Window Maker to) -is listed in your /etc/ld.so.conf ). You need to run ldconfig so the new shared libraries will be loaded. -After running ldconfig as root, the linker should properly load the libraries. -You need to run this every time you update Window Maker. -

-Thanks to Joseph Czapiga, the BSD procedure for adding shared -library directories is -

-

-	ldconfig -m /usr/local/lib  (m means merge)
-
- -

2.10  How do I fix an error dealing with aclocal: configure.in: 15: macro 'AM_PROG_LIBTOOL' not found in library?

-You need to install libtool. -It also must be a libtool different from version 1.2b ( shipped with redhat 5.2 ). -You can get libtool from ftp.gnu.org/pub/gnu -Make sure the autoconf and automake versions you have installed are at -least: -autoconf 2.12 -automake 1.3 -libtool 1.2 -

-

- From Blaine Horrocks:
-
-"You can also work around this problem on RedHat5.2 by copying the -distributed aclocal.m4 to acinclude.m4 before running configure for the -first time. Configure works fine and doing the make succeeds." - -

2.11  When I run wmaker, it quits complaining about '__register_frame_info'

-This is related to having compiled Window Maker on a system whose libraries were compiled -by egcs or gcc 2.8.0, and then using the binaries on a system whose libraries were compiled -by gcc 2.7.2.x -

-Try compiling Window Maker with the newer gcc or recompile your system libraries -with the older gcc. It's generally a bad idea to mix and match. - -

2.12  How do I make libjpeg link against Window Maker?

-The newest jpeg libs are availible at http://www.ijg.org -

-How many of you have seen that darned "lib reports 62 caller expects 61" type -of error? Here are some answers that will possibly help you out. -

-First things first. As always, make sure there are not older copies of libjpeg -floating around on your system. ]Some distributions by default come -with an old libjpeg.so.1 in the /usr/X11R6/lib/ directory. This can simply be -deleted. Or if something complains after you delete it, recompile it if you -can to look for the new lib in the right place, or if that fails, as a last -resort, you might add a symlink to the new lib like so: -ln -s /usr/local/lib/libjpeg.so.6.0.2 libjpeg.so.1 -

-Note that you should use your system's version of ldconfig -to properly manage your library cache (or other appropriate -mechanism). -

-On Linux, this would mean having /usr/local/lib in -/etc/ld.so.conf and then running ldconfig. -

-Now on to the error. This is basically caused -by your application having been compiled to -dynamically use the libjpeg.so shared library. -When you install a new lib and then try to run -your program again, it expects the lib it was -compiled against, in this case the older -libjpeg.so.6.0.1 and instead finds libjpeg.so.6.0.2 -and reports the error. -

-The fix is actually rather simple. Along with adding a -libjpeg.so.6 symlink like so (just in case): -ln -s libjpeg.so.6.0.2 libjpeg.so.6 where you installed - your new lib, you simply need to recompile your app to -link it against the new library. -

-Also, make sure to use GNU make for the Window Maker compile. - -

2.13  How do I start Window Maker after running wmaker.inst?

-As of version 0.53.0, the wmaker.inst script will modify your X startup script -( .xinitrc or .Xclients or .Xsession ) to do something thats (hopefully) -appropriate. -

-In order to run wmaker, a user needs to have an ~/.xinitrc -file consisting of something similar to -

-

-	#!/bin/sh
-	exec wmaker
-
-

-This will vary from system to system, but the existance -of an .xinitrc file will generally override the system -defaults. - -

2.14  How do I make libpng link against Window Maker?

-The newest png libs are availible at http://www.libpng.org/pub/png/libpng.html -

-You should also get the newest zlib libs from -http://www.gzip.org -

-Generally, the same rules apply here as with libjpeg. Make sure there are no -older versions of the necessary libs floating around on your system, then try -to configure and make again. -

-Also, make sure to use GNU make (gmake) for the Window Maker compile. - -

2.15  How do I make giflib or libungif to link against Window Maker?

-The newest versions of both these libraries are available at -http://prtr-13.ucsc.edu/~badger/software/ - - -Users have had a few problems with giflib... it seems that the install process didn't -install the header file libgif.h, so although the Window Maker configure found -the lib (libgif.so.x), when you actually try to compile, it fails when it looks for -the header to include the make. One solution is to simply copy it from the libgif -source directory to the local system include directory. (/usr/local/include/ on many -systems). -

-Also, make sure to use GNU make (gmake) for the Window Maker compile. - -

2.16  How do I fix an error similar to "wrlib: could not allocate shared memory segment: invalid argument"

-This relates to a shared memory problem on -Solaris. Usually one can't see it - but it is visible if X -is started from command line (or fail-safe session for that -matter). In any of the cases, on the stderr you get an error -message like this: -

-

-	 "wrlib: could not allocate shared memory segment: invalid argument"
-
-This one is generated by wrlib if Window Maker is compiled with -shared-memory usage enabled (which is the default). The explanation -is that Solaris by default comes with a shared memory segment size -of maximum 1 M. What happends is that if you have a really-really -cool(tm) background, it is usually much bigger than that 1 M segment -of shared memory. To see your defaults relating the IPC settings check -the output of the "sysdef" command (look for IPC Shared Memory). There -you should see the maximum allocable size for a shared memory segment. If -it is less than 5 M you should really increase it by adding the following -line in your /etc/system file: -

-

-	set  shmsys:shminfo_shmmax=20971520 
-
-

-*) Make sure you don't already have this value set. If you do, -simply increase the value. In case you have a much -bigger value, stick to what you have, because you should have -no problems with it.
-*) The value allows a maximum segment size of 20 M, which really -should be enough for anyone. If not, try using a smaller background -image!
-*) Make sure you spell the line exactly as shown, otherwise -at boot time the kernel will complain of not finding such a module -name and will not set a thing about it!
-*) Make sure you don't delete other lines or modify them "beyond -recognition", for evil things may happen at boot time.
-

-After adding this to your /etc/system you need to reboot -in order for the new limit to take effect. -Also, you may want to check the new limit just -to make sure it has been set. -

-Thanks to Bogdan Iamandei for this answer. - -

2.17  How do I add Window Maker to the Solaris dtlogin screen?

-The two files that -determine alternate window managers are: -

-

-	/usr/dt/config/C/Xresources.d/Xresources.*
-	/usr/dt/config/Xsession.*
-
-If you look in there, you'll find Xresources.ow and Xsession.ow, -respectively. All you need are two files that set up Window Maker (or -any other window manager) in a similar fashion, calling them -Xresources.wm and Xsession.wm (or whichever extension you prefer). -

-Here is an example setup: -

-

-

-	#
-	**************************************************************************
-	#
-	# Window Maker config file
-        # Mike Bland <mbland@cmu.edu>
-     	#
-	# /usr/dt/config/C/Xresources.d/Xresources.wm
-	#
-	# used by dtlogin
-	#
-	#
-	**************************************************************************
-
-
-	Dtlogin*altDtsIncrement:        True
-
-
-	Dtlogin*altDtName:      Window Maker
-	Dtlogin*altDtKey:       /usr/local/bin/wmaker
-	Dtlogin*altDtStart:     /usr/dt/config/Xsession.wm
-	#Dtlogin*altDtLogo:     /usr/local/share/logos/WM_logo.xpm
-
-
-	# Once I get a logo ready, I'll add it to the dtlogin screen by
-	uncommenting
-	# the last line.
-
-

-And this example script: -

-

-	#!/bin/ksh
-	#
-	**************************************************************************
-	#
-	# Window Maker startup script
-        # Mike Bland <mbland@cmu.edu>
-	# /usr/dt/config/Xsession.wm
-	#
-	# used by dtlogin
-	#
-	#
-	**************************************************************************
-
-
-	. /usr/local/etc/.profile       # Sources the file containing necessary
-	                                # environment variables (especially
-	                                # LD_LIBRARY_PATH=/usr/local/lib:...);
-        	                        # make sure it's executable.
-
-
-	WINDOW_MANAGER=/usr/local/bin/wmaker
-
-
-	export WINDOW_MANAGER
-
-
-	/usr/local/bin/wmaker
-
- -

2.18  What happened to libPropList?

-The libPropList dependency has been removed as of Window Maker version 0.70.0, -and is replaced by cleaner, more robust code in the WINGs toolkit. This new code maintains existing proplist compatibility, -so there are no visable changes for users, and existing file formats will work as they did before. - -

- -For developers, there is a proplist-compat.h header that provides a mapping between the old and new function names. See the comments in this file for further instructions.
- - -

Chapter 3: Configuring Window Maker

- - -


- -

3.1  What are those files inside my ~/GNUstep directory?

-Here is a synopsis of the files in ~/GNUstep -

-~/GNUstep/WindowMaker/WindowMaker is main config file. This -file controls options such as keybindings, fonts, -pixmaps, and focus modes. -

-~/GNUstep/WindowMaker/WMWindowAttributes controls the -"attributes" for individual applications and appicons. -Options such as what icon to use are set here. For the -most part, this is now best accessed via a right click -on a title bar of an application and selecting -"Attributes" -

-~/GNUstep/Defaults/WMState is the file that is -automatically generated and contains the current -dock settings. It is not recommended to edit this -file by hand. -

-~/GNUstep/Defaults/WMRootMenu specifies what file to use -as the root menu. In Window Maker 0.19.0 and higher, this -file should be replaced by plmenu from ~/GNUstep/Defaults/WindowMaker -so that one can use WPrefs.app to edit the menu. -

-~/GNUstep/Library/WindowMaker/menu is used to change your root menu, -if you are using the old menu style. - -

3.2  How do I enable the normal X sloppy focus mode?

-If you are using WPrefs, you can choose the ``Window Focus Prefrences'' -tab and then select the ``Input Focus Mode'' Slider. -

-Scroll Down and choose ``Sloppy'' Focus Mode. -

-You may also use a text editor on -

-

-	~/GNUstep/Defaults/WindowMaker
-
-and change the following: -

-

-	FocusMode = sloppy;
-
- -

3.3  How do I get my auto-arrange icons to work?

-In WPrefs, choose the ``Icon Prefrences Tab'' and select the -``Auto Arrange Icons'' Checkbox. -

-Or in -

-	~/GNUstep/Defaults/WindowMaker
-
-set -
-	AutoArrangeIcons=YES;
-
-and the icons should now auto-arrange. - -

3.4  How do I get my Meta-Tab to cycle through windows correctly?

-To use WPrefs to modify these, choose the ``Ergonomic Prefrences'' tab and -check ``Raise window when switching focus with keyboard (Circulate Raise)'' -

-Or you can use a text editor to make sure that these settings are in your -~/GNUstep/Defaults/WindowMaker file: -

-

-	CirculateRaise = YES;
-	RaiseDelay = 1;
-
-As of 0.61.0, MS Window's Style application tabbing is supported by default. - -

3.5  How do I get a tile background for my appicons (those things in the dock)?

-These can all be adjusted by the ``Appearance Preferences'' tab in -WPrefs. -

-Select the tile and then choose the edit texture dialog. Then you may -choose any of the different tile background options in the -The old text editor method is provided below for convience. -

-You need to change one line in your '~/GNUstep/Defaults/WindowMaker' file. -

-

-	IconBack = (spixmap, tile.black.xpm, white);
-
-The last parameter is the color that fills in any transparent -parts of your icon. - -

3.6  How do you dock <insert program here> that doesn't have an appicon in the new version of WindowMaker?

-There is now an option available to emulate appicons so that Window Maker -can dock just about anything now. To dock a misbehaving application, right click -on the title bar and select the attributes menu. Next, select the pull down menu's -"Advanced Options" item. Under the ``Advanced Options'' menu, select the ``Emulate -Application Icon'' Option then Save, Apply and close the dialog. -

-This should allow you do dock the program normally. -

-Dan Pascu adds: -

-Emulate Appicon does exactly the same as dockit. So if Emulate Appicon -does not work, dockit will not work either. -For such apps you can do nothing. They are badly coded (they do not -set the instance.class hints). For these Attributes are also not -available, since attributes apply to an instance and/or class hint. -

-Note: Dockit was previously distributed with Window Maker and was launched -from the top dock icon. -

-Elliott Potter adds: -

-There's another way to dock applications that misbehave ... I've only -done this with a couple of things (Adobe AcroRead is the only one I -remember at the moment). -

-If Attributes -> Advanced Options -> Emulate Application Icon doesn't -work: -

-Dock another application to the clip, where you want your application to -go. I used gv, but anything you can dock will work. -Quit WindowMaker -Edit ~/GNUstep/Defaults/WMState -If you're docking to the clip, scroll down to the Workspaces section. -When you find whatever you docked, you'll see: -

-	{
-	  Command = gv;
-	  Name = GV.gv;
-	  AutoLaunch = No;
-	  Forced = No;
-	  BuggyApplication = No;
-	  Position = "6,0"
-	  Omnipresent = No;
-	  DropCommand = "gv %d";
-	},
-
-Edit it to use the info for your new application: -
-	{
-	  Command = acroread;		# use the full pathname if you have to
-	  Name = acroread.acroread;
-	  AutoLaunch = No;
-	  Forced = No;
-	  BuggyApplication = No;
-	  Position = "6,0"
-	  Omnipresent = No;
-	  DropCommand = "acroread %s";
-	},
-
-Then edit WMWindowAttributes, and add a line for your application's -icon...you can edit the line that was inserted, or make a new one - I -just make a new one: -acroread.acroread = {Icon = pdf.tiff;}; -

-

-Then re-start WindowMaker, and your icon should be there! You can move -it around like any other docked app now, but the Attributes section -still won't work. - -

3.7  How do I get x11amp to not have a title bar ( or any other program for that matter )?

-Right Click on the title bar and go to the attributes menu. Click on Window Attributes and click -the the Disable titlebar and Disable Resizebar options. Click Save, and then click -Apply then close the Attributes panel. -

-By Default, to get back to the attributes menu, use the key combination Control-Esc. - -

3.8  How do I set a pixmap background?

-Here is the in depth explanation straight from the NEWS file: -

-wmsetbg now accepts the following options: -

-	usage: wmsetbg [-options] image
-	options:
-	-d
-              dither image
-	-m
-              match colors
-	-t
-              tile image
-	-s
-              scale image (default)
-	-u
-              update Window Maker domain database
-	-D <domain>
-              update <domain> database
-	-c <cpc>
-              colors per channel to use
-
-

-

-By default, it will try to guess if dithering is needed or not and proceed -accordingly. -Using -d or -m will force it to dither or match colors. -

-Dithering for more than 15bpp is generally not needed, and will only result -in a slower processing. -Don't use dithering except when needed, because it is slower. Else rely on -wmsetbg which will detect if dithering is needed and use it. -

--u -

-   will update the WorkspaceBack in the default database
-   domain file in ~/GNUstep/Defaults/WindowMaker, and let Window
-   Maker refresh the screen. Please note that this option only
-   works under Window Maker, and will have no effect under
-   other window managers, since it rely on Window Maker to
-   update the image after it reads the updated defaults
-   database.
-
--D -
-   <domain> is same as above, but will update the domain
-   <domain> instead of the default Window Maker domain.
-
--c -
-   <cpc> will set the color per channel to use. Only needed for
-   PseudoColor visuals. Window Maker will automatically pass
-   the value read from the Window Maker domain database.
-
-

-

-The following line is straight from your WindowMaker-0.15.x -~/GNUstep/Library/WindowMaker/menu file and should all be on one line. -

-"Images" OPEN_MENU BACKGROUNDS_DIR -~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t -

-This should give you an idea on how to add other entries for different image -directories. See the help info at the top of the -~/GNUstep/Library/WindowMaker/menu file for more information. -

-If you for some reason would like to set your background image with XV, for -instance to use an image format not yet supported by wmsetbg or to use one -of XV's special modes, edit the file ~/GNUstep/Library/WindowMaker/autostart -and insert the line -

-

-	xv -root -quit -maxpect ~/background.jpg
-
-or -
-	xv -root -quit -max ~/background.jpg
-
-you can also try variations of this to get different tiling and other effects -(where X is a number 1-9 I believe): -'xv -root -quit -rmodeX ~/background.jpg' -

-If you would like xv functionality in your menu, heres a nice little tip from -Alfredo: -

-Add the following line to your ~/GNUstep/Library/WindowMaker/menu file. (all on -one line) -

-"More Backgrounds" OPEN_MENU /home/whoever/backgrounds xv -root -maxpect -quit - -

3.9  Can I put pixmaps in my root menu and title bars?

-Put the pixmaps in a directory that is located in your pixmap path set -on ``Search Path Configuration'' Tab. -

-Then switch ``Appearance Preferences'' tab and select what widget you would -to adjust under the ``Texture'' tab. Click edit. Chose an image texture format -and then search for the texture. -

-You can use a similar procedure for any type of menu editing. -

-You can use png, gif, ppm, tiff, jpeg and xpm images interchangeably in -Window Maker if you have compiled in support for those formats. - -

3.10  How do I get my Minimize Icon to look like the triangle I see in screenshots?

-This involves a minor source tweak. Instructions are available at -http://largo.windowmaker.org/tips.php#titlebar_icons - -

3.11  Why does Netscape have a black and white Icon when I minimize it?

-Craig Maloney has this answer: -

-If you happen to --enable-openlook at compile time, -Netscape (and presumably other apps as well) believe -they're running under OLVWM, and minimise with -monochrome icons. Once compiled without OpenLook support, -Netscape minimizes with the correct icon. - -

3.12  How do I get superfluous bells and whistles working?

-Open WPrefs and go under the ``Other Configurations'' tab. Under -``Animations and Sound'', depress the Superfluous tab. -

-Alternatively, you may add -

-	Superfluous=YES;
-
-to your ~/GNUstep/Defaults/Windowmaker file. - - -

3.13  How do I get the classic NeXT(tm)-like style back?

-Open WPrefs and go under the ``Other Configurations'' tab. Under ''Title Bar Style'', -select the classic look. -

-Or you can add -

-	NewStyle=NO;
-
-to your ~/GNUstep/Defaults/Windowmaker file. - -

3.14  How do I get the window menu with only a two button mouse?

-In WPrefs, under ``Mouse Prefrences'', the mouse actions can be mapped -to a button of choice. -

-Jim Noble explains another way to do this: -

-If you've got a two-button mouse under some versions of Solaris x86, there's no way -(that I'm aware of) to emulate a 3-button mouse. The right button can be either MB2 -or MB3, but chording doesn't work. -

-

-	ApplicationMenuMouseButton = Left;
-
-and -
-	WindowListMouseButton = Right;
-
-in ~/GNUstep/Defaults/WindowMaker ought to allow the left button to activate the root -menu, and the right button (as MB2) to activate the windows menu. - -

3.15  How do I edit my root menu?

-You can now use WPrefs.app ( its appicon looks like a heart rate meter -with a GNUStep icon backgroud ). Note that this will replace any oldstyle -menus and there is no way to convert the oldstyle menu to the -new libproplist style menu. -

-For old style menus, edit the file -

-

-	~/GNUstep/Library/WindowMaker/menu
-
-and save your changes. Window Maker should detect the change and -automatically update. If you are having a problem getting it to reload the menu, -try -

-

-	touch menu
-
-to force the modification time into the future. - -

3.16  WPrefs disappeared from the Dock! How do I get it back?

-Pascal Hofstee offers this answer: -

-You should just start it from a terminal by supplying it's FULL path-name, -which is usually the following: -

-

-    /usr/local/GNUstep/Apps/WPrefs.app/WPrefs
-
- -At this point, a new appicon should be generated -which can be placed back into the Dock. - -

3.17  How can I define my own Icon for a program? (instead of the Icon the Application Supplies?)

-You can right click on the titlebar of the running app and choose the -"Attributes..." option, then click on the "Ignore client supplied icon" -checkbox. Click "Apply", "Save" and close the Attributes Editor. -

-Another method is to edit ~/GNUstep/Defaults/WMWindowAttributes by hand and -use the AlwaysUserIcon=YES; option for the app. For example: -

-xmcd = { Icon = "Radio.xpm"; -AlwaysUserIcon=Yes; -}; - -

3.18  How do I turn off the workspace titles between workspaces?

-In Window Maker 0.60.0, an option was added to turn this off. -

-By editing -

-	~/GNUstep/Defaults/WindowMaker
-
-insert or modify the key -

-

-	WorkspaceNameDisplayPosition = none;
-
-Other valid options for this include -center/top/bottom/topleft/topright/bottomleft/bottomright; - -

3.19  How do I add dynamic items to my root menu?

-A few programs are floating about, notably wkdemenu.pl that can produce -output from other menu styles. In order to get WindowMaker to launch the process everytime -you want to use the menu, use something like -

-

-	  ("External Menu", OPEN_MENU, "| bob.sh")
-
-in a proplist style menu. You can tell if you have a proplist style menu if you can -edit it with WPrefs. -

-You can do this directly in WPrefs by going to the menu editor, adding an "external menu", -and then clicking the "ask guru button" and filling in the process name. -

-Thanks to Igor P. Roboul - -

3.20  How do I remove or hide appicons?

-There are two options here, and you need to consider which one you prefer. -Read both of these before you decide. -

-First, if you do not want to use the clip or dock at all, you can launch wmaker with -with -

-

-	wmaker --no-clip --no-dock
-
-and then in -

-

-	~/GNUstep/Defaults/WMWindowAttributes
-
-add -

-

-  "*" = {NoAppIcon=Yes;};
-
-The problem with this method is if you use the dock for dockapps, it renders them -with out an appicon to write to. -An alternative method if you are willing to let the clip be on your desktop is -to right click on the clip > clip options > auto attract. -Double click the clip so that it is grayed and all appicons will be hidden. -Then you can hide the clip behind the dock so that it is out of your way. -This will allow appicons to work. - -

3.21  I disabled my titlebar. How can I get it back?

-Thanks to Jim Knoble for this answer -

-Set the focus to the window and then use the keystroke assigned to the -titlebar menu. If you're not sure what the keystroke is, you can find -out using WPrefs: in the keyboard section, select the `Open window -commands menu' item in the list of actions. The keystroke assigned to -it ought to appear in the `Shortcut' area'. -

-Typically it is Control-Esc or F10 in older version of WindowMaker. - -

3.22  How do I remove ALT+Mouse1 from the action Window Maker grabs for an application?

-Do [Button3Down] (for righthanded mouse users, [RightButtonDown]) on -the titlebar of the desired window. Choose ``Attributes...''. In the -Attributes inspector, choose ``Advanced Options''. Check ``Don't Bind -Mouse Clicks''. Apply or Save as desired, then close the Attributes -inspector. -

-The result is that [Alt+Button1] (which usually grabs a window to move -it around), [Alt+Button2] (which usually grabs a window to move it -around without changing the window stacking order), and [Alt+Button3] -(which usually resizes a window) all get passed to the application -instead of performing their usual action. - -

3.23  How do I configure the Dock and Clip to use less space on a small screen?

-This answer is current as of WindowMaker-0.61.1. -

-For the Clip, either: -

-(a) Disable the Clip from WPrefs (panel number 7), or
-(b) Hide the Clip under the Dock (for example, in the upper righth -and corner of the screen). -

-[b] is probably more useful on desktops with limited space, since you -can still set the Clip to attract app-icons so they don't clutter your -desktop. -

-For the Dock, try the following: -

-(1) Exit Window Maker.
-(2) Log in via a text console or using a different window manager.
-(3) Edit ~/GNUstep/Defaults/WMState using your favorite text editor -(for example, vi, emacs, or pico).
-(4) Find the `Applications' part of the `Dock' structure. Find the -item with `Position = "0,0";'. Change the `Command' item to the -command you want the top tile to launch. Change the `Name' item -to the "<instance>.<class>" name of the application you just made -the Command item start (for example, if `Command' is `"xedit"', -then `Name' should be `xedit.Xedit').
-(5) Save the WMState file.
-(6) Start an X session with Window Maker.
-(7) Check that the top tile starts the command you told it to. (You -should still also be able to move the Dock up and down using -[LeftDrag] on the top tile.)
-(8) You can configure the tile (including autolaunch and the -drop-command) in the regular manner ([RightButtonDown] on the -tile and choose `Settings...' from the resulting menu). - -

3.24  Why do dashes not work as menu entries?

-If you wish to use a - as part of a menu item name, you must enclose the name in double quotes. This will only apply if you're editing the ~/GNUstep/Defaults/WMRootMenu file manually, as it is handled properly within WPrefs. - -
-This will work:
-
-(ssh,
-("us-gw", EXEC, "Eterm -e ssh us-gw"),
-
-This will not:
-
-(ssh,
-(us-gw, EXEC, "Eterm -e ssh us-gw"),
-
- -

-Thanks to Martin Sillence for pointing this out.
- - -

Chapter 4: Using Window Maker

- - -


- -

4.1  How do add new icons to the Dock?

-First, launch an application. If an icon (henceforth called an ``appicon'') -appears in the bottom left corner of the screen, left click and drag it over -near the Dock. You will see a slightly opaque square of where the -Dock will place the appicon. When you do, release the mouse -button and the appicon should now be in the Dock. -

-Next, right click on the desktop to bring up the menu. -Select Workspace -> Save Session to make this permanent. - -

4.2  What is the difference between the Exit and Exit Session Option?

-Another answer from Dan Pascu: -

-"Exit will exit wmaker, but can leave other X apps running, provided that it was -not the last app launched in the .xinitrc (for instance, if you had exec wmaker, -followed by exec xterm, exiting wmaker using 'Exit' will leave the xterm -running so you could start another window manager, etc.) This is accomplished -because X will not shutdown unless all X apps are closed. -

-Exit session will exit wmaker, but will also -close all running apps, thus the X server will be closed -too." - -

4.3  How do I "dock" icons on the clip?

-Just drag icons near it like you would for the dock. If you are having a problem -docking icons, you should try moving the clip away from the dock. - -

4.4  Why do none of my key bindings (ie: Alt+#) work in Window Maker?

-If you are using XFree86, make sure scroll lock and numlock are off or no bindings -will work (XFree bug). You can try using the XFree86 Numlock Hack by editing the -line #undef NUMLOCK_HACK in $(WindowMaker)/src/wconfig.h and changing it to -#define NUMLOCK_HACK. -

-With the release of 0.18.0, this hack is now working and hopefully no -one will have to ask this question again. - -

4.5  How do I rename workspaces?

-Right click to bring up the root menu. Go under -the Workspaces menu item and hold the control key down. -Next, click on the workspace entry you -would like to rename, type the name, and -press enter. - -

4.6  How can I resize a window if the window is larger than my current desktop?

-David Reviejo best summed up this answer: -

-"Maybe you know: -Alt+Left click and drag -to move the window. -

-Try this: -Alt+Right click and drag -to resize (by moving the nearest window corner) -

-Another move/resize tip: while you are moving or resizing a window, you -can change the move/resize mode by pressing the SHIFT key." - -

4.7  How do I "undock" appicons?

-If the program is not running, just drag the icon to the middle of your -desktop and watch it disappear. If the program is running, hold down Meta and drag the icon off the dock. - -

4.8  I docked an application but when I run it the button is permanently shaded and I can't run new instances.

-You probably docked the application with dockit. To fix it -remove the icon and use the "Emulate Application Icon" checkbox in -the Advanced Options section of the Attributes panel for the window. -Then restart the application to get the application icon you -must use to dock the application. -It can also mean that you did something you shouldn't, which is -changing the program that is ran from the docked icon. For example, -if you docked rxvt you must NOT change it to xterm, for example. -You also can't do any changes that might alter the contents of -the WM_CLASS hint for the window, like the -name parameter for -xterm, rxvt and other programs. - -

4.9  When I run wmaker it complains about not being able to load any fonts.

-Check if the locale settings are correct. If you're not sure what to -do, unset the LANG environment variable before running wmaker. -

-TODO: give complete explanation - -

4.10  When I set the root background with wmsetbg by hand it works, but when I do that from the configuration files it doesnt!

-If you set the root background with wmsetbg by hand, it will obviously -find the image, since you have explicitly specified it by hand. But if you -simply put it in -
-	~/GNUstep/Defaults/WindowMaker
-
-in some option like WorkspaceBack, it will not find the image because Window Maker can't read -your mind to figure where you put the image. So, to fix it, you have to -either place the full path for the image in the texture specification or put -the path for the directory you put your background images in the PixmapPath -option. You can also put all your background images in places like -
-	~/GNUstep/Library/WindowMaker/Backgrounds
-
-or -
-	/usr/local/share/WindowMaker/Backgrounds
-
-David Green says that another possibility is that you have two copies of the worker programs: -wmsetbg (and possibly setstyle) and the wrong one is in the path first. - -

4.11  What is the purpose of being able to draw a box on the root menu with a left click?

-Its purpose is two-fold. -

-First, it is used to select multiple windows on a desktop at a time. When these -windows are selected, they can be moved around on your desktop and will retain -their relative positions. -

-Second, once selected, they are persistent through desktop changes. So it -is useful for moving large numbers of windows between desktops. -

-You can also select windows with shift+click.
- - -

Chapter 5: Application Compatibility

- - -


- -

5.1  How do I assign gimp an appicon?

-You can enter the following line in WMWindowAttributes: -

-

-	gimp={Icon="gimp.tiff";};
-
-Window Maker now can assign Icons from within the windowmanager. To do so, right -click on the title bar of an app, click on the droplist->Icon and WorkSpace entry, enter the icon file name ( -make sure this is in your pixmap path ), click update, apply, and then save. - -

5.2  How do I get an appicon for XEmacs 20.3+?

-Thanks to Michael Hafner for this answer. -

-You don't need to patch the XEmacs code, just run -

-

-	./configure --with-session=yes (in addition to any other options you use)
-
-in your XEmacs 20.3+ sourcedir and rebuild it. Then XEmacs shows an appicon -when running and you can easily dock it. - -

5.3  Where do I get the nifty clock program I always see on people's desktops?

-It's called asclock. Once included with Window Maker, it now is available -at ftp://ftp.windowmaker.org/pub/contrib/srcs/apps/asclock.tgz -

-asclock was written by Beat Christen and used to have its own website, which -seems to have disappeared. However, references to it exist all over -the place, and can be found by searching Google. -Beat Christen wrote this awhile back: -

-"Please note that the asclock-gtk version 2.0 beta 4 -(asclock-gtk-2.0b4.tar.gz) does not have the -d switch yet and that the -asclock-xlib-2.1b2.tar.gz does not have the shaped asclock builtin." -

-A wonderful alternative to asclock is Jim Knoble's -wmclock. -It duplicates asclock and adds some much needed improvements. - -

5.4  How do you dock asclock?

-It is highly recommended that you use the asclock mentioned previously in question 5.3. The asclock that is typically included in AfterStep will not properly dock with Window Maker. At this point, there are at least four or five different versions of asclock floating about. -

-For older versions such as asclock-classic , use a command line similar to -

-

-	asclock -shape -iconic -12 &
-
-For newer versions such as asclock-xlib 2.0 and asclock-gtk use -

-

-	asclock -shape -iconic -12 -d &
-
-Drag it from the top right corner of the clock to the dock. Right click on the icon and -select autolaunch. -

-In order to make asclock launch every time you start Window Maker, right click on the -outer edge of the border for asclock until a menu appears. Select the "Settings" item -and then select the "Lauch this Program Automatically" option then select the "OK" -button. -

-If you get an error such as sh: /dev/console: Permission denied, login as root, cd to /dev/ and run -

-	./MAKEDEV console
-
- -

5.5  Where can I get more dockapps?

-The Window Maker team got tired of people E-mailing constantly asking where the websites for obscure dockapps disappeared to. So we've created the ultimate dockapps community website. -Visit dockapps.net for the latest, up-to-date links, information, and download for Window Maker and related dockapps. -

-Another large index of dockapp links is available at http://www.bensinclair.com/dockapp . The downside to this is that they're only links, so if someone stops maintaining a dockapp, or their web hosting provider cuts them off, you won't be able to get to it. Still, Ben Sinclair's site was the first big "dockapp warehouse" site, so we give credit where credit is due. :) - - -

5.6  How do I get an appicon for rxvt so I can dock it?

-The default rxvt that comes with most distributions is an outdated version of rxvt. The -newest development version of rxvt is availible from -ftp://ftp.math.fu-berlin.de/pub/rxvt/devel/. As of the time of this writing, the version is -2.4.7 and it natively produces an appicon without a patch. -

-John Eikenberry has also created an rpm which is available from -ftp://ftp.coe.uga.edu/users/jae/windowmaker - -

5.7  How do I allow Alt+# to work in an rxvt/xterm session?

-First, Launch a unique instance of rxvt or xterm. This can be done using the -N -option of rxvt. -

-rxvt -name foo -e irc -

-Then, go to the Attributes menu ( right click on titlebar -> Attributes) / Advanced -Options and enable "Don't Bind Keyboard shortcuts". Click Save and Apply and you -should be able to run your session without the shortcuts. - -

5.8  How do I get different icons for different rxvt's and xterms?

-The hint is the -name option for xterm or rxvt. This will allow you to change the exact -WM_CLASS in the attributes menu and assign a unique icon. -

-

-	rxvt -name foo -title Testing
-
-Then Right click on the title bar to bring up the attributes menu, and you will be able -to edit the properties for foo.XTerm (ie: assign a unique icon). - -

5.9  How do I launch multiple instances of XTerm from one appicon?

-Thanks for the update by Sara C. Pickett: -

-The easiest way to accomplish this is to dock XTerm as normal. Then -Go to the Attributes menu -> Application Specific and select no application icon -for XTerm. -

-Then right-click on the docked appicon and select settings. Change the -Application Path with arguments section to -

-

-	'/bin/sh -c "exec xterm &"'
-
- -

5.10  Window Maker breaks scilab.

-If you refer to the problem of the "graphics" window of scilab not showing -up in Window Maker, this is caused by a bug in scilab. You can see the -cause of the problem by yourself, by running xprop on the graphic window: -WM_NORMAL_HINTS(WM_SIZE_HINTS): -
-                user specified location: 136679205, 1074468360
-                user specified size: 400 by 300
-                program specified minimum size: 400 by 300
-
-Now, when scilab opens it's window, Window Maker nicely does exactly what it -is told, that is, map the window at position 136679205, 1074468360 which -obviously falls outside the screen no matter how big is your monitor ;) -

-Meanwhile, the workaround for this is to open the window list menu -(click on the root window with the middle mouse button) and click -on the ScilabGraphic entry. The window should be brought to your -reach. Then, open the window commands menu (right click on window's -titlebar) and open the Attributes panel. Go to the "Advanced Options" -section, check the "Keep inside screen" option and save. -

-If you can recompile Scilab, this came from a Scilab developer: -

-replace -

- size_hints.flags = USPosition | USSize | PMinSize;
-
-with -
- size_hints.flags = /** USPosition |**/ USSize | PMinSize;
-
-in routines/xsci/jpc_SGraph.c - -

5.11  How do I get a transparent xterm/rxvt/xconsole?

-You need a terminal emulator that has support for transparency, like -Eterm, the latest rxvt, wterm, aterm or gnome-terminal. -

-You can find these programs on http://www.freshmeat.net - -

5.12  How do I dock an arbitrary console application like mutt?

-There are two key things to do if you want a program (such as mutt) to -be able to start in a terminal window from the Dock or the Clip: -

-(1) Make the terminal window start the program you want to run -instead of a shell. Both xterm and rxvt (and its descendants) -are capable of doing this. For example: -

-

-        xterm -e mutt
-        rxvt -e mutt
-	gnome-terminal -e mutt
-
-(2) Convince Window Maker that the resulting terminal window is not a -regular terminal window, but rather some other program instance. -Both xterm and rxvt are also capable of doing this. Make sure -that -e is the last command option. For example: -

-

-        xterm -name muttTerm -e mutt 
-        rxvt -name muttTerm -e mutt
-	gnome-terminal --name=muttTerm -e mutt
-
-This causes the instance of the terminal window that you start to -have an <instance-name>.<class-name> pair of `muttTerm.XTerm' -(usually rxvt's class is also XTerm; don't know about its -descendants, such as wterm and Eterm). -

-Do not use spaces or periods in the instance name. For example, -these are BAD instance names: -

-

-       xterm -name mutt.term -e mutt 
-       rxvt -name 'mutt term' -e mutt
-
-Window Maker will not like you if you use them. -

-With a different instance name, you can now do the following: -

-- Dock the resulting appicon in the dock, or clip it to the Clip. -

-- Assign a different icon and different window properties to -the `special' terminal window running your program (make -sure you choose the exact `muttTerm.XTerm' window -specification in the Attributes editor). -

-- Specify different resource settings for muttTerm in your -~/.Xdefaults file (e.g., different default foreground and -background colors). -

-There are a few other non-key things you can do to complete the process: -

-(3) Tell the terminal window to display a more meaningful or prettier -title and icon title than what gets put there due to `-e'. For -example: -

-

-        rxvt -title 'Mail (mutt)' -n 'Mail' -name muttTerm -e mutt 
-
-Xterm works the same way. -

-(4) These are getting to be a lot of command-line options. Make a -wrapper script to use so you don't have to remember them all: -

-

-        mkdir ~/bin
-        cat >~/bin/muttTerm <<EOF
-        #!/bin/sh
-        rxvt -title 'Mail (mutt)' -n 'Mail' -name muttTerm -e mutt
-        EOF
-        chmod +x ~/bin/muttTerm
-
-Now you can do the same thing as that really long command in [3] -above using the simple: -

-

-        ~/bin/muttTerm
-
-If you put ~/bin in your PATH, you can use the even simpler: -

-

-        muttTerm
-
-(5) If you want to be sly, you can change the docked muttTerm to use -your new wrapper script instead of the really long command; then, -when you want to change anything in the really long command -except for the instance name, you can just change the wrapper -script, and it's done. Here's the procedure: -

-(a) [RightButtonDown] on the muttTerm dock tile -

-(b) Choose `Settings...' -

-(c) Replace the text in the `Application path and arguments' -field with the following: -

-

-              muttTerm
-
-(d) Choose `OK' -

-Note that Window Maker needs to know that ~/bin is on your PATH -for this to work; you may need to exit your X session and start -it again. -

-To change the instance name of the terminal window (e.g., from -`muttTerm' to `mailTerm' or `blah' or -`terminalWindowRunningMutt'), you need to do the following -

-(e) Change your muttTerm script -(f) Undock your old muttTerm -

-(g) Run your muttTerm script -

-(h) Dock the resulting terminal window -

-(i) Do the stuff in [a] through [d] above again. -

-Good luck. -

-

-Thanks to Jim Knoble for this answer. - -

5.13  How do I get an appicon for Netscape?

-If you are not using one of the latest Navigators, you can -

-1) Right click on the title bar -

-2) Click ``Attributes'' -

-3) Select ``Advanced Options'' from the pull down menu -

-4) Select ``Emulate Application Icon'' -

-5) Click Save -

-and older netscapes should now produce an application icon. -

-If you are using a newer rpm from Redhat Linux, try running -

-	grep irix `which netscape`
-
-This seems to have been introduced in their 4.7 update. Comment out -irix-session management restart netscape. Alternatively, you may run -either -

-

-	/usr/lib/netscape/netscape-communicator
-
-or -
-	/usr/lib/netscape/netscape-navigator
-
-depending on which rpms you have installed. - -

5.14  How can I dock an application from a remote machine using ssh?

-This answer asumes that you have already set up RSA -authentication using ``ssh-keygen''. To be able to launch applications -
- without being prompted for the password, you can use ``ssh-agent'' and
-
-``ssh-add'' as follows. -

-With the addition to ~/.xsession of -

-

-	eval `ssh-agent`
-	ssh-add /dev/null
-
-just before -
-	exec wmaker
-
-Then ssh will no longer prompt for the RSA-key passphrase. -The ``/dev/null'' argument to ``ssh-add'' causes it to use the -``ssh-askpass'' graphical dialog. -

-The following procedure shows how to dock a remote xterm -using ``ssh''. This procedure should work well for any well-behaved -X11 application, including most Dock applets. -

-1) From a terminal window, start an ssh session with ``xterm'' as the command: -

-

-        ssh -a -C -X remote.example.net "xterm -name blah"
-
-(The '-a' switch turns off agent forwarding, for security reasins and -the '-X' switch turns on X11 forwarding, required for the remote xterm -to run. The -C option turns on compression, very -useful for things such as X) -

-2) When the remote xterm appears, find the appicon. If it's not -already in the Clip, drag it there. -

-3) [RightButtonDown] on the appicon and choose 'Settings...' from -the menu. Note that the 'Application path and arguments' field -contains only: -

-

-        xterm -name blah
-
-Change that to: -

-

-        ssh -a -C -X remote.example.net "xterm -name blah"
-
-The backslashes and double quotes are critical. Change the -contents of 'Command for files dropped with DND' in the same -fashion, putting '%d' inside the double quotes. -

-If you wish, change the icon so that you can recognize the tile -easily. Press 'OK'. -

-4) [RightButtonDown] on the appicon again and choose 'Keep Icon(s)'. -

-5) Exit the remote xterm. The new Clip tile should remain, with the -three dots at the lower lefthand corner to indicate the app is no -longer running. -

-6) [DoubleClick] on the new Clip tile. You should get the remote -xterm again after a short while, depending on the speed of your -network and of the remote machine. -

-

-7) You may either leave the remote application in the Clip, or drag it -to the Dock. -

-[NOTE: You should be wary of docking -something like ``wminet'' or ``wmnet'' in the manner, since you may -create a feedback loop by causing additional network traffic, which -the program monitors, causing yet more network traffic... ] - -

5.15  How do you make an omnipresent window not take focus whenever switching workspaces?

-Typically, on applications like xmms, they are set to omnipresent so -they will appear on every workspace. This causes the app to often get -the focus unintentionally when switching workspaces. -

-To remedy this, -

-1) Bring up the ``Attributes'' menu. You can do this by [Right Clicking] -on the title bar and seletcing ``Attributes''. Alternatively, you may -hit 'Control+ESC' at the same time to bring up the title bar menu on apps -that do not have a title bar. -

-2) In the ``Window Attributes'' menu, select ``Skip Window List'' -

-3) Push ``Save'' and then hit the close dialog window icon in the upper -right corner of the window frame. -

-Now the window will not take focus when switching workspaces. -

-[NOTE: this will also make the window non-focusable via keyboard window -switching. The only way to shift focus to the window is via the mouse. ]
- - -

Chapter 6: Themes and Dockapps

- - -


- -

6.1  What exactly are themes?

-Themes are a great aspect of Window Maker allowing a user to simply -save the entire 'look' of their desktop in an archive to distribute freely among -friends, fellow users and/or the whole net in general. :) -

-See the theme-HOWTO for an in-depth walk-through on making a Theme archive. - -

6.2  How do I install a theme?

-This should be as simple as untarring the Theme.tar.gz into one of two -places. You can untar it to the global /usr/local/share/WindowMaker/* directory, -and have it be accessable to all users, or you can untar it to your own -~/GNUstep/Library/WindowMaker/ directory for your own personal use. -

-Use your favorite variation of the following: -

-

-	gzip -dc "Theme.tar.gz" | tar xvf -
-
-Note that directory may differ on different systems - -

6.3  Why do my themes not load the background?

-Likely you have not compiled Window Maker with support for the background -image format, usually JPEG. -

-You can check this by the following command -

-

-	ldd `which wmaker`
-
-If libjpeg is not listed, you will need to install libjpeg that is available -from ftp.windowmaker.org - -

6.4  How do I make a Theme?

-Please see the theme-HOWTO for details on making both new and old style themes (and the differences -between the two), here is a short summary on making old style themes. -Also, read the README.themes file included with the Window Maker -distribution in the WindowMaker/ directory. -

-In this walk-through when I use WindowMaker/, it can refer to the global -/usr/local/share/WindowMaker/ directory or the users own -~/GNUstep/Library/WindowMaker/ directory. -

-To make a Theme.tar.gz, these are the steps I take: -

-1. Optionally create a README for your theme in WindowMaker/, call it -something like "ThemeName.txt" -

-2. Use the following command to add the Theme files to your .tar file. -

-

-     tar cvf ThemeName.tar ThemeName.txt Themes/ThemeName 
-     Backgrounds/ThemeNameBG.jpg Backgrounds/ThemeNameTile.xpm
-
-You can add as many more images as you need from the -appropriate directories under WindowMaker/ following that general -idea. You can even optionally add an IconSets/ThemeName.iconset and -it's associated icons to your theme in the same manner. This should -be stated in your README if you decide to include these. -

-3. Then gzip your .tar file to make your ThemeName.tar.gz file with this command: -

-

-    gzip -9 ThemeName.tar
-
-4. Now give it to your friends! - -

6.5  I untarred a theme in ~/GNUstep/Library/WindowMaker like the README says,but it doesnt show up in the menu!

-Make sure the OPEN_MENU command for the Themes entry in your menu has -the path for your personal themes directory included in it. To be sure, -add -
-	#define USER_THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes
-
-in your wmmacros file.
- - -

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.
- - -

Chapter 8: Troubleshooting Tips

-No questions are currently available for this chapter. - -

Chapter 9: Programming for Window Maker

- - -


- -

9.1  How do I get a normal X application to produce an appicon?

-Another insightful answer from who else but Dan Pascu. -

-"You must define the WM_CLASS (XSetClassHint()) and the CLIENT_LEADER or -XWMHints.window_group properties, which are automatically set by most -applications that use Xt (Motif, Athena ...), but if you use plain Xlib you must set them -by hand. -

-Also you must make a call to XSetCommand(dpy, leader, argv, argc); -

-Take a look at WindowMaker-0.12.3/test/test.c that is an example for writing such an -app (which also have an app menu). - -

9.2  How do I get my tcl/tk application to produce an appicon?

-Oliver Graf writes: -

-The main window (normally this is called '.' [dot] in tk) should use the following lines: -

-

-	wm command . [concat $argv0 $argv]
-	wm group . .
-
-All child windows attached to the same app-icon should use: -

-

-	toplevel .child
-	wm group .child .
-
-where .child should be replaced by the actual window path. -

-Replace '.' with the actual main-window path and 'wm group .child .' should be -added for each 'toplevel .child' call. - -

9.3  What is WINGs?

-WINGs Is Not GNUstep. ;) -

-It is the widget library written for the widgets in Window Maker.

-It is currently under heavy development but several people have started -writing applications in it. Its goal is to emulate the NeXT(tm)-style widgets. -

-http://www.ozemail.com.au/~crn/wm/wings.html is the closest thing to an -information center about WINGs. You can find out more information in our -WINGs development section. - -

9.4  Where can I get more information about WINGs?

-Nic Berstein has created a WINGs development list. -

-The purpose of this list is to provide a forum for support, ideas, -suggestions, bug reports etc. for the WINGs widget set library. -

-To subscribe to this list, send a message with the word ``subscribe'' in -the _BODY_ of the message to: <wings-request@postilion.org>.
- - -


-
-Top level of FAQ -
diff --git a/docs/FAQ.rst b/docs/FAQ.rst new file mode 100644 index 0000000..5f3b1bb --- /dev/null +++ b/docs/FAQ.rst @@ -0,0 +1,2249 @@ +--- +layout: default +title: FAQ +--- + + +FAQ +=== + +Have questions about Window Maker? If so, look no further. Below is our +collection of Frequently Asked Questions and their corresponding answers. Many +of these have been adapted from the `original FAQ +`_ +by Chris Green. Questions are routinely taken and added in from the mailing +lists and IRC forums. + +.. sectnum:: +.. contents:: Table of Contents + :backlinks: none + +---- + +Introduction to Window Maker +---------------------------- + +What is Window Maker? +..................... + +Window Maker is an X11 window manager originally designed to provide +integration support for the GNUstep Desktop Environment. In every way +possible, it reproduces the elegant look and feel of the NEXTSTEP[tm] user +interface. It is fast, feature rich, easy to configure, and easy to use. It is +also free software and part of the GNU Project, with contributions being made +by programmers from around the world + +Where can I get Window Maker? +............................. + +Window Maker can be obtained from the official website, http://windowmaker.org/, +or from various mirror sites listed at http://windowmaker.org/mirrors.html + +Where are the mailing lists and archives? +......................................... + +All information regarding the Window Maker +mailing lists can be found at http://windowmaker.org/lists.html + +Where can I find more documentation? +.................................... + +Additional documentation can be found in the Window Maker source distribution, +or at http://windowmaker.org/documentation.html + +What is an appicon? +................... + +An appicon is the icon produced by an application that initially is in the +bottom left corner of the screen while an application is running. For an +example, run xterm and notice the icon in the corner (make sure that you use +xterm and not a default rxvt when testing, because many versions of rxvt do not +properly set their window attributes). + +.. TODO (fix link) + +For a more indepth discussion of how an appicon relates to Window Maker, see +question 1.10 + +How can I get a question added to the FAQ? +.......................................... + +For now, the best method is to E-mail your question to faq@windowmaker.org. We +are working on a web-based submission form to our FAQ system, which will enable +users to submit questions for review. + +How do I report bugs? +..................... + +.. TODO link to the bugform? +.. TODO wrong url for bugtracker (we don;t have any!) + +You can look at the BUGFORM file in the source distribution of Window Maker. +Alternatively, you can use the Window Maker Bug Tracker at +http://windowmaker.org/cgi-bin/bugs + +Is there an anomymous cvs server? +................................. + +Yes there is. To check out from cvs, first + +.. code:: console + :class: highlight + + export CVSROOT=":pserver:anoncvs@cvs.windowmaker.org:/cvsroot" + cvs login + +There is no password, so simply hit enter when prompted. + +Then issue the following command ("wm" is the name of the module): + +.. code:: console + :class: highlight + + cvs -z3 checkout -d WindowMaker wm + +To update your source tree, cd to the WindowMaker directory and type + +.. code:: console + :class: highlight + + cvs -z3 update -dP + +inside the WindowMaker directory. + +For more detailed CVS instructions, please visit +http://windowmaker.org/development-cvs.html + +Where can I find the Window Maker IRC channel? +.............................................. + +.. TODO change irc server to freenode + +The official Window Maker IRC channel can be accessed by connecting to +irc.windowmaker.org on port 6667, and joining #WindowMaker + +What is the difference between appicons, mini-windows, and minimized applications? +.................................................................................. + +Thanks to Jim Knoble for this answer: + +Many window managers are capable of turning large windows into smaller *icons* +which represent the window yet don't take as much screen real estate. We're +all familiar with that model. + +Window Maker has two kinds of these icons. One kind is created when an +application - technically, a window group - is started. It represents the +entire application and is called an *appicon*. Such icons are square tiles +containing only the picture which represents the application; they have no +titles. + +The second kind of icon in Window Maker is created when a particular window +(possibly one belonging to an application displaying more than one window) is +*miniaturized* (which is the same action as *minimizing* or *iconifying* in +other window management models) using the miniaturization button on the +window's titlebar. These miniaturized windows are called *miniwindows* and can +normally be distinguished from appicons by their small titlebar at the top of +the tile. + +How do I make sense of Window Maker's version number scheme? +............................................................ + +The numbering scheme is relatively simple, and is in the format of three +numbers separated by dots. The first number is the "major" revision number. +The second is the "minor" revision number. And finally, the third is the "patch +level" number. + +To put this all into perspective, let's examine the version number "0.65.1". +This number signifies that there has not been a major revision release, that +its minor revision is newer than the previous one (0.64.x), and that it's on +the first patch level after the 0.65.0 release. This still might be confusing, +so go away with this in mind: numbers ending in .0 tend to be new feature +releases but less stable than .1, .2, .3 patch level releases, the latter of +which are used to fix bugs. + +It is generally safe to go with the highest numbered patch release. + +---- + + +Installing Window Maker +----------------------- + +Why are no icons showing up after installing Window Maker? +.......................................................... + +As of WindowMaker version 0.15.0, the default setup includes .tiff icons which +require you to have compiled Window Maker with libtiff support. For assistance +on compiling libtiff, see the following question. + +How do I make Window Maker link against libtiff? +................................................ + +Many UNIX operating systems have difficulty finding third party libraries by +default. Unfortunately, there are too many of these to include instructions for +them all. + +In general, you will want to ensure the latest version of libtiff is installed +(see ftp://www.libtiff.org). Typically on non-Linux systems, libtiff will be +located under /usr/local, with includes and libs in those respective +sub-directories. + + +Often, it will be necessary to add /usr/local/lib to the system's +LD_LIBRARY_PATH environment variable (especially so on Solaris, but see 'man +ld' for details on your platform). Furthermore, it is possible to supply +special flags to the configure script to help it find where the libraries are. +An example is given below: + +.. code:: console + :class: highlight + + ./configure --with-libs-from="-L/usr/local/lib" \ + --with-incs-from="-I/usr/local/include" + +Also, you will want to make sure you're using GNU make (gmake) for the Window +Maker compile. + +How do I switch CDE's window manager to use WindowMaker? +........................................................ + +Method 1: +''''''''' + +Peter Ilberg gives us this answer: + +Install WM wherever you want it, mine is in /opt/WindowMaker-0.16.0 (eg. use +./configure --prefix=/opt/WindowMaker-0.16.0). Run the install script +wmaker.inst in your home directory. + +Add the following two lines to .dtprofile in your home directory: + +.. code:: console + :class: highlight + + SESSIONTYPE=xdm; export SESSIONTYPE + PATH=:/usr/contrib/bin/X11:$PATH:.; export PATH + +This tells CDE to go looking for an .xinitrc/.xsession instead of using the +default environment. + +Make your .xsession/.xinitrc executable (VERY IMPORTANT, wmaker.inst did NOT do +this automatically for me) using eg. + +.. code:: console + :class: highlight + + chmod ugo+x .xsession + +Your .xsession/.xinitrc should look something like this: + +.. code:: bash + :class: highlight + + #!/bin/sh + + + exec wmaker + +Things to try if it doesn't work: (somewhat fuzzy and random) + +This should do it although I did have problems sometimes initially which I +fixed by randomly trying absolute pathes for wmaker in .xsession/.xinitrc +and/or making the dtprofile/.xinitrc/etc executable. It helps logging in on the +console (select from CDE login screen) and start X manually using "X". If it +works that way it should work when logging into the CDE environment. Remember +to Check your paths! + +If it doesn't work, you can also substitute some other window manager for +wmaker in the .xinitrc and see if that works. If it does you know at least that +.xinitrc is getting called/executed, so your WM path is wrong or not set. + +Method 2: +''''''''' + +Thomas Hanselman gave this alternative answer (via Peter Ilberg): + +Build and install WM wherever you want, as described in Method 1. You can +install and run WM just fine from your home directory. That's what I'm doing, +since I don't have root access at work :(. Then, in your Xdefaults file in your +home directory, add the following line: + +.. code:: console + :class: highlight + + Dtsession*wmStartupCommand: + +Then, log out, and log back in, and, unless I've forgotten a step (or this is a +custom Nortel thing), you should be in Window Maker heaven ;). + +Difference between the methods: (according to Thomas) +''''''''''''''''''''''''''''''''''''''''''''''''''''' + +I've been told that the difference between setting the resource and Peter's +method is that if you override the window manager with the resouce, you still +get the CDE resources read into the resource database (so you still have your +color settings & such from CDE), whereas with Peter's, the CDE resource +don't get read into the database. I don't know if this is true or not, however. +Also, another thing to note with Window Maker and HP-UX 10.20 - if you select +"Exit Session" from the WM root menu, WindowMaker and all of your applications +are killed, but you may not be logged out. Again, this might be an artifact +from my work environment, or the way I start Window Maker. + +Owen Stenseth adds: +''''''''''''''''''' + +When using this method it is possible to exit Window Maker cleanly by using the +dtaction command. I use the following in my Window Maker menu: + +.. code:: + :class: highlight + + "Exit Session" EXEC dtaction ExitSession + +The only problem I have at the moment is I seem to get multiple copies of +asclock running when I log in again. + +Do I need to rerun wmaker.inst with every new version of Window Maker? +...................................................................... + +Dan Pascu reveals the answer: + +If this is necessary, it will be listed in the NEWS file included in the source +distribution. Since 0.15.x, the domain files have been changed in such a way +that re-running wmaker.inst is redundant. The user config files are by default +merged in with the global ones normally located in +/usr/local/share/WindowMaker/Defaults. So, even if new options are added, they +should be automatically added to the environment. + +Why am I only getting a root menu with xterm and exit items? +............................................................ + +Most likely, the problem is that Window Maker can not find a copy of the C pre +processor in a directory such as /lib. The file /lib/cpp should be a symbolic +link to whatever C compiler's cpp you are using. For example: + +.. code:: shell-session + :class: highlight + + $ file `which cpp` + /usr/bin/cpp link to /usr/bin/cpp-2.95 + +Another possibility is your /usr/X11/lib/X11/xinit/xinitrc is a broken symlink. +Either create a new symlink, or do something like: + +.. code:: shell-session + :class: highlight + + $ cp /usr/X11/lib/X11/xinit/xinitrc.fvwm2 \ + /usr/X11/lib/X11/xinit/xinitrc.wmaker + $ ln -sf /usr/X11/lib/X11/xinit/xinitrc.wmaker \ + /usr/X11/lib/X11/xinit/xinitrc + +then just edit /usr/X11/lib/X11/xinit/xinitrc and replace the exec of 'fvwm2' +by '/usr/local/bin/wmaker' (should be somewhere towards the end of the file, +most probably the very last line). + +Thanks to Tomas Szepe for the second part. + +How do I get Window Maker to use more than 16 colors on my SGI Indy Workstation? +................................................................................ + +Thanks to Peter H. Choufor this answer: + +By default, the SGI X Server uses 8-bit Pseudocolor mode. To change it, edit +(as root) the file /usr/lib/X11/xdm/Xservers. Change it to read: + +.. code:: + :class: highlight + + :0 secure /usr/bin/X11/X -bs -c -class TrueColor -depth 24 + +Using WindowMaker with Solaris 2.6 CDE +...................................... + +Thanks to Rob Funk for this answer: + +Assuming you installed Window Maker according to the README's that come with +the source, all you need to run Window Maker on a Solaris box is an entry in +the .xinitrc. This should work for any version. When you run wmaker.inst the +first time, allow it to make changes to the .xinitrc file. Mine looks like +this: + +.. code:: sh + :class: highlight + + #!/bin/sh + # Window Maker Default .xinitrc + exec /usr/local/bin/wmaker + +Believe it or not, that's all that it takes. This, in fact, runs Window Maker +instead of OpenWindows. In order to choose Window Maker, you simply choose +"OpenWindows Desktop" in the "Options - Session" Menus And Choose "CDE Desktop" +if you want CDE. + +The color schemes and settings for Window Maker are seperate from CDE. I tested +on a SPARC 10, but I assume Solaris x86 would work also. + +(webmaster note: It works fine on Solaris x86) + +How do I install Window Maker on a Solaris box? +............................................... + +Here are some hints from John Kemp: + +Installing Window Maker on a Solaris 2.6 box might require one or two little +hints. Here you are (this was on a system running xdm by the way, but similar +suggestions apply otherwise): + +#. /usr/openwin/lib/X11/xdm/Xservers like this: + + .. code:: + :class: highlight + + :0 local /usr/openwin/bin/X -dev /dev/fb defdepth 24 defclass TrueColor + +#. Turn off shm in the WindowMaker configure: + + .. code:: shell-session + :class: highlight + + $ ./configure --disable-shm + +#. might have to modify your LD_LIBRARY_PATH:, or make "wmaker" a script that + does it for you (mv wmaker wmaker.exe): + + .. code:: sh + :class: highlight + + LD_LIBRARY_PATH=/usr/local/lib:/usr/local/X11/lib:/usr/lib:/usr/openwin/lib + export LD_LIBRARY_PATH + /usr/local/bin/wmaker.exe $* + +The real key is the "--disable-shm". + +(webmaster note: Window Maker should work fine with SHM enabled, at least it +does under Solaris 8. Try the default first, and then use this if you run into +problems with it) + +How do I fix an error such as libwraster.so.1: cannot open shared object file? +.............................................................................. + +If you have an error when running Window Maker such as + +.. code:: shell-session + :class: highlight + + libwraster.so.1: cannot open shared object file + +These are the instructions for Linux. + +First, make sure that /usr/local/lib ( or whatever directory you installed +Window Maker to) is listed in your /etc/ld.so.conf ). You need to run ldconfig +so the new shared libraries will be loaded. After running ldconfig as root, the +linker should properly load the libraries. You need to run this every time you +update Window Maker. + +Thanks to Joseph Czapiga, the BSD procedure for adding shared library +directories is: + +.. code:: shell-session + :class: highlight + + ldconfig -m /usr/local/lib (m means merge) + +How do I fix an error dealing with aclocal: configure.in: 15: macro 'AM_PROG_LIBTOOL' not found in library? +........................................................................................................... + +You need to install libtool. It also must be a libtool different from version +1.2b ( shipped with redhat 5.2 ). You can get libtool from ftp.gnu.org/pub/gnu +Make sure the autoconf and automake versions you have installed are at least: + +- autoconf 2.12 +- automake 1.3 +- libtool 1.2 + +From Blaine Horrocks: + +*You can also work around this problem on RedHat5.2 by copying the distributed +aclocal.m4 to acinclude.m4 before running configure for the first time. +Configure works fine and doing the make succeeds.* + +When I run wmaker, it quits complaining about '__register_frame_info' +..................................................................... + +This is related to having compiled Window Maker on a system whose libraries +were compiled by egcs or gcc 2.8.0, and then using the binaries on a system +whose libraries were compiled by gcc 2.7.2.x + +Try compiling Window Maker with the newer gcc or recompile your system +libraries with the older gcc. It's generally a bad idea to mix and match. + +How do I make libjpeg link against Window Maker? +................................................ + +The newest jpeg libs are availible at http://www.ijg.org + +How many of you have seen that darned "lib reports 62 caller expects 61" type +of error? Here are some answers that will possibly help you out. + +First things first. As always, make sure there are not older copies of libjpeg +floating around on your system. ]Some distributions by default come with an old +libjpeg.so.1 in the /usr/X11R6/lib/ directory. This can simply be deleted. Or +if something complains after you delete it, recompile it if you can to look for +the new lib in the right place, or if that fails, as a last resort, you might +add a symlink to the new lib like so: + +.. code:: shell-session + :class: highlight + + ln -s /usr/local/lib/libjpeg.so.6.0.2 libjpeg.so.1 + +Note that you should use your system's version of ldconfig to properly manage +your library cache (or other appropriate mechanism). + +On Linux, this would mean having /usr/local/lib in /etc/ld.so.conf and then +running ldconfig. + +Now on to the error. This is basically caused by your application having been +compiled to dynamically use the libjpeg.so shared library. When you install a +new lib and then try to run your program again, it expects the lib it was +compiled against, in this case the older libjpeg.so.6.0.1 and instead finds +libjpeg.so.6.0.2 and reports the error. + +The fix is actually rather simple. Along with adding a libjpeg.so.6 symlink +like so (just in case): + +.. code:: shell-session + :class: highlight + + ln -s libjpeg.so.6.0.2 libjpeg.so.6 + +where you installed your new lib, you simply need to recompile your app too +link it against the new library. + +Also, make sure to use GNU make for the Window Maker compile. + +How do I start Window Maker after running wmaker.inst? +...................................................... + +As of version 0.53.0, the wmaker.inst script will modify your X startup script +(.xinitrc or .Xclients or .Xsession) to do something thats (hopefully) +appropriate. + +In order to run wmaker, a user needs to have an ~/.xinitrc file consisting of +something similar to + +.. code:: sh + :class: highlight + + #!/bin/sh + exec wmaker + +This will vary from system to system, but the existance of an .xinitrc file +will generally override the system defaults. + +How do I make libpng link against Window Maker? +............................................... + +The newest png libs are availible at http://www.libpng.org/pub/png/libpng.html + +You should also get the newest zlib libs from http://www.gzip.org + +Generally, the same rules apply here as with libjpeg. Make sure there are no +older versions of the necessary libs floating around on your system, then try +to configure and make again. + +Also, make sure to use GNU make (gmake) for the Window Maker compile. + +How do I make giflib or libungif to link against Window Maker? +.............................................................. + +The newest versions of both these libraries are available at +http://prtr-13.ucsc.edu/~badger/software/ + + +Users have had a few problems with giflib... it seems that the install process +didn't install the header file libgif.h, so although the Window Maker configure +found the lib (libgif.so.x), when you actually try to compile, it fails when it +looks for the header to include the make. One solution is to simply copy it +from the libgif source directory to the local system include directory. +(/usr/local/include/ on many systems). + +Also, make sure to use GNU make (gmake) for the Window Maker compile. + +How do I fix an error similar to "wrlib: could not allocate shared memory segment: invalid argument" +.................................................................................................... + +This relates to a shared memory problem on Solaris. Usually one can't see it - +but it is visible if X is started from command line (or fail-safe session for +that matter). In any of the cases, on the stderr you get an error message like +this: + +.. code:: console + :class: highlight + + "wrlib: could not allocate shared memory segment: invalid argument" + +This one is generated by wrlib if Window Maker is compiled with shared-memory +usage enabled (which is the default). The explanation is that Solaris by +default comes with a shared memory segment size of maximum 1 M. What happends +is that if you have a really-really cool(tm) background, it is usually much +bigger than that 1 M segment of shared memory. To see your defaults relating +the IPC settings check the output of the "sysdef" command (look for IPC Shared +Memory). There you should see the maximum allocable size for a shared memory +segment. If it is less than 5 M you should really increase it by adding the +following line in your /etc/system file: + +.. code:: + :class: highlight + + set shmsys:shminfo_shmmax=20971520 + +- Make sure you don't already have this value set. If you do, simply increase + the value. In case you have a much bigger value, stick to what you have, + because you should have no problems with it. +- The value allows a maximum segment size of 20 M, which really should be + enough for anyone. If not, try using a smaller background image! +- Make sure you spell the line *exactly* as shown, otherwise at boot time the + kernel will complain of not finding such a module name and will not set a + thing about it! +- Make sure you don't delete other lines or modify them "beyond recognition", + for evil things may happen at boot time. + +After adding this to your /etc/system you need to reboot in order for the new +limit to take effect. Also, you may want to check the new limit just to make +sure it has been set. + +Thanks to Bogdan Iamandei for this answer. + +How do I add Window Maker to the Solaris dtlogin screen? +........................................................ + +The two files that determine alternate window managers are: + +.. code:: + :class: highlight + + /usr/dt/config/C/Xresources.d/Xresources.* + /usr/dt/config/Xsession.* + +If you look in there, you'll find Xresources.ow and Xsession.ow, respectively. +All you need are two files that set up Window Maker (or any other window +manager) in a similar fashion, calling them Xresources.wm and Xsession.wm (or +whichever extension you prefer). + +Here is an example setup: + +.. code:: resource + :class: highlight + + # ************************************************************************** + # + # Window Maker config file + # Mike Bland + # + # /usr/dt/config/C/Xresources.d/Xresources.wm + # + # used by dtlogin + # + # ************************************************************************** + + Dtlogin*altDtsIncrement: True + + Dtlogin*altDtName: Window Maker + Dtlogin*altDtKey: /usr/local/bin/wmaker + Dtlogin*altDtStart: /usr/dt/config/Xsession.wm + #Dtlogin*altDtLogo: /usr/local/share/logos/WM_logo.xpm + +Once I get a logo ready, I'll add it to the dtlogin screen by uncommenting the +last line. + +And this example script: + +.. code:: ksh + :class: highlight + + #!/bin/ksh + # ************************************************************************** + # + # Window Maker startup script + # Mike Bland + # /usr/dt/config/Xsession.wm + # + # used by dtlogin + # + # ************************************************************************** + + . /usr/local/etc/.profile # Sources the file containing necessary + # environment variables (especially + # LD_LIBRARY_PATH=/usr/local/lib:...); + # make sure it's executable. + + WINDOW_MANAGER=/usr/local/bin/wmaker + + export WINDOW_MANAGER + + /usr/local/bin/wmaker + +What happened to libPropList? +............................. + +The libPropList dependency has been removed as of Window Maker version 0.70.0, +and is replaced by cleaner, more robust code in the WINGs toolkit. This new +code maintains existing proplist compatibility, so there are no visable changes +for users, and existing file formats will work as they did before. + +For developers, there is a proplist-compat.h header that provides a mapping +between the old and new function names. See the comments in this file for +further instructions. + +---- + +Configuring Window Maker +------------------------ + +What are those files inside my ~/GNUstep directory? +................................................... + +Here is a synopsis of the files in ~/GNUstep + +* ~/GNUstep/WindowMaker/WindowMaker is main config file. This file controls + options such as keybindings, fonts, pixmaps, and focus modes. +* ~/GNUstep/WindowMaker/WMWindowAttributes controls the "attributes" for + individual applications and appicons. Options such as what icon to use are + set here. For the most part, this is now best accessed via a right click on a + title bar of an application and selecting "Attributes" +* ~/GNUstep/Defaults/WMState is the file that is automatically generated and + contains the current dock settings. It is not recommended to edit this file + by hand. +* ~/GNUstep/Defaults/WMRootMenu specifies what file to use as the root menu. In + Window Maker 0.19.0 and higher, this file should be replaced by plmenu from + ~/GNUstep/Defaults/WindowMaker so that one can use WPrefs.app to edit the + menu. +* ~/GNUstep/Library/WindowMaker/menu is used to change your root menu, if you + are using the old menu style. + +How do I enable the normal X sloppy focus mode? +............................................... + +If you are using WPrefs, you can choose the ``Window Focus Prefrences`` tab and +then select the ``Input Focus Mode`` Slider. + +Scroll Down and choose ``Sloppy`` Focus Mode. + +You may also use a text editor on ``~/GNUstep/Defaults/WindowMaker`` and change +the following: + +.. code:: + :class: highlight + + FocusMode = sloppy; + +How do I get my auto-arrange icons to work? +........................................... + +In WPrefs, choose the ``Icon Prefrences Tab`` and select the ``Auto Arrange +Icons`` Checkbox. Or in ``~/GNUstep/Defaults/WindowMaker`` set + +.. code:: + :class: highlight + + AutoArrangeIcons=YES; + +and the icons should now auto-arrange. + +How do I get my Meta-Tab to cycle through windows correctly? +............................................................ + +To use WPrefs to modify these, choose the ``Ergonomic Prefrences`` tab and +check ``Raise window when switching focus with keyboard (Circulate Raise)`` + +Or you can use a text editor to make sure that these settings are in your +``~/GNUstep/Defaults/WindowMaker`` file: + +.. code:: + :class: highlight + + CirculateRaise = YES; + RaiseDelay = 1; + +As of 0.61.0, MS Window's Style application tabbing is supported by default. + +How do I get a tile background for my appicons (those things in the dock)? +.......................................................................... + +These can all be adjusted by the ``Appearance Preferences`` tab in WPrefs. + +Select the tile and then choose the edit texture dialog. Then you may choose +any of the different tile background options in the The old text editor method +is provided below for convience. + +You need to change one line in your '~/GNUstep/Defaults/WindowMaker' file. + +.. code:: + :class: highlight + + IconBack = (spixmap, tile.black.xpm, white); + +The last parameter is the color that fills in any transparent parts of your +icon. + +How do you dock that doesn't have an appicon in the new version of WindowMaker? +..................................................................................................... + +There is now an option available to emulate appicons so that Window Maker can +dock just about anything now. To dock a misbehaving application, right click on +the title bar and select the attributes menu. Next, select the pull down menu's +"Advanced Options" item. Under the ``Advanced Options`` menu, select the +``Emulate Application Icon`` Option then Save, Apply and close the dialog. + +This should allow you do dock the program normally. + +Dan Pascu adds: + +Emulate Appicon does exactly the same as dockit. So if Emulate Appicon does not +work, dockit will not work either. For such apps you can do nothing. They are +badly coded (they do not set the instance.class hints). For these Attributes +are also not available, since attributes apply to an instance and/or class +hint. + +Note: Dockit was previously distributed with Window Maker and was launched from +the top dock icon. + +Elliott Potter adds: + +There's another way to dock applications that misbehave ... I've only done this +with a couple of things (Adobe AcroRead is the only one I remember at the +moment). + +If Attributes -> Advanced Options -> Emulate Application Icon doesn't work: + +- Dock another application to the clip, where you want your application to go. + I used gv, but anything you can dock will work. +- Quit WindowMaker +- Edit ~/GNUstep/Defaults/WMState. + + If you're docking to the clip, scroll down to the Workspaces section. + When you find whatever you docked, you'll see: + + .. code:: + :class: highlight + + { + Command = gv; + Name = GV.gv; + AutoLaunch = No; + Forced = No; + BuggyApplication = No; + Position = "6,0" + Omnipresent = No; + DropCommand = "gv %d"; + }, + + Edit it to use the info for your new application: + + .. code:: + :class: highlight + + { + Command = acroread; # use the full pathname if you have to + Name = acroread.acroread; + AutoLaunch = No; + Forced = No; + BuggyApplication = No; + Position = "6,0" + Omnipresent = No; + DropCommand = "acroread %s"; + }, + + Then edit WMWindowAttributes, and add a line for your application's + icon...you can edit the line that was inserted, or make a new one - I + just make a new one: + + .. code:: + :class: highlight + + acroread.acroread = {Icon = pdf.tiff;}; + + Then re-start WindowMaker, and your icon should be there! You can move it + around like any other docked app now, but the Attributes section still won't + work. + +How do I get x11amp to not have a title bar ( or any other program for that matter )? +..................................................................................... + +Right Click on the title bar and go to the attributes menu. Click on Window +Attributes and click the the Disable titlebar and Disable Resizebar options. +Click Save, and then click Apply then close the Attributes panel. + +By Default, to get back to the attributes menu, use the key combination +Control-Esc. + +How do I set a pixmap background? +................................. + +Here is the in depth explanation straight from the NEWS file: + +wmsetbg now accepts the following options: + +.. TODO wow! how old this thing is! + +.. code:: + :class: highlight + + usage: wmsetbg [-options] image + options: + -d + dither image + -m + match colors + -t + tile image + -s + scale image (default) + -u + update Window Maker domain database + -D + update database + -c + colors per channel to use + +By default, it will try to guess if dithering is needed or not and proceed +accordingly. Using -d or -m will force it to dither or match colors. + +Dithering for more than 15bpp is generally not needed, and will only result in +a slower processing. Don't use dithering except when needed, because it is +slower. Else rely on wmsetbg which will detect if dithering is needed and use +it. + +- ``-u`` - will update the WorkspaceBack in the default database domain file in + ~/GNUstep/Defaults/WindowMaker, and let Window Maker refresh the screen. + Please note that this option only works under Window Maker, and will have no + effect under other window managers, since it rely on Window Maker to update + the image after it reads the updated defaults database. +- ``-D`` - is same as above, but will update the domain + instead of the default Window Maker domain. +- ``-c`` will set the color per channel to use. Only needed for + PseudoColor visuals. Window Maker will automatically pass the value read from + the Window Maker domain database. + +The following line is straight from your WindowMaker-0.15.x +~/GNUstep/Library/WindowMaker/menu file and should all be on one line. + +"Images" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds +WITH wmsetbg -u -t + +This should give you an idea on how to add other entries for different image +directories. See the help info at the top of the +~/GNUstep/Library/WindowMaker/menu file for more information. + +If you for some reason would like to set your background image with XV, for +instance to use an image format not yet supported by wmsetbg or to use one of +XV's special modes, edit the file ~/GNUstep/Library/WindowMaker/autostart and +insert the line + + +.. code:: sh + :class: highlight + + xv -root -quit -maxpect ~/background.jpg + +or + +.. code:: sh + :class: highlight + + xv -root -quit -max ~/background.jpg + +you can also try variations of this to get different tiling and other effects +(where X is a number 1-9 I believe): + +.. code:: sh + :class: highlight + + xv -root -quit -rmodeX ~/background.jpg + +If you would like xv functionality in your menu, heres a nice little tip from +Alfredo: + +Add the following line to your ~/GNUstep/Library/WindowMaker/menu file. (all on +one line) + +.. code:: sh + :class: highlight + + "More Backgrounds" OPEN_MENU /home/whoever/backgrounds xv -root -maxpect -quit + +Can I put pixmaps in my root menu and title bars? +................................................. + +Put the pixmaps in a directory that is located in your pixmap path set on +``Search Path Configuration`` Tab. + +Then switch ``Appearance Preferences`` tab and select what widget you would to +adjust under the ``Texture`` tab. Click edit. Chose an image texture format and +then search for the texture. + +You can use a similar procedure for any type of menu editing. + +You can use png, gif, ppm, tiff, jpeg and xpm images interchangeably in Window +Maker if you have compiled in support for those formats. + +How do I get my Minimize Icon to look like the triangle I see in screenshots? +............................................................................. + +This involves a minor source tweak. Instructions are available at +http://largo.windowmaker.org/tips.php#titlebar_icons + +Why does Netscape have a black and white Icon when I minimize it? +................................................................. + +Craig Maloney has this answer: + +If you happen to ``--enable-openlook`` at compile time, Netscape (and +presumably other apps as well) believe they're running under OLVWM, and +minimise with monochrome icons. Once compiled without OpenLook support, +Netscape minimizes with the correct icon. + +How do I get superfluous bells and whistles working? +.................................................... + +Open WPrefs and go under the ``Other Configurations`` tab. Under ``Animations +and Sound``, depress the Superfluous tab. + + Alternatively, you may add + +.. code:: + :class: highlight + + Superfluous=YES; + +to your ~/GNUstep/Defaults/Windowmaker file. + +How do I get the classic NeXT(tm)-like style back? +.................................................. + +Open WPrefs and go under the ``Other Configurations`` tab. Under ``Title Bar +Style``, select the classic look. + +Or you can add + +.. code:: + :class: highlight + + NewStyle=NO; + +to your ~/GNUstep/Defaults/Windowmaker file. + +How do I get the window menu with only a two button mouse? +.......................................................... + +In WPrefs, under ``Mouse Prefrences``, the mouse actions can be mapped to a +button of choice. + +Jim Noble explains another way to do this: + +If you've got a two-button mouse under some versions of Solaris x86, there's no +way (that I'm aware of) to emulate a 3-button mouse. The right button can be +either MB2 or MB3, but chording doesn't work. + +.. code:: + :class: highlight + + ApplicationMenuMouseButton = Left; + +and + +.. code:: + :class: highlight + + WindowListMouseButton = Right; + +in ~/GNUstep/Defaults/WindowMaker ought to allow the left button to activate +the root menu, and the right button (as MB2) to activate the windows menu. + +How do I edit my root menu? +........................... + +You can now use WPrefs.app ( its appicon looks like a heart rate meter with a +GNUStep icon backgroud ). Note that this will replace any oldstyle menus and +there is no way to convert the oldstyle menu to the new libproplist style menu. + +For old style menus, edit the file ``~/GNUstep/Library/WindowMaker/menu`` and +save your changes. Window Maker should detect the change and automatically +update. If you are having a problem getting it to reload the menu, try + +.. code:: shell-session + :class: highlight + + $ touch menu + +to force the modification time into the future. + +WPrefs disappeared from the Dock! How do I get it back? +....................................................... + +Pascal Hofstee offers this answer: + +You should just start it from a terminal by supplying it's FULL path-name, +which is usually the following: ``/usr/local/GNUstep/Apps/WPrefs.app/WPrefs``. + +At this point, a new appicon should be generated which can be placed back into +the Dock. + +How can I define my own Icon for a program? (instead of the Icon the Application Supplies?) +........................................................................................... + +You can right click on the titlebar of the running app and choose the +"Attributes..." option, then click on the "Ignore client supplied icon" +checkbox. Click "Apply", "Save" and close the Attributes Editor. + +Another method is to edit ``~/GNUstep/Defaults/WMWindowAttributes`` by hand and +use the ``AlwaysUserIcon=YES;`` option for the app. For example: + +.. code:: + :class: highlight + + xmcd = { + Icon = "Radio.xpm"; + AlwaysUserIcon=Yes; + }; + +How do I turn off the workspace titles between workspaces? +.......................................................... + +In Window Maker 0.60.0, an option was added to turn this off. + +By editing ``~/GNUstep/Defaults/WindowMaker`` insert or modify the key +``WorkspaceNameDisplayPosition = none;`` Other valid options for this include +``center``/``top``/``bottom``/``topleft``/``topright``/``bottomleft``/``bottomright``; + +How do I add dynamic items to my root menu? +........................................... + +A few programs are floating about, notably wkdemenu.pl that can produce output +from other menu styles. In order to get WindowMaker to launch the process +everytime you want to use the menu, use something like + +.. code:: + :class: highlight + + ("External Menu", OPEN_MENU, "| bob.sh") + +in a proplist style menu. You can tell if you have a proplist style menu if you +can edit it with WPrefs. + +You can do this directly in WPrefs by going to the menu editor, adding an +"external menu", and then clicking the "ask guru button" and filling in the +process name. + +Thanks to Igor P. Roboul + +How do I remove or hide appicons? +................................. + +There are two options here, and you need to consider which one you prefer. Read +both of these before you decide. + +First, if you do not want to use the clip or dock at all, you can launch wmaker +with with + +.. code:: shell-session + :class: highlight + + $ wmaker --no-clip --no-dock + +and then in ``~/GNUstep/Defaults/WMWindowAttributes`` add + +.. code:: + :class: highlight + + "*" = {NoAppIcon=Yes;}; + +The problem with this method is if you use the dock for dockapps, it renders +them with out an appicon to write to. An alternative method if you are willing +to let the clip be on your desktop is to right click on the clip > clip options +> auto attract. Double click the clip so that it is grayed and all appicons +will be hidden. Then you can hide the clip behind the dock so that it is out of +your way. This will allow appicons to work. + +I disabled my titlebar. How can I get it back? +.............................................. + +Thanks to Jim Knoble for this answer + +Set the focus to the window and then use the keystroke assigned to the titlebar +menu. If you're not sure what the keystroke is, you can find out using WPrefs: +in the keyboard section, select the *Open window commands menu* item in the +list of actions. The keystroke assigned to it ought to appear in the +*Shortcut' area*. + +Typically it is Control-Esc or F10 in older version of WindowMaker. + +How do I remove ALT+Mouse1 from the action Window Maker grabs for an application? +................................................................................. + +Do [Button3Down] (for righthanded mouse users, [RightButtonDown]) on the +titlebar of the desired window. Choose ``Attributes...``. In the Attributes +inspector, choose ``Advanced Options``. Check ``Don't Bind Mouse Clicks``. +Apply or Save as desired, then close the Attributes inspector. + +The result is that [Alt+Button1] (which usually grabs a window to move it +around), [Alt+Button2] (which usually grabs a window to move it around without +changing the window stacking order), and [Alt+Button3] (which usually resizes a +window) all get passed to the application instead of performing their usual +action. + +How do I configure the Dock and Clip to use less space on a small screen? +......................................................................... + +This answer is current as of WindowMaker-0.61.1. + +For the Clip, either: + +- Disable the Clip from WPrefs (panel number 7), or +- Hide the Clip under the Dock (for example, in the upper righth and corner of + the screen). + +The latter is probably more useful on desktops with limited space, since you +can still set the Clip to attract app-icons so they don't clutter your desktop. + +For the Dock, try the following: + +#. Exit Window Maker. +#. Log in via a text console or using a different window manager. +#. Edit ~/GNUstep/Defaults/WMState using your favorite text editor + (for example, vi, emacs, or pico). + +#. Find the *Applications* part of the *Dock* structure. Find the item with + *Position = "0,0";*. Change the *Command* item to the command you want the + top tile to launch. Change the *Name* item to the *.* name + of the application you just made the Command item start (for example, if + *Command* is *"xedit"*, then *Name* should be *xedit.Xedit*). +#. Save the WMState file. +#. Start an X session with Window Maker. +#. Check that the top tile starts the command you told it to. (You should still + also be able to move the Dock up and down using [LeftDrag] on the top tile.) +#. You can configure the tile (including autolaunch and the drop-command) in + the regular manner ([RightButtonDown] on the tile and choose *Settings...* + from the resulting menu). + +Why do dashes not work as menu entries? +....................................... + +If you wish to use a ``-`` as part of a menu item name, you must enclose the +name in double quotes. This will only apply if you're editing the +~/GNUstep/Defaults/WMRootMenu file manually, as it is handled properly within +WPrefs. + +This will work: + +.. code:: + :class: highlight + + (ssh, + ("us-gw", EXEC, "Eterm -e ssh us-gw"), + +This will not: + +.. code:: + :class: highlight + + (ssh, + (us-gw, EXEC, "Eterm -e ssh us-gw"), + +Thanks to Martin Sillence for pointing this out. + +---- + +Using Window Maker +------------------ + +How do add new icons to the Dock? +................................. + +First, launch an application. If an icon (henceforth called an ``appicon``) +appears in the bottom left corner of the screen, left click and drag it over +near the Dock. You will see a slightly opaque square of where the Dock will +place the appicon. When you do, release the mouse button and the appicon should +now be in the Dock. + +Next, right click on the desktop to bring up the menu. Select Workspace -> Save +Session to make this permanent. + +What is the difference between the Exit and Exit Session Option? +................................................................ + +Another answer from Dan Pascu: + +Exit will exit wmaker, but can leave other X apps running, provided that it was +not the last app launched in the .xinitrc (for instance, if you had exec +wmaker, followed by exec xterm, exiting wmaker using 'Exit' will leave the +xterm running so you could start another window manager, etc.) This is +accomplished because X will not shutdown unless all X apps are closed. + +Exit session will exit wmaker, but will also close all running apps, thus the X +server will be closed too. + + +How do I "dock" icons on the clip? +.................................. + +Just drag icons near it like you would for the dock. If you are having a +problem docking icons, you should try moving the clip away from the dock. + +Why do none of my key bindings (ie: Alt+#) work in Window Maker? +................................................................ + +If you are using XFree86, make sure scroll lock and numlock are off or no +bindings will work (XFree bug). You can try using the XFree86 Numlock Hack by +editing the line ``#undef NUMLOCK_HACK`` in $(WindowMaker)/src/wconfig.h and +changing it to ``#define NUMLOCK_HACK``. + +With the release of 0.18.0, this hack is now working and hopefully no one will +have to ask this question again. + +How do I rename workspaces? +........................... + +Right click to bring up the root menu. Go under the Workspaces menu item and +hold the control key down. Next, click on the workspace entry you would like to +rename, type the name, and press enter. + +How can I resize a window if the window is larger than my current desktop? +.......................................................................... + +David Reviejo best summed up this answer: + +Maybe you know: Alt+Left click and drag to move the window. + +Try this: Alt+Right click and drag to resize (by moving the nearest window +corner) + +Another move/resize tip: while you are moving or resizing a window, you can +change the move/resize mode by pressing the SHIFT key. + +How do I "undock" appicons? +........................... + +If the program is not running, just drag the icon to the middle of your desktop +and watch it disappear. If the program is running, hold down Meta and drag the +icon off the dock. + +I docked an application but when I run it the button is permanently shaded and +I can't run new instances. You probably docked the application with dockit. To +fix it remove the icon and use the "Emulate Application Icon" checkbox in the +Advanced Options section of the Attributes panel for the window. Then restart +the application to get the application icon you must use to dock the +application. It can also mean that you did something you shouldn't, which is +changing the program that is ran from the docked icon. For example, if you +docked rxvt you must NOT change it to xterm, for example. You also can't do any +changes that might alter the contents of the WM_CLASS hint for the window, like +the -name parameter for xterm, rxvt and other programs. + +When I run wmaker it complains about not being able to load any fonts. +...................................................................... + +Check if the locale settings are correct. If you're not sure what to do, unset +the LANG environment variable before running wmaker. + +.. TODO give complete explanation + +When I set the root background with wmsetbg by hand it works, but when I do +that from the configuration files it doesnt! If you set the root background +with wmsetbg by hand, it will obviously find the image, since you have +explicitly specified it by hand. But if you simply put it in +``~/GNUstep/Defaults/WindowMaker`` in some option like WorkspaceBack, it will +not find the image because Window Maker can't read your mind to figure where +you put the image. So, to fix it, you have to either place the full path for +the image in the texture specification or put the path for the directory you +put your background images in the PixmapPath option. You can also put all your +background images in places like ``~/GNUstep/Library/WindowMaker/Backgrounds`` +or ``/usr/local/share/WindowMaker/Backgrounds``. + +David Green says that another possibility is that you have two copies of the +worker programs: wmsetbg (and possibly setstyle) and the wrong one is in the +path first. + +What is the purpose of being able to draw a box on the root menu with a left click? +................................................................................... + +Its purpose is two-fold. + +First, it is used to select multiple windows on a desktop at a time. When these +windows are selected, they can be moved around on your desktop and will retain +their relative positions. + +Second, once selected, they are persistent through desktop changes. So it is +useful for moving large numbers of windows between desktops. + +You can also select windows with shift+click. + +---- + +Application Compatibility +------------------------- + +How do I assign gimp an appicon? +................................ + +You can enter the following line in WMWindowAttributes: + +.. code:: + :class: highlight + + gimp={Icon="gimp.tiff";}; + +Window Maker now can assign Icons from within the windowmanager. To do so, +right click on the title bar of an app, click on the droplist->Icon and +WorkSpace entry, enter the icon file name (make sure this is in your pixmap +path), click update, apply, and then save. + +How do I get an appicon for XEmacs 20.3+? +......................................... + +Thanks to Michael Hafner for this answer. + +You don't need to patch the XEmacs code, just run + +.. code:: shell-session + :class: highlight + + ./configure --with-session=yes (in addition to any other options you use) + +in your XEmacs 20.3+ sourcedir and rebuild it. Then XEmacs shows an appicon +when running and you can easily dock it. + +Where do I get the nifty clock program I always see on people's desktops? +......................................................................... + +It's called asclock. Once included with Window Maker, it now is available at +ftp://ftp.windowmaker.org/pub/contrib/srcs/apps/asclock.tgz. + +asclock was written by Beat Christen and used to have its own website, which +seems to have disappeared. However, references to it exist all over the place, +and can be found by searching `Google +`_. + +Beat Christen wrote this awhile back: + +Please note that the asclock-gtk version 2.0 beta 4 (asclock-gtk-2.0b4.tar.gz) +does not have the -d switch yet and that the asclock-xlib-2.1b2.tar.gz does not +have the shaped asclock builtin. + +A wonderful alternative to asclock is Jim Knoble's `wmclock +`_. It duplicates asclock and adds some much +needed improvements. + +How do you dock asclock? +........................ + +It is highly recommended that you use the asclock mentioned previously in +question 5.3. The asclock that is typically included in AfterStep will not +properly dock with Window Maker. At this point, there are at least four or five +different versions of asclock floating about. + +For older versions such as asclock-classic , use a command line similar to + +.. code:: shell-session + :class: highlight + + asclock -shape -iconic -12 & + +For newer versions such as asclock-xlib 2.0 and asclock-gtk use + +.. code:: shell-session + :class: highlight + + asclock -shape -iconic -12 -d & + +Drag it from the top right corner of the clock to the dock. Right click on the +icon and select autolaunch. + +In order to make asclock launch every time you start Window Maker, right click +on the outer edge of the border for asclock until a menu appears. Select the +"Settings" item and then select the "Lauch this Program Automatically" option +then select the "OK" button. + +If you get an error such as sh: /dev/console: Permission denied, login as root, +cd to /dev/ and run + +.. code:: shell-session + :class: highlight + + ./MAKEDEV console + +Where can I get more dockapps? +.............................. + +The Window Maker team got tired of people E-mailing constantly asking where the +websites for obscure dockapps disappeared to. So we've created the ultimate +dockapps community website. Visit `dockapps.net `_ for +the latest, up-to-date links, information, and download for Window Maker and +related dockapps. + +Another large index of dockapp links is available at +http://www.bensinclair.com/dockapp. The downside to this is that they're only +links, so if someone stops maintaining a dockapp, or their web hosting provider +cuts them off, you won't be able to get to it. Still, Ben Sinclair's site was +the first big "dockapp warehouse" site, so we give credit where credit is due. +:) + +How do I get an appicon for rxvt so I can dock it? +.................................................. + +.. TODO check out urls and legitimacy of the question + +The default rxvt that comes with most distributions is an outdated version of +rxvt. The newest development version of rxvt is availible from +ftp://ftp.math.fu-berlin.de/pub/rxvt/devel/. As of the time of this writing, +the version is 2.4.7 and it natively produces an appicon without a patch. + +John Eikenberry has also created an rpm which is available from +ftp://ftp.coe.uga.edu/users/jae/windowmaker + +How do I allow Alt+# to work in an rxvt/xterm session? +...................................................... + +First, Launch a unique instance of rxvt or xterm. This can be done using the -N +option of rxvt. + +.. code:: shell-session + :class: highlight + + rxvt -name foo -e irc + +Then, go to the Attributes menu (right click on titlebar -> Attributes) / +Advanced Options and enable "Don't Bind Keyboard shortcuts". Click Save and +Apply and you should be able to run your session without the shortcuts. + +How do I get different icons for different rxvt's and xterms? +............................................................. + +The hint is the -name option for xterm or rxvt. This will allow you to change +the exact WM_CLASS in the attributes menu and assign a unique icon. + +.. code:: shell-session + :class: highlight + + rxvt -name foo -title Testing + +Then Right click on the title bar to bring up the attributes menu, and you will +be able to edit the properties for foo.XTerm (ie: assign a unique icon). + +How do I launch multiple instances of XTerm from one appicon? +............................................................. + +Thanks for the update by Sara C. Pickett: + +The easiest way to accomplish this is to dock XTerm as normal. Then Go to the +Attributes menu -> Application Specific and select no application icon for +XTerm. + +Then right-click on the docked appicon and select settings. Change the +Application Path with arguments section to + +.. code:: shell-session + :class: highlight + + '/bin/sh -c "exec xterm &"' + +Window Maker breaks scilab. +........................... + +If you refer to the problem of the "graphics" window of scilab not showing up +in Window Maker, this is caused by a bug in scilab. You can see the cause of +the problem by yourself, by running xprop on the graphic window: +WM_NORMAL_HINTS(WM_SIZE_HINTS): + +.. code:: + :class: highlight + + user specified location: 136679205, 1074468360 + user specified size: 400 by 300 + program specified minimum size: 400 by 300 + +Now, when scilab opens it's window, Window Maker nicely does exactly what it is +told, that is, map the window at position 136679205, 1074468360 which obviously +falls outside the screen no matter how big is your monitor ;) + +Meanwhile, the workaround for this is to open the window list menu (click on +the root window with the middle mouse button) and click on the ScilabGraphic +entry. The window should be brought to your reach. Then, open the window +commands menu (right click on window's titlebar) and open the Attributes panel. +Go to the "Advanced Options" section, check the "Keep inside screen" option and +save. + +If you can recompile Scilab, this came from a Scilab developer: + +replace + +.. code:: C + :class: highlight + + size_hints.flags = USPosition | USSize | PMinSize; + +with + +.. code:: C + :class: highlight + + size_hints.flags = /** USPosition |**/ USSize | PMinSize; + +in routines/xsci/jpc_SGraph.c + +How do I get a transparent xterm/rxvt/xconsole? +............................................... + +You need a terminal emulator that has support for transparency, like Eterm, the +latest rxvt, wterm, aterm or gnome-terminal. + +You can find these programs on http://www.freshmeat.net. + +How do I dock an arbitrary console application like mutt? +......................................................... + +There are two key things to do if you want a program (such as mutt) to be able +to start in a terminal window from the Dock or the Clip: + +- Make the terminal window start the program you want to run instead of a + shell. Both xterm and rxvt (and its descendants) are capable of doing this. + For example: + + .. code:: shell-session + :class: highlight + + xterm -e mutt + rxvt -e mutt + gnome-terminal -e mutt + +- Convince Window Maker that the resulting terminal window is not a regular + terminal window, but rather some other program instance. Both xterm and rxvt + are also capable of doing this. Make sure that -e is the last command + option. For example: + + .. code:: shell-session + :class: highlight + + xterm -name muttTerm -e mutt + rxvt -name muttTerm -e mutt + gnome-terminal --name=muttTerm -e mutt + + This causes the instance of the terminal window that you start to have an + . pair of ``muttTerm.XTerm`` (usually rxvt's + class is also XTerm; don't know about its descendants, such as wterm and + Eterm). + + Do not use spaces or periods in the instance name. For example, these are + BAD instance names: + + .. code:: shell-session + :class: highlight + + xterm -name mutt.term -e mutt + rxvt -name 'mutt term' -e mutt + + Window Maker will not like you if you use them. + + With a different instance name, you can now do the following: + + - Dock the resulting appicon in the dock, or clip it to the Clip. + - Assign a different icon and different window properties to the `special' + terminal window running your program (make sure you choose the exact + ``muttTerm.XTerm`` window specification in the Attributes editor). + - Specify different resource settings for muttTerm in your ~/.Xdefaults file + (e.g., different default foreground and background colors). + +There are a few other non-key things you can do to complete the process: + +- Tell the terminal window to display a more meaningful or prettier title and + icon title than what gets put there due to ``-e``. For example: + + .. code:: shell-session + :class: highlight + + rxvt -title 'Mail (mutt)' -n 'Mail' -name muttTerm -e mutt + + Xterm works the same way. + +- These are getting to be a lot of command-line options. Make a wrapper script + to use so you don't have to remember them all: + + .. code:: shell-session + :class: highlight + + mkdir ~/bin + cat >~/bin/muttTerm <`_ for an +in-depth walk-through on making a Theme archive. + +How do I install a theme? +......................... + +This should be as simple as untarring the Theme.tar.gz into one of two places. +You can untar it to the global /usr/local/share/WindowMaker/* directory, and +have it be accessable to all users, or you can untar it to your own +~/GNUstep/Library/WindowMaker/ directory for your own personal use. + +Use your favorite variation of the following: + +.. code:: shell-session + :class: highlight + + gzip -dc "Theme.tar.gz" | tar xvf - + +Note that directory may differ on different systems + +Why do my themes not load the background? +......................................... + +Likely you have not compiled Window Maker with support for the background image +format, usually JPEG. + +You can check this by the following command + +.. code:: shell-session + :class: highlight + + ldd `which wmaker` + +.. TODO: check url + +If libjpeg is not listed, you will need to install libjpeg that is available +from ftp.windowmaker.org + +How do I make a Theme? +...................... + +Please see the `theme-HOWTO <{{ site.baseurl }}/themes/themepacks.html>`_ for +details on making both new and old style themes (and the differences between +the two), here is a short summary on making old style themes. Also, read the +README.themes file included with the Window Maker distribution in the +WindowMaker/ directory. + +In this walk-through when I use WindowMaker/, it can refer to the global +/usr/local/share/WindowMaker/ directory or the users own +~/GNUstep/Library/WindowMaker/ directory. + +To make a Theme.tar.gz, these are the steps I take: + +#. Optionally create a README for your theme in WindowMaker/, call it + something like "ThemeName.txt" + +#. Use the following command to add the Theme files to your .tar file. + + .. code:: shell-session + :class: highlight + + tar cvf ThemeName.tar ThemeName.txt Themes/ThemeName + Backgrounds/ThemeNameBG.jpg Backgrounds/ThemeNameTile.xpm + + You can add as many more images as you need from the appropriate directories + nder WindowMaker/ following that general idea. You can even optionally add + an IconSets/ThemeName.iconset and it's associated icons to your theme in the + same manner. This should be stated in your README if you decide to include + these. + +#. Then gzip your .tar file to make your ThemeName.tar.gz file with this + command: + + .. code:: shell-session + :class: highlight + + tar cvf ThemeName.tar ThemeName.txt Themes/ThemeName + Backgrounds/ThemeNameBG.jpg Backgrounds/ThemeNameTile.xpm + + You can add as many more images as you need from the appropriate directories + + .. code:: shell-session + :class: highlight + + gzip -9 ThemeName.tar + +#. Now give it to your friends! + +I untarred a theme in ~/GNUstep/Library/WindowMaker like the README says,but it doesnt show up in the menu! +........................................................................................................... + +Make sure the OPEN_MENU command for the Themes entry in your menu has the path for your personal themes directory included in it. To be sure, add + +.. code:: + :class: highlight + + #define USER_THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes + +in your wmmacros file. + +---- + +Miscellaneous Questions +----------------------- + +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. + +How do I use getstyle and setstyle? +................................... + +To capture the current Window Maker style, use the command + +.. code:: shell-session + :class: highlight + + getstyle > current.style + +To replace the current style, use the command + +.. code:: shell-session + :class: highlight + + setstyle filename.style + +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. + +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. + +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). + +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: + +.. code:: shell-session + :class: highlight + + [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: + +.. code:: + :class: highlight + + (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: + +.. code:: + :class: highlight + + 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: + +.. code:: + :class: highlight + + (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": + +.. code:: + :class: highlight + + (gdb) quit + The program is running. Exit anyway? (y or n) y + [shell prompt]~ > + +To quit the script session type "exit" again: + +.. code:: shell-session + :class: highlight + + [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 <{{ site.baseurl }}/lists>`_. + +---- + +Troubleshooting Tips +-------------------- + +No questions are currently available for this chapter. + +---- + +Programming for Window Maker +---------------------------- + +How do I get a normal X application to produce an appicon? +.......................................................... + +Another insightful answer from who else but Dan Pascu. + +You must define the WM_CLASS (XSetClassHint()) and the CLIENT_LEADER or +XWMHints.window_group properties, which are automatically set by most +applications that use Xt (Motif, Athena ...), but if you use plain Xlib you +must set them by hand. + +Also you must make a call to XSetCommand(dpy, leader, argv, argc); + +Take a look at WindowMaker-0.12.3/test/test.c that is an example for writing +such an app (which also have an app menu). + +How do I get my tcl/tk application to produce an appicon? +......................................................... + +Oliver Graf writes: + +The main window (normally this is called '.' [dot] in tk) should use the +following lines: + +.. code:: + :class: highlight + + wm command . [concat $argv0 $argv] + wm group . . + +All child windows attached to the same app-icon should use: + +.. code:: + :class: highlight + + toplevel .child + wm group .child . + +where .child should be replaced by the actual window path. + +Replace '.' with the actual main-window path and 'wm group .child .' should be +added for each 'toplevel .child' call. + +What is WINGs? +.............. + +WINGs Is Not GNUstep. ;) + +It is the widget library written for the widgets in Window Maker. It is +currently under heavy development but several people have started writing +applications in it. Its goal is to emulate the NeXT(tm)-style widgets. + +`http://www.ozemail.com.au/~crn/wm/wings.html +`_ +is the closest thing to an information center about WINGs. You can find out +more information in our `WINGs development `_ section. + +Where can I get more information about WINGs? +............................................. + +Nic Berstein has created a WINGs development list. + +The purpose of this list is to provide a forum for support, ideas, suggestions, +bug reports etc. for the WINGs widget set library. + +To subscribe to this list, send a message with the word ``subscribe`` in the +**BODY** of the message to: `wings-request@postilion.org +`_. diff --git a/docs/chap1.html b/docs/chap1.html deleted file mode 100644 index ecb430a..0000000 --- a/docs/chap1.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: default -title: User Guide - Introduction ---- -

Introduction

- -

This manual describes the usage and configuration of the WindowMaker window manager. It is intended for both users - who never used the X Window System and for users who have experience with other window managers.

- -

How to Read this guide If you never have used a X window manager, you should read all of this guide, as it contains - detailed instructions for new users.

- -

Text in sans serif font, indicate instructions you must follow to accomplish a given task. If you're out of time (or - patience), you should at least read text in these parts.

- -

You can ignore the text in Extra Bindings boxes while you're getting familiar with WindowMaker. Once you've got - familiar with it, you can read the text in these boxes to learn more ways to accomplish tasks.

- -

1.1 What is a window manager?

- -

If you come from the Windows or MacOS world, you might be confused about all these things like window managers, X - windows etc.

- -

In the Unix world, the task of providing a graphical user interface (GUI) is normally divided by 3 different - components:

- -

the window server; the window manager and the user interface toolkit. The window server is standard and is usually - the X Window System or some vendor provided compatible version of it. The X Window System, or X for short, is a window - server. It's function is to provide a portable and high-level access to devices like keyboard, mouse and video display. - It allows applications to show graphical information on the display through rectangular areas called windows.

- -

Most user interface objects, like buttons, menus and scrollers are made of windows. The top level windows displayed - by applications are named windows as well. These objects are not provided by the window server. These must be made by - the application program or by the user interface toolkit.

- -

For more information, read the manual page for X(1) and the documentation for Xlib.

- -

The primary function of the window manager is to control the layout of top level windows on screen. WindowMaker is a - window manager. It provides a titlebar and a resizebar to change window layout, application menus to launch - applications and execute special commands, application icons, miniwindows and an application dock. They will be - explained in more detail in the following chapters.

- -

The user interface toolkit is a library or collection of libraries that provide an API for application developers to - program the interfaces for their applications. Toolkits generally provide controls like buttons, menus, radio-buttons - etc to be used for program interaction. There are currently many of these toolkits available for X. Motif - â„¢, OpenLook â„¢, and Athena are examples of toolkits.

- -

All other features normally found in other operating systems, like file managers, are implemented as separate - programs and are not directly related to the window manager.

diff --git a/docs/chap1.rst b/docs/chap1.rst new file mode 100644 index 0000000..89242a7 --- /dev/null +++ b/docs/chap1.rst @@ -0,0 +1,64 @@ +--- +layout: default +title: User Guide - Introduction +--- + +Introduction +============ + +This manual describes the usage and configuration of the Window Maker window +manager. It is intended for both users who never used the X Window System and +for users who have experience with other window managers. + +How to Read this guide If you never have used a X window manager, you should +read all of this guide, as it contains detailed instructions for new users. + +Text in sans serif font, indicate instructions you must follow to accomplish a +given task. If you're out of time (or patience), you should at least read text +in these parts. + +You can ignore the text in Extra Bindings boxes while you're getting familiar +with Window Maker. Once you've got familiar with it, you can read the text in +these boxes to learn more ways to accomplish tasks. + +What is a window manager? +------------------------- + +If you come from the Windows or MacOS world, you might be confused about all +these things like window managers, X windows etc. + +In the Unix world, the task of providing a graphical user interface (GUI) is +normally divided by 3 different components: + +the window server; the window manager and the user interface toolkit. The +window server is standard and is usually the X Window System or some vendor +provided compatible version of it. The X Window System, or X for short, is a +window server. It's function is to provide a portable and high-level access to +devices like keyboard, mouse and video display. It allows applications to show +graphical information on the display through rectangular areas called windows. + +Most user interface objects, like buttons, menus and scrollers are made of +windows. The top level windows displayed by applications are named windows as +well. These objects are not provided by the window server. These must be made +by the application program or by the user interface toolkit. + +For more information, read the manual page for X(1) and the documentation for +Xlib. + +The primary function of the window manager is to control the layout of top +level windows on screen. Window Maker is a window manager. It provides a +titlebar and a resizebar to change window layout, application menus to launch +applications and execute special commands, application icons, miniwindows and +an application dock. They will be explained in more detail in the following +chapters. + +The user interface toolkit is a library or collection of libraries that provide +an API for application developers to program the interfaces for their +applications. Toolkits generally provide controls like buttons, menus, +radio-buttons etc to be used for program interaction. There are currently many +of these toolkits available for X. Motif, OpenLook, and Athena are examples of +toolkits. + +All other features normally found in other operating systems, like file +managers, are implemented as separate programs and are not directly related to +the window manager. diff --git a/docs/chap2.html b/docs/chap2.html deleted file mode 100644 index 49a92dd..0000000 --- a/docs/chap2.html +++ /dev/null @@ -1,840 +0,0 @@ ---- -layout: default -title: User Guide - Windows ---- -
-
-
- -

Chapter 2

- -

Windows


-
-
- -

2.1 Anatomy of a Window

Generally an application will have the following layout:
-
- -
- [Anatomy of a Window]
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- Titlebar

- The titlebar presents the name of the application, document or - window. It's color indicates the keyboard focus state and type of the window. You can use it to move, activate, - raise, lower and access the window commands menu.
Miniaturize - button.You can click on the miniaturize button to - miniaturize/iconify a window or click it with the Meta key pressed to hide the application.

- Close Button.

- The close button can be used to close a window or kill the - application, if the application can't understand the close message.

- Resizebar.

- You use the resizebar to (surprise!) resize a - window.

- Client Area.

- The client area is where the application show it's - information. If the window if inactive, you can click on it to activate it.
-

-
-
- - -

2.2 Working With Windows


-
- - -

2.2.1 Focusing a Window


- Windows can be in two states: focused , or unfocused. The focused window (also called the key or active - window) has a black titlebar and is the window that receives keyboard input, ie: where you can type text. Usually it's - the window where you work on. Only one window may be focused at a time. Unfocused windows have a light gray titlebar. - Some applications have a special type of window, called dialog windows transient windows or panels. When these windows - are active, the window that owns them (the main window) get a dark gray titlebar. As soon as the dialog window is - closed, the focus is returned to the owner window.
-
-
- The image below shows an active Open File panel and it's owner window.
-
- -
- [Focused, Unfocused, and Parent Window] -

-
- There are three styles of window focusing:
-
- Click-to-Focus,or manual focus mode. In click-to-focus mode, you explicitly choose the window that should be - focused. This is the default mode.
-
- Focus-Follow-Mouse,or auto-focus mode. In this mode, the focused window is chosen based on the position of the - mouse pointer. The window below the mouse pointer is always the focused window.
-
- Sloppy-Focus,or semi-auto-focus mode. This is similar to the focus-follow-mouse mode, but if you move the - pointer from a window to the root window, the window will not loose focus.
-
- You can choose between these modes with the FocusMode option
-
-
-
- To focus a window in click-to-focus mode: - -
    -
  • Click on the titlebar, resizebar or in the client area of the window with the left or - right mouse button.
    -
    - OR
    -
  • - -
  • Click on the titlebar with the middle mouse button. This will focus the window without - bringing it to the front.
    -
    - OR
    -
  • - -
  • Open the window list menu and select the window to focus.
  • -

- When you click in the client area of an inactive window to set the focus, the click is normally processed by the - application. If you find this behaviour a little confusing, you can make the application ignore this click by using the - IgnoreFocusClick option.
-
-
- To focus a window in focus-follow-mouse mode: - -
    -
  • Move the pointer over the window you want to focus.
  • -

-
-
-
- - -

2.2.2 Reordering Overlapping Windows

Windows can overlap other - windows, making some windows be over or in front of others.
-
-
- To bring a window to the front:
- -
    -
  • Click on the titlebar or resizebar of the desired window with the left mouse button.
    -
    - OR
    -
  • - -
  • Select the desired window from the Window List menu.
  • -

-
- Dialog/transient windows are always placed over their owner windows, unless the OnTopTransients option is - disabled. Some windows have a special attribute that allow them be permanently over normal windows. You can make - specific windows have this attribute use the AlwaysOnTop window option or set it in the Window Inspector - panel.
-
-
- -

Extra Bindings

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionEffect
-
-
Meta-Click on the window - titlebar. with the left mouse buttonSends the window to the - back.
-
-
Meta-Click on the Client Area of - the window with the left mouse button.Brings the window to the front - and focuses it.
-
-
Hold the Meta key and press the - Up Arrow keyBrings the current focused - window to the front.
-
-
Hold the Meta key and press the - Down Arrow keySends the current focused window - to the back.
-
-
-

-
-
- - -

2.2.3 Moving a Window

To move the window around the screen, drag the - window through it's titlebar with the left mouse button pressed. This will also bring the window to the front and focus - the window.
-
-
- To move a window: - -
    -
  • Click on the titlebar of the window you want to move with the left mouse button and drag - it with the button pressed.
  • -
While you move the window, a little box will appear in the screen, indicating the current window position in - pixels, relative to the top left corner of the screen. You can change the location of this position box by hitting the - Shift key during the move operation.
-
- In some rare occasions, it is possible for a window to be placed off screen. This can happen with some buggy - applications. To bring a window back to the visible screen area, select the window in the Window List menu. You can - prevent windows from doing that with the DontMoveOff window attribute.
-
-
- -

Extra Bindings

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionEffect
-
-
Drag the titlebar with the - middle mouse buttonMove the window without changing - it's stacking order.
-
-
Drag the titlebar while holding - the Control keyMove the window without focusing - it.
-
-
Drag the client area or - resizebar while holding the Meta keyMove the window.
-
-
-

-
-
-
- - -

2.2.4 Resizing a Window

The size of a window can be adjusted by - dragging the resizebar.
-
- -
- [A Resizebar] -

-
- Depending on the place you click to drag the resizebar, the resize operation is constrained to a direction.
-
-
- To resize a window - -
    -
  • To change the window's height, click in the middle region of the resizebar and drag it - vertically.
    -
  • - -
  • To change the window's width, click in either end regions of the resizebar and drag it - horizontally.
    -
  • - -
  • To change both height and width at the same time, click in either end regions of the - resizebar and drag it diagonally.
  • -

-
- -

Extra Bindings

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionEffect
-
-
Drag the window in the client - area with the Right mouse button, while holding the Meta keyResizes the window.
-
-
Drag the resizebar with the - middle mouse buttonResize the window without - bringing it to the front
-
-
Drag the resizebar while holding - the Control keyResize the window without - focusing it.
-
-
-

-
-
- - -

2.2.5 Miniaturizing a Window


- If you want to temporarily get rid of a window, you can miniaturize it. When miniaturizing a window, it will shrink - into a miniwindow with a icon and a title that is placed at the bottom of the screen.
-
- -
- [A Titlebar] -

-
- -
- - - - - - - - -
[A Mini-window]A mini-window
-

-
- You can move the miniwindow around the screen by dragging it. Unlike application icons, miniwindows cannot be - docked.
-
- To restore a window from it's miniwindow, double click the miniwindow. The window will be restored in the current - workspace, with the same position, size and contents as it had before miniaturization.
-
-
- To miniaturize a window: - -
    -
  • Click on the miniaturize button.
    -
    - OR
    -
  • - -
  • Use the keyboard shortcut assigned to this action, Meta+m in the default - configuration.
  • -

-
- You can also restore all miniaturized and hidden windows of a given application by double clicking in it's application - icon with the middle mouse button.
-
-
- - -

2.2.6 Shading a Window

If you want to temporarily get rid of a window, - an option for it's miniaturization is to shade it. When you shade a window, the window rolls up to it's - titlebar. You can do almost everything you do with a normal window with shaded windows, like miniaturizing or closing - it.
-
-
-
-
- To shade a window: - -
    -
  • Double Click on the titlebar of the window.
  • -
- -
- [A Shaded window] -

-
-
- - -

2.2.7 Closing a Window

After finishing work in a window, you can close - it to completely get rid of it. When you close a window, it is removed from the screen and can no longer be restored. - So, before closing a window, be sure you have saved any work you were doing on it.
-
- -
- A Titlebar with a close button -

-
- Some windows will have a close button with some dots around it. These windows can't be closed normally and the only way - to get rid of them is by exiting the application. You should try exiting from inside the application (through it's - menus or buttons) when possible. Otherwise you can force WindowMaker to ``kill'' the application.
-
-
- To force the closure of a window (by killing the application): - -
    -
  • Hold the Control key and click on the close button.
    -
    - OR
    -
  • - -
  • Double click the close button.
  • -

-
- It is also possible to kill applications that can be normally closed by clicking the close button while holding the - Control key.
-
-
- - -

2.2.8 Maximizing a Window

If you want to resize a window to occupy the - whole screen, you can maximize the window. When you unmaximize it, the window will be restored to the same position and - size it was before maximized.
-
-
- To maximize a window: - -
    -
  • Hold the Control key and double click on the window titlebar to resize the window's height - to full screen.
    -
    - OR
    -
  • - -
  • Hold the Shift key and double click on the window titlebar to resize the window's width to - full screen.
    -
    - OR
    -
  • - -
  • Hold both the Control and Shift keys and double click on the window titlebar to resize - both window's height and width to full screen.
  • -

-
-
- To restore the size of a maximized window: - -
    -
  • Hold the Control OR Shift key and double click on the window titlebar.
  • -

-
- You can select whether the window should be maximized to the whole screen or if the position of the Dock should be - accounted for by setting the WinDock option.
-
-
-
- - -

2.2.9 The Window Commands Menu

Clicking on the titlebar of a window - with the right mouse button will open a menu containing commands that will apply to that window. The menu can also be - opened through the keyboard with the Control+Escape key, by default.
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Un)MaximizeWill either maximize the window - horizontally and vertically, or, if the window is a;ready maximized, restore the window to the size it was - prior to being maximized.
MiniaturizeWill miniaturize the - window.
(Un)ShadeWill shade the window, or - unshade it if it is already shaded.
HideWill hide all the windows of the - application
Hide OthersWill hide all current - applications except the current one
Move ToAllows you to move the window to - a different workspace
Attributes...Opens the Window Attributes - Inspector (see section 2.3 - )
CloseWill close the - window
KillWill kill the application. Use - this option only if the application does not provide means to close it normally, or in extreme - cases.
-
- -

2.3 The Window Attributes Inspector

- -

2.3.1 Window Specification

This panel Allows you to specify the - WM_CLASS that WindowMaker should use to identify the window whose attributes you are setting.
-
- -
- - -

-
-
- - -

2.3.2 Window Attributes

This panel lets you set the attributes for the - selected window.
-
- -
- - -

-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Disable titlebarCauses the titlebar for the - selected window not to be displayed
Disable resizebarCauses the resizebar for the - selected window not to be displayed
Disable close - buttonCauses the close button for the - selected window not to be displayed
Disable miniaturize - buttonCauses the miniaturize button - for the selected window not to be displayed
Keep on TopCauses the selected window to - stay on top of all other windows
OmnipresentCauses the selected window to be - displayed in all workspaces
Start miniaturizedCauses the selected window to - start miniaturized
Skip window listCauses the select window to be - skipped when cycling through the window list.
-

-
-
- - -

2.3.3 Advanced Options


-
- -
- - -

-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ignore HideOthersCauses the selected window to - remain visible when HideOthers is selected from the Window Commands Menu
Don't bind keyboard - shortcutsCauses the selected window to - receive ALL keyboard events
Don't bind mouse - clicksCauses the selected window to - receive all mouse-click events
Keep Inside ScreenCauses the selected window not - to be able to place itself off the screen
Don't let it take - focusCauses the selected window not - to be able to take input focus
Don't Save SessionCauses the state of the selected - window not to be saved when a session is saved. (either when quitting WindowMaker, or when done - manually.)
Emulate Application - IconEmulates an Application Icon for - "broken" applications
-

-
-
- - -

2.3.4 Icon and Initial Workspace

This panel allows you to - browse for, and update the mini-window image for the selected window, as well as setting the - initial workspace.
-
- -
- - -

-
-
-
-
- - -

2.3.5 Application Specific

Attributes specific to the selected - application
-
- -
- - -

-
- - - - - - - - - - - - - - - -
Start hiddenStarts the selected application in - a hidden state
No application iconDisables the application icon for - the selected application

-
-
diff --git a/docs/chap2.rst b/docs/chap2.rst new file mode 100644 index 0000000..4878c57 --- /dev/null +++ b/docs/chap2.rst @@ -0,0 +1,474 @@ +--- +layout: default +title: User Guide - Windows +--- + +Windows +======= + +Anatomy of a Window +------------------- + +Generally an application will have the following layout: + +.. figure:: guide/images/anatomy.gif + :figclass: borderless + :alt: Anatomy of a Window + +Titlebar + The titlebar presents the name of the application, document or window. It's + color indicates the keyboard focus state and type of the window. You can use + it to move, activate, raise, lower and access the window commands menu. + +Miniaturize button + You can click on the miniaturize button to miniaturize/iconify a window or + click it with the **Meta** key pressed to hide the application. + +Close Button + The close button can be used to close a window or kill the application, if + the application can't understand the close message. + +Resizebar + You use the resizebar to (surprise!) resize a window. + +Client Area + The client area is where the application show it's information. If the + window if inactive, you can click on it to activate it. + + +Working With Windows +-------------------- + +Focusing a Window +~~~~~~~~~~~~~~~~~ + +Windows can be in two states: *focused*, or *unfocused.* The focused window +(also called the key or active window) has a black titlebar and is the window +that receives keyboard input, ie: where you can type text. Usually it's the +window where you work on. Only one window may be focused at a time. Unfocused +windows have a light gray titlebar. Some applications have a special type of +window, called dialog windows transient windows or panels. When these windows +are active, the window that owns them (the main window) get a dark gray +titlebar. As soon as the dialog window is closed, the focus is returned to the +owner window. + +The image below shows an active Open File panel and it's owner window. + +.. figure:: guide/images/focus.gif + :figclass: borderless + :alt: Focused, Unfocused, and Parent Window + +There are three styles of window focusing: + +**Click-to-Focus**, or manual focus mode. In click-to-focus mode, you +explicitly choose the window that should be focused. This is the default mode. + +**Focus-Follow-Mouse**, or auto-focus mode. In this mode, the focused window is +chosen based on the position of the mouse pointer. The window below the mouse +pointer is always the focused window. + +**Sloppy-Focus**, or semi-auto-focus mode. This is similar to the +focus-follow-mouse mode, but if you move the pointer from a window to the root +window, the window will not loose focus. + +You can choose between these modes with the *FocusMode* option. + +To focus a window in **Click-To-Focus** mode: + +- Click on the titlebar, resizebar or in the client area of the window with the + left or right mouse button. + +OR + +- Click on the titlebar with the middle mouse button. This will focus the + window without bringing it to the front. + +OR + +- Open the window list menu and select the window to focus. + +When you click in the client area of an inactive window to set the focus, the +click is normally processed by the application. If you find this behaviour a +little confusing, you can make the application ignore this click by using the +*IgnoreFocusClick* option. + +To focus a window in **Focus-Follow-Mouse** mode: + +- Move the pointer over the window you want to focus. + + +Reordering Overlapping Windows +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Windows can overlap other windows, making some windows be over or in front of +others. + +To bring a window to the front: + +- Click on the titlebar or resizebar of the desired window with the left mouse + button. + +OR + +- Select the desired window from the Window List menu. + +Dialog/transient windows are always placed over their owner windows, unless the +*OnTopTransients* option is disabled. Some windows have a special attribute +that allow them be permanently over normal windows. You can make specific +windows have this attribute use the *AlwaysOnTop* window option or set it in +the Window Inspector panel. + +**Extra Bindings** + ++------------------------------------+--------------------------------------+ +| Action | Effect | ++====================================+======================================+ +| Meta-Click on the window titlebar, | Sends the window to the | +| with the left mouse button | back. | ++------------------------------------+--------------------------------------+ +| Meta-Click on the Client Area of | Brings the window to the front and | +| the window with the left mouse | focuses it. | +| button. | | ++------------------------------------+--------------------------------------+ +| Hold the Meta key and press the Up | Brings the current focused window to | +| Arrow key | the front. | ++------------------------------------+--------------------------------------+ +| Hold the Meta key and press the | Sends the current focused window to | +| Down Arrow key | the back. | ++------------------------------------+--------------------------------------+ + + +Moving a Window +~~~~~~~~~~~~~~~ + +To move the window around the screen, drag the window through it's titlebar +with the left mouse button pressed. This will also bring the window to the +front and focus the window. + +To move a window: + +- Click on the titlebar of the window you want to move with the left mouse + button and drag it with the button pressed. + +While you move the window, a little box will appear in the screen, indicating +the current window position in pixels, relative to the top left corner of the +screen. You can change the location of this position box by hitting the Shift +key during the move operation. + +In some rare occasions, it is possible for a window to be placed off screen. +This can happen with some buggy applications. To bring a window back to the +visible screen area, select the window in the Window List menu. You can prevent +windows from doing that with the *DontMoveOff* window attribute. + +**Extra Bindings** + ++-------------------------------------+---------------------------------------+ +| Action | Effect | ++=====================================+=======================================+ +| Drag the titlebar with the middle | Move the window without changing it's | +| mouse button | stacking order. | ++-------------------------------------+---------------------------------------+ +| Drag the titlebar while holding the | Move the window without focusing it. | +| Control key | | ++-------------------------------------+---------------------------------------+ +| Drag the client area or resizebar | Move the window. | +| while holding the Meta key | | ++-------------------------------------+---------------------------------------+ + + +Resizing a Window +~~~~~~~~~~~~~~~~~ + +The size of a window can be adjusted by dragging the resizebar. + +.. figure:: guide/images/resizebar.gif + :figclass: borderless + :alt: A Resizebar + +Depending on the place you click to drag the resizebar, the resize operation is +constrained to a direction. + +To resize a window: + +- To change the window's height, click in the middle region of the resizebar + and drag it vertically. +- To change the window's width, click in either end regions of the resizebar + and drag it horizontally. +- To change both height and width at the same time, click in either end regions + of the resizebar and drag it diagonally. + +**Extra Bindings** + ++------------------------------------+------------------------------------+ +| Action | Effect | ++====================================+====================================+ +| Drag the window in the client area | Resizes the window. | +| with the Right mouse button, while | | +| holding the Meta key | | ++------------------------------------+------------------------------------+ +| Drag the resizebar with the middle | Resize the window without bringing | +| mouse button | it to the front | ++------------------------------------+------------------------------------+ +| Drag the resizebar while holding | Resize the window without focusing | +| the Control key | it. | ++------------------------------------+------------------------------------+ + + +Miniaturizing a Window +~~~~~~~~~~~~~~~~~~~~~~ + +If you want to temporarily get rid of a window, you can miniaturize it. + +.. figure:: guide/images/title.gif + :figclass: borderless + :alt: A Titlebar + +When miniaturizing a window, it will shrink into a miniwindow with a icon and a +title that is placed at the bottom of the screen. + +.. figure:: guide/images/mini.gif + :figclass: borderless + :alt: A Mini-window + + A mini-window + +You can move the miniwindow around the screen by dragging it. Unlike +application icons, miniwindows cannot be docked. + +To restore a window from it's miniwindow, double click the miniwindow. The +window will be restored in the current workspace, with the same position, size +and contents as it had before miniaturization. + +To miniaturize a window: + +- Click on the miniaturize button + +OR + +- Use the keyboard shortcut assigned to this action, Meta+m in the default + configuration. + +You can also restore all miniaturized and hidden windows of a given application +by double clicking in it's application icon with the middle mouse button. + + +Shading a Window +~~~~~~~~~~~~~~~~ + +If you want to temporarily get rid of a window, an option for it's +miniaturization is to *shade* it. When you shade a window, the window rolls up +to it's titlebar. You can do almost everything you do with a normal window with +shaded windows, like miniaturizing or closing it. + +To shade a window: + +- Double Click on the titlebar of the window. + +.. figure:: guide/images/shade.gif + :figclass: borderless + :alt: A Shaded window + + +Closing a Window +~~~~~~~~~~~~~~~~~ + +After finishing work in a window, you can close it to completely get rid of it. +When you close a window, it is removed from the screen and can no longer be +restored. So, before closing a window, be sure you have saved any work you were +doing on it. + +.. figure:: guide/images/imagtitle2.gif + :figclass: borderless + :alt: A Titlebar with a close button + +Some windows will have a close button with some dots around it. These windows +can't be closed normally and the only way to get rid of them is by exiting the +application. You should try exiting from inside the application (through it's +menus or buttons) when possible. Otherwise you can force WindowMaker to +``kill`` the application. + +To force the closure of a window (by killing the application): + +- Hold the Control key and click on the close button. + +OR + +- Double click the close button. + +It is also possible to kill applications that can be normally closed by +clicking the close button while holding the Control key. + + +Maximizing a Window +~~~~~~~~~~~~~~~~~~~ + +If you want to resize a window to occupy the whole screen, you can maximize the +window. When you unmaximize it, the window will be restored to the same +position and size it was before maximized. + +To maximize a window: + +- Hold the Control key and double click on the window titlebar to resize the + window's height to full screen. + +OR + +- Hold the Shift key and double click on the window titlebar to resize the + window's width to full screen. + +OR + +- Hold both the Control and Shift keys and double click on the window titlebar + to resize both window's height and width to full screen. + +To restore the size of a maximized window: + +- Hold the Control OR Shift key and double click on the window titlebar. + +You can select whether the window should be maximized to the whole screen or if +the position of the Dock should be accounted for by setting the *WinDock* +option. + + +The Window Commands Menu +~~~~~~~~~~~~~~~~~~~~~~~~ + +Clicking on the titlebar of a window with the right mouse button will open a +menu containing commands that will apply to that window. The menu can also be +opened through the keyboard with the Control+Escape key, by default. + +(Un)Maximize + Will either maximize the window horizontally and vertically, or, if the + window is already maximized, restore the window to the size it was prior to + being maximized. + +Miniaturize + Will miniaturize the window. + +(Un)Shade + Will shade the window, or unshade it if it is already shaded. + +Hide + Will hide all the windows of the application + +Hide Others + Will hide all current applications except the current one + +Move To + Allows you to move the window to a different workspace + +Attributes... + Opens the Window Attributes Inspector (see section `2.3 <#2.3>`) + +Close + Will close the window + +Kill + Will kill the application. Use this option only if the application does not + provide means to close it normally, or in extreme cases. + + +The Window Attributes Inspector +------------------------------- + +Window Specification +~~~~~~~~~~~~~~~~~~~~ + +This panel Allows you to specify the WM_CLASS that WindowMaker should use to +identify the window whose attributes you are setting. + +.. figure:: guide/images/wiaspec.gif + :figclass: borderless + :alt: Window Attributes Inspector: Window Specification + + +Window Attributes +~~~~~~~~~~~~~~~~~~ + +This panel lets you set the attributes for the selected window. + +.. figure:: guide/images/wiaattrib.gif + :figclass: borderless + :alt: Window Attributes Inspector: Window Attributes + +Disable titlebar + Causes the titlebar for the selected window not to be displayed + +Disable resizebar + Causes the resizebar for the selected window not to be displayed + +Disable close button + Causes the close button for the selected window not to be displayed + +Disable miniaturize button + Causes the miniaturize button for the selected window not to be displayed + +Keep on Top + Causes the selected window to stay on top of all other windows + +Omnipresent + Causes the selected window to be displayed in all workspaces + +Start miniaturized + Causes the selected window to start miniaturized + +Skip window list + Causes the select window to be skipped when cycling through the window list. + + +Advanced Options +~~~~~~~~~~~~~~~~ + +.. figure:: guide/images/wiaadvanced.gif + :figclass: borderless + :alt: Window Attributes Inspector: Advanced Options + +Ignore HideOthers + Causes the selected window to remain visible when **HideOthers** is selected + from the `Window Commands Menu <#2.2.9>`_ + +Don't bind keyboard shortcuts + Causes the selected window to receive ALL keyboard events + +Don't bind mouse clicks + Causes the selected window to receive all mouse-click events + +Keep Inside Screen + Causes the selected window not to be able to place itself off the screen + +Don't let it take focus + Causes the selected window not to be able to take input focus + +Don't Save Session + Causes the state of the selected window not to be saved when a session is + saved. (either when quitting WindowMaker, or when done manually.) + +Emulate Application Icon + Emulates an Application Icon for "broken" applications + + +Icon and Initial Workspace +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This panel allows you to **browse** for, and **update** the **mini-window +image** for the selected window, as well as setting the **initial workspace**. + +.. figure:: guide/images/wiaiandiw.gif + :figclass: borderless + :alt: Window Attributes Inspector: Icon and Initia Workspace + + +Application Specific +~~~~~~~~~~~~~~~~~~~~ + +Attributes specific to the selected application + +.. figure:: guide/images/wiaappspec.gif + :figclass: borderless + :alt: Window Attributes Inspector: Icon and Initia Workspace + +Start hidden + Starts the selected application in a hidden state + +No application icon + Disables the application icon for the selected application diff --git a/docs/chap3.html b/docs/chap3.html deleted file mode 100644 index 4c10c15..0000000 --- a/docs/chap3.html +++ /dev/null @@ -1,422 +0,0 @@ ---- -layout: default -title: User Guide - Workspace ---- -
-
-
- -

Chapter 3

- -

The Workspace


-
-
- - -

3.1 Working with Menus

Menus provide a list of commands that you can - execute.
-
- -
- [An Example Menu] -

-
- To execute a command listed in a menu, click in the corresponding item. The item will blink telling that the command is - going to be executed.
-
- Grayed commands are disabled and cannot be executed at that moment. If you click on them nothing will happen.
-
- Some menu entries have a little triangular indicator at the right. Selecting these entries will open a submenu, with a - new list of commands.
-
- You can use the keyboard to traverse and execute commands in some of the menus. First you must hit the key used to open - the menu --- like F12 for the root menu --- to enable keyboard traversal of it. Then you can use the Up and Down arrow - keys to change the current selected item and the Left and Right arrow keys to jump between submenus and parent menus. - To execute the current selected item press Return. To close the menu or stop menu traversal, press Escape. - Additionally, pressing the first letter for an menu item, will jump the current selection to that item.
-
- You can make frequently used menus ``stick'' to the workspace by dragging the titlebar of the menu. This will make a - close button appear in the menu titlebar. If you want to close the menu, just click in that button.
-
- Menus are normally placed on top of other windows and cannot be obscured by them. If you want the menus to be able to - be obscured by lowering them, double click the menu titlebar while holding the Meta key. Repeat this to make the menus - not obscurable again.
-
-
- - -

3.1.1 The Root Window Menu

The Root Window Menu or - Applications Menu has items that allow you to quickly launch applications and do some workspace - management.
-
- To open this menu, click on the workspace (root window) with the 3rd mouse button or hit the key bound to it (F12 by - default).
-
- The contents of the applications menu can be configured to hold the applications installed on your system. To learn how - to configure it, read the section on application menu configuration.
-
-
- - -

3.1.2 The Window List Menu

Clicking in the workspace with the middle - mouse button will open a menu listing all windows that currently exist, with the workspace in which the window is - located to its right. The current focused window is marked by a diamond sign next to its name. Clicking in an entry in - this menu will focus the window, raise it, and change to the workspace where it is located.
-
-
-
- - -

3.2 Working with Applications

In WindowMaker the instance of a running - application is represented by an application icon. Do not confuse it with the icons (miniwindows in WindowMaker) - displayed by other window managers when a window is iconified. Application icons and miniwindows can be differentiated - in that miniwindows have titlebars, application icons do not.
-
- WindowMaker identifies a group of windows as belonging to a single instance of an application through some standard - hints that the application sets in its windows. Unfortunately, not all applications that exist set these hints, - preventing some application-specific features from working. These hints are WM.CLASS,WM.COMMAND, and - WM.CLIENT.LEADER or the group leader in WM.HINTS.
-
-
- Note: The information about applications contained in this section only applies to versions of - WindowMaker built without the --enable-single-icon compile time option. This option is unsupported and behaviour when - it's enabled will not be covered in this text.
-
-
- - -

3.2.1 Hiding an Application

If you want to close and application but - intend to use it later you can hide it. When you hide an application all windows and miniwindows that belong to - that application will be removed from the screen and hidden into its application icon.
-
-
- To hide an application - -
    -
  • Click the miniaturize button of any of the windows that belong to the application while - holding the Control key.
    -
    - OR
    -
  • - -
  • Press the keyboard shortcut assigned to it, which is Meta+h in the default - configuration.
    -
    - OR
    -
  • - -
  • User the hide command in the window commands menu brought up when the - window titlebar is clicked with the right mouse button.
    -
    - OR
    -
  • - -
  • Use the (Un)Hide command in the application icon commands menu brought up when the - application icon is clicked with the right mouse button.
  • -

-
-
- To unhide an application - -
    -
  • Double click the application icon with the left mouse button.
    -
    - OR
    -
  • - -
  • Use the (Un)Hide command in the application icon commands menu brought up when the - application icon is clicked with the right mouse button.
  • -

-
- When you unhide an application, all it's windows and miniwindows will brought back, and you will be taken to the last - workspace in which you worked with that application.
-
-
- -

Extra Bindings

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionEffect
-
-
Double-click the application - icon while holding the Meta keyUnhide the clicked application, - and hide all other applications that are present in the current workspace.
-
-
Double-click the application - icon while holding the Shift keyUnhide the clicked application - in the current workspace
-
-
Double-click the application - icon with the middle mouse buttonUnhide the clicked application - and deminiaturize all its windows.
-
-
Double-click the window titlebar - with the right mouse button while holding the Meta key.Hide all applications in the - current workspace except for the clicked one
-
-
-

-
- There are two other commands in the applications menu related to application hiding:
-
- -
- - - - - - - - - - - - - - -
Hide othersHide all applications in the - current workspace, except for the currently active one.
Show AllUnhide all applications that - were hidden from the current workspace
-

-
-
-
- - -

3.2.2 The Application Icon Menu

A menu with commands that will apply - to the application can be brought up by clicking the application icon with the right mouse button.
-
- The commands available in this menu are:
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Unhide HereUnhides the application in the - current workspace.
(Un)HideHides the application. Unless - the application is already hidden, in which case it will unhide the application and take you to its - workspace.
Set Icon...Opens the icon image selection - panel for the application icon.
KillWill kill the - application.
-
- -

3.2.3 The Application Dock

The application dock is a place where you - can store frequently used applications for easy and fast access. It is located, by default, on the right side of the - screen.
-
- You can click the top icon (the one with the GNUstep logo) and drag it downward to remove most of the dock from view. - You can also drag it sideways to move the entire dock from side of the screen to the other.
-
- A menu similar to the application icon - menu is brought up when you click a docked icon with the right mouse button.
-
- To make the dock float over windows (not be coverable by windows), either double-click the top dock icon while - holding the Meta key, or select the "Floating Dock" option in the dock menu.
-
-
- Starting a docked application
-
- To start an application that is docked, double-click its icon. The icon will be briefly highlighted and the application - will start.
-
- While an application is not running an ellipsis is present in the lower left-hand corner of the icon. This ellipsis - will disappear when the application is started and reappear when the application is exited.
-
- While the application is running the docked icon will behave just like a normal, undocked application icon, except for - some extra actions specific to the dock.
-
-
- To start a docked application: - -
    -
  • Double-click the application icon with the left mouse button.
    -
    - OR
    -
  • - -
  • Use the "Launch" command in the dock menu for the icon. If the application is already - running it will start another instance.
    -
    - OR
    -
  • - -
  • Hold the Control key while double-clicking the icon to start another instance of the - application.
  • -

-
- If a new instance of an already running application is started it will get a new application icon.
-
-
- Customizing the dock
-
- To add new applications to the dock, you can click an application icon and drag it onto the dock. When a ghost image of - the icon appears you can release the mouse button and the icon will be docked.
-
- To reorder the docked applications, drag an icon to an empty slot and move the icons around as you want.
-
- To remove a docked application, drag it from the dock and release the mouse button when the ghost image disappears. To - remove the icon of an application that is running, hold the Meta key while dragging it.
-
-
- Configuring the docked application
-
- To change the settings of a docked application, select the "Settings..." item in the dock menu for that icon. A - settings panel for that icon will appear.
-
- -
- [Docked Application Settings Panel] -

-
- In the Application path and arguments field, the path for the application and its arguments can be changed. Note - that you can't change the application that is represented in the icon or change anything that would cause the - application name to be changed. For example, if the icon is for xterm you can't change the field's value to - ghostview; or if the icon is for xterm -name vi, you can't change it to xterm -name pine. Also - note that you cannot use shell commands, such as out put redirectors. (>, >> etc.)
-
-
- - -

3.3 Working with Workspaces


- - -

3.3.1 The Workspaces Menu

The Workspaces Menu allows you to - create, switch, destroy and rename workspaces.
-
- It has the following items:
-
- -
- - - - - - - - - - - - - - - - - - - - -
[New]Creates a new workspace and - automatically switches to it
[Destroy Last]Destroys the last workspace - unless it is occupied
[Workspaces]Each workspace has a - corresponding item in the Workspaces menu. Clicking in one of these entries will switch from the current - workspace to the selected workspace.
-
The current active workspace is indicated by a small indicator at the left of the workspace item.
-
- -
- [Workspace Menu] -

-
- To change the name of a workspace you must first ``stick'' the menu. Then Control click in the item corresponding to - the workspace you want to rename. The item will turn into a editable text field where you can edit the workspace name. - To finish editing the workspace name, press Return; to cancel it, press Escape.
-
- There is a limit of 16 characters on the length of the workspace name.
-
-
- An example Workspace menu being edited: - -
- - -

-
- - -

3.3.2 The workspace clip

[This section was unavailable in the - original, and thus is not here]
-
-
-
-
-
diff --git a/docs/chap3.rst b/docs/chap3.rst new file mode 100644 index 0000000..a7f270c --- /dev/null +++ b/docs/chap3.rst @@ -0,0 +1,322 @@ +--- +layout: default +title: User Guide - Workspace +--- + +The Workspace +============= + +Working with Menus +------------------ + +Menus provide a list of commands that you can execute. + +.. figure:: guide/images/menu.gif + :figclass: borderless + :alt: An Example Menu + +To execute a command listed in a menu, click in the corresponding item. The +item will blink telling that the command is going to be executed. + +Grayed commands are disabled and cannot be executed at that moment. If you +click on them nothing will happen. + +Some menu entries have a little triangular indicator at the right. Selecting +these entries will open a submenu, with a new list of commands. + +You can use the keyboard to traverse and execute commands in some of the menus. +First you must hit the key used to open the menu - like F12 for the root menu - +to enable keyboard traversal of it. Then you can use the Up and Down arrow keys +to change the current selected item and the Left and Right arrow keys to jump +between submenus and parent menus. To execute the current selected item press +Return. To close the menu or stop menu traversal, press Escape. Additionally, +pressing the first letter for an menu item, will jump the current selection to +that item. + +You can make frequently used menus "stick" to the workspace by dragging the +titlebar of the menu. This will make a close button appear in the menu +titlebar. If you want to close the menu, just click in that button. + +Menus are normally placed on top of other windows and cannot be obscured by +them. If you want the menus to be able to be obscured by lowering them, double +click the menu titlebar while holding the Meta key. Repeat this to make the +menus not obscurable again. + + +The Root Window Menu +~~~~~~~~~~~~~~~~~~~~ + +The *Root Window Menu* or *Applications Menu* has items that allow you to +quickly launch applications and do some workspace management. + +To open this menu, click on the workspace (root window) with the 3rd mouse +button or hit the key bound to it (F12 by default). + +The contents of the applications menu can be configured to hold the +applications installed on your system. To learn how to configure it, read the +section on application menu configuration. + + +The Window List Menu +~~~~~~~~~~~~~~~~~~~~ + +Clicking in the workspace with the middle mouse button will open a menu listing +all windows that currently exist, with the workspace in which the window is +located to its right. The current focused window is marked by a diamond sign +next to its name. Clicking in an entry in this menu will focus the window, +raise it, and change to the workspace where it is located. + + +Working with Applications +------------------------- + +In WindowMaker the instance of a running application is represented by an +application icon. Do not confuse it with the icons (miniwindows in WindowMaker) +displayed by other window managers when a window is iconified. Application +icons and miniwindows can be differentiated in that miniwindows have titlebars, +application icons do not. + +WindowMaker identifies a group of windows as belonging to a single instance of +an application through some standard hints that the application sets in its +windows. Unfortunately, not all applications that exist set these hints, +preventing some application-specific features from working. These hints are +**WM.CLASS**, **WM.COMMAND**, and **WM.CLIENT.LEADER** or the group leader in +**WM.HINTS**. + +Note: The information about applications contained in this section only applies +to versions of WindowMaker built without the --enable-single-icon compile time +option. This option is unsupported and behaviour when it's enabled will not be +covered in this text. + + +Hiding an Application +~~~~~~~~~~~~~~~~~~~~~ + +If you want to close and application but intend to use it later you can *hide* +it. When you hide an application all windows and miniwindows that belong to +that application will be removed from the screen and hidden into its +application icon. + +To hide an application: + +- Click the miniaturize button of any of the windows that belong to the + application while holding the Control key. + +OR + +- Press the keyboard shortcut assigned to it, which is Meta+h in the default + configuration. + +OR + +- User the hide command in the `window commands menu + `_ brought up when the window titlebar + is clicked with the right mouse button. + +OR + +- Use the (Un)Hide command in the application icon commands menu brought up + when the application icon is clicked with the right mouse button. + +To unhide an application + +- Double click the application icon with the left mouse button. + +OR + +- Use the (Un)Hide command in the application icon commands menu brought up + when the application icon is clicked with the right mouse button. + +When you unhide an application, all it's windows and miniwindows will brought +back, and you will be taken to the last workspace in which you worked with that +application. + +**Extra Bindings** + ++-----------------------------------+------------------------------------+ +| Action | Effect | ++===================================+====================================+ +| Double-click the application icon | Unhide the clicked application, | +| while holding the Meta key | and hide all other applications | +| | that are present in the current | +| | workspace. | ++-----------------------------------+------------------------------------+ +| Double-click the application icon | Unhide the clicked application in | +| while holding the Shift key | the current workspace | ++-----------------------------------+------------------------------------+ +| Double-click the application icon | Unhide the clicked application and | +| with the middle mouse button | deminiaturize all its windows. | ++-----------------------------------+------------------------------------+ +| Double-click the window titlebar | Hide all applications in the | +| with the right mouse button while | current workspace except for the | +| holding the Meta key. | clicked one. | ++-----------------------------------+------------------------------------+ + + +There are two other commands in the applications menu related to application +hiding: + +Hide others + Hide all applications in the current workspace, except for the currently + active one. + +Show All + Unhide all applications that were hidden from the current workspace + + +The Application Icon Menu +~~~~~~~~~~~~~~~~~~~~~~~~~ + +A menu with commands that will apply to the application can be brought up by +clicking the application icon with the right mouse button. + +The commands available in this menu are: + +Unhide Here + Unhides the application in the current workspace. + +(Un)Hide + Hides the application. Unless the application is already hidden, in which + case it will unhide the application and take you to its workspace. + +Set Icon... + Opens the icon image selection panel for the application icon. + +Kill + Will kill the application. + + +The Application Dock +~~~~~~~~~~~~~~~~~~~~ + +The application dock is a place where you can store frequently used +applications for easy and fast access. It is located, by default, on the right +side of the screen. + +You can click the top icon (the one with the GNUstep logo) and drag it downward +to remove most of the dock from view. You can also drag it sideways to move +the entire dock from side of the screen to the other. + +A menu similar to the `application icon menu <#the-application-icon-menu>`_ is +brought up when you click a docked icon with the right mouse button. + +To make the dock *float* over windows (not be coverable by windows), either +double-click the top dock icon while holding the Meta key, or select the +"Floating Dock" option in the dock menu. + + +Starting a docked application +............................. + +To start an application that is docked, double-click its icon. The icon will be +briefly highlighted and the application will start. + +While an application is not running an ellipsis is present in the lower +left-hand corner of the icon. This ellipsis will disappear when the application +is started and reappear when the application is exited. + +While the application is running the docked icon will behave just like a +normal, undocked application icon, except for some extra actions specific to +the dock. + +To start a docked application: + +- Double-click the application icon with the left mouse button. + +OR + +- Use the "Launch" command in the dock menu for the icon. If the application is + already running it will start another instance. + +OR + +- Hold the Control key while double-clicking the icon to start another instance + of the application. + +If a new instance of an already running application is started it will get a +new application icon. + + +Customizing the dock +.................... + +To add new applications to the dock, you can click an application icon and drag +it onto the dock. When a ghost image of the icon appears you can release the +mouse button and the icon will be docked. + +To reorder the docked applications, drag an icon to an empty slot and move the +icons around as you want. + +To remove a docked application, drag it from the dock and release the mouse +button when the ghost image disappears. To remove the icon of an application +that is running, hold the Meta key while dragging it. + + +Configuring the docked application +.................................. + +To change the settings of a docked application, select the "Settings..." item +in the dock menu for that icon. A settings panel for that icon will appear. + +.. figure:: guide/images/dockapppanel.gif + :figclass: borderless + :alt: Docked Application Settings Panel + +In the *Application path and arguments* field, the path for the application and +its arguments can be changed. Note that you can't change the application that +is represented in the icon or change anything that would cause the application +name to be changed. For example, if the icon is for ``xterm`` you can't change +the field's value to **ghostview**; or if the icon is for ``xterm -name vi``, +you can't change it to ``xterm -name pine``. Also note that you cannot use +shell commands, such as output redirectors. (``>``, ``>>``; etc.) + + +Working with Workspaces +----------------------- + +The Workspaces Menu +~~~~~~~~~~~~~~~~~~~~ + +The *Workspaces Menu* allows you to create, switch, destroy and rename +workspaces. + +It has the following items: + +New + Creates a new workspace and automatically switches to it + +Destroy Last + Destroys the last workspace unless it is occupied + +Workspaces + Each workspace has a corresponding item in the Workspaces menu. Clicking in + one of these entries will switch from the current workspace to the selected + workspace. + +The current active workspace is indicated by a small indicator at the left of +the workspace item. + +.. figure:: guide/images/wsmenu.gif + :figclass: borderless + :alt: Workspace Menu + +To change the name of a workspace you must first "stick" the menu. Then Control +click in the item corresponding to the workspace you want to rename. The item +will turn into a editable text field where you can edit the workspace name. To +finish editing the workspace name, press Return; to cancel it, press Escape. + +There is a limit of 16 characters on the length of the workspace name. + +An example Workspace menu being edited: + +.. figure:: guide/images/wsmenued.gif + :figclass: borderless + :alt: Workspace Menu: Editing a Workspace name + + +The workspace clip +~~~~~~~~~~~~~~~~~~~ + +.. WTF is that?? + +[This section was unavailable in the original, and thus is not here] diff --git a/docs/chap4.html b/docs/chap4.html deleted file mode 100644 index b4a0a5c..0000000 --- a/docs/chap4.html +++ /dev/null @@ -1,1660 +0,0 @@ ---- -layout: default -title: User Guide - Configuration ---- - - -

Chapter 4

- -

Configuring Window Maker


-
- - -

4.1 The Defaults System


- WindowMaker uses a defaults database for storing various information, like configurations and other data that must be - kept between sessions (like the list of applications of a saved session). The defaults database is stored as - property lists in the $(HOME)/GNUstep/Defaults directory. Each file in the $(HOME)/GNUstep/Defaults directory - contains data that belongs to a specific domain.
-
- Any application can use the defaults database to store its information. Generally an application will have one or more - domains that belong to it.
-
-
- - -

4.1.1 Property list File Format


-
- The syntax of the property list is simple, but, if you need to change it manually you must take care not to leave any - syntax errors.
-
- The EBNF for the property list is the following:
-
- -

Description of the syntax of a property list in the Bacchus Naur Form (BNF)

- -
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<object>::=<string> | - <data> | <array> | <dictionary>
<string>::=text with - non-alphanumeric characters | alphanumeric text
<array>::=`(' [ <object> { - `,' <object> }* ] `)'
<dictionary>::=`{' [ - <keyval_pair> { `,' <keyval_pair> }* ] `}'
<keyval_pair>::=<string> `=' - <object> `;'
-
-

-
- -

Example property list file

-
- {
-        "*" = {
-                Icon = "defaultAppIcon.xpm";
-        };
-        "xterm.XTerm" = {
-                Icon = "xterm.xpm";
-        };
-        xconsole = {
-                Omnipresent = YES;
-                NoTitlebar = YES;
-                KeepOnTop = NO;
-        };
- }
-
-
The property list above is a dictionary with 3 dictionaries inside. The first is keyed by ``*'', the second by -``XTerm.xterm'' and the last by ``xconsole''.
-
- Note that all strings that have non-alphabetic or numeric characters (like a dot ``.'' or the asterisk ``*'' are - enclosed by double quotes. Strings with only alphanumeric characters may or may not be enclosed in double quotes, as - they will not make any difference.
-
- Here is another example:
-
-
-{
-        FTitleBack = ( hgradient, gray, "#112233" );
-}
-
-

-
- The property list in the example above contains an array with 3 elements with a key named ``FTitleBack''.
-
- Except for cases like file names and paths, all value strings are case insensitive, i.e.: YES = Yes = yes = yEs
-
- - -

4.1.2 Value Types


- Here is a description of some of the types of values that an option might have:
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeValue
-
-
booleanYES or NO
-
-
integerany integer number, usually - limited by a range that will be indicated
-
-
positive integerany integer number greater than - or equal to zero (0)
-
-
speedUltraFast, Fast, Medium, Slow, - or VerySlow
-
-
mouse buttonLeft, Middle, Right, Button1, - Button2, Button3, Button4, or Button5
-
-
-

-
-
- - -

4.1.3 Preferences

General preference options are stored in the - WindowMaker domain; i.e. the $(HOME)/GNUstep/Defaults/WindowMaker file.
-
- Changes in preference options will automatically affect the current WindowMaker session, without a restart. Some - options, however, require a restart of WindowMaker before they take effect. Such options are marked with a * .
-
- Note that values marked as Default are values that are assumed if the option is not specified, instead of - factory default values that are set in the preference file.
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionValueDescription
PixmapPathlist of directories separated by - ":" (default: depends on the system)A list of directories where - pixmaps can be found. The pixmaps for things like icons, are searched in these paths in order of - appearance.
*NoDitheringboolean (default: - NO)Disable internal dithering of - images. Not recommended for displays with less than 8 bits per pixel.
*ColormapSizeinteger number > 1 (default: - 4)Number of colors for each of the - red, green and blue components to be used for the dithering colormap. This value must be greater than 1 and - smaller than 6 for 8bpp displays. It only makes sense on PseudoColor displays. This option has not effect on - TrueColor displays. Larger values result in better appearance, but leaves less colors for other - applications.
*ModifierKeymodifier key name (default: - Mod1)The key to use as the modifier - being referred as Meta in this manual, like Meta dragging a window to move it. Valid values are Alt, Meta, - Super, Hyper, Mod1, Mod2, Mod3, Mod4, Mod5.
UseSaveUndersboolean (default: - NO)Use saveunders in - WindowMaker windows. This can improve performance but increases memory usage. It also can cause problems with - refreshing in some applications.
DisableClipboolean (default: - NO)Will remove the application Clip - from the workspace.
DisableDockboolean (default: - NO)Will remove the application Dock - from the workspace
Superfluousboolean (default: - NO)Enable extra animations and - other cosmetic things that might increase peak memory and CPU usage.
SaveSessionOnExitboolean (default: - NO)Automatically save the state of - the session when exiting WindowMaker.
*IconSizeinteger > 4 (default: - 64)The size of application icons - and miniwindows.
OpaqueMoveboolean (default: - NO)Whether the whole window should - be moved while dragging it, or, if only it's frame should be dragged.
FocusModeManual or CickToFocus, Auto or - FocusFollowsMouse, SemiAuto or Sloppy (default: ClickToFocus)The mode of input focus setting. - Refer to section 2.2.1, Focusing a - Window
IgnoreFocusClickboolean (default: - NO)Whether the mouse click use to - focus a window should be ignore or treated normally.
AutoFocusboolean (default: - NO)Whether newly created windows - should receive input focus. Do not confuse with FocusMode=Auto.
RaiseDelayinteger number (default: - 0)How many tenths of a second to - wait before raising a window in Auto or Semi-Auto focus mode. 0 disables this feature.
DoubleClickTimeinteger number (default: - 250)If two mouse clicks occur in - this interval of time, it will be considered a double click.
ColorMapModeManual or ClickToFocus, Auto or - FocusFollowsMouse (default: auto)The mode of colormap setting. In - Manual or ClickToFocus mode, the colormap is set to the one belonging to the current focused - window. In Auto or FocusFollowsMouse mode, the colormap is set to the one belonging to the window - under the pointer.
CirculateRaiseboolean (default: - NO)Whether the window should be - raised when circulating. (focus the next or previous window through the keyboard)
OnTopTransientsboolean (default: - NO)Whether transient windows should - always be placed over their owners
WindowPlacementauto, cascade, manual, or random - (default: cascade)Sets placement mode for new - windows. Auto places the window automatically in the first open space found in the workspace. - Cascade places the window in incrementing positions starting from the the top-left corner of the - workspace. Manual allows you to place the window interactively with the mouse. Random paces the - window randomly in the workspace.
WindowPlaceOrigin(X,Y) where X and Y are integer - numbers (default: (0,0))Sets the offset, from the - top-left corner of the screen, to place windows. In non-manual WindowPlacement modes windows will not be placed - above or to the left of this point.
AutoArrangeIconsboolean (default: - NO)Whether icons should be - automatically arranged
ResizeDisplaycenter, corner, floating, or - line (default: corner)Selects the type or position of - the box that shows the window size when a window is being resized. center places the box in the center - of the workspace, corner places it in the top-left corner of the workspace, floating places it in - the center of the window being resized and line draws the current window size over the workspace, like - in a technical drawing.
MoveDisplaycenter, corner or floating - (default: corner)Selects the type or position of - the box that shows the window position when a window is being moved. The value meanings are the same as for the - ResizeDisplay option.
AlignSubmenusboolean (default: - NO)Whether submenus should be - aligned vertically with their parent menus.
WrapMenusboolean (default: - NO)Whether submenus should be - placed to the right of their parent menus when they don't fit the screen. Note that menus placed off the screen - can be scrolled.
ScrollableMenusboolean (default: - NO)Whether menus that are not fully - inside the screen should automatically scroll when the pointer is over them and near the border of the - screen.
MenuScrollSpeedspeed (default: - medium)The scrolling speed of - menus.
DontLinkWorkspacesboolean (default: - NO)Do not automatically switch to - the next or previous workspace when a window is dragged to the edge of the screen.
NoWindowUnderDockboolean (default: - NO)When maximizing windows, limit - their sizes so that they will not be covered by the dock.
NoWindowOverIconsboolean (default: - NO)When maximizing windows, limit - their sizes so that they will cover miniwindows and application icons.
StickyIconsboolean (default: - NO)Whether miniwindows should be - present in all workspaces.
CycleWorkspacesboolean (default: - NO)Set to YES if you want windows - that are dragged past the last workspace to be moved to the first workspace, and vice-versa.
AdvanceToNewWorkspaceboolean (default: - NO)Whether windows dragged past the - last workspace should create a new workspace.
DisableAnimationsboolean (default: - NO)Whether animations, like the one - done during minimization, should be disabled.
IconSlideSpeedspeed (default: - medium)The speed of icons when they are - being slid across the workspace.
ShadeSpeedspeed (default: - medium)The speed of the shading - animation.
DisableSoundboolean (default: - NO)Whether sound support in - WindowMaker should be disabled
*DisableWSMouseActionsboolean (default: - NO)Whether actions in the workspace - triggered by mouse-clicks should be disabled. This allows the use of file and desktop managers that place icons - on the root window (such as KDE).
SelectWindowMouseButtonmouse button (default: - left)The mouse button that activates - selection of multiple windows in the workspace.
WindowListMouseButtonmouse button (default: - middle)The mouse button that opens the - window list menu in the workspace.
ApplicationMenuMouseButtonmouse button (default: - right)The mouse button that opens the - applications menu in the workspace.
-

-
- -

Appearance Options


- Fonts are specified in the X Logical Font Description format. You can cut and paste these names from programs like - xfontsel.
-
- Colors are specified as color names in the standard X format. This can be any color name shown by the showrgb program (like black, white or gray) or a color value in the #rrggbb format, where - rr, gg and bb is the intensity of the color component (like #ff0000 for pure red or #000080 for medium blue). Note that - color names in the #rrggbb format must be enclosed with double quotes.
-
- Textures are specified as an array, where the first element specifies the texture type followed by a variable number of - arguments.
-
- Valid texture types are:
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(solid, color)the texture is a simple solid - color.
(dgradient, color1, - color2)the texture is a diagonal - gradient rendered from the top-left corner to the bottom-right corner. The first argument (color1) is the color - for the top-left corner and the second (color2) is for the bottom-right corner.
(hgradient, color1, - color2)the texture is a horizontal - gradient rendered from the left edge to the right edge. The first argument (color1) is the color for the left - edge and the second (color2) is for the right edge.
(vgradient, color1, - color2)the texture is a vertical - gradient rendered from the top edge to the bottom edge. The first argument (color1) is the color for the top - edge and the second (color2) is for the bottom edge.
(mdgradient, color1, - color2,...,colorn)this is equivalent to drgadient, - but you can specify more than two colors
(mhgradient, color1, - color2,...,colorn)this is equivalent to hrgadient, - but you can specify more than two colors
(mvgradient, color1, - color2,...,colorn)this is equivalent to vrgadient, - but you can specify more than two colors
-

-
- Examples: - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-(solid, gray)
-(dgradient, gray80, - gray20)
-(hgradient, gray80, - gray20)
-(vgradient, gray80, - gray20)
-

-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionValueDescription
*NewStyleboolean (default: - NO)Selects between N*XTSTEP style - buttons in the titlebar and a newer style of buttons.
WidgetColor(solid, color) where color is a - color name (default: (solid, grey))Chooses the color to be used in - titlebar buttons if NewStyle=No;
WorkspaceBacka texture or none (default: - none)Default texture for the - workspace background. Note the dgradient and mdgradient textures can take a lot of time to be - rendered.
IconBacktexture (default: (solid, - grey))Texture for the background of - icons and miniwindows.
FTitleBacktexture (default: (solid, - black))Texture for the focused window - titlebar.
PTitleBacktexture (default: (solid, - "#616161"))Texture for the titlebar of the - parent window of the currently focused transient window
UTitleBacktexture (default: (solid, - gray))Texture for unfocused window - titlebars.
MenuTitleBacktexture (default: (solid, - black))Texture for menu - titlebars.
MenuTextBacktexture (default: (solid, - gray))Texture for menu - items
FTitleColorcolor (default: - white)The color of the text in the - focused window titlebar.
PTitleColorcolor (default: - white)Color for the text in the - titlebar of the parent window of the currently focused transient.
UTitleColorcolor (default: - black)The color for the text in the - titlebar of unfocused windows.
MenuTitleColorcolor (default: - white)Color for the text in menu - titlebars
MenuTextColorcolor (default: - black)Color for the text in menu - items
HighlightColorcolor (default: - white)Color for the highlighted item - in menus.
HighlightTextColorcolor (default: - black)Color for the highlighted item - text in menus.
MenuDisabledColorcolor (default: - "#616161")Color for the text of disabled - menu items.
ClipTitleColorcolor (default: - black)Color for the text in the - clip.
CClipTitleColorcolor (default: - "#454045")Color for the text in the - collapsed clip.
WindowTitleFontfont (default: Helvetica bold - 12)Font for the text in window - titlebars.
MenuTitleFontfont (default: Helvetica bold - 12)Font for the text in menu - titlebars)
MenuTextFontfont (default: Helvetica medium - 12)Font for the text in menu - items
IconTitleFontfont (default: Helvetica medium - 8)Font for the text in miniwindow - titlebars.
ClipTitleFontfont (default: Helvetica bold - 10)Font for the text in the - clip.
Displayfontfont (default: Helvetica medium - 12)Font for the text information in - windows, like the size of windows during resize.
TitleJustifycenter, left, or right (default: - center)Justification of the text in - window titlebars.
-

-
- -

Keyboard Bindings


-
- Keyboard shortcut specifications are in the form:
-
-
-
-        [<modifier key names> + ] <key name>
-
-

-
- Where modifier key names specify an optional modifier key, like Meta or Shift. Any number of modifier keys might - be specified. The key name is the actual key that will trigger the action bound to the option.
-
- Examples:
-
- - - - - - - - - - - - - - - - - - - - - -
[F10]Means the F10 key.
Meta+TABMeans the TAB key with the Meta modifier key - pressed at the same time.
Meta+Shift+TABMeans the TAB key with the Meta and Shift - modifier keys pressed at the same time.

-
- Key names can be found at /usr/X11R6/include/X11/keysymdef.h The XK_ prefixes must be ignored (if key name is - XK_Return use Return).
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDefault ValueDescription
RootMenuKeyNoneOpens the root window menu at the current - position of the mouse pointer.
WindowListKeyNoneOpens the window list menu menu at the current - position of the mouse pointer.
WindowMenuKeyNoneOpens the window commands menu for the currently - focused window.
MiniaturizeKeyNoneMiniaturizes the currently - focused window.
HideKeyNoneHides the currently active - application.
CloseKeyNoneCloses the current focused - window
MaximizeKeyNoneMaxmizes the currently focused - window.
VMaximizeKeyNoneVertically Maximizes the - currently focused window.
RaiseKeyMeta+UpRaises the currently focused - window.
LowerKeyMeta+DownLowers the currently focused - window.
RaiseLowerKeyNoneRaises the window under the - pointer, or lowers it if it is already raised.
ShadeKeyNoneShades the currently focused - window.
SelectKeyNoneSelects current focused - window.
FocusNextKeyNoneSwitch focus to next - window.
FocusPrevKeyNoneSwitch focus to previous - window.
NextWorkspaceKeyNoneSwitches to next - workspace.
PrevWorkspaceKeyNoneSwitches to previous - workspace.
NextWorkspaceLayerKeyNoneSwitches to the next group of 10 - workspaces.
PrevWorkspaceLayerKeyNoneSwitches to the previous group - of 10 workspaces.
Workspace1KeyNoneSwitches to workspace - 1.
Workspace2KeyNoneSwitches to workspace 2, - creating it if it does not exist.
Workspace3KeyNoneSwitches to workspace 3, - creating it if it does not exist.
Workspace4KeyNoneSwitches to workspace 4, - creating it if it does not exist.
Workspace5KeyNoneSwitches to workspace 5, - creating it if it does not exist.
Workspace6KeyNoneSwitches to workspace 6, - creating it if it does not exist.
Workspace7KeyNoneSwitches to workspace 7, - creating it if it does not exist.
Workspace8KeyNoneSwitches to workspace 8, - creating it if it does not exist.
Workspace9KeyNoneSwitches to workspace 9, - creating it if it does not exist.
Workspace10KeyNoneSwitches to workspace 10, - creating it if it does not exist.
ClipLowerKeyNoneLowers the clip.
ClipLowerKeyNoneLowers the clip.
ClipRaiseLowerKEyNoneRaises the clip, or lowers it if - it is already raised.
-

-
-
-
- - -

4.1.4 Window Attributes


-
- Window attributes are stored in the $(HOME)/GNUstep/Defaults/WMWindowAttributes file.
-
- The contents of this file is a dictionary of attribute dictionaries keyed by window names. Like this:
-
-
-
-{
-        "*" = {
-                Icon = "defaultAppIcon.xpm";
-        };
-        "xterm.XTerm" = {
-                Icon = "xterm.xpm";
-        };
-        xconsole = {
-                Omnipresent = YES;
-                NoTitlebar = YES;
-                KeepOnTop = NO;
-        };
-}
-
-
Window names are in the form1:
-
- <window instance name>.<window class name>
-
- OR
-
- <window instance name>
-
- OR
-
- <window class name>
-
-
- Placing an asterisk as the window name means that the values set for that key are to be used as default values for all - windows. So, since xconsole does not specify an Icon attribute, it will use the default value, which in the above - example is defaultAppIcon.xpm.
-
-
- 1 You can get the values for these information by running the xprop utility on the desired window. When you do that, it will show the following line, - among other things:
-
- WM_CLASS(STRING) = "xterm", "XTerm"
-
- The first string (xterm) is the window instance name and the second (XTerm) the window class name.}
-
- -

Options:


-
- The default is NO for all options
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionValueDescription
Iconpixmap file nameAssigns a pixmap image to be - used as the icon for that window.
NoTitleBarbooleanDisables the titlebar in the - window.
NoResizeBarbooleanDisables the resizebar in the - window.
NoMiniaturizeButtonbooleanRemove the miniaturize - button.
NoCloseButtonbooleanRemove the close - button.
NoHideOthersbooleanDo not hide the window, or the - application to which the window belongs when a Hide Others command is issued.
NoMouseBindingsbooleanDo not grab mouse buttons in - that window. This means that actions like a Meta-click on the window will be caught by the application instead - of WindowMaker.
NoKeyBindingsbooleanDo not grab keys in that window. - This means that keystrokes that would normally be intercepted by WindowMaker (because they are bound to some - action), like Meta+Up, will be passed to the application.
NoAppIconbooleanDo not create application icon - for the window. This is useful for some applications that incorrectly get more than one application - icon.
KeepOnTopbooleanAlways keep the window over - other normal windows.
OmnipresentbooleanMake the window be present in - all workspaces, AKA sticky window.
SkipWindowListbooleanDo not list the window in the - window list menu.
KeepInsideScreenbooleanAlways keep the window inside - the visible are of the screen.
UnfocusablebooleanDo not let the window be - focused.
StartWorkspaceWorkspace number or - nameMake the window always be - initially shown in the indicated workspace.
-

-
- - -

4.1.5 Applications Menu

The applications menu (AKA: Root Menu) can be - defined in one of two distinct ways:
-
- -
    -
  • In the form of an array in property list format, in $(HOME)/GNUstep/Defaults/WMRootMenu
  • - -
  • In the form of a text file, whose location is present in $(HOME)/GNUstep/Defaults/WMRootMenu
  • -

-
-
diff --git a/docs/chap4.rst b/docs/chap4.rst new file mode 100644 index 0000000..2036257 --- /dev/null +++ b/docs/chap4.rst @@ -0,0 +1,778 @@ +--- +layout: default +title: User Guide - Configuration +--- + +Configuring Window Maker +======================== + +.. contents:: + :backlinks: none + :local: + +The Defaults System +------------------- + +WindowMaker uses a defaults database for storing various information, like +configurations and other data that must be kept between sessions (like the list +of applications of a saved session). The defaults database is stored as +*property lists* in the $(HOME)/GNUstep/Defaults directory. Each file in the +$(HOME)/GNUstep/Defaults directory contains data that belongs to a specific +*domain*. + +Any application can use the defaults database to store its information. +Generally an application will have one or more *domains* that belong to it. + +Property list File Format +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The syntax of the property list is simple, but, if you need to change it +manually you must take care not to leave any syntax errors. + +The EBNF for the property list is the following: + +**Description of the syntax of a property list in the Bacchus Naur Form (BNF)** + +.. code:: + :class: highlight + + ::= | | | + ::= text with non-alphanumeric characters | alphanumeric text + ::= `(' [ { `,' }* ] `)' + ::= `{' [ { `,' }* ] `}' + ::= `=' `;' + + +**Example property list file** + +.. code:: + :class: highlight + + { + "*" = { + Icon = "defaultAppIcon.xpm"; + }; + "xterm.XTerm" = { + Icon = "xterm.xpm"; + }; + xconsole = { + Omnipresent = YES; + NoTitlebar = YES; + KeepOnTop = NO; + }; + } + +The property list above is a dictionary with 3 dictionaries inside. The first +is keyed by "*", the second by "XTerm.xterm" and the last by "xconsole". + +Note that all strings that have non-alphabetic or numeric characters (like a +dot "." or the asterisk "*" are enclosed by double quotes. Strings with only +alphanumeric characters may or may not be enclosed in double quotes, as they +will not make any difference. + +Here is another example: + +.. code:: + :class: highlight + + { + FTitleBack = ( hgradient, gray, "#112233" ); + } + + +The property list in the example above contains an array with 3 elements with a +key named "FTitleBack". + +Except for cases like file names and paths, all value strings are case +insensitive, i.e.: YES = Yes = yes = yEs. + + +Value Types +~~~~~~~~~~~ + +Here is a description of some of the types of values that an option might have: + ++------------------+--------------------------------------------+ +| Type | Value | ++==================+============================================+ +| boolean | YES or NO | ++------------------+--------------------------------------------+ +| integer | any integer number, usually limited | +| | by a range that will be indicated | ++------------------+--------------------------------------------+ +| positive integer | any integer number greater than or | +| | equal to zero (0) a | ++------------------+--------------------------------------------+ +| speed | UltraFast, Fast, Medium, Slow, or VerySlow | ++------------------+--------------------------------------------+ +| mouse button | Left, Middle, Right, Button1, Button2, | +| | Button3, Button4, or Button5 | ++------------------+--------------------------------------------+ + + +Preferences +~~~~~~~~~~~ + +General preference options are stored in the *WindowMaker* domain; i.e. the +$(HOME)/GNUstep/Defaults/WindowMaker file. + +Changes in preference options will automatically affect the current WindowMaker +session, without a restart. Some options, however, require a restart of +WindowMaker before they take effect. Such options are marked with a * . + +Note that values marked as *Default* are values that are assumed if the option +is not specified, instead of *factory default* values that are set in the +preference file. + +.. TODO there is no point for describing all of the options. There is a lot of + them added, some of the changed and possibly removed. Let's treat them as + the advanced configuration and point to the right sources, where one can + easily figure out which options take which values + ++----------------------------+---------------------+--------------------------------------+ +| Option | Value | Description | ++============================+=====================+======================================+ +| PixmapPath | list of directories | A list of directories where pixmaps | +| | separated by ":" | can be found. The pixmaps for things | +| | (default: depends | like icons, are searched in these | +| | on the system) | paths in order of appearance. | ++----------------------------+---------------------+--------------------------------------+ +| `*NoDithering` | boolean | Disable internal dithering of | +| | (default: NO) | images. Not recommended for displays | +| | | with less than 8 bits per pixel. | ++----------------------------+---------------------+--------------------------------------+ +| `*ColormapSize` | integer number > 1 | Number of colors for each of the | +| | (default: 4) | red, green and blue components to be | +| | | used for the dithering colormap. | +| | | This value must be greater than 1 | +| | | and smaller than 6 for 8bpp | +| | | displays. It only makes sense on | +| | | PseudoColor displays. This option | +| | | has not effect on TrueColor | +| | | displays. Larger values result in | +| | | better appearance, but leaves less | +| | | colors for other applications. | ++----------------------------+---------------------+--------------------------------------+ +| `*ModifierKey` | modifier key name | The key to use as the modifier being | +| | (default: Mod1) | referred as Meta in this manual, | +| | | like Meta dragging a window to move | +| | | it. Valid values are Alt, Meta, | +| | | Super, Hyper, Mod1, Mod2, Mod3, | +| | | Mod4, Mod5. | ++----------------------------+---------------------+--------------------------------------+ +| UseSaveUnders | boolean | Use *saveunders* in WindowMaker | +| | (default: NO) | windows. This can improve | +| | | performance but increases memory | +| | | usage. It also can cause problems | +| | | with refreshing in some | +| | | applications. | ++----------------------------+---------------------+--------------------------------------+ +| DisableClip | boolean | Will remove the application Clip | +| | (default: NO) | from the workspace. | ++----------------------------+---------------------+--------------------------------------+ +| DisableDock | boolean | Will remove the application Dock | +| | (default: NO) | from the workspace | ++----------------------------+---------------------+--------------------------------------+ +| Superfluous | boolean | Enable extra animations and other | +| | (default: NO) | cosmetic things that might increase | +| | | peak memory and CPU usage. | ++----------------------------+---------------------+--------------------------------------+ +| SaveSessionOnExit | boolean | Automatically save the state of the | +| | (default: NO) | session when exiting WindowMaker. | ++----------------------------+---------------------+--------------------------------------+ +| `*IconSize` | integer > 4 | The size of application icons and | +| | (default: 64) | miniwindows. | ++----------------------------+---------------------+--------------------------------------+ +| OpaqueMove | boolean | Whether the whole window should be | +| | (default: NO) | moved while dragging it, or, if only | +| | | it's frame should be dragged. | ++----------------------------+---------------------+--------------------------------------+ +| FocusMode | Manual or | The mode of input focus setting. | +| | ClickToFocus, Auto | Refer to section `Focusing a Window | +| | or | `_ | +| | FocusFollowsMouse, | | +| | SemiAuto or Sloppy | | +| | (default: | | +| | ClickToFocus) | | +| | | | ++----------------------------+---------------------+--------------------------------------+ +| IgnoreFocusClick | boolean | Whether the mouse click use to focus | +| | (default: NO) | a window should be ignore or treated | +| | | normally. | ++----------------------------+---------------------+--------------------------------------+ +| AutoFocus | boolean | Whether newly created windows should | +| | (default: NO) | receive input focus. Do not confuse | +| | | with FocusMode=Auto. | ++----------------------------+---------------------+--------------------------------------+ +| RaiseDelay | integer number | How many tenths of a second to wait | +| | (default: 0) | before raising a window in Auto or | +| | | Semi-Auto focus mode. 0 disables | +| | | this feature. | ++----------------------------+---------------------+--------------------------------------+ +| DoubleClickTime | integer number | If two mouse clicks occur in this | +| | (default: 250) | interval of time, it will be | +| | | considered a double click. | ++----------------------------+---------------------+--------------------------------------+ +| ColorMapMode | Manual or | The mode of colormap setting. In | +| | ClickToFocus, | *Manual* or *ClickToFocus* mode, the | +| | Auto or | colormap is set to the one belonging | +| | FocusFollowsMouse | to the current focused window. In | +| | (default: auto) | *Auto* or *FocusFollowsMouse* mode, | +| | | the colormap is set to the one | +| | | belonging to the window under the | +| | | pointer. | ++----------------------------+---------------------+--------------------------------------+ +| CirculateRaise | boolean | Whether the window should be raised | +| | (default: NO) | when circulating. (focus the next or | +| | | previous window through the | +| | | keyboard) | ++----------------------------+---------------------+--------------------------------------+ +| OnTopTransients | boolean | Whether transient windows should | +| | (default: NO) | always be placed over their owners | ++----------------------------+---------------------+--------------------------------------+ +| WindowPlacement | auto, cascade, | Sets placement mode for new windows. | +| | manual, or | *Auto* places the window | +| | random | automatically in the first open | +| | (default: cascade) | space found in the workspace. | +| | | *Cascade* places the window in | +| | | incrementing positions starting from | +| | | the the top-left corner of the | +| | | workspace. *Manual* allows you to | +| | | place the window interactively with | +| | | the mouse. *Random* paces the window | +| | | randomly in the workspace. | ++----------------------------+---------------------+--------------------------------------+ +| WindowPlaceOrigin | (X,Y) where X | Sets the offset, from the top-left | +| | and Y are integer | corner of the screen, to place | +| | numbers | windows. In non-manual | +| | (default: (0,0)) | WindowPlacement modes windows will | +| | | not be placed above or to the left | +| | | of this point. | ++----------------------------+---------------------+--------------------------------------+ +| AutoArrangeIcons | boolean | Whether icons should be | +| | (default: NO) | automatically arranged | ++----------------------------+---------------------+--------------------------------------+ +| ResizeDisplay | center, corner, | Selects the type or position of the | +| | floating, or | box that shows the window size when | +| | line | a window is being resized. *center* | +| | (default: corner) | places the box in the center of the | +| | | workspace, *corner* places it in the | +| | | top-left corner of the workspace, | +| | | *floating* places it in the center | +| | | of the window being resized and | +| | | *line* draws the current window size | +| | | over the workspace, like in a | +| | | technical drawing. | ++----------------------------+---------------------+--------------------------------------+ +| MoveDisplay | center, corner | Selects the type or position of the | +| | or floating | box that shows the window position | +| | (default: corner) | when a window is being moved. The | +| | | value meanings are the same as for | +| | | the ResizeDisplay option. | ++----------------------------+---------------------+--------------------------------------+ +| AlignSubmenus | boolean | Whether submenus should be aligned | +| | (default: NO) | vertically with their parent menus. | ++----------------------------+---------------------+--------------------------------------+ +| WrapMenus | boolean | Whether submenus should be placed to | +| | (default: NO) | the right of their parent menus when | +| | | they don't fit the screen. Note that | +| | | menus placed off the screen can be | +| | | scrolled. | ++----------------------------+---------------------+--------------------------------------+ +| ScrollableMenus | boolean | Whether menus that are not fully | +| | (default: NO) | inside the screen should | +| | | automatically scroll when the | +| | | pointer is over them and near the | +| | | border of the screen. | ++----------------------------+---------------------+--------------------------------------+ +| MenuScrollSpeed | speed | The scrolling speed of menus. | +| | (default: medium) | | ++----------------------------+---------------------+--------------------------------------+ +| DontLinkWorkspaces | boolean | Do not automatically switch to the | +| | (default: NO) | next or previous workspace when a | +| | | window is dragged to the edge of the | +| | | screen. | ++----------------------------+---------------------+--------------------------------------+ +| NoWindowUnderDock | boolean | When maximizing windows, limit their | +| | (default: NO) | sizes so that they will not be | +| | | covered by the dock. | ++----------------------------+---------------------+--------------------------------------+ +| NoWindowOverIcons | boolean | When maximizing windows, limit their | +| | (default: NO) | sizes so that they will cover | +| | | miniwindows and application icons. | ++----------------------------+---------------------+--------------------------------------+ +| StickyIcons | boolean | Whether miniwindows should be | +| | (default: NO) | present in all workspaces. | ++----------------------------+---------------------+--------------------------------------+ +| CycleWorkspaces | boolean | Set to YES if you want windows that | +| | (default: NO) | are dragged past the last workspace | +| | | to be moved to the first workspace, | +| | | and vice-versa. | ++----------------------------+---------------------+--------------------------------------+ +| AdvanceToNewWorkspace | boolean | Whether windows dragged past the | +| | (default: NO) | last workspace should create a new | +| | | workspace. | ++----------------------------+---------------------+--------------------------------------+ +| DisableAnimations | boolean | Whether animations, like the one | +| | (default: NO) | done during minimization, should be | +| | | disabled. | ++----------------------------+---------------------+--------------------------------------+ +| IconSlideSpeed | speed | The speed of icons when they are | +| | (default: medium) | being slid across the workspace. | ++----------------------------+---------------------+--------------------------------------+ +| ShadeSpeed | speed | The speed of the shading animation. | +| | (default: medium) | | ++----------------------------+---------------------+--------------------------------------+ +| DisableSound | boolean | Whether sound support in WindowMaker | +| | (default: NO) | should be disabled | ++----------------------------+---------------------+--------------------------------------+ +| `*DisableWSMouseActions` | boolean | Whether actions in the workspace | +| | (default: NO) | triggered by mouse-clicks should be | +| | | disabled. This allows the use of | +| | | file and desktop managers that place | +| | | icons on the root window (such as | +| | | KDE). | ++----------------------------+---------------------+--------------------------------------+ +| SelectWindowMouseButton | mouse button | The mouse button that activates | +| | (default: left) | selection of multiple windows in the | +| | | workspace. | ++----------------------------+---------------------+--------------------------------------+ +| WindowListMouseButton | mouse button | The mouse button that opens the | +| | (default: middle) | window list menu in the workspace. | ++----------------------------+---------------------+--------------------------------------+ +| ApplicationMenuMouseButton | mouse button | The mouse button that opens the | +| | (default: right) | applications menu in the workspace. | ++----------------------------+---------------------+--------------------------------------+ + + +Appearance Options +~~~~~~~~~~~~~~~~~~ + +Fonts are specified in the X Logical Font Description format. You can cut and +paste these names from programs like ``xfontsel``. + +Colors are specified as color names in the standard X format. This can be any +color name shown by the ``showrgb`` program (like black, white or gray) or a +color value in the #rrggbb format, where rr, gg and bb is the intensity of the +color component (like #ff0000 for pure red or #000080 for medium blue). Note +that color names in the #rrggbb format must be enclosed with double quotes. + +Textures are specified as an array, where the first element specifies the +texture type followed by a variable number of arguments. + +Valid texture types are: + +(solid, color) + the texture is a simple solid color. + + +(dgradient, color1, color2) + the texture is a diagonal gradient rendered from the top-left corner to the + bottom-right corner. The first argument (color1) is the color for the + top-left corner and the second (color2) is for the bottom-right corner. + +(hgradient, color1, color2) + the texture is a horizontal gradient rendered from the left edge to the + right edge. The first argument (color1) is the color for the left edge and + the second (color2) is for the right edge. + +(vgradient, color1, color2) + the texture is a vertical gradient rendered from the top edge to the bottom + edge. The first argument (color1) is the color for the top edge and the + second (color2) is for the bottom edge. + + +(mdgradient, color1, color2,...,color*n*) + this is equivalent to drgadient, but you can specify more than two colors + +(mhgradient, color1, color2,...,color*n*) + this is equivalent to hrgadient, but you can specify more than two colors + + +(mvgradient, color1, color2,...,colorn) + this is equivalent to vrgadient, but you can specify more than two colors + +**Examples**: + +.. figure:: guide/images/texsolid.gif + :figclass: borderless + :alt: Solid Color + + (solid, gray) + +.. figure:: guide/images/texdgrad.gif + :figclass: borderless + :alt: Diagoonal Gradient + + (dgradient, gray80, gray20) + +.. figure:: guide/images/texhgrad.gif + :figclass: borderless + :alt: Horizontal Gradient + + (hgradient, gray80, gray20) + +.. figure:: guide/images/texvgrad.gif + :figclass: borderless + :alt: Vertical Gradient + + (vgradient, gray80, gray20) + + ++--------------------+----------------------+----------------------------------------+ +| Option | Value | Description | ++====================+======================+========================================+ +| `*NewStyle` | boolean | Selects between N*XTSTEP style buttons | +| | (default: NO) | in the titlebar and a newer style of | +| | | buttons. | ++--------------------+----------------------+----------------------------------------+ +| WidgetColor | (solid, color) | Chooses the color to be used in | +| | where color is a | titlebar buttons if NewStyle=No; | +| | color name | | +| | (default: | | +| | (solid, grey)) | | ++--------------------+----------------------+----------------------------------------+ +| WorkspaceBack | a texture or | Default texture for the workspace | +| | none | background. Note the *dgradient* and | +| | (default: none) | *mdgradient* textures can take a lot | +| | | of time to be rendered. | ++--------------------+----------------------+----------------------------------------+ +| IconBack | texture | Texture for the background of icons | +| | (default: | and miniwindows. | +| | (solid, grey)) | | ++--------------------+----------------------+----------------------------------------+ +| FTitleBack | texture | Texture for the focused window | +| | (default: | titlebar. | +| | (solid, black)) | | ++--------------------+----------------------+----------------------------------------+ +| PTitleBack | texture | Texture for the titlebar of the parent | +| | (default: | window of the currently focused | +| | (solid, "#616161")) | transient window | ++--------------------+----------------------+----------------------------------------+ +| UTitleBack | texture | Texture for unfocused window | +| | (default: | titlebars. | +| | (solid, gray)) | | ++--------------------+----------------------+----------------------------------------+ +| MenuTitleBack | texture | Texture for menu titlebars. | +| | (default: | | +| | (solid, black)) | | ++--------------------+----------------------+----------------------------------------+ +| MenuTextBack | texture | Texture for menu items | +| | (default: | | +| | (solid, gray)) | | +| | | | ++--------------------+----------------------+----------------------------------------+ +| FTitleColor | color | The color of the text in the focused | +| | (default: white) | window titlebar. | ++--------------------+----------------------+----------------------------------------+ +| PTitleColor | color | Color for the text in the titlebar of | +| | (default: white) | the parent window of the currently | +| | | focused transient. | ++--------------------+----------------------+----------------------------------------+ +| UTitleColor | color | The color for the text in the titlebar | +| | (default: black) | of unfocused windows. | ++--------------------+----------------------+----------------------------------------+ +| MenuTitleColor | color | Color for the text in menu titlebars | +| | (default: white) | | ++--------------------+----------------------+----------------------------------------+ +| MenuTextColor | color | Color for the text in menu items | +| | (default: black) | | ++--------------------+----------------------+----------------------------------------+ +| HighlightColor | color | Color for the highlighted item in | +| | (default: white) | menus. | ++--------------------+----------------------+----------------------------------------+ +| HighlightTextColor | color | Color for the highlighted item text in | +| | (default: black) | menus. | ++--------------------+----------------------+----------------------------------------+ +| MenuDisabledColor | color | Color for the text of disabled menu | +| | (default: "#616161") | items. | ++--------------------+----------------------+----------------------------------------+ +| ClipTitleColor | color | Color for the text in the clip. | +| | (default: black) | | ++--------------------+----------------------+----------------------------------------+ +| CClipTitleColor | color | Color for the text in the collapsed | +| | (default: "#454045") | clip. | ++--------------------+----------------------+----------------------------------------+ +| WindowTitleFont | font (default: | Font for the text in window | +| | Helvetica bold 12) | titlebars. | ++--------------------+----------------------+----------------------------------------+ +| MenuTitleFont | font (default: | Font for the text in menu titlebars) | +| | Helvetica bold 12) | | ++--------------------+----------------------+----------------------------------------+ +| MenuTextFont | font (default: | Font for the text in menu items | +| | Helvetica medium 12) | | ++--------------------+----------------------+----------------------------------------+ +| IconTitleFont | font (default: | Font for the text in miniwindow | +| | Helvetica medium 8) | titlebars. | ++--------------------+----------------------+----------------------------------------+ +| ClipTitleFont | font (default: | Font for the text in the clip. | +| | Helvetica bold 10) | | ++--------------------+----------------------+----------------------------------------+ +| Displayfont | font (default: | Font for the text information in | +| | Helvetica medium 12) | windows, like the size of windows | +| | | during resize. | ++--------------------+----------------------+----------------------------------------+ +| TitleJustify | center, left, | Justification of the text in window | +| | or right | titlebars. | +| | (default: center) | | ++--------------------+----------------------+----------------------------------------+ + + +Keyboard Bindings +~~~~~~~~~~~~~~~~~ + +Keyboard shortcut specifications are in the form: + +.. code:: + :class: highlight + + [ + ] + +Where *modifier key names* specify an optional modifier key, like Meta or +Shift. Any number of modifier keys might be specified. The *key name* is the +actual key that will trigger the action bound to the option. + +Examples: + +[F10] + Means the F10 key. + +Meta+TAB + Means the TAB key with the Meta modifier key pressed at the same time. + +Meta+Shift+TAB + Means the TAB key with the Meta and Shift modifier keys pressed at the same + time. + +Key names can be found at /usr/X11R6/include/X11/keysymdef.h The *XK_* prefixes +must be ignored (if key name is *XK_Return* use *Return*). + ++-----------------------+---------------+-----------------------------------------+ +| Option | Default Value | Description | ++=======================+===============+=========================================+ +| RootMenuKey | None | Opens the `root window menu | +| | | `_ | +| | | at the current position of the | +| | | mouse pointer. | ++-----------------------+---------------+-----------------------------------------+ +| WindowListKey | None | Opens the `window list menu`_ | +| | | menu at the current position of the | +| | | mouse pointer. | ++-----------------------+---------------+-----------------------------------------+ +| WindowMenuKey | None | Opens the `window commands menu | +| | | `_ | +| | | for the currently focused window. | ++-----------------------+---------------+-----------------------------------------+ +| MiniaturizeKey | None | Miniaturizes the currently focused | +| | | window. | ++-----------------------+---------------+-----------------------------------------+ +| HideKey | None | Hides the currently active | +| | | application. | ++-----------------------+---------------+-----------------------------------------+ +| CloseKey | None | Closes the current focused window | ++-----------------------+---------------+-----------------------------------------+ +| MaximizeKey | None | Maxmizes the currently focused window. | ++-----------------------+---------------+-----------------------------------------+ +| VMaximizeKey | None | Vertically Maximizes the currently | +| | | focused window. | ++-----------------------+---------------+-----------------------------------------+ +| RaiseKey | Meta+Up | Raises the currently focused window. | ++-----------------------+---------------+-----------------------------------------+ +| LowerKey | Meta+Down | Lowers the currently focused window. | ++-----------------------+---------------+-----------------------------------------+ +| RaiseLowerKey | None | Raises the window under the pointer, | +| | | or lowers it if it is already raised. | ++-----------------------+---------------+-----------------------------------------+ +| ShadeKey | None | Shades the currently focused window. | ++-----------------------+---------------+-----------------------------------------+ +| SelectKey | None | Selects current focused window. | ++-----------------------+---------------+-----------------------------------------+ +| FocusNextKey | None | Switch focus to next window. | ++-----------------------+---------------+-----------------------------------------+ +| FocusPrevKey | None | Switch focus to previous window. | ++-----------------------+---------------+-----------------------------------------+ +| NextWorkspaceKey | None | Switches to next workspace. | ++-----------------------+---------------+-----------------------------------------+ +| PrevWorkspaceKey | None | Switches to previous workspace. | ++-----------------------+---------------+-----------------------------------------+ +| NextWorkspaceLayerKey | None | Switches to the next group of 10 | +| | | workspaces. | ++-----------------------+---------------+-----------------------------------------+ +| PrevWorkspaceLayerKey | None | Switches to the previous group of | +| | | 10 workspaces. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace1Key | None | Switches to workspace 1. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace2Key | None | Switches to workspace 2, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace3Key | None | Switches to workspace 3, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace4Key | None | Switches to workspace 4, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace5Key | None | Switches to workspace 5, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace6Key | None | Switches to workspace 6, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace7Key | None | Switches to workspace 7, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace8Key | None | Switches to workspace 8, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| Workspace9Key | None | Switches to workspace 9, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| | | | +| Workspace10Key | None | Switches to workspace 10, creating | +| | | it if it does not exist. | ++-----------------------+---------------+-----------------------------------------+ +| ClipLowerKey | None | Lowers the clip. | ++-----------------------+---------------+-----------------------------------------+ +| ClipRaiseLowerKEy | None | Raises the clip, or lowers it if | +| | | it is already raised. | ++-----------------------+---------------+-----------------------------------------+ + + +Window Attributes +~~~~~~~~~~~~~~~~~ + +Window attributes are stored in the $(HOME)/GNUstep/Defaults/WMWindowAttributes +file. + +The contents of this file is a dictionary of attribute dictionaries keyed by +window names. Like this: + +.. code:: + :class: highlight + + { + "*" = { + Icon = "defaultAppIcon.xpm"; + }; + "xterm.XTerm" = { + Icon = "xterm.xpm"; + }; + xconsole = { + Omnipresent = YES; + NoTitlebar = YES; + KeepOnTop = NO; + }; + } + +Window names are in the form [1]_ : + +- . + +OR + +- + +OR + +- + +Placing an asterisk as the window name means that the values set for that key +are to be used as default values for all windows. So, since xconsole does not +specify an Icon attribute, it will use the default value, which in the above +example is defaultAppIcon.xpm. + + +**Options:** + +The default is NO for all options + ++---------------------+------------------+-------------------------------------+ +| Option | Value | Description | ++=====================+==================+=====================================+ +| Icon | pixmap file name | Assigns a pixmap image to be | +| | | used as the icon for that window. | ++---------------------+------------------+-------------------------------------+ +| NoTitleBar | boolean | Disables the titlebar in the | +| | | window. | ++---------------------+------------------+-------------------------------------+ +| NoResizeBar | boolean | Disables the resizebar in the | +| | | window. | ++---------------------+------------------+-------------------------------------+ +| NoMiniaturizeButton | boolean | Remove the miniaturize | +| | | button. | ++---------------------+------------------+-------------------------------------+ +| NoCloseButton | boolean | Remove the close button. | ++---------------------+------------------+-------------------------------------+ +| NoHideOthers | boolean | Do not hide the window, or the | +| | | application to which the window | +| | | belongs when a *Hide Others* | +| | | command is issued. | ++---------------------+------------------+-------------------------------------+ +| NoMouseBindings | boolean | Do not grab mouse buttons in that | +| | | window. This means that actions | +| | | like a Meta-click on the window | +| | | will be caught by the application | +| | | instead of WindowMaker. | ++---------------------+------------------+-------------------------------------+ +| NoKeyBindings | boolean | Do not grab keys in that window. | +| | | This means that keystrokes that | +| | | would normally be intercepted by | +| | | WindowMaker (because they are | +| | | bound to some action), like | +| | | Meta+Up, will be passed to the | +| | | application. | ++---------------------+------------------+-------------------------------------+ +| NoAppIcon | boolean | Do not create application icon for | +| | | the window. This is useful for some | +| | | applications that incorrectly get | +| | | more than one application icon. | ++---------------------+------------------+-------------------------------------+ +| KeepOnTop | boolean | Always keep the window over other | +| | | normal windows. | ++---------------------+------------------+-------------------------------------+ +| Omnipresent | boolean | Make the window be present in all | +| | | workspaces, AKA sticky window. | ++---------------------+------------------+-------------------------------------+ +| | | | +| SkipWindowList | boolean | Do not list the window in the | +| | | `window list menu`_ | ++---------------------+------------------+-------------------------------------+ +| | | | +| KeepInsideScreen | boolean | Always keep the window inside the | +| | | visible are of the screen. | ++---------------------+------------------+-------------------------------------+ +| Unfocusable | boolean | Do not let the window be focused. | ++---------------------+------------------+-------------------------------------+ +| StartWorkspace | Workspace number | Make the window always be initially | +| | or name | shown in the indicated workspace. | ++---------------------+------------------+-------------------------------------+ + + +Applications Menu +~~~~~~~~~~~~~~~~~ + +The applications menu (AKA: Root Menu) can be defined in one of two distinct +ways: + +- In the form of an array in property list format, in + $(HOME)/GNUstep/Defaults/WMRootMenu +- In the form of a text file, whose location is present in + $(HOME)/GNUstep/Defaults/WMRootMenu + + +---- + +.. [1] You can get the values for these information by running the ``xprop`` + utility on the desired window. When you do that, it will show the following + line, among other things: + + .. code:: + :class: highlight + + WM_CLASS(STRING) = "xterm", "XTerm" + + The first string (xterm) is the window instance name and the second (XTerm) + the window class name. + + +.. _window list menu: chap3.html#3.12 diff --git a/docs/chap5.html b/docs/chap5.html deleted file mode 100644 index 8f47c2b..0000000 --- a/docs/chap5.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: default -title: User Guide - Tips ---- -
-
-
- -

Chapter 5

- -

Tips


-
- -
    -
  • If the size of a window gets so large that it doesn't fit on the screen and you can't manipulate it, you can - simply hold the Meta key while dragging the window in the client area. This way you can move the window up or down - and resize it, if you want.
    -
  • - -
  • If you want windows to be able to cover the dock, you can make the dock lowerable by double clicking the first - dock icon while holding the Meta key. Then, you can raise and lower the dock through the first icon, just like you do - with windows.
    -
  • - -
  • If you want windows to be able to cover menus, you can make them lowerable just like the dock by double clicking - the titlebar with the Meta key pressed.
  • -

-
-
diff --git a/docs/chap5.rst b/docs/chap5.rst new file mode 100644 index 0000000..1249c0f --- /dev/null +++ b/docs/chap5.rst @@ -0,0 +1,20 @@ +--- +layout: default +title: User Guide - Tips +--- + +Tips +==== + +- If the size of a window gets so large that it doesn't fit on the screen and + you can't manipulate it, you can simply hold the Meta key while dragging the + window in the client area. This way you can move the window up or down and + resize it, if you want. + +- If you want windows to be able to cover the dock, you can make the dock + lowerable by double clicking the first dock icon while holding the Meta key. + Then, you can raise and lower the dock through the first icon, just like you + do with windows. + +- If you want windows to be able to cover menus, you can make them lowerable + just like the dock by double clicking the titlebar with the Meta key pressed. diff --git a/docs/chap6.html b/docs/chap6.html deleted file mode 100644 index 3c01974..0000000 --- a/docs/chap6.html +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default -title: User Guide - Glossary ---- - -
-
-
- -

Glossary

- -
    -
  • [drag] to click in an object with the mouse and move the mouse while holding the mouse button.
  • - -
  • [miniaturize] (iconify, minimize) to temporarily put a window aside, replacing the window with a miniature - representation of it.
  • - -
  • [Meta key] depending on the system and keyboard types, this can mean different keys. Under Linux, it is usually - the Alt or Alternate key.
  • -

-
-
diff --git a/docs/chap6.rst b/docs/chap6.rst new file mode 100644 index 0000000..313d739 --- /dev/null +++ b/docs/chap6.rst @@ -0,0 +1,16 @@ +--- +layout: default +title: User Guide - Glossary +--- + +Glossary +======== + +- [drag] to click in an object with the mouse and move the mouse while holding + the mouse button. + +- [miniaturize] (iconify, minimize) to temporarily put a window aside, + replacing the window with a miniature representation of it. + +- [Meta key] depending on the system and keyboard types, this can mean + different keys. Under Linux, it is usually the Alt or Alternate key. diff --git a/docs/chap7.html b/docs/chap7.html deleted file mode 100644 index 5c27222..0000000 --- a/docs/chap7.html +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: default -title: User Guide - Credits ---- -
-
-
- -

Chapter 7

- -

Credits


-
- The original TeX version of this document was written by Afredo K. Kojima.
-
- The HTML conversion was done primarily by Jeremy Crabtree, with assistance from Dan Olav Mikael Hultgren - Gudmundsson.
-
-
diff --git a/docs/chap7.rst b/docs/chap7.rst new file mode 100644 index 0000000..307a8cb --- /dev/null +++ b/docs/chap7.rst @@ -0,0 +1,12 @@ +--- +layout: default +title: User Guide - Credits +--- + +Credits +======= + +The original TeX version of this document was written by Afredo K. Kojima. + +The HTML conversion was done primarily by Jeremy Crabtree, with assistance from +Dan Olav Mikael Hultgren Gudmundsson. diff --git a/docs/guide_toc.html b/docs/guide_toc.html deleted file mode 100644 index 955956c..0000000 --- a/docs/guide_toc.html +++ /dev/null @@ -1,140 +0,0 @@ ---- -layout: default -title: User Guide ---- -
-
- -

Chapter 1: Introduction

- -
- -

Chapter 2: Windows

- -
- -

Chapter 3: The Workspace

- -
- -

Chapter 4: Configuring WindowMaker

- -
-
- -

Chapter 5: Tips


-
- -

Chapter 6: Glossary


-
- -

Chapter 7: Credits


-
-
-
-
diff --git a/docs/guide_toc.rst b/docs/guide_toc.rst new file mode 100644 index 0000000..83197d9 --- /dev/null +++ b/docs/guide_toc.rst @@ -0,0 +1,12 @@ +--- +layout: default +title: User Guide +--- + +- `Chapter 1: Introduction `_ +- `Chapter 2: Windows `_ +- `Chapter 3: The Workspace `_ +- `Chapter 4: Configuring WindowMaker `_ +- `Chapter 5: Tips `_ +- `Chapter 6: Glossary `_ +- `Chapter 7: Credits `_ diff --git a/docs/guidedtour/back.html b/docs/guidedtour/back.html deleted file mode 100644 index c0b95c2..0000000 --- a/docs/guidedtour/back.html +++ /dev/null @@ -1,153 +0,0 @@ ---- -layout: default -title: Guided Tour - Backgrounds and Themes ---- - -
Backgrounds and Themes
- - - -
Back to index
- - - -For the purposes of this guided tour, only those appearance options that -are built-in to Window Maker will be considered. Crafting custom styles -and themes is not terribly difficult, nor do you need any special -knowledge of programming languages or other specialized skills, but -this is outside the intended scope of the guided tour.
- -
- -The appearance of the Window Maker GUI can easily be customized from -the applications menu item "Appearance."
- -Themes, styles, icon sets, and backgrounds can be selected as soon as -they are installed in the right directory. -
- -Themes should be installed in the directory -~/GNUstep/Library/WindowMaker/Themes/
- -Styles should be installed in the directory -~/GNUstep/Library/WindowMaker/Styles/
- -Backgrounds should be installed in the directory -~/GNUstep/Library/WindowMaker/Backgrounds/
- -
- -If you are working within a freshly-installed instance of Window Maker, -your Linux distribution probably provided some default themes, styles -and backgrounds. Rarely, a distribution -provides no additional themes, styles or backgrounds - expecting users -to provide these on their own.
- -
- -Here is the "Appearance" menu and some of its associated sub-menus, -including themes, styles and backgrounds:
- -
- -
Appearance menu items
-
- -
-In the screenshot above, most of the styles are default to the Debian -GNU/Linux distribution, while most of the themes were user-installed. -Many themes are available for download on the internet. 
- -

Backgrounds

- - -

Backgrounds may be system-generated solid or gradient colors, or -they may be images from user or distibution-supplied image files. The -easiest way to change a system-generated background color or color -gradient is to select one from the "Appearance -> Background -> < Solid or Gradient >" menu. In most default configurations there will be six to eight selections in each category.

-

Likewise, the easiest way to change to a background image is to -select one from the "Appearance -> Background -> Images" menu. If -you wish to install your own images for use as backgrounds, place the -image file in your ~/GNUstep/Library/WindowMaker/Backgrounds/ directory -and they will be available from the menu immediately.

- -

- -

Styles

- -A style defines the look of the key components of the Window Maker -desktop. These components include the window titlebar and resizebar, the menu title and text field, and the icon background.
- -
- -The characteristics defined in a style (or theme) are  the color -and -"texture" of key GUI elements. Texture in this context means using -multiple colors in -various color gradients - you are not limited to solid colors -only. 
- -
- -The easiest method for changing the style is to select a style from the -"Appearance -> Style" menu.
- -
- -A style may also be created using the Appearance -Preferences tool in WPrefs.app. -From this tool, you may configure the color and texture of window -elements (titlebars, resizebars), menu elements (menu titlebar, menu -item text colors, menu "style") and the color and texture of icon -backgrounds. The location of titlebar text and the font and text color -for window and menu text may also be configured here.
- -
- -
Appearance preferences tool
-
- -
- -More information on creating a style "from scratch" may be found in the Window Maker User's Guide. (Scroll down to the section on "Appearance Options.")
-
-A step-by-step guide to crafting a custom style is available HERE.
- -

Themes

- -

In its most basic form, a theme is simply a style that also -includes a background. Some Linux distributions provide one or more -default themes for use  system-wide. You may -install your own themes in the ~/GNUstep/Library/WindowMaker/Themes/ -directory. Themes installed in the correct directory will be -available for selection in the "Appearance -> Themes" menu. -Selecting Themes from the Appearance menu runs the setstyle program to install the -theme and record it in the ~/GNUstep/Defaults/WindowMaker -file.

-Two sites -providing preconfigured themes are HERE -and HERE. -An internet search for "Window Maker themes" will generate additional -results, and you should also check your Linux distribution's -repositories - some provide themes for installation using your -distribution's package management system. -

Themes may include images in png, jpg, xpm, and other supported image file -formats for key elements of the GUI such as titlebars, icon -backgrounds, and the workspace background. Themes that include images -cannot be stored as a single text file, and therefore must be stored in a -directory. A theme directory must contain all of the image files needed -for the theme along with a file named "style." The style file in a -theme directory will specify all of the GUI elements including any -image files used for those elements in lieu of rgb color -specifications. A theme directory must use the suffix ".themed" after -the theme name.
-

- -

- -
Back to index
diff --git a/docs/guidedtour/back.rst b/docs/guidedtour/back.rst new file mode 100644 index 0000000..b54f151 --- /dev/null +++ b/docs/guidedtour/back.rst @@ -0,0 +1,128 @@ +--- +layout: default +title: Guided Tour - Backgrounds and Themes +--- +.. TODO: check for the dead links + +Backgrounds and Themes +====================== + +.. contents:: + :backlinks: none + +For the purposes of this guided tour, only those appearance options that are +built-in to Window Maker will be considered. Crafting custom styles and themes +is not terribly difficult, nor do you need any special knowledge of programming +languages or other specialized skills, but this is outside the intended scope +of the guided tour. + +The appearance of the Window Maker GUI can easily be customized from the +applications menu item "Appearance". + +Themes, styles, icon sets, and backgrounds can be selected as soon as they are +installed in the right directory. + +Themes should be installed in the directory +``~/GNUstep/Library/WindowMaker/Themes/`` + +Styles should be installed in the directory +``~/GNUstep/Library/WindowMaker/Styles/`` + +Backgrounds should be installed in the directory +``~/GNUstep/Library/WindowMaker/Backgrounds/`` + +If you are working within a freshly-installed instance of Window Maker, your +Linux distribution probably provided some default themes, styles and +backgrounds. Rarely, a distribution provides no additional themes, styles or +backgrounds - expecting users to provide these on their own. + +Here is the "Appearance" menu and some of its associated sub-menus, +including themes, styles and backgrounds: + +.. figure:: images/appearancemenu.png + :alt: Appearance menu items + :figclass: borderless + +In the screenshot above, most of the styles are default to the Debian GNU/Linux +distribution, while most of the themes were user-installed. Many themes are +available for download on the internet. + +Backgrounds +----------- + +Backgrounds may be system-generated solid or gradient colors, or they may be +images from user or distribution-supplied image files. The easiest way to +change a system-generated background color or color gradient is to select one +from the "Appearance -> Background -> " menu. In most default +configurations there will be six to eight selections in each category. + +Likewise, the easiest way to change to a background image is to select one from +the "Appearance -> Background -> Images" menu. If you wish to install +your own images for use as backgrounds, place the image file in your +``~/GNUstep/Library/WindowMaker/Backgrounds/`` directory and they will be +available from the menu immediately. + +Styles +------ + +A style defines the look of the key components of the Window Maker desktop. +These components include the window titlebar and resizebar, the menu title and +text field, and the icon background. + +The characteristics defined in a style (or theme) are the color and "texture" +of key GUI elements. Texture in this context means using multiple colors in +various color gradients - you are not limited to solid colors only. + +The easiest method for changing the style is to select a style from the +"Appearance -> Style" menu. + +A style may also be created using the *Appearance Preferences* tool in +*WPrefs.app*. From this tool, you may configure the color and texture of +window elements (titlebars, resizebars), menu elements (menu titlebar, menu +item text colors, menu "style") and the color and texture of icon backgrounds. +The location of titlebar text and the font and text color for window and menu +text may also be configured here. + + +.. figure:: images/prefs13.png + :figclass: borderless + :alt: Appearance preferences tool + + Appearance preferences tool + +More information on creating a style "from scratch" may be found `in the Window +Maker User's Guide <{{ site.baseurl }}/docs/chap4.html>`_. (Scroll down to the +section on "Appearance Options.") + +A step-by-step guide to crafting a custom style is available `HERE +`__. + +Themes +------ + +In its most basic form, a theme is simply a style that also includes a +background. Some Linux distributions provide one or more default themes for use +system-wide. You may install your own themes in the +``~/GNUstep/Library/WindowMaker/Themes/`` directory. Themes installed in the +correct directory will be available for selection in the "Appearance -> +Themes" menu. Selecting Themes from the Appearance menu runs the *setstyle* +program to install the theme and record it in the +``~/GNUstep/Defaults/WindowMaker`` file. + +Two sites providing preconfigured themes are `HERE +`__ and `HERE +`__. An internet search for "Window +Maker themes" will generate additional results, and you should also check your +Linux distribution's repositories - some provide themes for installation using +your distribution's package management system. + +Themes may include images in png, jpg, xpm, and other supported image file +formats for key elements of the GUI such as titlebars, icon backgrounds, and +the workspace background. Themes that include images cannot be stored as a +single text file, and therefore must be stored in a directory. A theme +directory must contain all of the image files needed for the theme along with a +file named "style." The style file in a theme directory will specify all of the +GUI elements including any image files used for those elements in lieu of rgb +color specifications. A theme directory must use the suffix ".themed" after the +theme name. diff --git a/docs/guidedtour/clip.html b/docs/guidedtour/clip.html deleted file mode 100644 index a3ee5ad..0000000 --- a/docs/guidedtour/clip.html +++ /dev/null @@ -1,148 +0,0 @@ ---- -layout: default -title: Guided Tour - Clip ---- - -

-
CLIP
-

- -

-

- -
Back to index
-
- -
    - -
- -

By default, The clip is represented by the icon on the top left of -the screen containing a paperclip image.

- -

Clip icon
-

- -

The clip's primary function is to serve as a workspace-specific -dock. In -other words, applications may be attached to the clip just as they are -to the dock, but the clip and its associated applications are specific -to each individual workspace - not available on all workspaces as they -are on the dock.

- -

The clip's secondary function is to act as a "pager" - a utility for -changing from one workspace to another (paging). The arrows at the top -right and bottom left corners of the clip icon allow you to switch from -one workspace to the next workspace (top right) or previous workspace -(bottom left). -

- -

The current workspace name (if any) and number are displayed on the -clip.
-

- -

The clip also has a number of menu-driven features. -

- -

Clip Menu

- -

Right-clicking the clip displays a menu.

- -
-

clip menu

-
- -

Clip Options
- -

- - -The first menu item allows you to select clip options. The following -options are available:
- -
    - -
  • Keep on top - do not -allow windows to cover the clip.
    -
  • -
  • Collapsed - icons -attached to the clip are hidden until you left-click the clip, which -unhides them.
  • -
  • Autocollapse - same as -the previous option, except that mouseing over the clip unhides -application icons.
  • -
  • Autoraise - clicking an -icon representing a -window hidden under a larger window brings that window to the front.
  • -
  • Autoattract icons -- selecting this option attracts the icon of any application launched -on the current workspace. Closing the application removes the icon from -the clip.
  • -
- -

Rename Workspace

- - -This item gives you to ability to name (or rename) the current -workspace.
- -
- -Some users tend to group certain applications by workspace -and like to name the workspace to indicate the nature of the -applications on the clip. For example, a user might have a browser, an -IRC client, and a file transfer application clipped on a workspace, and -might name that workspace "internet" to indicate the workspace's -primary function. The user might have a seperate workspace with a -vector graphics application, an image manipulation application, and an -image viewer on the clip, and might name that workspace "graphics."
- -
- -

Other Options

- - -Right-clicking a clipped application's icon gives options specific to -that application.
- -
    - -
  • You may make the application's icon omnipresent -(clipped on all workspaces).
    -
  • -
  • You may select one or all clipped icons.
    -
  • -
  • You may move -one or all icons to a -different workspace.
    -
  • -
  • You may remove the icon.
  • -
  • You may instruct Window Maker to have all icons "attracted" to -the clip as soon as each application is launched, rather than placing them intially in the defined location on the display.
  • -
- -The remaining clip menu items are similar to those of the dock -application icon menu. -As with the dock, clipped applications may be launched, hidden, or -killed and their settings (icon used, application launch -path/arguments, middle-click launch) may be -modified.
- -
- -From version 0.80.0 on, the clip can "steal" appicons. This feature has -nothing to -do with autoattracting icons. When you start an application from somewhere -other than either the clip or the dock (i.e., from the menu or a -terminal), and the application is already either docked or clipped, a -new application icon does not appear at the bottom -of your -screen. The icon that is already docked or clipped "steals" the icon -function. As a -result, the icon for the newly-launched application is the icon already on -the -clip or -the dock.
-
- -
Back to index
diff --git a/docs/guidedtour/clip.rst b/docs/guidedtour/clip.rst new file mode 100644 index 0000000..aa15fec --- /dev/null +++ b/docs/guidedtour/clip.rst @@ -0,0 +1,102 @@ +--- +layout: default +title: Guided Tour - Clip +--- + +CLIP +==== + +By default, The clip is represented by the icon on the top left of the screen +containing a paperclip image. + +.. figure:: images/clip.png + :alt: Clip icon + :figclass: borderless + +The clip's primary function is to serve as a workspace-specific dock. In other +words, applications may be attached to the clip just as they are to the dock, +but the clip and its associated applications are specific to each individual +workspace - not available on all workspaces as they are on the dock. + +The clip's secondary function is to act as a "pager" - a utility for changing +from one workspace to another (paging). The arrows at the top right and bottom +left corners of the clip icon allow you to switch from one workspace to the +next workspace (top right) or previous workspace (bottom left). + +The current workspace name (if any) and number are displayed on the +clip. + +The clip also has a number of menu-driven features. + +Clip Menu +--------- + +Right-clicking the clip displays a menu. + +.. figure:: images/menu_clip.png + :alt: Clip menu + :figclass: borderless + + Clip menu + +Clip Options +------------ + +The first menu item allows you to select clip options. The following options +are available: + +- *Keep on top* - do not allow windows to cover the clip. +- *Collapsed* - icons attached to the clip are hidden until you left-click the + clip, which unhides them. +- *Autocollapse* - same as the previous option, except that mouseing over the + clip unhides application icons. +- *Autoraise* - clicking an icon representing a window hidden under a larger + window brings that window to the front. +- *Autoattract icons* - selecting this option attracts the icon of any + application launched on the current workspace. Closing the application + removes the icon from the clip. + +Rename Workspace +---------------- + +This item gives you to ability to name (or rename) the current workspace. + +Some users tend to group certain applications by workspace and like to name the +workspace to indicate the nature of the applications on the clip. For example, +a user might have a browser, an IRC client, and a file transfer application +clipped on a workspace, and might name that workspace "internet" to indicate +the workspace's primary function. The user might have a seperate workspace with +a vector graphics application, an image manipulation application, and an image +viewer on the clip, and might name that workspace "graphics." + +Other Options +------------- + +Right-clicking a clipped application's icon gives options specific to that +application. + +- You may make the application's icon *omnipresent* (clipped on all + workspaces). + +- You may *select* one or all clipped icons. + +- You may *move* one or all icons to a different workspace. + +- You may *remove* the icon. + +- You may instruct Window Maker to have all icons *attracted* to the clip as + soon as each application is launched, rather than placing them initially in + the defined location on the display. + +The remaining clip menu items are similar to those of the `Dock application +icon menu `_. As with the dock, clipped applications may be +launched, hidden, or killed and their settings (icon used, application launch +path/arguments, middle-click launch) may be modified. + +From version 0.80.0 on, the clip can "steal" appicons. This feature has nothing +to do with autoattracting icons. When you start an application from somewhere +other than either the clip or the dock (i.e., from the menu or a terminal), and +the application is already either docked or clipped, a new application icon +does not appear at the bottom of your screen. The icon that is already docked +or clipped "steals" the icon function. As a result, the icon for the +newly-launched application is the icon already on the clip or the dock. diff --git a/docs/guidedtour/dock.html b/docs/guidedtour/dock.html deleted file mode 100644 index 7b08ec1..0000000 --- a/docs/guidedtour/dock.html +++ /dev/null @@ -1,180 +0,0 @@ ---- -layout: default -title: Guided Tour - Dock ---- - -

-
DOCK
-

- -

- - -
Back to index
- - - -

Application dock

- - -

The dock is the column of icons located by default on the right -side of the screen.

- -

Any application can be attached to the dock. To do this, open an -application then simply left-click-and-drag the application's icon to -the last position on the dock. The dock will "attract" the icon and it -will remain on the dock until removed by the user (left-click-and-drag -the icon off the dock - it will disappear.) If you have saved your -Window Maker session prior to logout (or set Window Maker to autosave -your session upon logout) any icons you docked will automatically -reappear at your next - and each subsequent - session.
-

- -

The dock has it's own menu for user configuration.
-

- -

The dock can be configured to remain on top of maximized windows. To -do this, right-click on any docked icon then select "Keep on top" from -the application icon menu. This will keep the entire dock visible -(maximized windows will not be allowed to cover the dock). To allow the -dock to be covered, uncheck the "Keep on top" item in the application -icon menu.
-

- -

The WMDock icon (by default, with the GNUstep logo) can be dragged -sideways -to switch the -the entire dock from one side of the display to the other.
-

- -

Dragging the WMDock icon downward will move the dock off the display -with the -exception of the WMDock icon itself, which will remain visible. To -restore dock visibility, left-click-and-drag the dock back on screen.
-

- -

Starting an application

- - -

Double-clicking the icon of a docked application starts the -application.
-

- -

An application that has not been launched normally has an elipsis -(three dots) in the bottom-left-corner of the icon and appears in full -color as shown below. 
-

- -

Unlaunched application icon
-

- -

When the application is running, the elipsis disappears from the -bottom-left-corner of the icon and the icon becomes "greyed out," -giving a visual cue that the application is already open.
-

- -

Launched application icon
-

- -

A docked icon that continues to show an elipsis and remains "full -color" even after an instance of the -application is running indicates that the application's settings have -been modified to allow multiple launches from one docked icon. To do -this you must open the application and modify the -"application specific" settings in the "commands -menu" of the application to allow -"shared application icons."

- -

Using the "launch" command in the "application icon menu" for the -icon is another way to start an application from the dock.
-
-From version 0.80.0 on, the dock can "steal" appicons. This feature has -nothing to -do with Autoattract Icons. When you start an application from somewhere -else -than either the clip or the dock (menu or terminal), and the appicon -exists in -one of them (clip or dock), this appicon doesn't appear at the bottom -of your -screen. The appicon existing in the clip or the dock "stole" it. As a -result, the -appicon is the same as the one used to start the application from the -clip or -the dock.

- -

- -

Customizing

- - -

Left-clicking and dragging an application icon to the dock adds this -application to the dock. Obviously, this means the application is -running!
-

- -

Miniwindows (windows of -minimized applications) cannot be docked. The small titlebar on the -miniwindow differentiates it from an application's icon.
-

- -

Dragging an icon off the dock removes the docked application. 
-

- -

- -

Configuring

- - -

There is a dock menu for each icon. Right-clicking the icon displays -the "application icon menu." Select the "Settings..." option to -configure the application. 

- -
-

dock

-
- -

The application's path and -its arguments, the command for middle-click launch, and the icon -employed can -be changed in this panel.
-

- -

Shell commands such as redirection cannot be used in the command -field.
-

- -

The desired icon must be in one of the directories displayed -in the panel while browsing. New directories can be added from the Search path preferences
-

- -

A checkbox allows you to start the application when Window Maker is -first started. (Note: You want to be -careful with this. If you have, for example, your terminal -emulator, your file manager, and your browser set to start when Window -Maker is started you'll get an open terminal, an open file manager and -an open browser every time -you start a session! Normally you will only want to start certain -dockapps - "regular" applications like a terminal emulator or browser -can be started after your -session is up and going.)
-

- -

From version 0.62.0 on, a checkbox can be used to prevent accidental -removal from the dock.
-
-From version 0.70.0 on, a new field has been added for middle-click -launch. Entering, for example, "firefox" into a docked -application -settings panel will launch the Firefox browser.
-
-

- -

- -
Back to index
diff --git a/docs/guidedtour/dock.rst b/docs/guidedtour/dock.rst new file mode 100644 index 0000000..a223fcd --- /dev/null +++ b/docs/guidedtour/dock.rst @@ -0,0 +1,135 @@ +--- +layout: default +title: Guided Tour - Dock +--- + +Dock +==== + +.. contents:: + :backlinks: none + +Application dock +---------------- + +The dock is the column of icons located by default on the right side of the +screen. + +Any application can be attached to the dock. To do this, open an application +then simply left-click-and-drag the application's icon to the last position on +the dock. The dock will "attract" the icon and it will remain on the dock until +removed by the user (left-click-and-drag the icon off the dock - it will +disappear.) If you have saved your Window Maker session prior to logout (or set +Window Maker to autosave your session upon logout) any icons you docked will +automatically reappear at your next - and each subsequent - session. + +The dock can be configured to remain on top of maximized windows. To do this, +right-click on a dock or any docked icon then select appropriate option form +*Dock position* submenu. Consult `Application icon menu +`_ for details. + +The WMDock icon (by default, with the GNUstep logo) can be dragged sideways to +switch the the entire dock from one side of the display to the other. + +Dragging the WMDock icon downward will move the dock off the display with the +exception of the WMDock icon itself, which will remain visible. To restore dock +visibility, left-click-and-drag the dock back on screen. + +Starting an application +----------------------- + +Double-clicking the icon of a docked application starts the application. + +An application that has not been launched normally has an elipsis (three dots) +in the bottom-left-corner of the icon and appears in full color as shown below. + +.. figure:: images/unlaunched_app.png + :alt: Unlaunched application icon + :figclass: borderless + + Unlaunched application icon + +When the application is running, the elipsis disappears from the +bottom-left-corner of the icon and the icon becomes highlited. + +.. figure:: images/launched_app.png + :alt: Launched application icon + :figclass: borderless + + Launched application icon + +Sometimes, when the application is running, instead of highlited icon, the icon +becomes "greyed out", giving a visual cue that the application is already open, +and cannot be launched again. + +.. figure:: images/grayed_out_icon.png + :alt: Launched application icon + :figclass: borderless + + Grayed-out application icon + +A docked icon that continues to show an elipsis and remains "full color" even +after an instance of the application is running indicates that the +application's settings have been modified to allow multiple launches from one +docked icon. To do this you must open the application and modify the +"application specific" settings in the `commands menu `_ of the +application to allow "shared application icons". + +Using the "launch" command in the "application icon menu" for the icon is +another way to start an application from the dock. + +From version 0.80.0 on, the dock can "steal" appicons. This feature has nothing +to do with Autoattract Icons. When you start an application from somewhere else +than either the clip or the dock (menu or terminal), and the appicon exists in +one of them (clip or dock), this appicon doesn't appear at the bottom of your +screen. The appicon existing in the clip or the dock "stole" it. As a result, +the appicon is the same as the one used to start the application from the clip +or the dock. + +Customizing +----------- + +Left-clicking and dragging an application icon to the dock adds this +application to the dock. Obviously, this means the application is running! + +*Miniwindows* (windows of minimized applications) cannot be docked. The small +titlebar on the miniwindow differentiates it from an application's icon. + +Dragging an icon off the dock removes the docked application. + +Configuring +----------- + +There is a dock menu for each icon. Right-clicking the icon displays the +"application icon menu". Select the "Settings..." option to configure the +application. + +.. figure:: images/docked_application_settings.png + :alt: Launched application icon + :figclass: borderless + + Launched application icon + +The application's *path* and its arguments, the command for middle-click +launch, and the icon employed can be changed in this panel. + +Shell commands such as redirection cannot be used in the command field. + +The desired icon must be in one of the directories displayed in the panel while +browsing. New directories can be added from the `Search path preferences +`_. + +A checkbox allows you to start the application when Window Maker is first +started. (Note: *You want to be careful with this*. If you have, for example, +your terminal emulator, your file manager, and your browser set to start when +Window Maker is started you'll get an open terminal, an open file manager and +an open browser *every time* you start a session! Normally you will only want +to start certain dockapps - "regular" applications like a terminal emulator or +browser can be started *after* your session is up and going.) + +From version 0.62.0 on, a checkbox can be used to prevent accidental +removal from the dock. + +From version 0.70.0 on, a new field has been added for middle-click launch. +Entering, for example, "firefox" into a docked application settings panel will +launch the Firefox browser. diff --git a/docs/guidedtour/images/apm.png b/docs/guidedtour/images/apm.png deleted file mode 100644 index ca18f96..0000000 Binary files a/docs/guidedtour/images/apm.png and /dev/null differ diff --git a/docs/guidedtour/images/clip.png b/docs/guidedtour/images/clip.png index 68707e4..5645c65 100644 Binary files a/docs/guidedtour/images/clip.png and b/docs/guidedtour/images/clip.png differ diff --git a/docs/guidedtour/images/clipm.jpg b/docs/guidedtour/images/clipm.jpg deleted file mode 100644 index bc4350e..0000000 Binary files a/docs/guidedtour/images/clipm.jpg and /dev/null differ diff --git a/docs/guidedtour/images/dock_tile.png b/docs/guidedtour/images/dock_tile.png new file mode 100644 index 0000000..31860a7 Binary files /dev/null and b/docs/guidedtour/images/dock_tile.png differ diff --git a/docs/guidedtour/images/docked_application_settings.png b/docs/guidedtour/images/docked_application_settings.png new file mode 100644 index 0000000..b4155ac Binary files /dev/null and b/docs/guidedtour/images/docked_application_settings.png differ diff --git a/docs/guidedtour/images/dockm.png b/docs/guidedtour/images/dockm.png deleted file mode 100644 index dec0491..0000000 Binary files a/docs/guidedtour/images/dockm.png and /dev/null differ diff --git a/docs/guidedtour/images/docks.jpg b/docs/guidedtour/images/docks.jpg deleted file mode 100644 index 079b522..0000000 Binary files a/docs/guidedtour/images/docks.jpg and /dev/null differ diff --git a/docs/guidedtour/images/grayed_out_icon.png b/docs/guidedtour/images/grayed_out_icon.png new file mode 100644 index 0000000..84abd95 Binary files /dev/null and b/docs/guidedtour/images/grayed_out_icon.png differ diff --git a/docs/guidedtour/images/iconwithelipsis.png b/docs/guidedtour/images/iconwithelipsis.png deleted file mode 100644 index 05c6a85..0000000 Binary files a/docs/guidedtour/images/iconwithelipsis.png and /dev/null differ diff --git a/docs/guidedtour/images/launched_app.png b/docs/guidedtour/images/launched_app.png new file mode 100644 index 0000000..6bc298b Binary files /dev/null and b/docs/guidedtour/images/launched_app.png differ diff --git a/docs/guidedtour/images/menu_application_icon.png b/docs/guidedtour/images/menu_application_icon.png new file mode 100644 index 0000000..5074ba5 Binary files /dev/null and b/docs/guidedtour/images/menu_application_icon.png differ diff --git a/docs/guidedtour/images/menu_applications.png b/docs/guidedtour/images/menu_applications.png new file mode 100644 index 0000000..1ca8fff Binary files /dev/null and b/docs/guidedtour/images/menu_applications.png differ diff --git a/docs/guidedtour/images/menu_clip.png b/docs/guidedtour/images/menu_clip.png new file mode 100644 index 0000000..35d4b7c Binary files /dev/null and b/docs/guidedtour/images/menu_clip.png differ diff --git a/docs/guidedtour/images/menu_window_list.png b/docs/guidedtour/images/menu_window_list.png new file mode 100644 index 0000000..181c5bb Binary files /dev/null and b/docs/guidedtour/images/menu_window_list.png differ diff --git a/docs/guidedtour/images/menu_workspaces.png b/docs/guidedtour/images/menu_workspaces.png new file mode 100644 index 0000000..8cfc309 Binary files /dev/null and b/docs/guidedtour/images/menu_workspaces.png differ diff --git a/docs/guidedtour/images/prefs0.png b/docs/guidedtour/images/prefs0.png new file mode 100644 index 0000000..54bf689 Binary files /dev/null and b/docs/guidedtour/images/prefs0.png differ diff --git a/docs/guidedtour/images/prefs1.png b/docs/guidedtour/images/prefs1.png index 81a2eed..8109bee 100644 Binary files a/docs/guidedtour/images/prefs1.png and b/docs/guidedtour/images/prefs1.png differ diff --git a/docs/guidedtour/images/prefs10.png b/docs/guidedtour/images/prefs10.png index c381af6..7cc42fe 100644 Binary files a/docs/guidedtour/images/prefs10.png and b/docs/guidedtour/images/prefs10.png differ diff --git a/docs/guidedtour/images/prefs11.png b/docs/guidedtour/images/prefs11.png index b61bf62..03eefb9 100644 Binary files a/docs/guidedtour/images/prefs11.png and b/docs/guidedtour/images/prefs11.png differ diff --git a/docs/guidedtour/images/prefs12.png b/docs/guidedtour/images/prefs12.png index 0fef79b..d6b2504 100644 Binary files a/docs/guidedtour/images/prefs12.png and b/docs/guidedtour/images/prefs12.png differ diff --git a/docs/guidedtour/images/prefs13.png b/docs/guidedtour/images/prefs13.png index 67678d8..758618f 100644 Binary files a/docs/guidedtour/images/prefs13.png and b/docs/guidedtour/images/prefs13.png differ diff --git a/docs/guidedtour/images/prefs14.png b/docs/guidedtour/images/prefs14.png index db06bdd..91950e4 100644 Binary files a/docs/guidedtour/images/prefs14.png and b/docs/guidedtour/images/prefs14.png differ diff --git a/docs/guidedtour/images/prefs15.png b/docs/guidedtour/images/prefs15.png new file mode 100644 index 0000000..6453afb Binary files /dev/null and b/docs/guidedtour/images/prefs15.png differ diff --git a/docs/guidedtour/images/prefs2.png b/docs/guidedtour/images/prefs2.png index 4be47eb..6ce37f2 100644 Binary files a/docs/guidedtour/images/prefs2.png and b/docs/guidedtour/images/prefs2.png differ diff --git a/docs/guidedtour/images/prefs3.png b/docs/guidedtour/images/prefs3.png index 7b3fe36..2bdb119 100644 Binary files a/docs/guidedtour/images/prefs3.png and b/docs/guidedtour/images/prefs3.png differ diff --git a/docs/guidedtour/images/prefs4.png b/docs/guidedtour/images/prefs4.png index 648378f..0ac1929 100644 Binary files a/docs/guidedtour/images/prefs4.png and b/docs/guidedtour/images/prefs4.png differ diff --git a/docs/guidedtour/images/prefs5.png b/docs/guidedtour/images/prefs5.png index 79ae89d..7236f0e 100644 Binary files a/docs/guidedtour/images/prefs5.png and b/docs/guidedtour/images/prefs5.png differ diff --git a/docs/guidedtour/images/prefs6.png b/docs/guidedtour/images/prefs6.png index 368ad5d..85c2393 100644 Binary files a/docs/guidedtour/images/prefs6.png and b/docs/guidedtour/images/prefs6.png differ diff --git a/docs/guidedtour/images/prefs7.png b/docs/guidedtour/images/prefs7.png index 287c4a5..cdd06fb 100644 Binary files a/docs/guidedtour/images/prefs7.png and b/docs/guidedtour/images/prefs7.png differ diff --git a/docs/guidedtour/images/prefs8.png b/docs/guidedtour/images/prefs8.png index 2180adc..1c120b4 100644 Binary files a/docs/guidedtour/images/prefs8.png and b/docs/guidedtour/images/prefs8.png differ diff --git a/docs/guidedtour/images/prefs9.png b/docs/guidedtour/images/prefs9.png index bbae97c..f69b7f8 100644 Binary files a/docs/guidedtour/images/prefs9.png and b/docs/guidedtour/images/prefs9.png differ diff --git a/docs/guidedtour/images/unlaunched_app.png b/docs/guidedtour/images/unlaunched_app.png new file mode 100644 index 0000000..3e7106b Binary files /dev/null and b/docs/guidedtour/images/unlaunched_app.png differ diff --git a/docs/guidedtour/images/wksm.jpg b/docs/guidedtour/images/wksm.jpg deleted file mode 100644 index 072e431..0000000 Binary files a/docs/guidedtour/images/wksm.jpg and /dev/null differ diff --git a/docs/guidedtour/images/wksm.png b/docs/guidedtour/images/wksm.png deleted file mode 100644 index 1da526b..0000000 Binary files a/docs/guidedtour/images/wksm.png and /dev/null differ diff --git a/docs/guidedtour/images/wlm.jpg b/docs/guidedtour/images/wlm.jpg deleted file mode 100644 index 3c754c7..0000000 Binary files a/docs/guidedtour/images/wlm.jpg and /dev/null differ diff --git a/docs/guidedtour/images/wlm.png b/docs/guidedtour/images/wlm.png deleted file mode 100644 index b7d44da..0000000 Binary files a/docs/guidedtour/images/wlm.png and /dev/null differ diff --git a/docs/guidedtour/index.html b/docs/guidedtour/index.html deleted file mode 100644 index fbba737..0000000 --- a/docs/guidedtour/index.html +++ /dev/null @@ -1,118 +0,0 @@ ---- -layout: default -title: Guided Tour - Index ---- -

Window Maker

- -

Guided Tour

- -

-

- -
Amanda by Agnieszka Czajkowska
- -

-

- -
-

Window Maker

-
- -

Foreword

- -This tutorial is intended to help Window Maker users gain knowledge -about the many excellent features -of this window manager.  The official Users Guide is worth reading. It can -be reached from the Window -Maker site.  -Other guides, tutorials and tips can be found at various sites on the -internet.  An -internet search for "Window Maker guide how-to" might provide -additional worthwhile information.
- -
- -This guided tour is NOT supposed to be a README, INSTALL or FAQ . These -are worth reading, or more accurately, they should be considered COMPULSORY reading. -
- -
- -The information in the guided tour is based upon Window Maker version 0.95.3. -Check your version by opening WPrefs.app (the Window Maker Preferences -tool). The version number is shown in the initial WPrefs window just -below the "Window Maker Preferences" title. You may also run the -command "wmaker --version" in -a terminal (without the quotation marks). This command returns the installed version number of Window Maker. -
- -

A special word of thanks

- -The original Window Maker Guided Tour site was created and maintained -for many years by Georges Tarbouriech. Where possible, I have retained -his original work - including the layout and structure of the pages, -the descriptions of Window Maker features, -and even some of his original graphics. I want these pages to be up-to-date, -but I also want them to be (as much as possible) a continuation -of Georges' work. Thank you, Georges. -(Having said that, anything you -find in error is without question my fault - so don't blame Georges -for any mistakes!) -If you find an error, have a suggestion, or wish to make a comment, you may contact me by email at bnance<atsigngoeshere>uu.edu.
- -
- -This tour will attempt to follow Window Maker development, but not -every update can be taken into account.  In other words, this -tour can help you learn the basics, but does not pretend to provide all -of the detail or all of the latest information available in the -official README, INSTALL and FAQ documents provided by Window Maker -developers and maintainers.
- -

Table of contents

- - - -

-

- -

Archives

- -

-

- -

-Two archives are available: HTML and pictures. -
-tut.tar.gz (12K) HTML files
-img.tar.gz (613K) Picture files

- -

-

- -

Links of interest

Window Maker on Debian 6 (YouTube) by fourandnine
-Arch Linux Window Maker Wiki Entry
-Debian Stable (Squeeze) Package Listing
-Window Maker on Mageia Linux (YouTube) by St. Louis Mageia Users' Group
-
- - -

-

- -
Window -Maker
- -

-

diff --git a/docs/guidedtour/index.rst b/docs/guidedtour/index.rst new file mode 100644 index 0000000..81c3830 --- /dev/null +++ b/docs/guidedtour/index.rst @@ -0,0 +1,100 @@ +--- +layout: default +title: Guided Tour - Index +--- + +Window Maker +============ + +.. class:: center + +Guided Tour +----------- + +.. class:: screenshot center + +.. image:: images/gnusteplogo.png + :height: 100 + :width: 100 + + +Foreword +-------- + +This tutorial is intended to help Window Maker users gain knowledge about the +many excellent features of this window manager. The official Users Guide is +worth reading. It can be reached from the `Window Maker site <{{ site.baseurl +}}/docs/guide_toc.html>`_. Other guides, tutorials and tips can be found at +various sites on the internet. An internet search for "Window Maker guide +how-to" might provide additional worthwhile information. + +This guided tour is NOT supposed to be a README, INSTALL or FAQ. These are +worth reading, or more accurately, they should be considered COMPULSORY +reading. + +The information in the guided tour is based upon Window Maker version 0.95.3. +Check your version by opening WPrefs.app (the Window Maker Preferences tool). +The version number is shown in the initial WPrefs window just below the "Window +Maker Preferences" title. You may also run the command "*wmaker --version*" in +a terminal (without the quotation marks). This command returns the installed +version number of Window Maker. + +A special word of thanks +------------------------ + +The original Window Maker Guided Tour site was created and maintained for many +years by Georges Tarbouriech. Where possible, I have retained his original +work - including the layout and structure of the pages, the descriptions of +Window Maker features, and even some of his original graphics. I want these +pages to be up-to-date, but I also want them to be (as much as possible) a +continuation of Georges' work. *Thank you, Georges*. (Having said that, +anything you find in error is without question my fault - so don't blame +Georges for any mistakes!) If you find an error, have a suggestion, or wish to +make a comment, you may contact me by email at +*bnance<atsigngoeshere>uu.edu*. + +This tour will attempt to follow Window Maker development, but not +every update can be taken into account. In other words, this +tour can help you learn the basics, but does not pretend to provide all +of the detail or all of the latest information available in the +official README, INSTALL and FAQ documents provided by Window Maker +developers and maintainers. + +Table of contents +~~~~~~~~~~~~~~~~~ + +.. class:: contents + +- `Preferences `_ +- `Windows `_ +- `Menus `_ +- `Dock `_ +- `Clip `_ +- `Backgrounds and themes `_ +- `Miscellaneous `_ + +Archives +-------- + +Two archives are available: HTML and pictures. + +.. TODO: figure out what's the status of those archives. + +- `tut.tar.gz (12K) HTML files `_ +- `img.tar.gz (613K) Picture files `_ + +Links of interest +----------------- + +- `Window Maker on Debian 6 (YouTube) + `_ by fourandnine +- `Arch Linux Window Maker Wiki Entry + `_ +- `Debian Stable (Squeeze) Package Listing + `_ +- `Window Maker on Mageia Linux (YouTube) + `_ by St. Louis Mageia Users' Group + +.. class:: center + + `Window Maker `_ diff --git a/docs/guidedtour/menu.html b/docs/guidedtour/menu.html deleted file mode 100644 index c9be02e..0000000 --- a/docs/guidedtour/menu.html +++ /dev/null @@ -1,185 +0,0 @@ ---- -layout: default -title: Guided Tour - Menus ---- - -

-
Menus
-

- -
Back -to Index
- - - -

Menu list

- -

Different menus are available within Window Maker:

- -
    - -
  • The root window menu or applications menu
  • -
  • The window list menu
  • -
  • The workspace menu
  • -
  • The application icon menu
    -
  • -
- -

Menus provide a list of applications or commands for execution. They -can be used to launch applications, to get information, to configure -the workspace...
-

- -

Menus are opened by right-clicking either in the "blank" area of the -workspace or in a window's titlebar or in docked icons. The window -list menu is the only one opened with the middle mouse button. -With a two-button mouse, pressing both buttons at once usually does the -trick. A number of keyboard shortcuts are provided. These shortcuts are -indicated by the modifier key + letter shown to the right of a menu -item.

- -

The keyboard can be used to open and move through some of the menus. -For instance, the root menu can be opened using F12 (default setting). -The Up and Down arrow keys can then be used to navigate through the -menu or the Left and Right arrow keys to jump between parent menus and -submenus. Hitting the Enter key executes the selected item. -the Escape key closes the menu or stops menu traversal.

- -

Menus can be forced to remain open on the workspace by left-clicking -the titlebar. This creates a close button on the titlebar.

- -

Root window menu

- -
Root window menu (applications menu)
- -
- -The root window menu or applications menu is opened by right-clicking -on an empty area of the workspace or by hitting the pre-defined -keyboard shortcut (default is F12). This menu launches applications, -allows for the customization of the workspace (backgrounds, themes...), -and the management of other workspace characteristics using standard X -utilities (xprop, xfontsel, xcmap...). -

The menu content is totally configurable, either using WPrefs.app or -by editing the plain text menu file. Instructions on how to configure -one or the other can be found in the WindowMaker directory of the -distribution. To use WPrefs.app, menus must be in property list format -(plmenu). A script is available to convert plain text menus to property -list menus and it's called wm-oldmenu2new.

- -

Window list menu

- -
Window list menu
- -
- -Middle-clicking an empty area of the workspace opens the window list -menu. With a two-button mouse, clicking both buttons at once usually -gives the same result. F11 is the default keyboard shorcut to open the -window list menu. -

This menu lists all windows - whether active or inactive - in every -workspace. The workspace containing each window is indicated at the -right of the window name. The current focused window is marked by a -diamond sign to the left of the window's name. Clicking any window in -the list focuses and raises the corresponding window and moves you to -the workspace where it's located.

- -

Workspaces menu

- -
Workspaces menu
- -
- -
- -The workspaces menu is part of the root menu (applications menu). -This item has two options: new and destroy last. -

The first option creates a new workspace and automatically switches -you to it.

- -

The second option destroys the last workspace as soon as there are -no windows opened in it.

- -

Each workspace has a corresponding item in this menu. The active -workspace is indicated by a diamond to the left of the workspace name -or number.

- -

Clicking a workspace entry switches from the current workspace to -the selected workspace.

- -

To change the name of a workspace, first "stick" the menu by -left-clicking the menu titlebar. Then Ctrl + click the menu -item to make it editable and type in the new name. Hitting Return -saves the new name, hitting Escape cancels the operation.

- -

Key bindings allow movement from one workspace to another. Usually Meta -+ (number). The Meta key -is normally the "Alt" key, -while (number) represents a number -key that corresponds to the workspace number. For instance 1 can be -the default workspace (workspace 1), 2 the second workspace and so on. -Thus, -Meta + 2 switches to workspace -2.

- -

These key bindings can be set (or changed) from the keyboard -shortcut dialog in -WPrefs.app.

- -

Application icon menu

- -
Icon application menu
- -
- -
- -Clicking an icon in the dock with the right mouse button brings a -menu for modifying that icon's application. There are six options -available in the application icon menu for docked applications. (Some -applications will not have all six  options available.  If an -option is not available, it will appear "greyed out" in the menu.)
- -
    - -
  1. -

    Clicking "Keep on top" places a check-mark beside that option, -which means that the icon will always be on "top" of -opened windows. If "Keep on top" is unchecked, windows will be allowed -to cover the icons in the dock. Selecting "Keep on top" for one icon -automatically affects all of the items in the dock. You cannot keep -just one docked icon on top of windows - it's all or nothing, one way -or the other.
    -

    -
  2. -
  3. -

    "Launch" opens the application without double-clicking the icon.

    -
  4. -
  5. -

    "Bring here" unhides the application in the current workspace.

    -
  6. -
  7. -

    "Hide" hides the application or unhides it if already hidden. -Unhiding opens the application in the workspace where it is located. -(This option may not work if the application has it's own hiding menu -option.)

    -
  8. -
  9. -

    "Settings" allows the modification of application path and -arguments, the command line, and the icon used.

    -
  10. -
  11. -

    "Kill" closes the application immediately and should only be -used if absolutely necessary.

    -
  12. -
- -
Back -to Index
diff --git a/docs/guidedtour/menu.rst b/docs/guidedtour/menu.rst new file mode 100644 index 0000000..9da73f1 --- /dev/null +++ b/docs/guidedtour/menu.rst @@ -0,0 +1,168 @@ +--- +layout: default +title: Guided Tour - Menus +--- + +Menus +===== + +.. contents:: + :depth: 1 + :backlinks: none + :local: + + +Menu list +--------- + +Different menus are available within Window Maker: + +- The root window menu or applications menu +- The window list menu +- The workspace menu +- The application icon menu + +Menus provide a list of applications or commands for execution. They can be +used to launch applications, to get information, to configure the workspace... + + +Menus are opened by right-clicking either in the "blank" area of the workspace +or in a window's titlebar or in docked icons. The *window list menu* is the +only one opened with the middle mouse button. With a two-button mouse, +pressing both buttons at once usually does the trick. A number of keyboard +shortcuts are provided. These shortcuts are indicated by the modifier key + +letter shown to the right of a menu item. + +The keyboard can be used to open and move through some of the menus. For +instance, the root menu can be opened using F12 (default setting). The Up and +Down arrow keys can then be used to navigate through the menu or the Left and +Right arrow keys to jump between parent menus and submenus. Hitting the *Enter* +key executes the selected item. The *Escape* key closes the menu or stops menu +traversal. + +Menus can be forced to remain open on the workspace by left-clicking the +titlebar. This creates a *close* button on the titlebar. + +Root window menu +---------------- + +.. figure:: images/menu_applications.png + :alt: Root window menu (applications menu) + :figclass: borderless + + Root window menu (applications menu) + +The root window menu or applications menu is opened by right-clicking on an +empty area of the workspace or by hitting the pre-defined keyboard shortcut +(default is F12). This menu launches applications, allows for the customization +of the workspace (backgrounds, themes...), and the management of other +workspace characteristics using standard X utilities (xprop, xfontsel, +xcmap...). + +The menu content is totally configurable, either using WPrefs.app or by editing +the plain text menu file. Instructions on how to configure one or the other can +be found in the WindowMaker directory of the distribution. To use WPrefs.app, +menus must be in property list format (plmenu). A script is available to +convert plain text menus to property list menus and it's called wm-oldmenu2new. + +Window list menu +---------------- + +.. figure:: images/menu_window_list.png + :alt: Window list menu + :figclass: borderless + + Window list menu + +Middle-clicking an empty area of the workspace opens the window list menu. With +a two-button mouse, clicking both buttons at once usually gives the same +result. F11 is the default keyboard shortcut to open the window list menu. + +This menu lists all windows - whether active or inactive - in every workspace. +The workspace containing each window is indicated at the right of the window +name. The current focused window is marked by a diamond sign to the left of the +window's name. Clicking any window in the list focuses and raises the +corresponding window and moves you to the workspace where it's located. + +Workspaces menu +--------------- + +.. figure:: images/menu_workspaces.png + :alt: Workspaces menu + :figclass: borderless + + Workspaces menu + +The workspaces menu is part of the root menu (applications menu). This item +has three options: *new*, *destroy last* and *last used*. + +The first option creates a new workspace and automatically switches you to it. + +The second option destroys the last workspace as soon as there are no windows +opened in it. + +The third option switches to last visited workspace. + +Each workspace has a corresponding item in this menu. The active workspace is +indicated by a diamond to the left of the workspace name or number. + +Clicking a workspace entry switches from the current workspace to the selected +workspace. + +To change the name of a workspace, first "stick" the menu by left-clicking the +menu titlebar. Then *Ctrl + click* the menu item to make it editable and type +in the new name. Hitting *Return* saves the new name, hitting *Escape* cancels +the operation. + +Key bindings allow movement from one workspace to another. Usually *Meta + +(number)*. The *Meta* key is normally the "*Alt*" key, while *(number)* +represents a number key that corresponds to the workspace number. For instance +1 can be the default workspace (workspace 1), 2 the second workspace and so on. +Thus, *Meta + 2* switches to workspace 2. + +These key bindings can be set (or changed) from the keyboard shortcut dialog in +WPrefs.app. + +Application icon menu +--------------------- + +.. figure:: images/menu_application_icon.png + :alt: Icon application menu + :figclass: borderless + + Icon application menu + +Clicking an icon in the dock with the right mouse button brings a menu for +modifying that icon's application. There are several options available in the +application icon menu for docked applications. Docked, but not running +applications will not have all options available - they will appear "greyed +out" in the menu. + +#. First option is a global Dock submenu, which have three items: + + #. *Normal* will not change dock behaviour - it can be covered by windows, + while clicking on any docked items will bring it up. + + #. *Auto raise & lower* is similar for the first options, although you don't + have to click on dock - it's enough to hover mouse pointer on visible + part of dock or it's items. + + #. *Keep on top* means that the dock will always be on "top" of opened + windows. + +#. *Add a drawer* will add special dockapp which can be used for aggregating + applications. See `Dock `_ for more details about drawers. + +#. "Launch" opens the application without double-clicking the icon. + +#. "Bring here" unhides the application in the current workspace. + +#. "Hide" hides the application or unhides it if already hidden. Unhiding opens + the application in the workspace where it is located. (This option may not + work if the application has it's own hiding menu option.) + +#. "Settings" allows the modification of application path and arguments, the + command line, and the icon used. + +#. "Kill" closes the application immediately and should only be used if + absolutely necessary. diff --git a/docs/guidedtour/misc.html b/docs/guidedtour/misc.html deleted file mode 100644 index 054bf27..0000000 --- a/docs/guidedtour/misc.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: default -title: Guided Tour - Miscellaneous ---- - -

-
Miscellaneous
-

- - -
Back to index
- - - -

Localization

- -As soon as Window Maker is compiled with some options and gettext -installed, it -is fully localizable. Check the INSTALL file.
- -However, localization of menus can be used without the LANG environment -variable -set. Using pl menu allows to get menus in any available language -without setting -this variable.
- -Why do such a "thing" instead of setting the localization the "right" -way?
- -For some reasons users may want to keep the system default language -instead of -defining a new localization. One of the main reason is that most -software doesn't -exist in all languages.
- -

Fonts

- -It's possible to change the fonts in Window Maker, editing the -WindowMaker file -or the WMGLOBAL file in ~/GNUstep/Defaults.
- -Once again the INSTALL file gives instructions on how to do it.
- -The specific file to edit varies according to the fonts to be changed.
- -The script wsetfont is -provided to do the job. -

Utilities

- -Window Maker provides the user with some useful utilities.
- -There is a README file concerning these scripts in the util directory.
- -Almost each script has it's own man page recommended reading.
- -These utilities mainly concern the GUI: icons, styles, fonts, menus, -backgrounds.
- -A few of them deserve special interest as many users don't seem to know -about them.
- -The wdwrite script, for -instance, writes data into the -configuration -files.
- -The setstyle (or getstyle) scripts are used to -manage themes.
- -Wxcopy and wxpaste allows copying and pasting -using the X cutbuffer.
- -The first one makes part of the default applications menu, in the -selection -item.
- -For KDE users, wkdemenu.pl is worth using.
- -From version 0.63.0 on, a new utility is available : wmagnify. It allows magnification -of the area under the mouse pointer.
-
- -
Back to index
diff --git a/docs/guidedtour/misc.rst b/docs/guidedtour/misc.rst new file mode 100644 index 0000000..44fcd34 --- /dev/null +++ b/docs/guidedtour/misc.rst @@ -0,0 +1,68 @@ +--- +layout: default +title: Guided Tour - Miscellaneous +--- + +Miscellaneous +============= + +.. contents:: + :backlinks: none + + +Localization +------------ + +As soon as Window Maker is compiled with some options and gettext installed, it +is fully localizable. Check the INSTALL file. + +However, localization of menus can be used without the LANG environment +variable set. Using pl menu allows to get menus in any available language +without setting this variable. + +Why do such a "thing" instead of setting the localization the "right" way? + +For some reasons users may want to keep the system default language instead of +defining a new localization. One of the main reason is that most software +doesn't exist in all languages. + +Fonts +----- + +It's possible to change the fonts in Window Maker, editing the WindowMaker file +or the WMGLOBAL file in ``~/GNUstep/Defaults``. + +Once again the INSTALL file gives instructions on how to do it. + +The specific file to edit varies according to the fonts to be changed. + +The script *wsetfont* is provided to do the job. + +Utilities +--------- + +Window Maker provides the user with some useful utilities. + +There is a README file concerning these scripts in the util directory. + +Almost each script has it's own man page recommended reading. + +These utilities mainly concern the GUI: icons, styles, fonts, menus, +backgrounds. + +A few of them deserve special interest as many users don't seem to know about +them. + +The *wdwrite* script, for instance, writes data into the configuration files. + +The *setstyle* (or *getstyle*) scripts are used to manage themes. + +*Wxcopy* and *wxpaste* allows copying and pasting using the X cutbuffer. + +The first one makes part of the default applications menu, in the selection +item. + +For KDE users, wkdemenu.pl is worth using. + +From version 0.63.0 on, a new utility is available : *wmagnify*. It allows +magnification of the area under the mouse pointer. diff --git a/docs/guidedtour/news.html b/docs/guidedtour/news.html deleted file mode 100644 index bc95331..0000000 --- a/docs/guidedtour/news.html +++ /dev/null @@ -1,168 +0,0 @@ ---- -layout: default -title: Guided Tour - News ---- - -

-
News

- - - -

-

- -
Back to index
- - -

-This page has been added to allow easy discovery of the main -changes from one -version to another. The original text is drawn directly from the windowmaker.org site. -Moving forward, it is anticipated that additional comments and -observations on Window Maker development news will be provided as well. -

-

Version 0.95.4 released

- - -

Window Maker 0.95.4 was released on January 3rd 2013. There was a major code cleanup related to icons, some changes - in WPrefs, the addition of a new "Center" placement strategy, support for _NET_FRAME_EXTENTS, the removal of CPP - dependency to process menu files and small fixes and improvements all around.

- - - -

Version 0.95.3 released

- - -

Window Maker 0.95.3 was released on May 16th 2012. This release fixes a regression - which would cause more than one instance of an application to start (under some circunstances) when using menu - shortcuts. The window maximization procedures now have a more intuitive behavior with respect to remembering - the old geometry and going back to it. Furthermore, there are some other small fixes and cleanups.

- - - -

Version 0.95.2 released

- - -

Window Maker 0.95.2 was released on February 14th 2012, and it contains just a few - commits on top of 0.95.1. They were necessary to fix a few issues like 'make dist' not compiling. - Furthermore a few more code cleanups slipped in.

- - - - -

Version 0.95.1 released

- - - -

Window Maker 0.95.1 was released on January 29th 2012.

- - - -

The last official Window Maker release was version 0.92.0 from 2005, and version 0.95.1 contains many bug fixes and - also a few new features.

- - - -

New features and highlights

- - - -

The following list is incomplete, but should give a first-order approximation to the new features in this release. - For the truly curious among you, reading through git log is the only complete source of information.

- - - - - - - -

Bug fixes

- - - -

Window Maker 0.92.0 was already very stable, but many bugs were fixed in this release. A very - incomplete list is given below, and as time permits it will be updated (including links to the commits) in the future. - But the message now is that if you don't like bugs, use version 0.95.1.

- - - - - - - -

Summary of changes

- - - -

A lot of effort was put into cleaning up the code, with lots of code removal and tidying things up. The following - output should give you an idea of the development in the last cycle:

- - -
git diff --shortstat wmaker-0.92.0+..wmaker-0.95.1
592 files changed, 118361 insertions(+), 133342 deletions(-)
git diff --shortstat 688a56e8ab67b..wmaker-0.95.1
566 files changed, 37676 insertions(+), 41817 deletions(-)
-The first shortstat is really everything, including the (huge) patch generated in this commit from 2009, which changed the old -sources to the linux kernel coding style. The second shortstat contains the summary of development afterwards -- but included is -the addition of a debian folder with files summing around ~20k lines. The full diffstat for the second command can be seen -here. - -

-

- -
Back to index
diff --git a/docs/guidedtour/prefs.html b/docs/guidedtour/prefs.html deleted file mode 100644 index 5030c8c..0000000 --- a/docs/guidedtour/prefs.html +++ /dev/null @@ -1,476 +0,0 @@ ---- -layout: default -title: Guided Tour - Prefs ---- -

-
Preferences
-

- -

-

- -
Amanda by Agnieszka Czajkowska
- -

-

- -
Back -to Index -

WPrefs.app

-
- -

WPrefs.app is the heart of the configuration process in Window Maker.

- -

Upon installing Window Maker and running it for the first time, the -WPrefs icon is already docked. By default, it's the one with the -GNUstep logo in the background and a few tools in the foreground -(although your distibution may use the plain GNUstep icon or something -enitrely different). Normally Linux distributions position WPrefs as -the second or third icon in the -Dock column by default, just above or below the terminal icon.
-

- -
-

GNUstep Logo with ToolsGNUstep Logo
-

-
- -

Double-clicking on this icon opens the WPrefs.app window. -Across the top of the window there is a row of icons, each one -corresponding to a group of settings options. There is a checkbox for -balloon help on the bottom left of the WPrefs.app window. Most of the -following is taken directly from the content of the ballon help dialogs.

- -

Available preference settings

- - - -

Window handling

- -
WPrefs.app window handling preferences
- -
- -Clicking the second icon allows you to select the window handling -options. Clicking on this icon opens a panel allowing you to define the -default placement and properties of windows in the workspace. -
    - -
  • -

    Window placement
    -You can use the sliders around the screen representation to modify the -original placement. -The gadget tells Window Maker how to order windows on the screen: Random, Manual, Cascade or Smart. Automatic is the default.

    -
  • -
  • -

    Edge resistance
    -To set the edge resistance and whether it resists or attracts windows. -According to the selection, windows resist or attract when moved -against other windows or the edges of the screen. The slider defines -the threshold. Some applications' title bars may disappear -at the top of the screen, with the window being too high for the screen -area. Setting the edge -resistance to "0" may solve this problem.

    -
  • -
  • -

    Open dialogs in the same workspace as their owners
    -Obviously, whether to force dialog boxes "spawned" by an application to -open in same workspace as their owners.

    -
  • -
  • -

    Opaque move/resize
    -Clicking on opaque move -causes windows to be moved with their contents visible. If not checked, -only the frame is displayed during the move. Opaque resize makes window contents -visible during resizing, otherwise only the frame is displayed.
    -

    -
  • -
  • -

    When maximizing
    -This option allows the window to cover (or not) icons or the dock when -maximizing.

    -
  • -
- -

Window focus

- -
WPrefs.app window focus controls
- -
- -The first icon from the left-hand side controls the way windows get -their focus (how they are activated). -
    - -
  • -

    Input focus mode (two choices are available):
    - Manual - click on the window to set keyboard input -focus.
    - Auto - set keyboard input focus to the window -under the mouse pointer.

    -
  • -
  • -

    Install colormap in the window
    -Select either (a) install the colormap in the window that has the input -focus or (b) that is under the mouse pointer.

    -
  • -
  • -

    Automatic window raise delay
    -Setting the delay (in msec) for automatic window raising

    -
  • -
  • -

    Checkboxes
    -The topmost check box prevents applications from receiving the focusing -mouse-click (I don't know why you would use this, but some people -obviously find it useful).  -The bottom checkbox allows you to choose whether newly-opened -application windows automatically receive the focus, or must be clicked -to gain focus.

    -
  • -
- -

Menu

- -
WPrefs.app menu preferences
- -
- -This panel allows you to set menu scrolling speed and submenu -alignment with the parent menu. In addition, two checkboxes are -provided: -
    - -
  • The topmost box forces submenus to open inside the screen instead -of scrolling  when they would otherwise be off-screen.
    -
  • -
  • The middle box allows submenus to open off-screen, but causes -off-screen menus to scroll when the mouse pointer is -moved over them. This setting is also of value if you "tear off" a menu -and leave it positioned on the desktop. In that case, you might wish to -"park" the menu off-screen (with only the titlebar showing, for -example) and have it reappear when you mouse over it. This is -convenient in some workflows, as when you have multiple applications -open and you are using the window list menu to switch between -applications.
  • -
  • The bottom box allows you to assign EMACS-like keybindings for -the selection of menu items.
    -
  • -
- -

Icon

- -
WPrefs.app icon preferences
- -
- -
- -

Set icon or miniwindow handling options.
-

- -
    - -
  • Icon positioning
    -This area defines the initial placement of miniwindows or icons will be -displayed: bottom, top, right, left...
    -
  • -
  • -

    Checkboxes
    -The topmost box enables/disables auto-arrangement of icons.  The -bottom box places miniwindows for opened applications on all existing -workspaces (omnipresent).

    -
  • -
  • -

    Iconification animation
    -When an application's window is miniaturized, miniaturization animation style -offers four animation choices.

    -
  • -
      -
    • Shrinking/Zooming,
      -
    • -
    • Spinning/Twisting,
      -
    • -
    • 3D Flipping, or
      -
    • -
    • None
    • -
    -
  • -

    Icon size
    -Selects the size of the icons shown when a window is miniaturized and -for application icons. Dockapp developers usually assume that tiles -will be 64x64 pixels, so it's -probably a good idea to leave it at that size, unless you know you -won't be using dockapps.

    -
  • -
- -

Ergonomy

- -
WPrefs.app ergonomic settings
- -
- -Various types of information are defined in this panel. -
    - -
  • -

    Size display
    -Window Maker provides a box that informs you about the size of a window -during resizing. You may choose to have this display (a) in the center -of the screen, (b) the center of the screen, (c) the center of the -resized window, (d) the side and bottom of the window as a technical -drawing-like size display or (e) not at all.

    -
  • -
  • -

    Position display
    -Same information as above but regarding the screen placement of a -window while moving (no technical drawing-like option).
    -

    -
  • -
  • -

    Workspace border
    -You can set a small border for the workspace. This allows you to easily -access the clip (for instance) when windows are maximized.

    -
  • -
  • -

    Show balloon text for
    -Selecting -checkboxes displays balloon text for: incomplete window -titles, miniwindow titles, application and dock icons, or internal -help. This may be useful for new users but many people find having help -balloons pop out all over the desktop gets annoying quickly. I use the incomplete window title and the miniwindow title options and none -of the others.
    -

    -
  • -
  • -

    Checkbox
    -The top check bos, if selected, raises a window when switching focus -with the keyboard. The bottom box enables a keyboard language selection -button on window titlebars (must have multiple keyboard maps/locales -defined - this is handy if you are working in multiple languages in -applications such as word processors, for example).
    -

    -
  • -
- -

Search Path

- -
WPrefs.app icon and pixmap search path settings
- -
- -This panel is used to add or delete directory paths to search for -icons and pixmaps. These paths are used in the settings -dialogs for dockapps and docked application icons, so having a good, -complete set of defined paths is important.  This may require some -manual intervention, especially upon initial setup, since some default -paths will not be present on your system, while others not predefined -will be present.  Use the add -and remove dialogs to -configure according to what is actually available.
- -

Workspace

- -
WPrefs.app workspace preference settings
- -
- -This panel defines navigation features within the workspace. -
    - -
  • -

    Workspace navigation
    -Selecting the first -checkbox allows switching to the first workspace when -switching past the last workspace and vice-versa. Selecting the second -checkbox allows windows to be dragged from one workspace to another. -Selecting the third checkbox -cause a new workspace to be created when windows are dragged off the -last existing workspace. A selection menu allows you to define where -the workspace name  is displayed each time you move from one -workspace to another (or not to display the workspace name at all).

    -
  • -
  • -

    Dock and clip
    -Enables / disables the dock and/or the clip. I have seen some -interesting configurations using no dock but having the clip present. -For users who prefer a bottom or top "panel" of application launchers, -system monitors and other tools, this is a very valuable bit of -flexibility.
    -

    -
  • -
- -

Other

- -
WPrefs.app other workspace configuration settings
- -
- -
- -

This panel sets icon slide speed, shade animation speed, smooth -scaling and titlebar control (button) style. Animations and sound are -also defined here.

- -
    - -
  • -

    Icon slide speed
    -Selecting the left icon gives the slowest result, selecting the right -one gives the fastest.

    -
  • -
  • -

    Shade animation speed
    -Same as icon slide

    -
  • -
  • -

    Smooth scaling
    -If selected, neutralizes pixelization effect on background images. The -side-effect is to slow down background image loading.

    -
  • -
  • -

    Titlebar style
    -To choose a more or less "NeXTish" titlebar. (The top version is -"newer," while the bottom left is ca. 1990 and the bottom right is ca. -1988.)
    -

    -
  • -
  • -

    Animations
    -Selecting the animations icon enables animations for window -miniaturization, shading and so on.
    -Selecting -the superfluous icon enables "ghosting" of dock (when moved - -especially when moved from one side of the screen to the other) and -explosion -animation for icons you remove from the dock.
    -

    -
  • -
  • -

    Dithering colormap for 8bpp
    -For 8-bit displays (anyone still have one of these?) this enables -dithering and changes the number of colors to reserve either for -applications or for Window Maker. The Default setting almost always -gives the best result.

    -
  • -
- -

Applications menu

- -
WPrefs.app application menu configuration
- -
- -
- -

In this panel the applications menu and the commands to launch each -application can be defined. This panel has been changed in version -0.63.and later. It now displays the actual menu thus allowing direct -editing. This can be done only if the menu is in property list format. -Menus in plain text format can't be edited in WPrefs. Check the README -file in the Window Maker directory on how to use one or the other.

- -

Keyboard shortcut

- -
WPrefs.app keyboard shortcut settings
- -
- -Many actions in Window Maker have predefined keyboard shortcuts. -These actions mainly concern windows and workspaces. -Modifying, adding or removing shortcuts can be done in this panel. -Defining a shortcut can be done interactively, capturing the key -combination. -

Mouse

- -
WPrefs.app mouse configuration
- -
- -This panel sets the mouse speed and double-click delay. -Mouse button bindings can be defined and can be disabled or enabled. -

The default setting binds the right mouse button to the applications -menu, middle button to the window list menu and left button to window -selection (focus). Of course, with a two button mouse, the middle -button binding will not work. However, on some OSes pressing both -buttons at once gives the same result as the one obtained with middle -button.

- -

Starting from version 0.65 on, the mouse wheel can be used to switch -workspaces. This is not default behavior and must be enabled here.

- -

The mouse grab modifier represents the keyboard shortcut to use for -actions like dragging windows with the mouse or clicking inside the -window. Mod1 (Alt) is the default.

- -

Appearance

- -
WPrefs.app appearance settings
- -
- -In this panel, everything related to the appearance of the GUI (except -the background color or image) can -be configured. Windows, menus and icons can have their own background -"texture," meaning color gradients of various types can be configured -here. Texture, color, menu style, and title alignment can be fully -customized. -

Expert user

- -
WPrefs.app expert user settings
- -
- -Using this panel implies some knowledge. Many options are available. -Among these are: -
    - -
  • Disabling miniwindows (useful when using with KDE and GNOME)
  • -
  • Using (or not) xset
  • -
  • Saving session on exit (highly recommended!)
  • -
  • Using SaveUnder in different objects
  • -
  • Using Win style cycling (added from version 0.63.0)
  • -
  • Disabling confirmation panel for the kill command
  • -
  • Disabling cycling colors highlighting of icons
  • -
- -

Font configuration

- -
Wprefs.app font configuration options
- -
- -This panel allows you to configure fonts for the window and menu -titlebars, for the menu body text, and for the icon and clip -text.  In addition, a font may be defined for desktop messages.
- -

Editing the configuration file

- -

If needed, the defaults configuration file found in -$(HOME)/GNUstep/Defaults/WindowMaker can be edited by hand. This file -is a database with a property list syntax. When selecting an option in -WPrefs.app, it's written down into this file. When modifying this -defaults file, it's very important to follow the syntax.
-

- -
Back -to Index -
diff --git a/docs/guidedtour/prefs.rst b/docs/guidedtour/prefs.rst new file mode 100644 index 0000000..141719c --- /dev/null +++ b/docs/guidedtour/prefs.rst @@ -0,0 +1,483 @@ +--- +layout: default +title: Guided Tour - Prefs +--- + +=========== +Preferences +=========== + +.. figure:: images/wprefs.jpg + :figclass: borderless + :height: 64 + :width: 64 + +WPrefs.app +---------- + +WPrefs.app is the heart of the configuration process in Window Maker. + +Upon installing Window Maker and running it for the first time, the WPrefs +application is available under dock icon by default: + +.. figure:: images/dock_tile.png + :figclass: borderless + :alt: GNUstep Logo + + +although, depending on your distibution, location, menu entry or icon may be +different. Ususally Linux distributions position WPrefs as the second or third +icon in the Dock column by default, just above or below the terminal icon. + +Double-clicking on this icon opens the WPrefs.app window. Across the top of +the window there is a row of icons, each one corresponding to a group of +settings options. There is a checkbox for balloon help on the bottom left of +the WPrefs.app window. Most of the following is taken directly from the content +of the ballon help dialogs. + +.. figure:: images/prefs0.png + :alt: WPrefs.app after launching + :figclass: borderless + + WPrefs.app after launching + +.. contents:: Available preference settings + :backlinks: none + :local: + +Window focus +~~~~~~~~~~~~ + +.. figure:: images/prefs1.png + :alt: WPrefs.app window focus controls + :figclass: borderless + + WPrefs.app window focus controls + +The first icon from the left-hand side controls the way windows get +their focus (how they are activated). + +- *Input focus mode* (two choices are available): + + - **Manual** - click on the window to set keyboard input focus. + - **Auto** - set keyboard input focus to the window under the mouse pointer. + +- *Install colormap in the window* + + Select either (a) install the colormap in the window that has the input focus + or (b) that is under the mouse pointer. + +- *Automatic window raise delay* + + Setting the delay (in msec) for automatic window raising + +- *Checkboxes* + + The topmost check box prevents applications from receiving the focusing + mouse-click (I don't know why you would use this, but some people obviously + find it useful). The middle checkbox allows you to choose whether + newly-opened application windows automatically receive the focus, or must be + clicked to gain focus. The bottom allows you to bring window up while using + keyboard. + +Window handling +~~~~~~~~~~~~~~~ + +.. figure:: images/prefs2.png + :alt: WPrefs.app window handling preferences + :figclass: borderless + + WPrefs.app window handling preferences + +Clicking the second icon allows you to select the window handling options. +Clicking on this icon opens a panel allowing you to define the default +placement and properties of windows in the workspace. + +- *Window placement* + + You can use the sliders around the screen representation to modify the + original placement. The gadget tells Window Maker how to order windows on the + screen: *Random*, *Manual*, *Cascade* or *Smart*. *Automatic* is the default. + +- *Dragging a maximized window* + + Set the behaviour of maximized window when click on titlebar and drag with + the mouse. Possible actions can be set for a window to: + + - *changes its position* + - *restores its unmaximized geometry* + - *considers the window now unmaximized* + - *does not move the window* + +- *Edge resistance* + + To set the edge resistance and whether it resists or attracts windows. + According to the selection, windows resist or attract when moved against + other windows or the edges of the screen. The slider defines the threshold. + Some applications' title bars may disappear at the top of the screen, with + the window being too high for the screen area. Setting the edge resistance to + "0" may solve this problem + +- *Mod+Wheel* + + You can define, how many pixels window should increment/decrement by using + modifer keys + mouse wheel. By default, CTRL+wheel will change window size + horizontally, while SUPER+wheel vertically. + +.. + 1. *Open dialogs in the same workspace as their owners* + + Obviously, whether to force dialog boxes "spawned" by an application to open + in same workspace as their owners. + +- *When maximizing* + + This option allows the window to cover (or not) icons or the dock when + maximizing. + +- *Opaque move/resize* + + Clicking on *opaque move* causes windows to be moved with their contents + visible. If not checked, only the frame is displayed during the move. *Opaque + resize* makes window contents visible during resizing, otherwise only the + frame is displayed. + +Menu +~~~~ + +.. figure:: images/prefs3.png + :figclass: borderless + :alt: WPrefs.app menu preferences + + WPrefs.app menu preferences + +This panel allows you to set menu scrolling speed and submenu alignment with +the parent menu. In addition, two checkboxes are provided: + +- The topmost box forces submenus to open inside the screen instead of + scrolling when they would otherwise be off-screen. +- The middle box allows submenus to open off-screen, but causes off-screen + menus to scroll when the mouse pointer is moved over them. This setting is + also of value if you "tear off" a menu and leave it positioned on the + desktop. In that case, you might wish to "park" the menu off-screen (with + only the titlebar showing, for example) and have it reappear when you mouse + over it. This is convenient in some workflows, as when you have multiple + applications open and you are using the window list menu to switch between + applications. +- The bottom box allows you to assign Vim-like keybindings for the selection + of menu items. + +Icon +~~~~ + +.. figure:: images/prefs4.png + :figclass: borderless + :alt: WPrefs.app icon preferences + + WPrefs.app icon preferences + +Set icon or miniwindow handling options. + +- *Icon positioning* + + This area defines the initial placement of miniwindows or icons will be + displayed: *bottom, top, right, left*... + +- *Icon size* + + Selects the size of the icons shown when a window is miniaturized and for + application icons. Dockapp developers usually assume that tiles will be 64x64 + pixels, so it's probably a good idea to leave it at that size, unless you + know you won't be using dockapps. + +- *Mini-Previews for Icons* + + Allows to display content of the window, while hovering the mouse on + minimised application icon. The slider allows to set the size of the preview. + +- *Iconification animation* + + When an application's window is miniaturized, *miniaturization animation + style* offers four animation choices. + + - Shrinking/Zooming, + - Spinning/Twisting, + - 3D Flipping, or + - None + +- *Checkboxes* + + The topmost box enables/disables auto-arrangement of icons. The middle box + places miniwindows for opened applications on all existing workspaces + (*omnipresent*). The bottom box, allows to use single click for minimized or + docked icons isntead of double clicking. + +Ergonomy +~~~~~~~~ + +.. figure:: images/prefs5.png + :figclass: borderless + :alt: WPrefs.app ergonomic settings + + WPrefs.app ergonomic settings + +Various types of information are defined in this panel. + +- *Size display* + + Window Maker provides a box that informs you about the size of a window + during resizing. You may choose to have this display (a) in the center of the + screen, (b) the center of the screen, (c) the center of the resized + window, (d) the side and bottom of the window as a technical drawing-like + size display or (e) not at all. + +- *Position display* + + Same information as above but regarding the screen placement of a + window while moving (no technical drawing-like option). + +- *Appicon bouncing* + + You can set the behaviour of AppIcons bounce here. + +- *Show balloon text for* + + Selecting checkboxes displays balloon text for: incomplete window titles, + miniwindow titles, application and dock icons, or internal help. This may be + useful for new users but many people find having help balloons pop out all + over the desktop gets annoying quickly. I use the *incomplete window title* + and the *miniwindow title* options and none of the others. + +- *Workspace border* + + You can set a small border for the workspace. This allows you to easily + access the clip (for instance) when windows are maximized. + +.. + - *Checkbox* + + The top check box, if selected, raises a window when switching focus with the + keyboard. The bottom box enables a keyboard language selection button on + window titlebars (must have multiple keyboard maps/locales defined - this is + handy if you are working in multiple languages in applications such as word + processors, for example). + +Search Path +~~~~~~~~~~~ + +.. figure:: images/prefs6.png + :figclass: borderless + :alt: WPrefs.app icon and pixmap search path settings + + WPrefs.app icon and pixmap search path settings + +This panel is used to add or delete directory paths to search for icons and +pixmaps. These paths are used in the *settings* dialogs for dockapps and docked +application icons, so having a good, complete set of defined paths is +important. This may require some manual intervention, especially upon initial +setup, since some default paths will not be present on your system, while +others not predefined will be present. Use the *add* and *remove* dialogs to +configure according to what is actually available. + +Dock +~~~~ + +.. figure:: images/prefs7.png + :figclass: borderless + :alt: WPrefs.app dock preference settings + + WPrefs.app dock preference settings + +In this panel you can fine-tune Dock/Clip/Drawer behaviour. + +- *Clip autocollapsing delays* and *Clip autoraising delays* lets you choose + delays for expansion, collapsing, raising and lowering the Clip + +- *Dock/Clip/Drawer* + + First icon enables/disables thr Dock, vertical bar for your appicons and + applications. Second allows to enables/disables Clip, the tile with the + paperclip icon. Last one enables/disables Drawer - a special dockapp for + keeping the applications icons horizontally. + +Workspace +~~~~~~~~~ + +.. figure:: images/prefs8.png + :figclass: borderless + :alt: WPrefs.app workspace preference settings + + WPrefs.app workspace preference settings + +This panel defines navigation features within the workspace. + +- *Workspace navigation* + + Selecting the first checkbox allows switching to the first workspace when + switching past the last workspace and vice-versa. Selecting the second + checkbox allows windows to be dragged from one workspace to another. + Selecting the third checkbox cause a new workspace to be created when windows + are dragged off the last existing workspace. A selection menu allows you to + define where the workspace name is displayed each time you move from one + workspace to another (or not to display the workspace name at all). + +Other +~~~~~ + +.. figure:: images/prefs9.png + :figclass: borderless + :alt: WPrefs.app other workspace configuration settings + + WPrefs.app other workspace configuration settings + +This panel sets icon slide speed, shade animation speed, smooth scaling and +titlebar control (button) style. Animations and sound are also defined here. + +- *Icon slide speed* + + Selecting the left icon gives the slowest result, selecting the right one + gives the fastest. + +- *Shade animation speed* + + Same as icon slide + +- *Titlebar style* + + To choose a more or less "NeXTish" titlebar. (The top version is "newer," + while the bottom left is ca. 1990 and the bottom right is ca. 1988.) + +- *Animations* + + Selecting the animations icon enables animations for window miniaturization, + shading and so on. Selecting the superfluous icon enables "ghosting" of dock + (when moved - especially when moved from one side of the screen to the other) + and explosion animation for icons you remove from the dock. + +- *Smooth scaling* + + If selected, neutralizes pixelization effect on background images. The + side-effect is to slow down background image loading. + +- *Dithering colormap for 8bpp* + + For 8-bit displays (anyone still have one of these?) this enables dithering + and changes the number of colors to reserve either for applications or for + Window Maker. The Default setting almost always gives the best result. + +Applications menu +~~~~~~~~~~~~~~~~~ + +.. figure:: images/prefs10.png + :figclass: borderless + :alt: WPrefs.app application menu configuration + + WPrefs.app application menu configuration + +In this panel the applications menu and the commands to launch each application +can be defined. This panel has been changed in version 0.63.and later. It now +displays the actual menu thus allowing direct editing. This can be done only if +the menu is in property list format. Menus in plain text format can't be +edited in WPrefs. Check the README file in the Window Maker directory on how to +use one or the other. + +Keyboard shortcut +~~~~~~~~~~~~~~~~~ + +.. figure:: images/prefs11.png + :figclass: borderless + :alt: WPrefs.app keyboard shortcut settings + + WPrefs.app keyboard shortcut settings + +Many actions in Window Maker have predefined keyboard shortcuts. These actions +mainly concern windows and workspaces. Modifying, adding or removing shortcuts +can be done in this panel. Defining a shortcut can be done interactively, +capturing the key combination. + +Mouse +~~~~~ + +.. figure:: images/prefs12.png + :figclass: borderless + :alt: WPrefs.app mouse configuration + + WPrefs.app mouse configuration + +The mouse grab modifier represents the keyboard shortcut to use for actions +like dragging windows with the mouse or clicking inside the window. Mod1 (Alt) +is the default. + +This panel sets the mouse speed and double-click delay. Mouse button bindings +can be defined and can be disabled or enabled. + +The default setting binds the right mouse button to the applications menu, +middle button to the window list menu and left button to window selection +(focus). Of course, with a two button mouse, the middle button binding will not +work. However, on some OSes pressing both buttons at once gives the same result +as the one obtained with middle button. + +Starting from version 0.65 on, the mouse wheel can be used to switch +workspaces. This is not default behavior and must be enabled here. + +If mouse have more than 3 buttons and/or tilt, they can be bound to some +actions. + +Appearance +~~~~~~~~~~ + +.. figure:: images/prefs13.png + :figclass: borderless + :alt: WPrefs.app appearance settings + + WPrefs.app appearance settings + +In this panel, everything related to the appearance of the GUI (except the +background color or image) can be configured. Windows, menus and icons can have +their own background "texture," meaning color gradients of various types can be +configured here. Texture, color, menu style, and title alignment can be fully +customized. + +Font configuration +~~~~~~~~~~~~~~~~~~ + +.. figure:: images/prefs14.png + :figclass: borderless + :alt: Wprefs.app font configuration options + + Wprefs.app font configuration options + +This panel allows you to configure fonts for the window and menu titlebars, for +the menu body text, and for the icon and clip text. In addition, a font may be +defined for desktop messages. + +Expert user +~~~~~~~~~~~ + +.. figure:: images/prefs15.png + :figclass: borderless + :alt: WPrefs.app expert user settings + + WPrefs.app expert user settings + +Using this panel implies some knowledge. Many options are available. Among +these are: + +- Disabling miniwindows (useful when using with KDE and GNOME) +- Using (or not) xset +- Saving session on exit (highly recommended!) +- Using SaveUnder in different objects +- Using Win style cycling (added from version 0.63.0) +- Disabling confirmation panel for the kill command +- Disabling cycling colors highlighting of icons +- Multi head related options +- Screen edge snapping + +Editing the configuration file +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If needed, the defaults configuration file found in +$(HOME)/GNUstep/Defaults/WindowMaker can be edited by hand. This file is a +database with a property list syntax. When selecting an option in WPrefs.app, +it's written down into this file. When modifying this defaults file, it's very +important to follow the syntax. diff --git a/docs/guidedtour/win.html b/docs/guidedtour/win.html deleted file mode 100644 index 5a839ff..0000000 --- a/docs/guidedtour/win.html +++ /dev/null @@ -1,366 +0,0 @@ ---- -layout: default -title: Guided Tour - Windows ---- -

-
Windows
-

- -
Back -to Index -
- - - -

Description

- -

General layout of a window:

- -
    - -
  • -

    Titlebar: Gives the name of the application, document -or window. It's color (usually) indicates the focus state (active or -inactive window). I say (usually) because some styles and themes do not -provide different colors for focused or unfocused windows - although -this is rare (and, I might add, cruel!).

    -
  • -
  • -

    Miniaturize button: -Clicking on the left button of the titlebar iconifies the window.

    -
  • -
  • -

    Close button: -Clicking on the right button of the titlebar closes the window or kills -the application.

    -
  • -
  • -

    Resizebar: -The bottom part of the window. Dragging the resizebar with the mouse -resizes the window.

    -
  • -
  • Client area: -The window content. It can be an application, some text, a picture...
  • -
- -

Focusing

- -

A window can be in two states: focused or unfocused. The focused -window is the active window, the one receiving keystrokes. It's -titlebar has a differentiated color (usually!). Dialog windows or -panels opened -from a main window, automatically get the focus. As soon as they are -closed, the main window gets the focus back.

- -

Two modes are available to focus a window:

- -
    - -
  • -

    Click to focus mode: clicking on any part of the window -activates it.

    -
  • -
  • -

    Focus follows mouse mode: moving the mouse pointer over -the window activates it.

    -
  • -
- -

Reordering

- -

Windows can overlap other windows, in which case some will hide all -or part of others. Clicking on the titlebar or resizebar with the left -mouse button brings a window to the "front" (gives that window focus). -Selecting a window from the window list menu does the same.

- -

Some key bindings are provided and are very useful when a window is -hidden behind others.

- -
    - -
  • -

    Meta key + click on the titlebar with left mouse button-
    -sends the window to the back and gives focus to the topmost window.

    -
  • -
  • -

    Meta key + click on the client area with left mouse button-
    -brings the window to the front and focuses it.

    -
  • -
  • -

    Meta key + Up Arrow key-
    -brings the current focused window to the front.

    -
  • -
  • -

    Meta key + Down Arrow key-
    -sends the current focused window to the back.

    -
  • -
- -

Many window attributes can be modified from the attributes panel in -the window commands menu (clicking the right mouse button on the -titlebar). From version 0.62.0, window cycling was changed to Windows -style (Alt-Tab).

- -

Moving

- -

Clicking on the titlebar of a window and dragging it with the left -mouse button pressed moves the window. -The little box in the middle indicates the current position in pixels -relative to the top left corner of the screen (+0 +0). -Extra key bindings give more flexibility. -- Dragging the titlebar with middle mouse button: moves the window -without changing it's stacking order. -- Dragging the titlebar + Ctrl key: moves the window without focusing -it. -- Dragging the client area or the resizebar + Meta key: moves the -window.

- -

Maximizing

- -

Double-clicking the titlebar while holding the Ctrl key resizes the -window's height to full screen.

- -

Double-clicking the titlebar while holding the Shift key resizes the -window's width to full screen.

- -

Double-clicking the titlebar while holding both Ctrl and Shift keys -resizes the window's height and width to full screen. -Double-clicking the titlebar while holding Ctrl or Shift key restores -the initial size of the window.

- -

To prevent a maximized window from covering the dock, the "Keep on -top" option must be selected from the dock menu.

- -

Miniaturizing

- -

Clicking the miniaturize button (the left one on the titlebar) -shrinks the window into a miniwindow with an icon and a title and -places it at the bottom of the screen. Hitting the assigned shortcut -does the same. (Default is Meta + m.)

- -

The miniwindow is different from the application icon in that the -miniwindow cannot be docked.

- -

Double-clicking in the miniwindow restores a miniaturized window. -Double-clicking in an application icon with the middle mouse button -restores all miniaturized and hidden windows of this application.

- -

Resizing

- -

The resizebar, at the bottom of the window, is divided into three -regions: left end region, middle region and right end region.

- -

Depending upon the region you click, the resize operation is -constrained to one direction.

- -

Clicking in the middle region of the resizebar and dragging it -vertically changes the window's height.

- -

Clicking in either the left or right region of the resizebar and -dragging it horizontally changes the window's width.

- -

Dragging with Shift key pressed gives the same result. Clicking in -either end region of the resizebar and dragging it diagonally changes -both height and width.

- -

Key bindings give more options.

- -
    - -
  • -

    Dragging the window in the client area with the right mouse -button + Meta key resizes the window.

    -
  • -
  • -

    Dragging the resizebar with the middle mouse button resizes the -window without bringing it to the front.

    -
  • -
  • -

    Dragging the resizebar + Ctrl key resizes the window without -focusing it.

    -
  • -
- -

Shading

- -

Double-clicking on the titlebar of a window shades it. -This means the window rolls up to it's titlebar. A shaded window has -almost the same properties as a normal window. It can be miniaturized -or closed.

- -

From version 0.80.0, you can shade/unshade a window using a mouse -wheel on its titlebar. This of course, assumes your system is able to -manage a mouse wheel. The WMGLOBAL file in you $HOME/GNUstep/Defaults -should contain two new directives : MouseWheelUp and MouseWheelDown.

- -

Hiding

- -

Clicking the the miniaturize button (the left one on the titlebar) -with the right mouse button hides the application. -Using the middle mouse button unhides the application, simultaneously -opening the windows list menu and selecting the hidden application. -(Pressing both buttons at once with a two buttons mouse does the same -on some OSes.) If this doesn't work, use the F11 key binding (the -default) to open the windows list menu.

- -

Closing

- -

Clicking the close button (the right one on the titlebar) closes the -window. When the close button has a different form (not an X), it means -an application is running in that window. -Double-clicking in this close button kills the application. This can be -done too with Ctrl key + clicking the close button.

- -

Usually, it's much better to exit an application from inside -(through it's menu, for instance).

- -

Commands menu

- -

Clicking on the titlebar of a window with the right mouse button -opens a menu containing commands applying to this window. The keyboard -shortcut Ctrl + Esc can replace the click on the titlebar. Esc closes -this menu.

- -

List of Commands Menu commands:

- -

Maximize/Unmaximize:
-Either maximizes or returns the window to it's initial state.

- -

Miniaturize:
-Miniaturizes the window (miniwindow). The keyboard shortcut is Meta + m.

- -

Shade/Unshade: Shades (or unshades) the window.

- -

Hide:
-Hides all windows of the application. Clicking on the application icon -unhides the windows.

- -

Hide Others:
-From version 0.80.1 it is possible to hide all others windows. The -window list menu allows to unhide selecting the window to redisplay.

- -

Resize/Move:
-When this menu option is selected, the window is ready to be moved or -resized (the little box with coordinates is displayed inside the -window). Clicking on the titlebar deselects the option.

- -

Select:
-Obviously selects the window which then can be moved or resized... -Reselecting this option deselects the window.

- -

Move to:
-Allows to move the window to another workspace (if existing!).

- -

Attributes:
-Opens the attributes panel to edit attributes and options for the -window.

- -

Five options are available in this panel: Window specification, -Window attributes, Advanced options, Icon and initial workspace and -application specific.

- -
    - -
  • Window specification: Defines that the configuration will apply -to windows having their WM_CLASS property set to the selected name. -This is because windows can have different names. -From version 0.65.0, you can select the window to get the right -specification.
  • -
  • -

    Window attributes: selecting the corresponding checkbox allows -to:

    -
      -
    • disable titlebar
    • -
    • disable resizebar
    • -
    • disable close button
    • -
    • disable miniaturize button
    • -
    • disable border
    • -
    • keep on top
    • -
    • keep at bottom
    • -
    • omnipresent
    • -
    • start miniaturized
    • -
    • start maximized
    • -
    • full screen maximization
    • -
    -
  • -
  • -

    Advanced options: selecting the corresponding checkbox allows -to:

    -
      -
    • don't bind keyboard shortcuts
    • -
    • don't bind mouse clicks
    • -
    • don't show in the window list
    • -
    • don't let the window take focus
    • -
    • keep inside screen
    • -
    • ignore "Hide others"
    • -
    • ignore "Save session"
    • -
    • emulate application icon
    • -
    -
  • -
  • -

    Icon and initial workspace: allow to

    -
      -
    • choose an icon browsing directories
    • -
    • ignore client supplied icon when selecting the checkbox
    • -
    • define initial workspace
    • -
    -
  • -
  • -

    Application specific: selecting checkboxes allows to:

    -
      -
    • start hidden or with no application icon
    • -
    • collapse application icons (from version 0.65.0)
    • -
    -
  • -
  • -

    From version 0.80.0 a new checkbox is available : "Shared -application icon". It replaces the "Collapse application icon" -checkbox. That is, you can have many open windows from the same -application with only one appicon. This feature is on by default except -for some incompatible applications. This behavior can be defined for -all windows in the Window Specification inspector selecting the -Defaults for all windows checkbox.

    -
  • -
- -

You can revert to the old behavior changing SharedAppIcon to "No" in -the WMWindowAttributes file, either in the global domain or in the -local domain : $HOME/GNUstep/Defaults.

- -

Options:

- -

Submenu options allow to:

- -
    - -
  • to keep the window on top
  • -
  • to keep the window at bottom
  • -
  • to keep the window omnipresent
  • -
  • to set shortcuts for the window
  • -
- -

Ten shortcuts are available as soon as they have been set in the -keyboard shortcut dialog. The shortcuts to define are those named -"Shortcut for window + figure". Then, using the defined shortcut gives -the focus to the window.

- -

Close:
-Closes the window

- -

Kill:
-Kills the application. -Usually, an application must be closed from inside (menu or other - means). This option is especially reserved for "emergency" cases.

diff --git a/docs/guidedtour/win.rst b/docs/guidedtour/win.rst new file mode 100644 index 0000000..6f68b6c --- /dev/null +++ b/docs/guidedtour/win.rst @@ -0,0 +1,308 @@ +--- +layout: default +title: Guided Tour - Windows +--- + +Windows +======= + +.. contents:: + :depth: 1 + :backlinks: none + :local: + +Description +----------- + +General layout of a window: + +- *Titlebar*: Gives the name of the application, document or window. It's color + (usually) indicates the focus state (active or inactive window). I say + (usually) because some styles and themes do not provide different colors for + focused or unfocused windows - although this is rare (and, I might add, + cruel!). +- *Miniaturize button*: Clicking on the left button of the titlebar iconifies + the window. +- *Close button*: Clicking on the right button of the titlebar closes the + window or kills the application. +- *Resizebar*: The bottom part of the window. Dragging the resizebar with the + mouse resizes the window. +- *Client area*: The window content. It can be an application, some text, a + picture... + +Focusing +-------- + +A window can be in two states: focused or unfocused. The focused window is the +active window, the one receiving keystrokes. It's titlebar has a differentiated +color (usually!). Dialog windows or panels opened from a main window, +automatically get the focus. As soon as they are closed, the main window gets +the focus back. + +Two modes are available to focus a window: + +- *Click to focus mode*: clicking on any part of the window activates it. +- *Focus follows mouse mode*: moving the mouse pointer over the window + activates it. + +Reordering +---------- + +Windows can overlap other windows, in which case some will hide all or part of +others. Clicking on the titlebar or resizebar with the left mouse button brings +a window to the "front" (gives that window focus). Selecting a window from the +window list menu does the same. + +Some key bindings are provided and are very useful when a window is hidden +behind others. + +- *Meta key + click on the titlebar with left mouse button*- + + sends the window to the back and gives focus to the topmost window. + +- *Meta key + click on the client area with left mouse button*- + + brings the window to the front and focuses it. + +- *Meta key + Up Arrow key*- + + brings the current focused window to the front. + +- *Meta key + Down Arrow key*- + + sends the current focused window to the back. + +Many window attributes can be modified from the attributes panel in the window +commands menu (clicking the right mouse button on the titlebar). From version +0.62.0, window cycling was changed to Windows style (Alt-Tab). + +Moving +------ + +Clicking on the titlebar of a window and dragging it with the left mouse button +pressed moves the window. The little box in the middle indicates the current +position in pixels relative to the top left corner of the screen (+0 +0). Extra +key bindings give more flexibility. + +- Dragging the titlebar with middle mouse button: moves the window + without changing it's stacking order. +- Dragging the titlebar + Ctrl key: moves the window without focusing it. +- Dragging the client area or the resizebar + Meta key: moves the window. + +Maximizing +---------- + +Double-clicking the titlebar while holding the Ctrl key resizes the window's +height to full screen. + +Double-clicking the titlebar while holding the Shift key resizes the window's +width to full screen. + +Double-clicking the titlebar while holding both Ctrl and Shift keys resizes the +window's height and width to full screen. Double-clicking the titlebar while +holding Ctrl or Shift key restores the initial size of the window. + +To prevent a maximized window from covering the dock, the "Keep on top" option +must be selected from the dock menu. + +Miniaturizing +------------- + +Clicking the miniaturize button (the left one on the titlebar) shrinks the +window into a miniwindow with an icon and a title and places it at the bottom +of the screen. Hitting the assigned shortcut does the same. (Default is Meta + +m.) + +The miniwindow is different from the application icon in that the miniwindow +cannot be docked. + +Double-clicking in the miniwindow restores a miniaturized window. +Double-clicking in an application icon with the middle mouse button restores +all miniaturized and hidden windows of this application. + +Resizing +-------- + +The resizebar, at the bottom of the window, is divided into three regions: left +end region, middle region and right end region. + +Depending upon the region you click, the resize operation is constrained to one +direction. + +Clicking in the middle region of the resizebar and dragging it vertically +changes the window's height. + +Clicking in either the left or right region of the resizebar and dragging it +horizontally changes the window's width. + +Dragging with Shift key pressed gives the same result. Clicking in either end +region of the resizebar and dragging it diagonally changes both height and +width. + +Key bindings give more options. + +- Dragging the window in the client area with the right mouse button + Meta key + resizes the window. +- Dragging the resizebar with the middle mouse button resizes the window + without bringing it to the front. +- Dragging the resizebar + Ctrl key resizes the window without focusing it. + +Shading +------- + +Double-clicking on the titlebar of a window shades it. This means the window +rolls up to it's titlebar. A shaded window has almost the same properties as a +normal window. It can be miniaturized or closed. + +From version 0.80.0, you can shade/unshade a window using a mouse wheel on its +titlebar. This of course, assumes your system is able to manage a mouse wheel. +The WMGLOBAL file in you $HOME/GNUstep/Defaults should contain two new +directives : MouseWheelUp and MouseWheelDown. + +Hiding +------ + +Clicking the the miniaturize button (the left one on the titlebar) with the +right mouse button hides the application. Using the middle mouse button unhides +the application, simultaneously opening the windows list menu and selecting the +hidden application. (Pressing both buttons at once with a two buttons mouse +does the same on some OSes.) If this doesn't work, use the F11 key binding (the +default) to open the windows list menu. + +Closing +------- + +Clicking the close button (the right one on the titlebar) closes the window. +When the close button has a different form (not an X), it means an application +is running in that window. Double-clicking in this close button kills the +application. This can be done too with *Ctrl key + clicking the close button*. + +Usually, it's much better to exit an application from inside (through it's +menu, for instance). + +Commands menu +------------- + +Clicking on the titlebar of a window with the right mouse button opens a menu +containing commands applying to this window. The keyboard shortcut Ctrl + Esc +can replace the click on the titlebar. Esc closes this menu. + +List of Commands Menu commands: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +*Maximize/Unmaximize*: + +Either maximizes or returns the window to it's initial state. + +*Miniaturize*: + +Miniaturizes the window (miniwindow). The keyboard shortcut is Meta + m. + +*Shade/Unshade*: Shades (or unshades) the window. + +*Hide*: + +Hides all windows of the application. Clicking on the application icon unhides +the windows. + +*Hide Others*: + +From version 0.80.1 it is possible to hide all others windows. The window list +menu allows to unhide selecting the window to redisplay. + +*Resize/Move*: + +When this menu option is selected, the window is ready to be moved or resized +(the little box with coordinates is displayed inside the window). Clicking on +the titlebar deselects the option. + +*Select*: + +Obviously selects the window which then can be moved or resized... Reselecting +this option deselects the window. + +*Move to*: + +Allows to move the window to another workspace (if existing!). + +*Attributes*: + +Opens the attributes panel to edit attributes and options for the window. + +Five options are available in this panel: Window specification, Window +attributes, Advanced options, Icon and initial workspace and application +specific. + +- Window specification: Defines that the configuration will apply to windows + having their WM_CLASS property set to the selected name. This is because + windows can have different names. From version 0.65.0, you can select the + window to get the right specification. + +- Window attributes: selecting the corresponding checkbox allows to: + + - disable titlebar + - disable resizebar + - disable close button + - disable miniaturize button + - disable border + - keep on top + - keep at bottom + - omnipresent + - start miniaturized + - start maximized + - full screen maximization + +- Advanced options: selecting the corresponding checkbox allows to: + + - don't bind keyboard shortcuts + - don't bind mouse clicks + - don't show in the window list + - don't let the window take focus + - keep inside screen + - ignore "Hide others" + - ignore "Save session" + - emulate application icon + +- Icon and initial workspace: allow to + + - choose an icon browsing directories + - ignore client supplied icon when selecting the checkbox + - define initial workspace + +- Application specific: selecting checkboxes allows to: + + - start hidden or with no application icon + - collapse application icons (from version 0.65.0) + +- From version 0.80.0 a new checkbox is available : "Shared application icon". + It replaces the "Collapse application icon" checkbox. That is, you can have + many open windows from the same application with only one appicon. This + feature is on by default except for some incompatible applications. This + behavior can be defined for all windows in the Window Specification inspector + selecting the Defaults for all windows checkbox. + +You can revert to the old behavior changing SharedAppIcon to "No" in the +WMWindowAttributes file, either in the global domain or in the local domain : +$HOME/GNUstep/Defaults. + +*Options*: + +Submenu options allow to: + +- to keep the window on top +- to keep the window at bottom +- to keep the window omnipresent +- to set shortcuts for the window + +Ten shortcuts are available as soon as they have been set in the keyboard +shortcut dialog. The shortcuts to define are those named "Shortcut for window + +figure". Then, using the defined shortcut gives the focus to the window. + +*Close*: + +Closes the window + +*Kill*: + +Kills the application. Usually, an application must be closed from inside (menu +or other means). This option is especially reserved for "emergency" cases. diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index a11bd4b..0000000 --- a/docs/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: default -title: Documentation ---- - -
-
- -

Documentation


- -

It's a fact that one of the biggest problems with today's software is lack of good documentation, or any - documentation for that matter. Programmers generally don't have a lot of time to document their work, and the things - they do document are usually oriented towards other programmers. While we can appreciate the programmers point of view, - we feel it's necessary to cater to a larger audience (i.e our users) by providing clear, concise information on how to - use our software. The sections below will bring all of these pieces of information together for you.

- -

Before you get started with Window Maker, you need to have an understanding of how to make use of the documentation - that comes with the source distribution. The main objective to using documentation is to understand - it, which coincidentally requires that you read it. A common mistake is for new or novice users to - overlook this information, leading them to frustration and a bad first impression. Please take a moment to peruse the - sections below, which should make the experience of learning Window Maker a more pleasant one.

- - - -

Very frequently asked question

- - -

Can I easily mount my external drives or connect to the internet with Window Maker?

-

Yes, you can. Mounting external media is not the problem of a window manager to solve, but - a tipical Window Maker user can mount external media just as easily as any other desktop user. - If you use a dockapp like wmvolman or - wmudmount you are just a click away from - having your external media mounted on /media/VOLUME_LABEL.

- -

And you can just as easily manage your network connections using the standard nm-applet running - in a system tray like wmsystemtray on your dock.

- -
Essential dockapps
wmvolman and wmsystemtray with nm-applet
diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..8d2668c --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,58 @@ +--- +layout: default +title: Documentation +--- + +Documentation +============= + +It's a fact that one of the biggest problems with today's software is lack of +good documentation, or any documentation for that matter. Programmers generally +don't have a lot of time to document their work, and the things they do +document are usually oriented towards other programmers. While we can +appreciate the programmers point of view, we feel it's necessary to cater to a +larger audience (i.e our users) by providing clear, concise information on how +to use our software. The sections below will bring all of these pieces of +information together for you. + +Before you get started with Window Maker, you need to have an understanding of +how to make use of the documentation that comes with the source distribution. +The main objective to using documentation is to **understand** it, which +coincidentally requires that you **read** it. A common mistake is for new or +novice users to overlook this information, leading them to frustration and a +bad first impression. Please take a moment to peruse the sections below, which +should make the experience of learning Window Maker a more pleasant one. + +.. class:: contents + +- `Installation Basics `_ +- `Window Maker Compilation and Installation `_ +- `Window Maker Internationalisation `_ +- `Guided Tour `_ +- `User Guide `_ +- `FAQ `_ +- `WINGs `_ + +.. - `Desktop/X Integration `_ + +Very frequently asked question +------------------------------ + +- **Can I easily mount my external drives or connect to the internet with + Window Maker?** + + Yes, you can. Mounting external media is not the problem of a window manager + to solve, but a tipical Window Maker user can mount external media just as + easily as any other desktop user. If you use a dockapp like + `wmvolman `_ or + `wmudmount `_ you are just a + click away from having your external media mounted on `/media/VOLUME_LABEL`. + + And you can just as easily manage your network connections using the standard + `nm-applet` running in a system tray like `wmsystemtray + `_ on your dock. + + .. figure:: /img/essential_dockapps.png + :alt: essential dockapps + + wmvolman and wmsystemtray with nm-applet diff --git a/docs/installation.html b/docs/installation.html deleted file mode 100644 index c1c6a99..0000000 --- a/docs/installation.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -layout: default -title: Documentation ---- - -
-
- -

Installation Basics

- -

Downloading and Extracting

- -

The first necessary step is to download - the Window Maker source distribution. From this point on, we'll assume it has - been retrieved and is residing on the local hard disk. The next step is to extract it, and change into the source - directory.

-
-# cd /path/to/your/download
-# gunzip WindowMaker-0.xx.xx.tar.gz
-# tar -xf WindowMaker-0.xx.xx.tar
-# cd WindowMaker-0.xx.xx
-
-
- -

Now that things are extracted, it's time to look at the relevant pieces of documentation. Most UNIX oriented free - software packages come with a README file, and Window Maker is no exception. The README file contains a summary - overview of what the distribution is, what the various directories contain, and other general information.

- -

Moving along, we have the NEWS file. For now, we just want to point out its existence. It will become more useful to - novice users over time. Veteran Window Maker users will find it handy for keeping their configuration files up to date, - and learning about various changes which affect Window Maker's behavior.

- -

The two remaining files we need to look at are INSTALL and BUGS. The INSTALL file provides additional information - that is necessary to install Window Maker successfully. The BUGS file contains a list of known Window Maker bugs. If a - user feels they've found a bug in Window Maker, they should consult the BUGS file first. If the bug isn't listed, - proceed to the Bug Tracker and see if its there.

- -

Compiling

- -

After extracting the latest version of Window Maker using the previous instructions, the next step is to compile it. - First of all, the configure script should be run. It will test to make sure all the necessary libraries, compilers and - build tools are available on the local system. The configure script allows for various arguments to be passed to it - which relate to Window Maker's installation. For a complete list of all configurable settings, enter:

-
-$ ./configure --help
-
-
- -

Commonly used configuration options are:

-
---prefix=DIR --enable-modelock --enable-xinerama --enable-silent-rules
-
-
- -

The first configuration option lets Window Maker be installed into a non-default installation directory (e.g if - Window Maker cannot be installed system wide for some reason, a user can specify a path under his/her home directory). - The default installation directory is /usr/local/bin. Note that root access - will be needed later on during the installation process if the defaults were used.

- -

So if a user johndoe would like to install the wmaker binary into /home/johndoe/wmaker/bin instead of the default - /usr/local/bin, the following argument would be passed to the configure script:

-
- $ ./configure --prefix=/home/johndoe/wmaker
-
-
- -

After the configure script has been successfully executed, Window Maker can now be compiled with the make command; - simply enter:

-
-$ make
-
-
- -

The final step is to install the binaries and other support files. This is accomplished by entering: # make install

- -

Note that this is the step that needs to be performed by root if the default installation directory was used, or if - a directory was specified that the running user cannot write to. If the installing user has root access, they should - first become root by issuing su - root. Otherwise, reconfigure and recompile Window Maker by specifying a - different installation directory, or kindly ask the local system administator to install it system wide.

- -

Once Window Maker is installed system-wide, a default configuration can be installed on a per-user basis, through - the bundled installation script, wmaker.inst. Enter wmaker.inst in a terminal emulator to - configure Window Maker for your user.

- -

This script copies the default Window Maker configuration to your user's home directory and sets Window Maker as the - default window manager. It is recommended to create ~/GNUstep before executing the script.

- -

Final tweaks

- -

Edit your ~/.xinitrc to load your newly installed Window Maker using the line - exec /usr/local/bin/wmaker.

- -

Generate a new root menu (accessible with F12) with wmgenmenu, for example -

-	 $ wmgenmenu > $HOME/GNUstep/Defaults/WMRootMenu 
-	
- - -

Another recommended step is to install a few dockapps like wmvolman, wmmixer and wmsystemtray which allow one to - easily mount external media on /media among other things. Visit dockapps - for many more choices.

- -


diff --git a/docs/installation.rst b/docs/installation.rst new file mode 100644 index 0000000..9fe00f1 --- /dev/null +++ b/docs/installation.rst @@ -0,0 +1,130 @@ +--- +layout: default +title: Documentation +--- + +Installation Basics +=================== + +Downloading and Extracting +-------------------------- + +The first necessary step is to `download +`_ the +Window Maker source distribution. From this point on, we'll assume it has been +retrieved and is residing on the local hard disk. The next step is to extract +it, and change into the source directory. + +.. code:: console + :class: highlight + + # cd /path/to/your/download + # gunzip WindowMaker-0.xx.xx.tar.gz + # tar -xf WindowMaker-0.xx.xx.tar + # cd WindowMaker-0.xx.xx + +Now that things are extracted, it's time to look at the relevant pieces of +documentation. Most UNIX oriented free software packages come with a README +file, and Window Maker is no exception. The README file contains a summary +overview of what the distribution is, what the various directories contain, and +other general information. + +Moving along, we have the NEWS file. For now, we just want to point out its +existence. It will become more useful to novice users over time. Veteran Window +Maker users will find it handy for keeping their configuration files up to +date, and learning about various changes which affect Window Maker's behavior. + +The two remaining files we need to look at are INSTALL and BUGS. The INSTALL +file provides additional information that is necessary to install Window Maker +successfully. The BUGS file contains a list of known Window Maker bugs. If a +user feels they've found a bug in Window Maker, they should consult the BUGS +file first. If the bug isn't listed, proceed to the Bug Tracker and see if its +there. + +Compiling +--------- + +After extracting the latest version of Window Maker using the previous +instructions, the next step is to compile it. First of all, the configure +script should be run. It will test to make sure all the necessary libraries, +compilers and build tools are available on the local system. The configure +script allows for various arguments to be passed to it which relate to Window +Maker's installation. For a complete list of all configurable settings, enter: + +.. code:: console + :class: highlight + + $ ./configure --help + +Commonly used configuration options are: + +.. code:: console + :class: highlight + + --prefix=DIR --enable-modelock --enable-xinerama --enable-silent-rules + +The first configuration option lets Window Maker be installed into a +non-default installation directory (e.g if Window Maker cannot be installed +system wide for some reason, a user can specify a path under his/her home +directory). The default installation directory is /usr/local/bin. Note that +root access will be needed later on during the installation process if the +defaults were used. + +So if a user johndoe would like to install the wmaker binary into +/home/johndoe/wmaker/bin instead of the default /usr/local/bin, the following +argument would be passed to the configure script: + +.. code:: console + :class: highlight + + $ ./configure --prefix=/home/johndoe/wmaker + +After the configure script has been successfully executed, Window Maker can now +be compiled with the make command; simply enter: + +.. code:: console + :class: highlight + + $ make + +The final step is to install the binaries and other support files. This is +accomplished by entering: + +.. code:: console + :class: highlight + + # make install + +Note that this is the step that needs to be performed by root if the default +installation directory was used, or if a directory was specified that the +running user cannot write to. If the installing user has root access, they +should first become root by issuing ``su - root``. Otherwise, reconfigure and +recompile Window Maker by specifying a different installation directory, or +kindly ask the local system administator to install it system wide. + +Once Window Maker is installed system-wide, a default configuration can be +installed on a per-user basis, through the bundled installation script, +``wmaker.inst``. Enter ``wmaker.inst`` in a terminal emulator to configure +Window Maker for your user. + +This script copies the default Window Maker configuration to your user's home +directory and sets Window Maker as the default window manager. It is +recommended to create ``~/GNUstep`` before executing the script. + +Final tweaks +------------ + +Edit your ~/.xinitrc to load your newly installed Window Maker using the line +``exec /usr/local/bin/wmaker``. + +Generate a new root menu (accessible with F12) with ``wmgenmenu``, for example + +.. code:: console + :class: highlight + + $ wmgenmenu > $HOME/GNUstep/Defaults/WMRootMenu + +Another recommended step is to install a few dockapps like wmvolman, wmmixer +and wmsystemtray which allow one to easily mount external media on /media among +other things. Visit `dockapps `_ for many more +choices. diff --git a/docs/wings.html b/docs/wings.html deleted file mode 100644 index 61a799a..0000000 --- a/docs/wings.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -layout: default -title: WINGs ---- -
-
- -

WINGs Is Not GNUstep

- -

While GNUstep is our ideal development framework, it's overkill for a window manager like Window Maker. We had a - need for a quick, lightweight toolkit to handle basic window manager tasks, which is how WINGs was born, and why it has - become an integral part of Window Maker's core.

- -

Unlike the general uses of the GNUstep development environment, the WINGs toolkit was designed as a specific - solution for Window Maker. It is not implemented in an object-oriented language, but was designed with OO schemas in - mind. It is encapsulated in objects that have various methods (functions), which in turn can be accessed like real - objects (i.e it's unknown what they contain, and they only have the interface functions to alter their data). As much - as C will allow, that is. What really matters is that it's functional and small enough for our purposes.

- -

Surprisingly, there have been several developers who think WINGs is mature and functional enough to write full - fledged applications with it. For developers who are interested in creating real applications, we would encourage them - to look at GNUstep instead. GNUstep is written in Objective-C, and anyone with a solid C++ background shouldn't need - more than an hour to begin programming in Objective-C. For more information on this, please visit the GNUstep Developer Documentation section.

- -

So, what does WINGs do for us, specifically? It contains many necessary widgets, such as the buttons, file browser, - color chooser, and text editor dialog that are all used for creating the UI. It is currently missing a few important - items, such as DnD, treeview, and application menus, but those will be integrated in future releases.

- -

One of the more important aspects of WINGs is that it now provides proplist functionality. proplist, short for - property list, is what Window Maker uses to generate and - maintain structured configuration files. This data is stored as plain ASCII text under a user's ~/GNUstep directory. - These files are what make up the menus, the current state and appearance of the desktop, the Dock, the Clip, and the - values set in WPrefs.

- -

As an example, here is a short snippet from the proplist version of the default menu:

-
-(
-        Applications,
-        (
-                Info,
-                ("Info Panel", INFO_PANEL),
-                (Legal, LEGAL_PANEL),
-                ("System Console", EXEC, xconsole),
-                ("System Load", SHEXEC, "xosview || xload"),
-                ("Process List", EXEC, "xterm -e top"),
-                ("Manual Browser", EXEC, xman)
-        ),
-        (Run..., EXEC, "%a(Run,Type command to run:)"),
-...
-)
-
-
- -

External sources of information

- -

As this section evolves, we will be providing more documentation on the internals of WINGs. For the time being, - developers interested in WINGs should see Alexey Voinov's WINGsman documentation project. Starters may find this tutorial, which includes a library - listing based on Voinov's work, useful. We'll try to cover some examples and/or more tutorials on how to program small - applications in WINGs in the near future. For anyone already using WINGs for a project, please contact us, as we'd like to get an idea of its popularity and practical uses, as well as some - additional material to place here.


-
-
diff --git a/docs/wings.rst b/docs/wings.rst new file mode 100644 index 0000000..13071fd --- /dev/null +++ b/docs/wings.rst @@ -0,0 +1,78 @@ +--- +layout: default +title: WINGs +--- + +WINGs Is Not GNUstep +==================== + +While GNUstep is our ideal development framework, it's overkill for a window +manager like Window Maker. We had a need for a quick, lightweight toolkit to +handle basic window manager tasks, which is how WINGs was born, and why it has +become an integral part of Window Maker's core. + +Unlike the general uses of the GNUstep development environment, the WINGs +toolkit was designed as a specific solution for Window Maker. It is not +implemented in an object-oriented language, but was designed with OO schemas in +mind. It is encapsulated in objects that have various methods (functions), +which in turn can be accessed like real objects (i.e it's unknown what they +contain, and they only have the interface functions to alter their data). As +much as C will allow, that is. What really matters is that it's functional and +small enough for our purposes. + +Surprisingly, there have been several developers who think WINGs is mature and +functional enough to write full fledged applications with it. For developers +who are interested in creating real applications, we would encourage them to +look at GNUstep instead. GNUstep is written in Objective-C, and anyone with a +solid C++ background shouldn't need more than an hour to begin programming in +Objective-C. For more information on this, please visit the `GNUstep Developer +Documentation `_ section. + +So, what does WINGs do for us, specifically? It contains many necessary +widgets, such as the buttons, file browser, color chooser, and text editor +dialog that are all used for creating the UI. It is currently missing a few +important items, such as DnD, treeview, and application menus, but those will +be integrated in future releases. + +One of the more important aspects of WINGs is that it now provides proplist +functionality. proplist, short for `property list +`_, is what Window Maker uses to +generate and maintain structured configuration files. This data is stored as +plain ASCII text under a user's ~/GNUstep directory. These files are what make +up the menus, the current state and appearance of the desktop, the Dock, the +Clip, and the values set in WPrefs. + +As an example, here is a short snippet from the proplist version of the default +menu: + +.. code:: + :class: highlight + + ( + Applications, + ( + Info, + ("Info Panel", INFO_PANEL), + (Legal, LEGAL_PANEL), + ("System Console", EXEC, xconsole), + ("System Load", SHEXEC, "xosview || xload"), + ("Process List", EXEC, "xterm -e top"), + ("Manual Browser", EXEC, xman) + ), + (Run..., EXEC, "%a(Run,Type command to run:)"), + ... + ) + +External sources of information +=============================== + +As this section evolves, we will be providing more documentation on the +internals of WINGs. For the time being, developers interested in WINGs should +see Alexey Voinov's `WINGsman documentation project +`_. Starters may find `this +tutorial `_, which includes a library listing +based on Voinov's work, useful. We'll try to cover some examples and/or more +tutorials on how to program small applications in WINGs in the near future. For +anyone already using WINGs for a project, please `contact us <{{ site.baseurl +}}/lists>`_, as we'd like to get an idea of its popularity and practical uses, +as well as some additional material to place here. diff --git a/docs/wmaker_i18n.html b/docs/wmaker_i18n.html deleted file mode 100644 index f98cd9a..0000000 --- a/docs/wmaker_i18n.html +++ /dev/null @@ -1,486 +0,0 @@ ---- -layout: default -title: Internationalisation ---- - - - -

Window Maker Internationalisation

- -

A guide to enable support for language translations -in WINDOW MAKER and to the contributors -who want to help translating. -

- -

Table of Contents

- - - - -
-

This manual is for Window Maker, version git#next. -

- - - -
- - -

1 Enabling Languages support

- -

WINDOW MAKER has the possibility to be translated in many languages, but by default none of -them will be installed, and the support for translation will not be compiled. -

-

To enable the translation capabilities, you have to specify which language(s) you want to be -installed: this is done with the variable LINGUAS when running the configure script. -This variable should contain the space-separated list of languages you want to install. -

-

You could for instance enable both French (fr) and Dutch (nl) with this: -

-
-
./configure LINGUAS="fr nl"
-
- -

You can of course add any other option that you want to the configure command. -From the moment you specify the variable, the configure script will check that you have -the appropriate dependencies for this (basically the gettext function and the libintl -library); when you run make to compile the project, it will also compile the translation -(mo files) for the language(s) you asked (if available, of course), and during -make install it will install them in the usual directory. -

-

The installation directory can be changed with the standard option --localedir to the -configure script, the default path being -<prefix>/share/locale/<lang>/LC_MESSAGES). -

- - -

1.1 Getting the list of supported languages

- -

The naming convention for the languages follows the ISO 639-1 standard, -for which you can find a summary list in the -GNU gettext manual. -

-

But as WINDOW MAKER does not support all of them, the configure script will print a -warning for each language you specify that it does not know, and sum up at the end the list of -enabled languages that will be installed. -

-

There is a non-standard possibility to set LINGUAS to list, in which case the -configure script will provide you the list of languages it supports, and stop: -

-
-
./configure LINGUAS="list"
-
- -

There is also another non-standard possibility to enable all the languages that WINDOW MAKER -supports by setting LINGUAS to *. -This is an internal trick implemented so the development team can have the command -make distcheck include some checks on translations: -

-
-
./configure LINGUAS='*'
-
- - - -

1.2 Translations for Menus

- -

In order to propose an Application Menu (also called Root Menu) that is also -translated in the language of the interface, WINDOW MAKER implements two complementary -mechanisms: -

-

The first, always enabled when i18n support is enabled, is to look for the menu file containing the -name of the locale. -For example, if the file is called menu and the language is set as LANG=fr_FR.utf-8, -then WINDOW MAKER will search for, and use the first match found: -

-
    -
  • menu.fr_FR.utf-8 -
  • menu.fr_FR -
  • menu.fr -
  • menu -
- -

The second possibility, which is not enabled by default, is to be able to use a custom po -file which contains the translations for the text of the menu. -This feature is enabled at compile time, using the option --with-menu-textdomain to the -configure script. For example, if you specify: -

-
-
./configure --with-menu-textdomain=WMMenu
-
- -

then the translations for the menu will be searched in the file WMMenu.mo located -at the standard location, the default path being -<prefix>/share/locale/<lang>/LC_MESSAGES/WMMenu.mo. -

-

If you do not enable the feature (the default behaviour, or with an explicit ---without-menu-textdomain), then WINDOW MAKER will not try to translate the -strings, even using its own domain file (WindowMaker.mo). -

- - -

1.3 Setting LINGUAS at system level

- -

As the variable LINGUAS is quite standard, you also have the possibility to set its value in -the config.site file for AUTOCONF. -This file can be placed in one of these paths: -

-
    -
  • <prefix>/share/config.site -
  • <prefix>/etc/config.site -
- -

This way, the same language list will be used for all the programs that use AUTOCONF that you -would compile. -Please note that if you also specify a value on the command line, it will have precedence over the -value in that file. -

- -
- - -

2 Choosing the Language

- -

If you have compiled and installed WINDOW MAKER with support for your language, -the effective translation is done is the very same way as any other application on an UNIX -system, you just have to set the shell variable LANG to your language before wmaker -is started. -In sh type of shell (SH, KSH, BASH, ...), this is done for example with -(fr is for French): -

-
-
export LANG=fr
-
- - -

There is also a command line option --locale for WINDOW MAKER which may be used to set -the language: -

-
-
wmaker --locale fr
-
- -

When using this option, WINDOW MAKER will use the locale you specified, redefining the -LANG environment variable to this value so all program started from WINDOW MAKER will -inherit its value. -

- -

If your system is using SYSTEMD, you can also configure the locale at system level using the -command: -

-
-
localectl set-locale LANG=fr
-
- - -

You can check if the current value is properly supported with the command: -

-
-
locale
-
- -

If this does not work, you may need first to activate the support for your locale in the system; -you can get the list of currently enabled locales with the command: -

-
-
locale -a
-
- -

You should be able to enable a new language support by editing the file /etc/locale.gen to -uncomment the locale(s) you need (by removing the # character and space(s) in front of it, -and by running the command locale-gen as root. -

-

For further information, you may wish to read dedicated documentation, for example from -the Linux Documentation Project -or through pages like -Shell Hacks’ note on Changing Locale. -

- -
- - -

3 Troubleshooting

- -

If I18N support does not work for you, check these: -

-
    -
  • - the LANG environment variable is set to your locale, and -the locale is supported by your OS’s locale or X’s locale -emulation. you can display all supported locales by -executing "locale -a" command if it is available; you -can check if your locale is supported by X’s locale emulation, -see /usr/share/X11/locale/locale.alias - -
  • - check if you are using an appropriate fonts for the locale you -chose. If you’re using a font set that has a different -encoding than the one used by XLIB or LIBC, bad things can -happen. Try specifically putting the encoding in the LANG -variable, like ru_RU.KOI8-R. Again, see -/usr/share/X11/locale/locale.alias - -
  • - the fonts you’re using support your locale. if your font -setting on $HOME/GNUstep/Defaults/WindowMaker is like... - -
    -
       WindowTitleFont = "Trebuchet MS:bold:pixelsize=12";
    -   MenuTitleFont   = "Trebuchet MS:bold:pixelsize=12";
    -
    - -

    then you can’t display Asian languages (ja, ko, ch, ...) characters using -Trebuchet MS. A font that is guaranteed to work for any language is -sans (or sans-serif). sans is not a font itself, but an alias which -points to multiple fonts and will load the first in that list that -has the ability to show glyphs in your language. If you don’t know -a font that is suited for your language you can always set all your -fonts to something like: -

    -
    -
       "sans:pixelsize=12"
    -
    - -

    However, please note that if your font is something like: -

    -
    -
       "Trebuchet MS,sans serif:pixelsize=12"
    -
    - -

    this will not be able to display Asian languages if any of the -previous fonts before sans are installed. This is because unlike -the proper font pickup that sans guarantees for your language, -this construct only allows a font fallback mechanism, which tries -all the fonts in the list in order, until it finds one that is -available, even if it doesn’t support your language. -

    -

    Also you need to change font settings in style files in -the $HOME/Library/WindowMaker/Style directory. -

    -
  • - the LC_CTYPE environment variable is unset or it has the correct -value. If you don’t know what is the correct value, unset it. - -
- - -
- - -

4 Contribute to Translations

- -

You may have noticed that many translations are not up to date, because the code has evolved but the -persons who initially contributed may not have had the time to continue, so any help is welcome. -

-

Since WINDOW MAKER 0.95.7 there are some targets to make that can help you in that -task. -

- - -

4.1 Install the latest sources

- -

If you want to contribute, the first step is get the development branch of the code; -this is done using git. -If you do not feel confident at all with using git, you may also try to ask for a -snapshot on the developer’s mailing list wmaker-dev@lists.windowmaker.org. -With git the procedure is: -

-
-
# Get your working copy of the sources
-git clone git://repo.or.cz/wmaker-crm.git
-
-# Go into that newly created directory
-cd wmaker-crm
-
-# Switch to the branch where everything happens
-git checkout next
-
-# Generate the configuration script
-./autogen.sh
-
- -

Now you should have an up-to-date working copy ready to be compiled; -you will not need to go the full way but you should run the configure script, so it will -create the Makefiles, and you may want to compile the code once so it will not do it again -automatically later while you are doing something else: -

-
-
# Setup the build, enabling at least the language you want to work on
-./configure LINGUAS="<list of iso 639 country code>"
-
-# Compile the code once
-make
-
- - - -

4.2 Updating the Translations

- -

The typical process for translating one program is: -

-
    -
  • generate a POT file (PO Template): -this is done with xgettext which searches for all the strings from the sources that can be -translated; - -
  • update the PO file for your language: -this is done with msgmerge which compares the PO file and aligns it to the latest -template; - -
  • edit the new PO file: -this is done by you with your favourite editor, to add the missing msgstr, review the -possible fuzzy matches, ... - -
  • check the PO file: -unfortunately there is no definitive method for this; - -
  • submit your contribution to the project: -this is done with git. -
- -

In WINDOW MAKER, you have actually 4 po files to take care of: -

-
    -
  • - po/<lang>.po: for WINDOW MAKER itself -
  • - WPrefs.app/po/<lang>.po: for the Preference Editor program -
  • - WINGs/po/<lang>.po: for the graphic toolkit library -
  • - util/po/<lang>.po: for the command-line tools of WINDOW MAKER -
- -

As stated previously, there is a make target that can help you to automatically generate -the POT and update the PO for these 4 cases: -

-
-
make update-lang PO=<lang>
-
- -

Once run, it will have updated as needed the 4 po files against the latest source code. -You may wish to use the command git gui to view the changes; -you can now edit the files to complete the translation, correct them, remove deprecated stuff, ... -Please note that the encoding should be set to UTF-8 as this is now the standard. -

-

If you think an error message is too obscure, just ask on the developer mailing list -wmaker-dev@lists.windowmaker.org: in addition to clarifications there’s even a chance for the original message -to be improved! -

-

You may find some information on working with po file in the -GNU gettext documentation. -

- - -

4.3 Translate the Man Pages

- -

You may want to extend the translation to the documentation that is provided to users in the form -of Unix man pages. -The sources of the man pages are located in the doc/ directory; -the translation should be placed in the directory doc/lang/ with the same file name. -

-

The directory will also need a file Makefile.am which provides the list of man pages to be -included in the distribution package and to be installed. -You can probably get inspiration from an existing one from another language; -if you do not feel confident about it do not hesitate to ask on the project’s mailing list -(wmaker-dev@lists.windowmaker.org), either for help or to ask someone to make it for you. -

-

Please note that although most man pages sources are directly in man page format -(nroff, the file extension being a number), a few of them are processed by a script -(those with the .in extension, like wmaker.in). -This is done because in some case we want the man page to reflect the actual compilation options. -

-

You may not want to bother with this hassle, in which case you can simply name your translation -file with the .1 and remove the special @keyword@ marks. -If you are sure you want to keep that processing but do not feel confident about hacking the -Makefile.am do not hesitate to ask on the project’s mailing list (wmaker-dev@lists.windowmaker.org). -

- - -

4.4 Checking the Result

- -

In the WINDOW MAKER build tree you also have another target that can help you, it is -make check. -

-

At current time, it does not check much, but if during the make update-lang new po -file have been created you may get some errors, because you have to add these new files to the -variable EXTRA_DIST in the corresponding Makefile. -

-

If you do not feel confident about doing it, do not worry, just tell about it when you submit your -work, and some developer on the mailing list will just be happy to do it for you when integrating -your valuable contribution (we always like when someone helps making WINDOW MAKER better). -

- - -

4.5 Submitting your Contribution

- -

Preliminary Remark: if the update process made changes in a po file but you did not -change any msgstr content, it is probably a good idea to not submit the changes to that -po file because it would just add noise. -

-

When you feel ready to send your changes, the first step is to prepare them. -This is done with git: if you have not run the git gui previously then it is a -good time to do it now. -This window offers you the possibility to show your changes and to decide what you want to send. -

-

The window is divided in 4 panes: -

    -
  • top-right show the current changes you have selected, for review -(and also for cherry-picking stuff if you want to select precisely) - -
  • top-left ("Unstaged Changes") the list of files with changes to be send, - you can click on the name of the file to see the changes, - you can click on the icon of the file if you want to send all the changes in this file; -an icon in blue shows a file that have been changed and an icon in black shows a file that is new - -
  • bottom-left ("Staged Changes") the list of files with changes that you have chosen to send so far, - you can click on the file name to view these changes, - you can click on the icon if you want to remove the changes from this file from the list to send - -
  • bottom-right ("Commit Message") the message you want to attach to your changes when you submit them -to the development team -
- -

The idea here is to pick your changes to the po files; -for the commit message you may wish to stuck to a simple, single line: -

-
-

"Updated translations for <lang>" -

- -

The penultimate step is to click on the button Sign Off (it will add a line in the commit -message), and then click on the button Commit. -From this time, the commit message will clear itself and the "Staged Changes" also, showing that -your action was done. -

-

You may now quit the git gui, the final step begins by running this command: -

-
-
git format-patch HEAD^
-
- -

This will generate a file named like 0001-updated-translations-for-XX.patch -which contains your changes, ready for sending. -The goal will now be to email this file to wmaker-dev@lists.windowmaker.org. -If you feel confident in having git send it for you, you may want to read the file -The-perfect-Window-Maker-patch.txt to see how to configure git for mailing, so you -can run: -

-
-
git send-email 0001-updated-translations-for-XX.patch
-
- - -
diff --git a/docs/wmaker_i18n.rst b/docs/wmaker_i18n.rst new file mode 100644 index 0000000..3f38725 --- /dev/null +++ b/docs/wmaker_i18n.rst @@ -0,0 +1,466 @@ +--- +layout: default +title: Internationalisation +--- + +Window Maker Internationalisation +================================= + +A guide to enable support for language translations in WINDOW MAKER and to the +contributors who want to help translating. + +.. sectnum:: +.. contents:: Table of Contents + :backlinks: none + +This manual is for Window Maker, version git#next. + +---- + +Enabling Languages support +-------------------------- + +WINDOW MAKER has the possibility to be translated in many languages, but by +default none of them will be installed, and the support for translation will +not be compiled. + +To enable the translation capabilities, you have to specify which language(s) +you want to be installed: this is done with the variable ``LINGUAS`` when +running the ``configure`` script. This variable should contain the +space-separated list of languages you want to install. + +You could for instance enable both French (``fr``) and Dutch (``nl``) with +this: + +.. code:: console + :class: highlight + + $ ./configure LINGUAS="fr nl" + +You can of course add any other option that you want to the ``configure`` +command. From the moment you specify the variable, the ``configure`` script +will check that you have the appropriate dependencies for this (basically the +``gettext`` function and the ``libintl`` library); when you run ``make`` to +compile the project, it will also compile the translation (``mo`` files) for +the language(s) you asked (if available, of course), and during ``make +install`` it will install them in the usual directory. + +The installation directory can be changed with the standard option +``--localedir`` to the ``configure`` script, the default path being +``PREFIX/share/locale//LC_MESSAGES``). + +Getting the list of supported languages +....................................... + +The naming convention for the languages follows the ``ISO 639-1`` standard, for +which you can find a summary list in the `GNU gettext manual +`_. + +But as WINDOW MAKER does not support all of them, the ``configure`` script will +print a warning for each language you specify that it does not know, and sum up +at the end the list of enabled languages that will be installed. + +There is a non-standard possibility to set ``LINGUAS`` to ``list``, in which +case the ``configure`` script will provide you the list of languages it +supports, and stop: + +.. code:: console + :class: highlight + + ./configure LINGUAS="list" + +There is also another non-standard possibility to enable all the languages that +WINDOW MAKER supports by setting ``LINGUAS`` to ``*``. This is an internal +trick implemented so the development team can have the command ``make +distcheck`` include some checks on translations: + +.. code:: console + :class: highlight + + ./configure LINGUAS='*' + +Translations for Menus +...................... + +In order to propose an *Application Menu* (also called *Root Menu*) that is +also translated in the language of the interface, WINDOW MAKER implements two +complementary mechanisms: + +The first, always enabled when i18n support is enabled, is to look for the menu +file containing the name of the locale. For example, if the file is called +``menu`` and the language is set as ``LANG=fr_FR.utf-8``, then WINDOW MAKER +will search for, and use the first match found: + +- ``menu.fr_FR.utf-8`` +- ``menu.fr_FR`` +- ``menu.fr`` +- ``menu`` + +The second possibility, which is not enabled by default, is to be able to use a +custom ``po`` file which contains the translations for the text of the menu. +This feature is enabled at compile time, using the option +``--with-menu-textdomain`` to the ``configure`` script. For example, if you +specify: + +.. code:: console + :class: highlight + + ./configure --with-menu-textdomain=WMMenu + +then the translations for the menu will be searched in the file ``WMMenu.mo`` +located at the standard location, the default path being +`PREFIX/share/locale/[lang]/LC_MESSAGES/WMMenu.mo`. + +If you do not enable the feature (the default behaviour, or with an explicit +``--without-menu-textdomain``), then WINDOW MAKER will **not** try to translate +the strings, even using its own domain file (``WindowMaker.mo``). + + +Setting ``LINGUAS`` at system level +................................... + +As the variable ``LINGUAS`` is quite standard, you also have the possibility to +set its value in the ``config.site`` file for AUTOCONF. This file can be placed +in one of these paths: + +- ``PREFIX/share/config.site`` +- ``PREFIX/etc/config.site`` + +This way, the same language list will be used for all the programs that use +AUTOCONF that you would compile. Please note that if you also specify a value +on the command line, it will have precedence over the value in that file. + +---- + +Choosing the Language +--------------------- + +If you have compiled and installed WINDOW MAKER with support for your language, +the effective translation is done is the very same way as any other application +on an UNIX system, you just have to set the shell variable ``LANG`` to your +language before ``wmaker`` is started. In ``sh`` type of shell (SH, KSH, BASH, +...), this is done for example with (``fr`` is for French): + +.. code:: console + :class: highlight + + export LANG=fr + +There is also a command line option ``--locale`` for WINDOW MAKER which may be +used to set the language: + +.. code:: console + :class: highlight + + wmaker --locale fr + +When using this option, WINDOW MAKER will use the locale you specified, +redefining the ``LANG`` environment variable to this value so all program +started from WINDOW MAKER will inherit its value. + +If your system is using SYSTEMD, you can also configure the locale at system +level using the command: + +.. code:: console + :class: highlight + + localectl set-locale LANG=fr + +You can check if the current value is properly supported with the command: + +.. code:: console + :class: highlight + + locale + + +If this does not work, you may need first to activate the support for your +locale in the system; you can get the list of currently enabled locales with +the command: + +.. code:: console + :class: highlight + + locale -a + +You should be able to enable a new language support by editing the file +``/etc/locale.gen`` to uncomment the locale(s) you need (by removing the ``#`` +character and space(s) in front of it, and by running the command +``locale-gen`` as root. + +For further information, you may wish to read dedicated documentation, for +example from `the Linux Documentation Project +`_ or through pages like +`Shell Hacks' note on Changing Locale +`_. + +---- + +Troubleshooting +--------------- + +If I18N support does not work for you, check these: + + +- the ``LANG`` environment variable is set to your locale, and + the locale is supported by your OS's locale or X's locale + emulation. you can display all supported locales by + executing "``locale -a``" command if it is available; you + can check if your locale is supported by X's locale emulation, + see ``/usr/share/X11/locale/locale.alias`` + +- check if you are using an appropriate fonts for the locale you chose. If + you're using a font set that has a different encoding than the one used by + XLIB or LIBC, bad things can happen. Try specifically putting the encoding in + the ``LANG`` variable, like ``ru_RU.KOI8-R``. Again, see + ``/usr/share/X11/locale/locale.alias`` + +- the fonts you're using support your locale. if your font setting on + ``$HOME/GNUstep/Defaults/WindowMaker`` is like... + + .. code:: ini + :class: highlight + + WindowTitleFont = "Trebuchet MS:bold:pixelsize=12"; + MenuTitleFont = "Trebuchet MS:bold:pixelsize=12"; + + then you can't display Asian languages (``ja``, ``ko``, ``ch``, ...) + characters using ``Trebuchet MS``. A font that is guaranteed to work for any + language is ``sans`` (or ``sans-serif``). ``sans`` is not a font itself, but + an alias which points to multiple fonts and will load the first in that list + that has the ability to show glyphs in your language. If you don't know a + font that is suited for your language you can always set all your fonts to + something like: + + .. code:: ini + :class: highlight + + + "sans:pixelsize=12" + + + However, please note that if your font is something like: + + .. code:: ini + :class: highlight + + "Trebuchet MS,sans serif:pixelsize=12" + + this will not be able to display Asian languages if any of the previous fonts + before sans are installed. This is because unlike the proper font pickup that + ``sans`` guarantees for your language, this construct only allows a font + fallback mechanism, which tries all the fonts in the list in order, until it + finds one that is available, even if it doesn't support your language. + + Also you need to change font settings in style files in the + ``$HOME/Library/WindowMaker/Style`` directory. + +- the ``LC_CTYPE`` environment variable is unset or it has the correct value. + If you don't know what is the correct value, unset it. + +---- + +Contribute to Translations +-------------------------- + +You may have noticed that many translations are not up to date, because the +code has evolved but the persons who initially contributed may not have had the +time to continue, so any help is welcome. + +Since WINDOW MAKER 0.95.7 there are some targets to ``make`` that can help you +in that task. + +Install the latest sources +.......................... + +If you want to contribute, the first step is get the development branch of the code; +this is done using ``git``. If you do not feel confident at all with using +``git``, you may also try to ask for a *snapshot* on the developer's mailing +list `wmaker-dev@lists.windowmaker.org +`_. With ``git`` the procedure is: + +.. code:: bash + :class: highlight + + # Get your working copy of the sources + git clone git://repo.or.cz/wmaker-crm.git + + # Go into that newly created directory + cd wmaker-crm + + # Switch to the branch where everything happens + git checkout next + + # Generate the configuration script + ./autogen.sh + +Now you should have an up-to-date working copy ready to be compiled; you will +not need to go the full way but you should run the ``configure`` script, so it +will create the ``Makefile`s``, and you may want to compile the code once so it +will not do it again automatically later while you are doing something else: + + +.. code:: console + :class: highlight + + # Setup the build, enabling at least the language you want to work on + ./configure LINGUAS="" + + # Compile the code once + make + +Updating the Translations +......................... + +The typical process for translating one program is: + +- generate a POT file (PO Template): this is done with ``xgettext`` which + searches for all the strings from the sources that can be translated; +- update the PO file for your language: this is done with ``msgmerge`` which + compares the PO file and aligns it to the latest template; +- edit the new PO file: this is done by you with your favourite editor, to add + the missing ``msgstr``, review the possible *fuzzy matches*, … +- check the PO file: unfortunately there is no definitive method for this; +- submit your contribution to the project: this is done with ``git``. + +In WINDOW MAKER, you have actually 4 ``po`` files to take care of: + +- ``po/.po``: for WINDOW MAKER itself +- ``WPrefs.app/po/.po``: for the Preference Editor program +- ``WINGs/po/.po``: for the graphic toolkit library +- ``util/po/.po``: for the command-line tools of WINDOW MAKER + +As stated previously, there is a ``make`` target that can help you to +automatically generate the POT and update the PO for these 4 cases: + + +.. code:: console + :class: highlight + + make update-lang PO= + +Once run, it will have updated as needed the 4 ``po`` files against the latest +source code. You may wish to use the command ``git gui`` to view the changes; +you can now edit the files to complete the translation, correct them, remove +deprecated stuff, … Please note that the encoding should be set to *UTF-8* as +this is now the standard. + +.. TODO: change mailing list address + +If you think an error message is too obscure, just ask on the developer mailing +list `wmaker-dev@lists.windowmaker.org +`_: in addition to clarifications +there's even a chance for the original message to be improved! + +You may find some information on working with ``po`` file in the `GNU gettext +documentation +`_. + +Translate the Man Pages +....................... + +You may want to extend the translation to the documentation that is provided to +users in the form of Unix *man pages*. The sources of the man pages are located +in the ``doc/`` directory; the translation should be placed in the directory +``doc/LANG/`` with the same file name. + +.. TODO: change mailing list address + +The directory will also need a file ``Makefile.am`` which provides the list of +man pages to be included in the distribution package and to be installed. You +can probably get inspiration from an existing one from another language; if you +do not feel confident about it do not hesitate to ask on the project's mailing +list (`wmaker-dev@lists.windowmaker.org +`_), either for help or to ask someone +to make it for you. + +Please note that although most man pages sources are directly in man page +format (*nroff*, the file extension being a number), a few of them are +processed by a script (those with the ``.in`` extension, like ``wmaker.in``). +This is done because in some case we want the man page to reflect the actual +compilation options. + +You may not want to bother with this hassle, in which case you can simply name +your translation file with the ``.1`` and remove the special ``@keyword@`` +marks. If you are sure you want to keep that processing but do not feel +confident about hacking the ``Makefile.am`` do not hesitate to ask on the +project's mailing list (`wmaker-dev@lists.windowmaker.org +`_). + +Checking the Result +................... + +In the WINDOW MAKER build tree you also have another target that can help you, +it is ``make check``. + +At current time, it does not check much, but if during the ``make update-lang`` +new ``po`` file have been created you may get some errors, because you have to +add these new files to the variable ``EXTRA_DIST`` in the corresponding +``Makefile``. + +If you do not feel confident about doing it, do not worry, just tell about it +when you submit your work, and some developer on the mailing list will just be +happy to do it for you when integrating your valuable contribution (we always +like when someone helps making WINDOW MAKER better). + +Submitting your Contribution +............................ + +*Preliminary Remark*: if the update process made changes in a ``po`` file but +you did not change any ``msgstr`` content, it is probably a good idea to not +submit the changes to that ``po`` file because it would just add noise. + +When you feel ready to send your changes, the first step is to prepare them. +This is done with ``git``: if you have not run the ``git gui`` previously then +it is a good time to do it now. This window offers you the possibility to show +your changes and to decide what you want to send. + +The window is divided in 4 panes: + +- top-right show the current changes you have selected, for review (and also + for cherry-picking stuff if you want to select precisely) +- top-left ("Unstaged Changes") the list of files with changes to be send, you + can click on the name of the file to see the changes, you can click on the + icon of the file if you want to send all the changes in this file; an icon in + blue shows a file that have been changed and an icon in black shows a file + that is new +- bottom-left ("Staged Changes") the list of files with changes that you have + chosen to send so far, you can click on the file name to view these changes, + you can click on the icon if you want to remove the changes from this file + from the list to send + +- bottom-right ("Commit Message") the message you want to attach to your + changes when you submit them to the development team + +The idea here is to pick your changes to the ``po`` files; for the *commit +message* you may wish to stuck to a simple, single line: + +| "Updated translations for " + +The penultimate step is to click on the button ``Sign Off`` (it will add a line +in the commit message), and then click on the button ``Commit``. From this +time, the commit message will clear itself and the "Staged Changes" also, +showing that your action was done. + +You may now quit the ``git gui``, the final step begins by running this +command: + +.. code:: console + :class: highlight + + git format-patch HEAD^ + +.. TODO: change mailing list address + +This will generate a file named like ``0001-updated-translations-for-XX.patch`` +which contains your changes, ready for sending. The goal will now be to email +this file to `wmaker-dev@lists.windowmaker.org +`_. If you feel confident in having +``git`` send it for you, you may want to read the file +``The-perfect-Window-Maker-patch.txt`` to see how to configure ``git`` for +mailing, so you can run: + +.. code:: console + :class: highlight + + git send-email 0001-updated-translations-for-XX.patch diff --git a/docs/wmaker_install.html b/docs/wmaker_install.html deleted file mode 100644 index 1125676..0000000 --- a/docs/wmaker_install.html +++ /dev/null @@ -1,801 +0,0 @@ ---- -layout: default -title: Compilation and Installation ---- - - - -

Window Maker Compilation and Installation

- -

A guide to configure, compile and install -WINDOW MAKER from sources. -

- -

Table of Contents

- - - - -
-

This manual is for Window Maker, version git#next. -

- - -
- - -

1 Prerequisites

- - -

1.1 Supported Platforms

- -
    -
  • - Intel GNU/Linux Systems in general, ix86 and x86_64 but other architectures should work -
  • - BSD systems -
  • - Solaris, at least on release 10 and 11 -
- -

Patches to make it work on other platforms are welcome. -

- - -

1.2 Software Dependencies

- -

The following software is required to use WINDOW MAKER: -

    -
  • - X11R6.x - -

    Window Maker can be compiled in older versions of X, like X11R5 (Solaris) -or X11R4 (OpenWindows) but it will not work 100% correctly. -In such servers there will not be application icons and you’ll have trouble using the dock. -Upgrading the client libraries (Xlib, Xt, etc.) will help if you can’t upgrade -the server. -

- -

The following is required to build WINDOW MAKER: -

    -
  • - Basic obvious stuff - -
      -
    • gcc (or some other ANSI C compiler, supporting some C99 extensions) -
    • glibc development files (usually glibc-devel in Linux distributions) -
    • X development files (XFree86-devel or something similar) -
    - -
  • - Xft2 and its dependencies - -

    Dependencies include freetype2 and fontconfig. -You will also need the development files for them (xft2-devel). -Sources are available at: http://www.freedesktop.org/wiki/Software/Xft/ -

    -
- -

Note: -WINDOW MAKER is known to compile with gcc and clang; -the code source is mostly ANSI C (also known as C89 and C90) but is uses very few of the C99 -novelties; -it also uses a few attributes introduced in the C11 standard but those are detected automatically, -so most compilers should work. -

- - -

1.3 Special Dependencies

- - -

If you want to compile using the sources from the git repository instead of the distribution -package, you will also need: -

    -
  • git -
  • autoconf 2.69 -
  • automake 1.12 -
  • libtool 1.4.2 -
- - - -

1.4 Optional Dependencies

- -

These libraries are not required to make WINDOW MAKER work, but they are supported in case you -want to use them. Version numbers are indicative, but other versions might work too. -

-
    -
  • - libXPM 4.7 or newer - -

    Older versions may not work! -

    -

    Available from http://xlibs.freedesktop.org/release/ -

    -

    There is built-in support for XPM files, but it will not -load images in some uncommon encodings. -

    -
  • - libpng 0.96 or newer and zlib - -

    For PNG image support, -http://www.libpng.org/pub/png/libpng.html -

    -
  • - libtiff 3.4 or newer - -

    For TIFF image support, -http://www.libtiff.org/ -

    -
  • - libjpeg 6.0.1 or newer - -

    For JPEG image support, -http://www.ijg.org/ -

    -

    Note that if you don’t have it, configure will issue a big warning in the end, -this is because JPEG images are often used in themes and for background images -so you probably want this format supported. -

    -
  • - libgif 2.2 or libungif - -

    For GIF image support, -http://giflib.sourceforge.net/ -

    -
  • - WebP 0.4.1 or newer - -

    The reference library from Google for their image format, -https://developers.google.com/speed/webp/download -

    -
  • - GNU xgettext - -

    If you want to use translated messages, you will need GNU gettext. -Other versions of gettext are not compatible and will not work. -Get the GNU version from http://www.gnu.org/software/gettext/ -

    -
  • - Pango 1.36.8 or newer - -

    This library can be used by the WINGs toolkit to improve support for UTF-8 and for -languages written in right-to-left direction, in some widgets. -You have to explicitly ask for its support through (see Configure Options). -You can get it from http://www.pango.org/Download -

    -
  • - libbsd - -

    This library can be used by the WINGs utility library to make use of strlcat and -strlcpy instead of using built-in functions if your system does not provide them in its -core libc. -You should let WINDOW MAKER’s configure detect this for you. -You can get it from http://libbsd.freedesktop.org/wiki/ -

    -
  • - Inotify - -

    If you have Linux’s inotify support, WINDOW MAKER will use it to check for configuration -updates instead of polling regularly the file. -The needed header comes with the kernel, typical packages names include: -

      -
    • kernel-headers for Slackware and Fedora -
    • linux-userspace-headers for Mageia -
    • linux-libc-dev for Debian and Ubuntu -
    • linux-glibc-devel for OpenSuSE -
    - -
  • - MagickWand 6.8.9-9 or newer - -

    If found, then the library WRaster can use the ImageMagick library to let -WINDOW MAKER support more image formats, like SVG, BMP, TGA, ... -You can get it from http://www.imagemagick.org/ -

    -
  • - Boehm GC - -

    This library can be used by the WINGs utility toolkit to use a -Boehm-Demers-Weiser Garbage Collector instead of the traditional -malloc/free functions from the libc. -You have to explicitly ask for its support though (see Configure Options). -You can get it from http://www.hboehm.info/gc/ -

    -
- - -
- - -

2 Building WINDOW MAKER

- - -

2.1 Getting the Sources

- -

The latest version of WINDOW MAKER (-crm) can be downloaded from -http://www.windowmaker.org/ -

-

Alternatively, the development branch, called #next is in the git repository at -http://repo.or.cz/w/wmaker-crm.git -

-

If you want to use the git versions, you can get it with: -

-
git clone -b next git://repo.or.cz/wmaker-crm.git
-
-

then, assuming you have the dependencies listed in Special Dependencies, you have to -type: -

-
./autogen.sh
-
-

to generate the configuration script. -

- - -

2.2 Build and Install

- -

For a quick start, type the following in your shell prompt: -

-
-
./configure
-make
-
- -

then, login as root and type: -

-
-
make install
-ldconfig
-
- -

or if you want to strip the debugging symbols from the binaries to make them smaller, -you can type instead: -

-
-
make install-strip
-ldconfig
-
- -

This will build and install WINDOW MAKER with default parameters. -

-

If you want to customise some compile-time options, you can do the following: -

-
    -
  1. (optional) Look at the Configure Options, for the options available. -Also run: -
    -
    ./configure --help
    -
    - -

    to get a complete list of options that are available. -

    -
  2. Run configure with the options you want. -For example, if you want to use the --enable-modelock option, type: -
    -
    ./configure --enable-modelock
    -
    - -
  3. (optional) Edit src/wconfig.h with your favourite text editor and browse through it for some -options you might want to change. - -
  4. Compile. Just type: -
    -
    make
    -
    - -
  5. Login as root (if you can’t do that, read the I don’t have the root password) -and install WINDOW MAKER in your system: -
    -
    su root
    -make install
    -
    - -
- - - -

2.3 User specific configuration

- -

These instructions do not need to be followed when upgrading WINDOW MAKER -from an older version, unless stated differently in the NEWS file. -

-

Every user on your system that wishes to run WINDOW MAKER must do the -following: -

-
    -
  1. Install Window Maker configuration files in your home directory. -Type: -
    -
    wmaker.inst
    -
    - -

    wmaker.inst will install WINDOW MAKER configuration files and will -setup X to automatically launch WINDOW MAKER at startup. -

    -
- -

That’s it! -

-

You can type man wmaker to get some general help for configuration -and other stuff. -

-

Read the User Guide for a more in-depth explanation of WINDOW MAKER. -

-

You might want to take a look at the FAQ too. -

- - -

2.4 Locales/Internationalisation

- -

WINDOW MAKER has national language support. The procedure to enable national -language support is described in the dedicated -Enabling Languages support in README.i18n. -

- - -

2.5 Configure Options

- -

These options can be passed to the configure script to enable/disable -some WINDOW MAKER features. Example: -

-
./configure --enable-modelock --disable-gif
-
-

will configure WINDOW MAKER with modelock supported and disable gif support. -Normally, you won’t need any of them. -

-

To get the list of all options, run ./configure --help -

- - -

2.5.1 Installation Directory

- -

The default installation path will be in the /usr/local hierarchy; -a number of option can customise this: -

-
-
--prefix=PREFIX
-
--exec-prefix=EPREFIX
-
--bindir=DIR
-
--sysconfdir=DIR
-
--libdir=DIR
-
--includedir=DIR
-
--datarootdir=DIR
-
--datadir=DIR
-
--localedir=DIR
-
--mandir=DIR
-

Standard options from autoconf to define target paths, -you probably want to read Installation Names in INSTALL. -

-
-
--sbindir=DIR
-
--libexecdir=DIR
-
--sharedstatedir=DIR
-
--localstatedir=DIR
-
--oldincludedir=DIR
-
--infodir=DIR
-
--docdir=DIR
-
--htmldir=DIR
-
--dvidir=DIR
-
--pdfdir=DIR
-
--psdir=DIR
-

More standard options from autoconf, today these are not used by WINDOW MAKER; -they are provided automatically by autoconf for consistency. -

-
-
--with-gnustepdir=PATH
-

Specific to WINDOW MAKER, defines the directory where WPrefs.app will be installed, -if you want to install it like a GNUstep applications. -If not specified, it will be installed like usual programs. -

-
-
--with-pixmapdir=DIR
-

Specific to WINDOW MAKER, this option defines an additional path where pixmaps will be -searched. Nothing will be installed there; the default path taken is DATADIR/pixmaps, -where DATADIR is the path defined from --datadir. -

-
-
--with-defsdatadir=DIR
-

Specific to WINDOW MAKER, defines the directory where system configuration -files, e.g., WindowMaker, WMRootMenu, etc., are installed. The -default value is SYSCONFDIR/WindowMaker, where SYSCONFDIR is -the path defined from --sysconfdir. -

-
-
- - - -

2.5.2 External Libraries

- -

Unless specifically written, configure will try to detect automatically for the libraries; -if you explicitly provide --enable-FEATURE then it will break with an error message -if the library cannot be linked; -if you specify --disable-FEATURE then it will not try to search for the library. -You can find more information about the libraries in the -Optional Dependencies. -

-
-
--enable-boehm-gc
-

Never enabled by default, use Boehm GC instead of the default libc malloc() -

-
-
--disable-gif
-

Disable GIF support in WRaster library; when enabled use libgif or libungif. -

-
-
--disable-jpeg
-

Disable JPEG support in WRaster library; when enabled use libjpeg. -

-
-
--without-libbsd
-

Refuse use of the libbsd compatibility library in WINGs utility library, -even if your system provides it. -

-
-
--disable-magick
-

Disable ImageMagick’s MagickWand support in WRaster, used to support for image formats. -

-
-
--enable-pango
-

Disabled by default, enable Pango text layout support in WINGs. -

-
-
--disable-png
-

Disable PNG support in WRaster; when enabled use libpng. -

-
-
--disable-tiff
-

Disable TIFF support in WRaster. when enabled use libtiff. -

-
-
--disable-webp
-

Disable WEBP support in WRaster. when enabled use libwebp. -

-
-
--disable-xpm
-

Disable use of libXpm for XPM support in WRaster, use internal code instead. -

-
-
- -

The following options can be used to tell configure about extra paths that needs to be -used when compiling against libraries: -

-
-
--with-libs-from
-

specify additional paths for libraries to be searched. -The -L flag must precede each path, like: -

-
--with-libs-from="-L/opt/libs -L/usr/local/lib"
-
- -
-
--with-incs-from
-

specify additional paths for header files to be searched. -The -I flag must precede each paths, like: -

-
--with-incs-from="-I/opt/headers -I/usr/local/include"
-
- -
-
- - - -

2.5.3 X11 and Extensions

- -

configure will try to detect automatically the compilation paths for X11 headers and -libraries, and which X Extensions support can be enabled. -if you explicitly provide --enable-FEATURE then it will break with an error message -if the extension cannot be used; -if you specify --disable-FEATURE then it will not check for the extension. -

-
-
--x-includes=DIR
-
--x-libraries=DIR
-

Autoconf’s option to specify search paths for X11, -for the case were it would not have been able to detect it automatically. -

-
-
--disable-xlocale
-

If you activated support for Native Languages, then X11 may use a hack to also configure its -locale support when the program configure the locale for itself. -The configure script detects if the Xlib supports this or not; -this options explicitly disable this initialisation mechanism. -

-
-
--enable-modelock
-

XKB language status lock support. If you don’t know what it is you probably don’t need it. -The default is to not enable it. -

-
-
--disable-shm
-

Disable use of the MIT shared memory extension. -This will slow down texture generation a little bit, but in some cases it seems to be necessary due -to a bug that manifests as messed icons and textures. -

-
-
--disable-shape
-

Disables support for shaped windows (for oclock, xeyes, etc.). -

-
-
--enable-xinerama
-

The Xinerama extension provides information about the different screens connected when -running a multi-head setting (if you plug more than one monitor). -

-
-
--enable-randr
-

The RandR extension provides feedback when changing the multiple-monitor configuration in X11 -and allows to re-configure how screens are organised. -

-

At current time, it is not enabled by default because it is NOT recommended (buggy); -WINDOW MAKER only restart itself when the configuration change, to take into account the new -screen size. -

-
-
- - - -

2.5.4 Feature Selection

- -
-
--disable-animations
-

Disable animations permanently, by not compiling the corresponding code into WINDOW MAKER. -When enabled (the default), you still have a run-time configuration option in WPrefs. -

-
-
--disable-mwm-hints
-

Disable support for Motif’s MWM Window Manager hints. -These attributes were introduced by the Motif toolkit to ask for special window appearance requests. -Nowadays this is covered by the NetWM/EWMH specification, but there are still applications that rely on MWM Hints. -

-
-
--enable-wmreplace
-

Add support for the ICCCM protocol for cooperative window manager replacement. -This feature is disabled by default because you probably don’t need to switch seamlessly the window manager; -if you are making a package for a distribution you’d probably want to enable this because it allows users to give -a try to different window managers without restarting everything for an extra cost that is not really big. -

-
-
--disable-xdnd
-

Disable support for dragging and dropping files on the dock, which launches a user-specified command -with that file. -Starting from version 0.65.6 this feature is enabled by default. -

-
-
--enable-ld-version-script
-

This feature is auto-detected, and you should not use this option. -When compiling a library (wrlib, ...), gcc has the possibility to filter the list of -functions that will be visible, to keep only the public API, because it helps running programs -faster. -

-

The configure script checks if this feature is available; -if you specify this option it will not check anymore and blindly trust you that it is supposed to -work, which is not a good idea as you may encounter problems later when compiling. -

-
-
--enable-usermenu
-

This feature, disabled by default, allows to add a user-defined custom menu to applications; -when choosing an entry of the menu it will send the key combination defined by the user to that -application. See Application User Menu in NEWS for more information. -

-
-
--with-menu-textdomain=DOMAIN
-

Selection of the domain used for translation of the menus; -see Translations for Menus in README.i18n. -

-
-
- - - -

2.5.5 Developer Stuff

- -

These options are disabled by default: -

-
-
--config-cache
-

If you intend to re-run the configure script often, you probably want to include this -option, so it will save and re-use the status of what have been detected in the file -config.cache. -

-
-
--enable-debug
-

Enable debugging features (debug symbol, some extra verbosity and checks) and add a number of -check flags (warnings) for the compiler (in gcc fashion). -

-
-
--enable-lcov=DIRECTORY
-

Enable generation of code coverage and profiling data; -if the DIRECTORY is not specified, use coverage-report. -

-

This option was meant to be use with gcc; -it was not used recently so it is probable that is does not work anymore; -the configure script will not even check that your compiling environment has the -appropriate requirements and works with this. -Despite all this, if you think there’s a use for it and feel in the mood to help, do not hesitate to -discuss on the mailing list wmaker-dev@lists.windowmaker.org to get it working. -

-
-
- - -
- - -

3 Miscellaneous

- - -

3.1 Platform Specific Notes

- -
    -
  • - GNU/Linux in general - -

    Make sure you have /usr/local/lib in /etc/ld.so.conf and that you -run ldconfig after installing. -Uninstall any packaged version of WINDOW MAKER before installing a new version. -

    -
  • - RedHat GNU/Linux - -

    RedHat systems have several annoying problems. -If you use it, be sure to follow the steps below or WINDOW MAKER will not work: -

    -
      -
    • if you installed the WINDOW MAKER that comes with RedHat, uninstall it before upgrading; - -
    • make sure you have /usr/local/bin in your PATH environment variable; - -
    • make sure you have /usr/local/lib in /etc/ld.so.conf before running ldconfig; -
    - -
  • - PowerPC MkLinux - -

    You will need to have the latest version of Xpmac. -Older versions seem to have bugs that cause the system to hang. -

    -
  • - Debian GNU/Linux - -

    If you want JPEG and TIFF support, make sure you have libtiff-dev -and libjpeg-dev installed. -

    -
  • - SuSE GNU/Linux - -

    If you installed the WINDOW MAKER package from SuSE, uninstall it before trying to -compile Window Maker or you might have problems. -

    -
  • - MetroX (unknown version) - -

    MetroX has a bug that corrupts pixmaps that are set as window backgrounds. -If you use MetroX and have weird problems with textures, do not use textures in title bars. -Or use a different X server. -

    -
- - - -

3.2 I don’t have the root password :(

- -

If you can’t get superuser privileges (can’t be root) you can install Window Maker in your own -home directory. -For that, supply the --prefix option when running configure in step 2 of building -WINDOW MAKER. -You will also need to supply the --with-gnustepdir option, to specify the path for -WPrefs.app. -Example: -

-
-
./configure --prefix=/home/jshmoe --with-gnustepdir=/home/jshmoe/GNUstep/Applications
-
- -

Then make /home/jshmoe/bin be included in your search PATH, add /home/jshmoe/lib -to your LD_LIBRARY_PATH environment variable and run bin/wmaker.inst -

-

Of course, /home/jshmoe is supposed to be replaced by your actual home directory path. -

- - -

3.3 Upgrading

- -

If you are upgrading from an older version of WINDOW MAKER: -

-
    -
  1. Configure and build WINDOW MAKER as always -
  2. Install WINDOW MAKER (but do not run wmaker.inst) -
  3. Read the NEWS file and update your configuration files if necessary. -
- - -
- - -

4 Troubleshooting

- -

When you have some trouble during configuration (while running configure), like not being able to -use a graphic format library you think you have installed, look at the config.log file for -clues of the problem. -

- - -

4.1 Error with loading fonts, even if they exist

- -

This is probably a problem with NLS (Native Language Support), you probably want to look at the -Troubleshooting in README.i18n -or try rebuilding without NLS support, which is done with: -

-
./configure LINGUAS=""
-
- - - -

4.2 configure doesn’t detect libtiff, or other graphic libraries

- -

Delete config.cache, then rerun configure adding the following options to configure -(among the other options you use): -

-
--with-libs-from="-L/usr/local/lib"
---with-incs-from="-I/usr/local/include -I/usr/local/include/tiff"
-
-

Put the paths where your graphic libs and their corresponding header files are located. -You can put multiple paths in any of these options, as the example of --with-incs-from shows. -Just put a space between them. -

- - -

4.3 configure doesn’t detect libXpm

- -

Check if you have a symbolic link from libXpm.so.4.9 to libXpm.so -

- - -

4.4 Segmentation fault on startup

- -
    -
  • Check if the version of libXPM you have is at least 4.7 - -
  • Check if you have an updated version of ~/GNUstep/Defaults/WindowMaker -
- -

If you’re not sure, try renaming ~/GNUstep to ~/GNUtmp -and then run wmaker.inst -

- - -

4.5 "...: your machine is misconfigured. gethostname() returned (none)"

- -

the host name of your machine is set to something invalid, that starts with a parenthesis. -Do a man hostname for info about how to set it. -

- - -

4.6 The root menu contains only 2 entries. ("XTerm" and "Exit...")

- -

WINDOW MAKER could not read your menu definition file. -You should check the output of wmaker for an error, it may be visible in the console or in the -.xsession-errors file. -

- -
diff --git a/docs/wmaker_install.rst b/docs/wmaker_install.rst new file mode 100644 index 0000000..ad7e04d --- /dev/null +++ b/docs/wmaker_install.rst @@ -0,0 +1,732 @@ +--- +layout: default +title: Compilation and Installation +--- + + +========================================= +Window Maker Compilation and Installation +========================================= + +A guide to configure, compile and install WINDOW MAKER from sources. + +.. sectnum:: +.. contents:: Table of Contents + :backlinks: none + +This manual is for Window Maker, version git#next. + +---- + +Prerequisites +------------- + +Supported Platforms +................... + +- Intel GNU/Linux Systems in general, `ix86` and `x86_64` but other + architectures should work +- BSD systems +- Solaris, at least on release 10 and 11 + +Patches to make it work on other platforms are welcome. + +Software Dependencies +..................... + +The following software is required to use WINDOW MAKER: + +- X11R6.x + + Window Maker can be compiled in older versions of *X*, like + *X11R5* (*Solaris*) or *X11R4* (*OpenWindows*) but + it will not work 100% correctly. In such servers there will not be + application icons and you'll have trouble using the dock. Upgrading the + client libraries (*Xlib*, *Xt*, etc.) will help if you + can't upgrade the server. + +The following is required to build WINDOW MAKER: + +- Basic obvious stuff + - *gcc* (or some other ANSI C compiler, supporting some C99 extensions) + - *glibc* development files (usually ``glibc-devel`` in Linux distributions) + - *X* development files (``XFree86-devel`` or something similar) + +- *Xft2* and its dependencies + + Dependencies include *freetype2* and *fontconfig*. You will also need the + development files for them (``xft2-devel``). Sources are available at: + http://www.freedesktop.org/wiki/Software/Xft + +**Note**: WINDOW MAKER is known to compile with *gcc* and *clang*; the code +source is mostly ANSI C (also known as C89 and C90) but is uses very few of the +C99 novelties; it also uses a few attributes introduced in the C11 standard but +those are detected automatically, so most compilers should work. + +Special Dependencies +.................... + +If you want to compile using the sources from the git repository instead of the +distribution package, you will also need: + +- *git* +- *autoconf* 2.69 +- *automake* 1.12 +- *libtool* 1.4.2 + +Optional Dependencies +..................... + +These libraries are not required to make WINDOW MAKER work, but +they are supported in case you want to use them. Version numbers are indicative, +but other versions might work too. + +- *libXPM* 4.7 or newer + + Older versions may not work! + + Available from http://xlibs.freedesktop.org/release + + There is built-in support for XPM files, but it will not load images + in some uncommon encodings. + +- *libpng* 0.96 or newer and *zlib* + + For *PNG* image support, http://www.libpng.org/pub/png/libpng.html + +- *libtiff* 3.4 or newer + + For *TIFF* image support, http://www.libtiff.org/ + + +- *libjpeg* 6.0.1 or newer + + For *JPEG* image support, http://www.ijg.org/ + + Note that if you don't have it, ``configure`` will issue a big warning in the + end, this is because JPEG images are often used in themes and for background + images so you probably want this format supported. + +- *libgif* 2.2 or *libungif* + + For *GIF* image support, http://giflib.sourceforge.net/ + +- *WebP* 0.4.1 or newer + + The reference library from *Google* for their image format, + https://developers.google.com/speed/webp/download + +- *GNU xgettext* + + If you want to use translated messages, you will need *GNU gettext*. + Other versions of *gettext* are not compatible and will not work. Get + the *GNU* version from http://www.gnu.org/software/gettext/ + +- *Pango* 1.36.8 or newer + + This library can be used by the *WINGs* toolkit to improve support for + *UTF-8* and for languages written in right-to-left direction, in some + widgets. You have to explicitly ask for its support through (see `Configure + Options <#configure-options>`__). You can get it from + http://www.pango.org/Download + +- *libbsd* + + This library can be used by the *WINGs* utility library to make use of + ``strlcat`` and ``strlcpy`` instead of using built-in functions if your system + does not provide them in its core *libc*. You should let WINDOW MAKER's + ``configure`` detect this for you. You can get it from + http://libbsd.freedesktop.org/wiki/ + +- *Inotify* + + If you have Linux's *inotify* support, WINDOW MAKER will use it to check for + configuration updates instead of polling regularly the file. The needed header + comes with the kernel, typical packages names include: + + - ``kernel-headers`` for *Slackware* and *Fedora* + - ``linux-userspace-headers`` for *Mageia* + - ``linux-libc-dev`` for *Debian* and *Ubuntu* + - ``linux-glibc-devel`` for *OpenSuSE* + +- *MagickWand* 6.8.9-9 or newer + + If found, then the library *WRaster* can use the *ImageMagick* library to let + WINDOW MAKER support more image formats, like *SVG*, *BMP*, *TGA*, ... You + can get it from http://www.imagemagick.org/ + +- *Boehm GC* + + This library can be used by the *WINGs* utility toolkit to use a + *Boehm-Demers-Weiser Garbage Collector* instead of the traditional + ``malloc``/``free`` functions from the *libc*. You have to explicitly ask for + its support though (see `Configure Options <#configure-options>`__). You can + get it from http://www.hboehm.info/gc/ + +---- + +Building WINDOW MAKER +--------------------- + +Getting the Sources +................... + +The latest version of WINDOW MAKER (``-crm``) can be downloaded from +http://www.windowmaker.org/ + +Alternatively, the development branch, called ``#next`` is in the *git* +repository at http://repo.or.cz/w/wmaker-crm.git + +If you want to use the *git* versions, you can get it with: + +.. code:: console + :class: highlight + + git clone -b next git://repo.or.cz/wmaker-crm.git + +then, assuming you have the dependencies listed in `Special Dependencies +<#special-dependencies>`__, you have to type: + +.. code:: console + :class: highlight + + ./autogen.sh + +to generate the configuration script. + + +Build and Install + +For a quick start, type the following in your shell prompt: + +.. code:: console + :class: highlight + + ./configure + make + +then, login as *root* and type: + +.. code:: console + :class: highlight + + make install + ldconfig + +or if you want to strip the debugging symbols from the binaries to make them +smaller, you can type instead: + +.. code:: console + :class: highlight + + make install-strip + ldconfig + +This will build and install WINDOW MAKER with default parameters. + +If you want to customise some compile-time options, you can do the following: + +1. (optional) Look at the `Configure Options <#configure-options>`__, for the + options available. Also run: + + .. code:: console + :class: highlight + + ./configure --help + + to get a complete list of options that are available. + + +1. Run configure with the options you want. For example, if you want to use the + ``--enable-modelock`` option, type: + + .. code:: console + :class: highlight + + ./configure --enable-modelock + +1. (optional) Edit ``src/wconfig.h`` with your favourite text editor and browse + through it for some options you might want to change. + +1. Compile. Just type: + + .. code:: console + :class: highlight + + make + +1. Login as root (if you can't do that, read the [I don't have the + *root*](#No-Root-Password)) and install WINDOW MAKER in your system: + + .. code:: console + :class: highlight + + su root + make install + +User specific configuration +........................... + +These instructions do not need to be followed when upgrading WINDOW MAKER +from an older version, unless stated differently in the *NEWS* file. + +Every user on your system that wishes to run WINDOW MAKER must do the +following: + +1. Install Window Maker configuration files in your home directory. Type: + + .. code:: console + + wmaker.inst + + ``wmaker.inst`` will install WINDOW MAKER configuration files and will setup + X to automatically launch WINDOW MAKER at startup. + +That's it! + +You can type ``man wmaker`` to get some general help for configuration and +other stuff. + +Read the *User Guide* for a more in-depth explanation of WINDOW MAKER. + +You might want to take a look at the *FAQ* too. + +Locales/Internationalisation +............................ + +WINDOW MAKER has national language support. The procedure to enable national +language support is described in the dedicated +`Enabling Languages support `__ +in ``README.i18n``. + +Configure Options +................. + +These options can be passed to the configure script to enable/disable some +WINDOW MAKER features. Example: + +.. code:: console + :class: highlight + + ./configure --enable-modelock --disable-gif + +will configure WINDOW MAKER with *modelock* supported and disable *gif* support. +Normally, you won't need any of them. + +To get the list of all options, run ``./configure --help`` + +Installation Directory +'''''''''''''''''''''' + +The default installation path will be in the ``/usr/local`` hierarchy; a number of +option can customise this: + + +- ``--prefix=PREFIX`` +- ``--exec-prefix=EPREFIX`` +- ``--bindir=DIR`` +- ``--sysconfdir=DIR`` +- ``--libdir=DIR`` +- ``--includedir=DIR`` +- ``--datarootdir=DIR`` +- ``--datadir=DIR`` +- ``--localedir=DIR`` +- ``--mandir=DIR`` + Standard options from *autoconf* to define target paths, you probably want to + read Installation Names in *`INSTALL`*. + +- ``--sbindir=DIR`` +- ``--libexecdir=DIR`` +- ``--sharedstatedir=DIR`` +- ``--localstatedir=DIR`` +- ``--oldincludedir=DIR`` +- ``--infodir=DIR`` +- ``--docdir=DIR`` +- ``--htmldir=DIR`` +- ``--dvidir=DIR`` +- ``--pdfdir=DIR`` +- ``--psdir=DIR`` + More standard options from *autoconf*, today these are not used by WINDOW + MAKER; they are provided automatically by *autoconf* for consistency. + +- ``--with-gnustepdir=PATH`` + Specific to WINDOW MAKER, defines the directory where WPrefs.app will be + installed, if you want to install it like a *GNUstep* applications. If not + specified, it will be installed like usual programs. + +- ``--with-pixmapdir=DIR`` + Specific to WINDOW MAKER, this option defines an additional path where + *pixmaps* will be searched. Nothing will be installed there; the default + path taken is ``DATADIR/pixmaps``, where ``ATADIR` is the path defined from + ``--datadir``. + +- ``--with-defsdatadir=DIR`` + Specific to WINDOW MAKER, defines the directory where system configuration + files, e.g., ``WindowMaker``, ``WMRootMenu``, etc., are installed. The + default value is ``SYSCONFDIR/WindowMaker``, where ``SYSCONFDIR`` is the + path defined from ``--sysconfdir``. + + +External Libraries +'''''''''''''''''' + +Unless specifically written, ``configure`` will try to detect automatically for +the libraries; if you explicitly provide ``--enable-FEATURE`` then it will +break with an error message if the library cannot be linked; if you specify +``--disable-FEATURE`` then it will not try to search for the library. You can +find more information about the libraries in the `Optional Dependencies +<#Optional-Dependencies>`__ + + +``--enable-boehm-gc`` + + Never enabled by default, use Boehm GC instead of the default *libc* + ``malloc()`` + +``--disable-gif`` + + Disable GIF support in *WRaster* library; when enabled use ``libgif`` or + ``libungif``. + +``--disable-jpeg`` + + Disable JPEG support in *WRaster* library; when enabled use ``libjpeg``. + +``--without-libbsd`` + + Refuse use of the ``libbsd`` compatibility library in *WINGs* utility + library, even if your system provides it. + +``--disable-magick`` + + Disable *ImageMagick's MagickWand* support in *WRaster*, used to support for + image formats. + +``--enable-pango`` + + Disabled by default, enable *Pango* text layout support in *WINGs*. + +``--disable-png`` + + Disable PNG support in *WRaster*; when enabled use ``libpng``. + +``--disable-tiff`` + + Disable TIFF support in *WRaster*. when enabled use ``libtiff``. + +``--disable-webp`` + + Disable WEBP support in *WRaster*. when enabled use ``libwebp``. + +``--disable-xpm`` + + Disable use of ``libXpm`` for XPM support in *WRaster*, use internal code + instead. + +The following options can be used to tell ``configure`` about extra paths that +needs to be used when compiling against libraries: + +``--with-libs-from`` + + specify additional paths for libraries to be searched. The ``-L`` flag must + precede each path, like: + + .. code:: + :class: highlight + + --with-libs-from="-L/opt/libs -L/usr/local/lib" + +``--with-incs-from`` + + specify additional paths for header files to be searched. The ``-I`` flag + must precede each paths, like: + + .. code:: + :class: highlight + + --with-incs-from="-I/opt/headers -I/usr/local/include" + +X11 and Extensions +'''''''''''''''''' + +``configure`` will try to detect automatically the compilation paths for X11 +headers and libraries, and which X Extensions support can be enabled. if you +explicitly provide ``--enable-FEATURE`` then it will break with an error +message if the extension cannot be used; if you specify ``--disable-FEATURE`` +then it will not check for the extension. + +- ``--x-includes=DIR`` +- ``--x-libraries=DIR`` + + *Autoconf*'s option to specify search paths for *X11*, for the case were it + would not have been able to detect it automatically. + +``--disable-xlocale`` + + If you activated support for Native Languages, then *X11* may use a hack to + also configure its locale support when the program configure the locale for + itself. The ``configure`` script detects if the *Xlib* supports this or + not; this options explicitly disable this initialisation mechanism. + +``--enable-modelock`` + + XKB language status lock support. If you don't know what it is you probably + don't need it. The default is to not enable it. + +``--disable-shm`` + + Disable use of the *MIT shared memory* extension. This will slow down + texture generation a little bit, but in some cases it seems to be necessary + due to a bug that manifests as messed icons and textures. + +``--disable-shape`` + + Disables support for *shaped* windows (for ``oclock``, ``xeyes``, etc.). + +``--enable-xinerama`` + + The *Xinerama* extension provides information about the different screens + connected when running a multi-head setting (if you plug more than one + monitor). + +``--enable-randr`` + + The *RandR* extension provides feedback when changing the multiple-monitor + configuration in X11 and allows to re-configure how screens are organised. + + At current time, it is not enabled by default because it is NOT recommended + (buggy); WINDOW MAKER only restart itself when the configuration change, to + take into account the new screen size. + +Feature Selection +''''''''''''''''' + + +``--disable-animations`` + + Disable animations permanently, by not compiling the corresponding code into + WINDOW MAKER. When enabled (the default), you still have a run-time + configuration option in *WPrefs*. + +``--disable-mwm-hints`` + + Disable support for Motif's MWM Window Manager hints. These attributes were + introduced by the Motif toolkit to ask for special window appearance + requests. Nowadays this is covered by the NetWM/EWMH specification, but + there are still applications that rely on MWM Hints. + +``--enable-wmreplace`` + + Add support for the *ICCCM* protocol for cooperative window manager + replacement. This feature is disabled by default because you probably don't + need to switch seamlessly the window manager; if you are making a package + for a distribution you'd probably want to enable this because it allows + users to give a try to different window managers without restarting + everything for an extra cost that is not really big. + +``--disable-xdnd`` + + Disable support for dragging and dropping files on the dock, which launches + a user-specified command with that file. Starting from version 0.65.6 this + feature is enabled by default. + +``--enable-ld-version-script`` + + This feature is auto-detected, and you should not use this option. When + compiling a library (``wrlib``, ...), *gcc* has the possibility to filter + the list of functions that will be visible, to keep only the public API, + because it helps running programs faster. + + The ``configure`` script checks if this feature is available; if you specify + this option it will not check anymore and blindly trust you that it is + supposed to work, which is not a good idea as you may encounter problems + later when compiling. + +``--enable-usermenu`` + + This feature, disabled by default, allows to add a user-defined custom menu + to applications; when choosing an entry of the menu it will send the key + combination defined by the user to that application. See Application User + Menu in *NEWS* for more information. + +``--with-menu-textdomain=DOMAIN`` + + Selection of the domain used for translation of the menus; see `Translations + for Menus `__ in *README.i18n*. + + +Developer Stuff +''''''''''''''' + +These options are disabled by default: + +``--config-cache`` + + If you intend to re-run the ``configure`` script often, you probably want to + include this option, so it will save and re-use the status of what have been + detected in the file ``config.cache``. + + +``--enable-debug`` + + Enable debugging features (debug symbol, some extra verbosity and checks) + and add a number of check flags (warnings) for the compiler (in *gcc* + fashion). + +``--enable-lcov=DIRECTORY`` + + Enable generation of code coverage and profiling data; if the ``DIRECTORY`` + is not specified, use ``coverage-report``. + + This option was meant to be use with *gcc*; it was not used recently so it + is probable that is does not work anymore; the ``configure`` script will not + even check that your compiling environment has the appropriate requirements + and works with this. Despite all this, if you think there's a use for it + and feel in the mood to help, do not hesitate to discuss on the mailing list + `wmaker-dev@lists.windowmaker.org + `__ to get it working. + +Miscellaneous +------------- + +Platform Specific Notes +....................... + +- *GNU/Linux* in general + + Make sure you have ``/usr/local/lib`` in ``/etc/ld.so.conf`` and that you run + ``ldconfig`` after installing. Uninstall any packaged version of WINDOW MAKER + before installing a new version. + +- *RedHat GNU/Linux* + + *RedHat* systems have several annoying problems. If you use it, be sure to + follow the steps below or WINDOW MAKER will not work: + + + - if you installed the WINDOW MAKER that comes with *RedHat*, uninstall it + before upgrading; + + - make sure you have ``/usr/local/bin`` in your ``PATH`` environment variable; + + - make sure you have ``/usr/local/lib`` in ``/etc/ld.so.conf`` before running ``ldconfig``; + +- *PowerPC MkLinux* + + You will need to have the latest version of *Xpmac*. Older versions seem to + have bugs that cause the system to hang. + +- *Debian GNU/Linux* + + If you want *JPEG* and *TIFF* support, make sure you have ``libtiff-dev`` + and ``libjpeg-dev`` installed. + +- *SuSE GNU/Linux* + + If you installed the WINDOW MAKER package from *SuSE*, uninstall it before + trying to compile *Window Maker* or you might have problems. + +- *MetroX* (unknown version) + + *MetroX* has a bug that corrupts pixmaps that are set as window backgrounds. + If you use *MetroX* and have weird problems with textures, do not use + textures in title bars. Or use a different X server. + +I don't have the *root* password :( +................................... + +If you can't get superuser privileges (can't be *root*) you can install *Window +Maker* in your own home directory. For that, supply the ``--prefix`` option +when running configure in step 2 of building WINDOW MAKER. You will also need +to supply the ``--with-gnustepdir`` option, to specify the path for +``WPrefs.app``. + +Example: + +.. code:: console + :class: highlight + + ./configure --prefix=/home/jshmoe --with-gnustepdir=/home/jshmoe/GNUstep/Applications + +Then make ``/home/jshmoe/bin`` be included in your search ``PATH``, add +``/home/jshmoe/lib`` to your ``LD_LIBRARY_PATH`` environment variable and run +``bin/wmaker.inst`` + +Of course, ``/home/jshmoe`` is supposed to be replaced by your actual home +directory path. + + +Upgrading +......... + +If you are upgrading from an older version of WINDOW MAKER: + +#. Configure and build WINDOW MAKER as always +#. Install WINDOW MAKER (but do not run ``wmaker.inst``) +#. Read the *NEWS* file and update your configuration files if necessary. + +---- + +Troubleshooting +--------------- + +When you have some trouble during configuration (while running configure), like +not being able to use a graphic format library you think you have installed, +look at the ``config.log`` file for clues of the problem. + +Error with loading fonts, even if they exist +............................................ + +This is probably a problem with NLS (Native Language Support), you probably +want to look at the `Troubleshooting `__ in +*README.i18n* or try rebuilding without NLS support, which is done with: + + +.. code:: console + :class: highlight + + ./configure LINGUAS="" + +configure doesn't detect *libtiff*, or other graphic libraries +.............................................................. + +Delete ``config.cache``, then rerun configure adding the following options to +``configure`` (among the other options you use): + +.. code:: console + :class: highlight + + --with-libs-from="-L/usr/local/lib" + --with-incs-from="-I/usr/local/include -I/usr/local/include/tiff" + +Put the paths where your graphic libs and their corresponding header files are +located. You can put multiple paths in any of these options, as the example of +``--with-incs-from`` shows. Just put a space between them. + +configure doesn't detect *libXpm* +................................. + +Check if you have a symbolic link from ``libXpm.so.4.9`` to ``libXpm.so`` + +Segmentation fault on startup + +- Check if the version of *libXPM* you have is at least 4.7 +- Check if you have an updated version of ``~/GNUstep/Defaults/WindowMaker`` + +If you're not sure, try renaming ``~/GNUstep`` to ``~/GNUtmp`` and then run +``wmaker.inst`` + +"...: your machine is misconfigured. gethostname() returned (none)" +................................................................... + +the host name of your machine is set to something invalid, that starts with a parenthesis. +Do a ``man hostname`` for info about how to set it. + + +The root menu contains only 2 entries. ("XTerm" and "Exit...") +.............................................................. + +WINDOW MAKER could not read your menu definition file. You should check the +output of ``wmaker`` for an error, it may be visible in the console or in the +``.xsession-errors`` file. diff --git a/screenshots/GoldUtop.png b/screenshots/GoldUtop.png new file mode 100644 index 0000000..6e58563 Binary files /dev/null and b/screenshots/GoldUtop.png differ diff --git a/screenshots/GoldUtop_thumb.jpg b/screenshots/GoldUtop_thumb.jpg new file mode 100644 index 0000000..e9719b5 Binary files /dev/null and b/screenshots/GoldUtop_thumb.jpg differ diff --git a/screenshots/index.md b/screenshots/index.md index cfeee99..dcf0466 100644 --- a/screenshots/index.md +++ b/screenshots/index.md @@ -37,4 +37,7 @@ screenshots. [![screenshot from khamsin](gryf-clearloks_thumb.jpg)](gryf-clearloks.png) {:.gallery} +[![screenshot from khamsin](GoldUtop_thumb.jpg)](GoldUtop.png) +{:.gallery} +
diff --git a/style.css b/style.css index f313597..54805b1 100644 --- a/style.css +++ b/style.css @@ -38,7 +38,9 @@ pre { margin-bottom: 3em; } -p.center {text-align: center} +.caption {text-align: center} + +.center:not(.section), .center>h1, .center>h2{ text-align: center } p.screenshot a img { border: 1px solid black; @@ -50,6 +52,15 @@ p.screenshot a img { margin: auto; } +/* guided tour */ + +#window-maker h1.title { text-align: center } +#window-maker #guided-tour img { + display:block; + margin-left: auto; + margin-right: auto; +} + /* gallery */ p.gallery { @@ -77,6 +88,17 @@ div.gallery img { clear: left; } +div.figure img { + display: block; + border: 1px solid black; + box-shadow: 3px 7px 7px #606060; + margin: 0 auto; +} + +div.figure.borderless img { + border: 0 +} + /* logo */ header h1 a { font-family: "DejaVu Sans", sans-serif; @@ -195,6 +217,11 @@ header h1 a span.first {color: black} border-right: 1px solid #555555; } +/* TOC */ +.contents p { + margin: 0.2em; +} + /* pre/code highlighted theme - taken from wombat256grf vim colorscheme */ .highlight { background-color: #242424 } .highlight .c { color: #99968b; font-style: italic} /* Comment */