********************************
* larswm - Lars Window Manager *
********************************


Introduction:

This is not really a completely new window manager, but rather a
heavily modified version of David Hogan's 9wm.
Please see file README.9wm for David's original license.
In following his licensing terms, I release this under
a different name than 9wm.

This is actually alot more larswm than 9wm nowadays.
I started with pre-9wm-1.2, which consisted of 2901 lines of
code. larswm is now 6416 lines of code. Alot of 9wm code has
been reimplemented to better fit with the design of larswm,
and of the 9wm code still there, most of it have been modified
in some way or another.


Where can I find new versions? Where can I find more documentation?

http://www.fnurt.net/larswm

Also look at the files mouse_refcard.ms and keyboard_refcard.ms
which contain tables of useful information.
They are in troff/tbl format, and to view them if you have groff
installed, type:

gtbl keyboard_refcard.ms | groff -TX75
gtbl mouse_refcard.ms | groff -TX75


How do I compile and install it?

xmkmf -a
make install install.man


Compiling with gcc under Solaris:

I don't have Sun C installed, only gcc. In order to make the Imakefile
work with the standard X11 installation in /usr/openwin, I had to add
a few lines at the top of the Imakefile.
If you're having trouble compiling on Solaris, try editing/removing those.


ChangeLog:

Please see the file ChangeLog in the source distribution
for a list of changes since version 1.0.


##########################################################################
##########################################################################

Known problems:

When opening xterms they sometimes think they are 80x24 even though
they have been tiled to some other size.
Workaround: Put this line in your .bashrc or .cshrc

	eval `resize`

##########################################################################
##########################################################################


Other issues:

1. Keyboard shortcuts don't work when any of the locked modifiers are active.
   That is, if you configure a shortcut as Control-Alt-x, then it will
   not work if ShiftLock, NumLock or ScrollLock is on.
	Workaround:	If you most of the time have NumLock on, you can
			configure all your keyboard shortcuts to include
			the Mod2 modifer. That is, if you want to use
			Alt-Tab to go to previous window, instead of
			larswm.prev_window_key: Tab
			larswm.prev_window_mod: Alt
			change the last line to read
			larswm.prev_window_mod: Mod2+Alt
			Now it won't work when NumLock is off, so only
			do this if NumLock is on most of the time.
			The names for the modifers you might want to do
			this for are:
				Key		Symbol
				-------------------------
				CapsLock	ShiftLock
				NumLock		Mod2
				ScrollLock	Mod5


Command line options:

-display display	Open a different display than the default.

-f file			Load file instead of $HOME/.larswmrc

-defaults		Print a properly formatted larswmrc to stdout.

-v			Show version info and exit.


Mouse and keyboard commands:

Please see the included mouse_reference.ms and keyboard_reference.ms
files for a complete list of all larswm commands.


SUN KEYBOARD SPECIFICS:
To make the KP_ bindings work on a Sun keyboard, I use this xmodmap file:

---BEGIN---
keycode 75 = KP_Home
keycode 76 = KP_Up
keycode 77 = KP_Prior
keycode 98 = KP_Left
keycode 99 = KP_Begin
keycode 100 = KP_Right
keycode 119 = KP_End
keycode 120 = KP_Down
keycode 121 = KP_Next
---END---

Just put this in a file somewhere, and load it from
your .xsession BEFORE starting larswm:

---BEGIN---
xmodmap /path/to/file
exec larswm
---END---

If you are using another type of keyboard, and the keypad doesn't
seem to work, use 'xev' to find the keycodes for each key, and then
remap them in a similar way.


Configuration file:

For more in depth description, check the documentation that can be
found on the larswm home page.

You can generate a complete .larswmrc file with all the defaults
filled in by doing the following:

cd
larswm -defaults > .larswmrc

Just remember to uncomment any line you modify. :)

Also included with the source tarball (and in the RPM) is my
own config in the file sample.larswmrc, it shows how you
can set up tiling for a few apps with not too much config
file editing.


Status bar info:

The file sample.barclock is a small example, suitable for a
laptop that is not connected to the net. It shows date and time
and battery status on the status bar. larsclock is yet another
sample clock, this one written in C, making use of the X11 ipc
functions directly (no fork()/exec() of larsremote to send
messages).

The file sample.xsession shows how you can start this program when
you login, and have it killed when you logout.


New source files:

tiling.c	- contains all the logic for positioning windows
		  and alot of other things I have added to 9wm.

prefs.c		- contains the preferences handling code.
		  It uses Xrm to read resource files.

keys.c		- Keyboard shortcuts.

bar.c		- Status bar at the bottom of the screen.

buttons.c	- This is my replacement for menu.c

mouse.c		- This is my replacement for grab.c

larsremote.c	- External program that you use to display
		  messages on the status bar, and to tell larswm
		  to exit or restart.

larsclock.c	- Very simple example of how to write a status bar
		  clock application that works without calling an
		  external program every second to update the
		  message.


Licensing:

Please see the file README.9wm for David Hogan's original 9wm license.
The same type of license applies to larswm.


---
Lars Bernhardsson
lab@fnurt.net
