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


* * * IMPORTANT 7.0 NEWS! * * * * * * * * * * * * * * * * * *
All menus are gone! Please see the ChangeLog and full
documentation for information on how to perform the functions
that used to be on menus.

Shift+Control+Return is no longer defined by default to
launch a new terminal. Please see sample.larswmrc for how
to emulate the old behaviour.

Also included in the source tarball and RPM are three
reference cards in troff/tbl format. They list the mouse
commands and the default keyboard shortcuts as well as all
config keywords you can use in your .larswmrc.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


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.

As of version 7.0, this is actually alot more larswm than 9wm.
I started with pre-9wm-1.2, which consisted of 2901 lines of
code. larswm is now 6109 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, keyboard_refcard.ms
and larswmrc_refcard.ms which contains tables of useful information.
They are in troff/tbl format, and to view them if you have groff
installed, type:

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


ChangeLog:

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


Known bugs:

Sometimes if a client is killed right when it is opened, the root window
color will be set to the larswm background color. I have not actually
been able to reproduce this, but have gotten reports about it.


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

2. Sometimes when a new xterm is mapped, even if auto tiling is on and
   it is resized, stty -a reports a size of 80x25.
   As soon as the window is resized again, it knows the correct size.
   A workaround is to have this line in your .cshrc or .bashrc:
	eval `resize`


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.

message	"text"		Display text on the status bar.

exit			Make the currently running larswm exit.

restart			Make the currently running larswm restart.


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.barinfo shows how you can easily write a program
to be run in the background before starting larswm. It will keep
sending the current date and time, and some stock info to larswm.
The file sample.barclock is a smaller 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
