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


* * * IMPORTANT NEWS! * * * * * * * * * * * * * * * * * * * *
In 6.0 skip_focus is on by default. What this means is that
when a window on the tiled subdesktop gets focus, it is NOT
automatically put in the left track. To make that happen,
hold down Control while clicking on it. You can also use
the keyboard shortcut for any of the Zoom functions to
move a window to the left track, or out of it if it is
already there.
To make it behave like before, put this line in .larswmrc:
larswm*skip_focus: False

Also, lazy_notile has been deprecated in favor of clickthru,
please see the manual for more info.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

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.


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

http://www.fnurt.net/larswm


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:

At the time of release, no known bugs exist.


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. Under Solaris, 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.
   If on the same system you use dtterm instead of xterm, it works,
   so I assume this is a bug in /usr/openwin/bin/xterm.

3. Some apps use different class strings for the main window and its
   subwindows. Also, they don't always set WM_TRANSIENT_FOR correctly,
   making things confused. The best way to deal with this is to leave
   default_notile on, and specify both class and instance of the windows
   you do want on the tiled subdesktop.


Command line options:

-display display	Open a different display than the default.

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

-p file			Get status bar messages from the specified
			named pipe instead of $HOME/.larswmfifo

-defaults		Print a properly formatted larswmrc to stdout.

-v			Show version info and exit.

message			Check the named pipe for data and update
			the status bar if data was read.

flushmessage		Throw away all data currently waiting
			in the named pipe.

exit			Make the currently running larswm exit.

restart			Make the currently running larswm restart.


Mouse clicks:

-------------------------------------------------------------------------------
Mouse Button          Function/Menu
-------------------------------------------------------------------------------
Button1               Make clicked window active if its hints specify input.
Shift+Button1         Force clicked window active regardless of hints.
Control+Button1       Make active and retile.

Button3               Popup Main Menu.
Shift+Button3         Popup List of Hidden Windows (if there are any).

Button4               Go to Previous Desktop.
Button5               Go to Next Desktop.
-------------------------------------------------------------------------------

To see default keybindings, run 'larswm -defaults'.


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
putting the current date and time, and some stock info in the FIFO.

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


Status bar mode flags:

The field on the status bar between [ and ] means the following:
T	Tiled subdesktop active
C	Clickthru on
R	Resize when tiling on
S	Do not automatically put focused window in left track
H	There are hidden windows


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.

By now there's been a many changes made to all the other files as well.


License:

The same license applies to larswm as to 9wm. The code I take
credit for is in tiling.c, prefs.c, bar.c, keys.c + modifications
in the rest of the code.
Everything else is there thanks to David Hogan. :)

Therefore, the license is the same, please see README.9wm for
the full text. If you build something using my code, I'm curious
to hear about it, one can never be so busy that there isn't time
to try out a new window manager. :)


---
Lars Bernhardsson
lab@fnurt.net
