larswm seconda revisione

Alessandro Foresi
Fri Jan 10 10:24:13 2003

On Fri, Jan 10, 2003 at 12:07:57AM +0100, Francesco Potorti` wrote:
> Non usare allegati, inserisci nel corpo del messaggio.

Segue la seconda revisione della traduzione della documentazione
di larswm. Nella prima era stata tradotta solo la man del window manager,
ora anche il README,, e le due refcard.

La man principale è stata rivista, tradotto il mancante e terminata in
base ai suggerimenti ricevuti. Grazie a tutti.

-------- ELENCO FILE
-------- FINE ELENCO

-------- INIZIO DI en/
c s s
c c c
l l l.
larswm Keyboard Reference
Modifier	Key	Function
Shift-Control	Prior	Prev Screen
Shift-Control	Next	Next Screen
Shift-Control	Left	Prev Desktop
Shift-Control	Right	Next Desktop
Shift-Control	Up	Prev Window
Shift-Control	Down	Next Window
Shift-Control	BackSpace	Toggle Subdesktop
Shift-Control	F1-F12	Jump to virtual desktop 1-12
Control-Alt	z	Hide Window
Control-Alt	x	Unhide last hidden window
Control-Alt	w	Close Window
Shift-Control	KP_Home	Move to northwest corner (untiled)
Shift-Control	KP_Up	Move to north edge (untiled)
Shift-Control	KP_Prior	Move to northeast corner (untiled)
Shift-Control	KP_Left	Move to west edge (untiled)
Shift-Control	KP_Begin	Move to center of screen (untiled)
Shift-Control	space	Select Zoom
Shift-Control	KP_Right	Move to east edge (untiled)
Shift-Control	KP_End	Move to southwest corner (untiled)
Shift-Control	KP_Down	Move to south edge (untiled)
Shift-Control	KP_Next	Move to southeast corner (untiled)
Shift-Alt	space	Move window to other subdesktop
Shift-Alt	KP_Insert	Toggle 5% of screen or 1 pixel move/resize increment (untiled)
Shift-Alt	KP_Up	Move window up (untiled)
Shift-Alt	KP_Down	Move window down (untiled)
Shift-Alt	KP_Left	Move window left (untiled)
Shift-Alt	KP_Right	Move window right (untiled)
Shift-Alt	KP_Home	Maximize window vertically (untiled)
Shift-Alt	KP_End	Maximize window horizontally (untiled)
Shift-Alt	KP_Begin	Maximize window both ways (untiled)
Shift-Alt	KP_Home/End/Begin	Move window to/from left track (tiled)
Shift-Control-Alt	KP_Up	Maximize left track (tiled)
Shift-Control-Alt	KP_Down	Restore left track (tiled)
Shift-Control-Alt	KP_Right	Grow left track (tiled)
Shift-Control-Alt	KP_Left	Shrink left track (tiled)
Shift-Control-Alt	KP_Up	Grow window vertically (untiled)
Shift-Control-Alt	KP_Down	Shrink window vertically (untiled)
Shift-Control-Alt	KP_Right	Grow window horizontally (untiled)
Shift-Control-Alt	KP_Left	Shrink window horizontally (untiled)
Shift-Control-Alt	KP_Home	Grow window both ways (untiled)
Shift-Control-Alt	KP_End	Shrink window both ways (untiled)
-------- FINE DI en/

-------- INIZIO DI it/
c s s
c c c
l l l.
Riferimenti alla tastiera per larswm
Modificatore	Tasto	Funzione
Shift-Control	PgSu	Schermo precedente
Shift-Control	PgGiù	Schermo successivo
Shift-Control	Sinistra	Desktop precedente
Shift-Control	Destra	Desktop successivo
Shift-Control	Su	Finestra precedente
Shift-Control	Giù	Finestra successiva
Shift-Control	BackSpace	Cambia sottodesktop
Shift-Control	F1-F12	Salta al desktop 1-12
Control-Alt	z	Nasconde la finestra
Control-Alt	x	Ripristina l'ultima finestra nascosta
Control-Alt	w	Chiude la finestra
Shift-Control	Tn_Home	Sposta nell'angolo nodrovest (non affiancato)
Shift-Control	Tn_Su	Sposta nel bordo nord (non affiancato)
Shift-Control	Tn_PgSu	Sposta nell'angolo nordest (non affiancato)
Shift-Control	Tn_Left	Sposta al bordo ovest (non affiancato)
Shift-Control	Tn_Begin	Sposta al centro dello schermo (non affiancato)
Shift-Control	spazio	Select Zoom
Shift-Control	Tn_Right	Sposta nel bordo est (non affiancato)
Shift-Control	Tn_End	Sposta nell'angolo sudovest (non affiancato)
Shift-Control	Tn_Giù	Sposta al bordo sud (non affiancato)
Shift-Control	Tn_PgGiù	Sposta nell'angolo sudest (non affiancato)
Shift-Alt	spazio	Sposta la finestra nell'altro sottodesktop
Shift-Alt	Tn_Insert	Alterna tra 5% dello schermo e 1 pixel (non affiancato)
Shift-Alt	Tn_Su	Sposta la finestra su (non affiancato)
Shift-Alt	Tn_Giù	Sposta la finestra giù (non affiancato)
Shift-Alt	Tn_Sinistra	Sposta la finestra verso sinistra (non affiancato)
Shift-Alt	Tn_Destra	Sposta la finestra verso destra (non affiancato)
Shift-Alt	Tn_Home	Ingrandisce la finestra verticalmente (non affiancato)
Shift-Alt	Tn_Fine	Ingrandisce la finestra orizzontalmente (non affiancato)
Shift-Alt	Tn_Begin	Ingrandisce la finestra in entrambe le dimensioni (non affiancato)
Shift-Alt	Tn_Home/Fine/Begin	Sposta la finestra da/verso la sezione sinistra (affiancato)
Shift-Control-Alt	Tn_Su	Ingrandisce al massimo la sezione sinistra (affiancato)
Shift-Control-Alt	Tn_Giù	Ripristina la sezione sinistra (affiancato)
Shift-Control-Alt	Tn_Destra	Ingrandisce la sezione sinistra (affiancato)
Shift-Control-Alt	Tn_Sinistra	Rimpicciolisce la sezione sinistra (affiancato)
Shift-Control-Alt	Tn_Su	Ingrandisce la finestra verticalmente (non affiancato)
Shift-Control-Alt	Tn_Giù	Rimpicciolisce la finestra verticalmente (non affiancato)
Shift-Control-Alt	Tn_Destra	Ingrandisce la finestra orizzontalmente (non affiancato)
Shift-Control-Alt	Tn_Sinistra	Rimpicciolisce la finestra orizzontalmente (non affiancato)
Shift-Control-Alt	Tn_Home	Ingrandisce la finestra in entrambi le dimensioni (non affiancato)
Shift-Control-Alt	Tn_Fine	Rimpicciolisce la finestra in entrambi le dimensioni (non affiancato)
-------- FINE DI it/

-------- INIZIO DI en/
.TH larswm 1
larswm \- Tiling Window Manager for X
.B larswm
.B \-display
.I dpy
] [
.B \-f
.I file
] [
.B \-defaults
] [
.B \-v
.I larswm
is a small window manager for X.  What makes it unique compared to most window managers is its automatic window tiling.
The following command line options are supported:
.TP 18
.BI \-display " dpy"
lets you specify which display you want
.I larswm
to manage.
.TP 18
.BI \-f " file"
lets you specify a preferences file other than $HOME/.larswmrc to use for configuration.
.TP 18
.B \-defaults
prints to standard out a complete resource file for
.I larswm
containing all options and their defaults.
.TP 18
.B \-v
prints the current version on standard error, then exits.
.TP 18
.B $HOME/.larswmrc /etc/X11/larswmrc
these two files are looked for in the above order when
.I larswm
starts up.

.SH Getting and Installing larswm

Both source and RPMS are available at

.B Standard install from source

After unpacking the source file, compile and install 
with the following commands:

xmkmf -a

make install

.B Building RPMS

If you use RedHat and have downloaded version 7.2.8
of larswm, you can build RPMS by running the command:

rpm -ta larswm-7.2.8.tar.gz

And then install the i386 binary RPM with:

rpm -Uvh /usr/src/redhat/RPMS/i386/larswm-7.2.8-1.i386.rpm

With the RPM, sample.larswmrc is installed in 
/etc/X11/larswmrc and sample.xsession is installed in 
/etc/X11/gdm/Sessions/LarsWM so that it can be chosen 
from the login screen. It is ready to use by all users 
without further configuration on their part, though 
most users will probably want to copy larswmrc and 
modify it to their taste.

.SH Making Terminal Windows Behave

In order to make terminal windows know that they have
been resized when they are first opened and tiled, put
this line in your .cshrc or .bashrc:

eval `resize`

It will ensure that it is set to the correct number of
rows and columns when it is opened.

.SH The Idea

When I started working on larswm I had a few ideas that 
I think are important in a window manager. They are as follows:

1. The user should not have to spend alot of time 
arranging windows on the screen, leaving more time 
for the actual work that he or she is trying to accomplish.

2. Direct manipulation. Instead of accessing windows 
and desktops through representations of these, access 
them directly. That means: No icons when a window is 
iconified. No graphical map of the virtual desktops, 
larswm is fast enough that it is easier to browse the 
actual desktops instead, something that is very quick 
and easy to do, escpecially if you have a wheel 
mouse, and since the windows are tiled, you usually 
don't need much time looking at a desktop to know 
what's on it. And within one desktop, tiling is a 
good example of direct manipulation, a common way to 
deal with multiple windows on the screen is to 
overlap them and select which one you want my 
clicking on a representation in the form of a button 
on a task bar, however, larswm does not need that 
because the actual window, with enough content 
visible to know which one it is, is always visible.

3. No precision clicking. Use the edges of the monitor 
to make it easy to aim with the mouse pointer.

4. It must be predictable. If the user ever wonders how 
focus ended up on a window that he or she did not 
click on, something is wrong. larswm has alot of code 
that deals with figuring out where focus should go 
when different events occur.

5. It must have a solid feel to it. Part of this is 
speed, when you switch desktops or windows are moved 
around as the result of being tiled it must go quick, 
and part of it is predictability.

6. The window manager should not use more system 
resources (CPU time, virtual memory) than is 
absolutely necessary for performing the task of 
managing windows. The GUI is minimal, providing 
borders around the windows, and a status bar at the 
bottom of the screen. It provides all feedback using 
plain text on the status bar.

7. Quality control. It has been tested with Electric 
Fence to catch memory access errors and profiled with 
gprof. So far I have been able to fix everything that 
I found with these tools, but I am no CS major and I 
am sure some things could be done better. 
Nevertheless, it works, and during normal 
circumstances it works using minimal system 

.SH Terminology

Some of this is unique to larswm and some is borrowed 
from other GUI designs.

.I Screen

Physical monitor. By default larswm will use 
up to 4 monitors. This can be adjusted in the dat.h file.

.I Virtual Desktop

Each screen is logically divided into 
up to 16 workspaces. A window is usually only visible 
on one of these workspaces.

.I Subdesktop

Each virtual desktop is then logically 
divided between two subdesktops. First we have 
normal, untiled, windows. They are managed in a way 
similar to most other window managers. Second we the 
tiled subdesktop, where no window is allowed to 
overlap another. Switching between the tiled and the 
untiled set of windows is very fast with a hotkey or 
mouse click.

.I Track

On the tiled subdesktop, windows are laid out 
in one of two tracks. The left track occupies the 
left 2/3 of the screen, while the right track 
occupies the rest. The ratio can be changed 
dynamically through hotkeys, and a different default 
can be set in the .larswmrc file. The left track 
always contains one window filling it from top to 
bottom while the right track contains any other 
windows, evenly sized. There are hotkeys to make any 
window in the right track expand and move to the left 
track while the window that was in the left track is 
shrunk and placed at the top of the right track.

.I Status Bar

The status bar fills two functions. First 
off, as the name implies, it shows status messages. 
This includes the window title of the focused window, 
the selected virtual desktop, flags that shows what 
modes are set on the current virtual desktop and a 
user defined message that is used by the sample clock 
app to show the current date and time. Second, it is 
a very big button that can be clicked to perform 
various functions. It's easy to target, since you 
just move the mouse down against the bottom of the 
screen, no need to precision aim for it.

.I Tool

A special kind of window that belongs to the 
untiled subdesktop, but is still tiled around. It is 
also visible on all virtual desktops. Used for things 
like clocks and load meters.

.I Select Zoom

Maximize a window so that the height/width 
ratio is the same as for a US letter sized paper, and 
centering it on the screen. Besides wanting to tile 
windows, this was the most common manual move/resize 
operation I used before it was automated.

.SH A Sample Session

The following assumes you are using the sample.xsession 
and sample.larswm config files included in the source 
and RPM files. If you installed the RPM on a RedHat system
with GDM as the login manager (default), all you have 
to do is select the LarsWM session on the login screen 
to use larswm with this config. After logging in, 
you'll see a mostly empty gray desktop. Along the 
bottom of the screen is the status bar, and in the 
lower right corner are two smaller windows (xload and 
xbiff) which in the default config are tagged as tool
windows. What this means is they should be visible on 
all virtual desktops, and should not be covered by 
windows that are placed automatically on the tiled subdesktop.

.B Working with tiled windows

Now hit Shift-Control-Return. This will bring up a new 
terminal window. Notice how it occupies the left 2/3 of 
the screen. Type something in this window and hit 
Shift-Control-Return again. The first window is moved 
to the right side and shrunk, while the new xterm 
occupies the bigger area to the left. Notice that the 
two toolwindows (xload and xbiff) are not overlapped.

Hit Shift-Control-Return once more and notice how the 
two previous windows now both are on the right side and 
using half the space each.

Now hit Control-Button1 on the first window you opened, 
it should be the xterm right above the tool windows on 
the right side. This will put that window in the left 
track, while putting the left track window at the top 
of the right track.

That's all there is to never having to manually line up 
your xterms again!

.B Working with untiled windows

For demonstration purposes, we can use xlogo. By 
default, the xlogo window class is not set to be tiled, 
so it will be opened on the untiled subdesktop, 
separate from all the xterms. In the focused xterm, 
type xlogo and hit Return. The xlogo window should 
appear in the middle of the screen above the tiled 
windows. If you need to switch between tiled and 
untiled windows, you can use Shift-Control-BackSpace. 
Hit that key twice and see how xlogo is first hidden 
behind the tiled xterms and then brought to the front 
again. If you had more untiled windows open, they would 
all have been lowered and raised together.

.B Moving windows to predefined areas

You can move untiled windows to 9 different predefined 
locations on the screen with only one keystroke. With 
the xlogo window focused, hit Shift-Control-KP_6. The 
xlogo window should be against the right edge of the 
screen, halfway between the top and bottom, just like 6 
on the numeric keypad is among the keys 1 through 9. 
Hit Shift-Control and each number on the numeric keypad 
to see the locations. When done, leave the window on 
the right edge in the middle (Shift-Control-KP_6).

.B Select zooming

With the xlogo window focused and off to the side of 
the screen, hit Shift-Control-space. Notice how it is 
centered and sized to make it easy to work with. When 
you hit Shift-Control-space again, it is returned to 
its former place and size. This can be used as an 
alternative to tiling, if you have some windows you 
would like to mostly manage yourself, but want a quick 
way to concentrate on one of them.

.B Using the mouse to move and resize windows

With the xlogo window unzoomed and focused, move the 
mouse down onto the status bar, anywhere will do, and 
hold down Shift-Alt-Button1. The mousepointer moved to 
the top left corner of the window and you are able to 
move the window around by moving the mouse. To place 
the window, let go of the mouse button. Move xlogo to 
somewhere near the top left of the screen.

Next, with the mouse on the status bar, hold down 
Shift-Control-Alt-Button1. The mouse pointer is moved 
to the bottom right corner of the xlogo window and when 
you move the mouse, you resize the window. To set the 
size, let go of the mouse button.

.B Moving a window between subdesktops

Make sure the xlogo window is focused and then hit 
Shift+Alt+space. The xlogo should now be tiled and 
focused in the left track. If you hit Shift+Alt+space 
once more, it becomes untiled again and the other tiled 
windows moves to fill the vacated spot in the left 
track. When a window has been tiled and is moved to the 
untiled subdesktop, it is given a generic size and 
position that is half the screen height and width and centered.

.B Working with virtual desktops

So far, we've only used the first desktop. The way to 
switch between desktops is easy. Shift-Control-Left and 
Shift-Control-Right on the keyboard will move you back 
and forth between the desktops. Hit Shift-Control-Right 
four times. Notice how the status bar label changes to 
show what desktop is active. By default there are four 
virtual desktops per screen, so you should be back to 
the first desktop now.

.B Using the mouse wheel

With larswm, the mouse wheel can be used for quite a 
few operations. The most common is to switch virtual 
desktop. This can be done by moving the pointer to the 
status bar, or above any unfocused window and rolling 
the wheel up and down. I recommend moving the pointer 
to the status bar, because when you switch virtual 
desktop, a focused window might end up under your mouse 
pointer, and then the next roll of the wheel would not 
switch desktop, but rather be sent to that window.

You can also use the mouse wheel to move and resize 
windows quickly. With xlogo focused, move the pointer 
to the status bar and hold down Shift-Alt while rolling 
the wheel to move the window sideways. If you hold down 
Shift-Control-Alt you move the window up and down, and 
with Shift-Control you can grow and shrink the window.

If you have more than one window open, hold down Shift 
whle rolling the wheel down to cycle focus through each 
window. To try it now, shift to the tiled subdesktop by 
clicking on any of the tiled xterms then move the mouse 
pointer to the status bar, hold down shift and roll the wheel.

This is not exactly intuitive, but very fast once you 
learn the combinations of Shift, Control and Alt keys 
to do these things.

.SH Status Bar Menu System

The status bar is used for a simple menu system. With 
the pointer on the status bar, hold down Control and 
click Button1 and Button3, or roll the wheel up and 
down, to scroll between the menu entries. 
Control-Button2 selects the current menu entry, usually 
toggling a desktop or window setting.

If you instead of Control hold down Alt, you can scroll 
through the list of iconified windows, and Alt-Button2 
uniconifies the selected window.

.SH Things You Can Configure

You can affect alot (but not all!) of the behaviour of 
larswm by making your own .larswmrc file and putting it 
in your home directory.

.B Default setup

Included in the distribution files is a file called 
sample.larswmrc that you can use as a starting point 
for your own config. When the RPM is installed, this
file is also at /etc/X11/larswmrc

.B Complete list of config keywords

Another way to get a default .larswmrc is to run larswm 
with the -defaults flag. It will print out all the 
possible options with their defaults filled in, all you 
have to do is uncomment and edit any lines you wish to 
change. Rather than reproduce that here, you can create 
your own up to date version by running the command
larswm -defaults and piping it to a file.

.B Indexed resources

In the sample.larswmrc, all the entries that end in a 
number are indexed resources. The number can be between 
0 and 63, and must be unique within each resource type.

.B Multi-head

When specifying an option that only affects one of the 
virtual desktops, you can also limit it to a specific 
monitor. For instance, larswm.0.0.dtname: One would 
name the first virtual desktop on the first monitor 
only. Due to precedence, you can set an option for all 
desktops one way, and then specific desktops another. 
The ways to specify screens and desktops are, listed in 
order of precedence:

.I larswm.S.D.resource

Affects only desktop D on screen S.

.I larswm.S.?.resource

Affects all desktops on screen S.

.I larswm.?.D.resource

Affects only desktop D on all screens.

.I larswm.?.?.resource

Affects all desktops on all screens.

.I larswm*resource

Another way to specify all desktops on all screens.

As an example, if you want all desktops except the 
first on the second monitor to not resize windows that 
are tiled, you would put the following lines in you .larswmrc:

larswm*tile_resize: false

larswm.1.0.tile_resize: true

The first line is needed because the default is to 
resize windows.

.SH Keyboard and Mouse Reference

Included in the source and RPM distribution are two
reference cards in tbl format. They can be viewed
using the following commands:

gtbl | groff -TX75

gtbl | groff -TX75

.SH The Status Bar

The thin window across the bottom of the screen is the 
status bar. On the left is the window title of the 
focused window, and on the right is a status area.

.B Mode flags

Between the virtual desktop label and the user defined 
message (date/time in the default setup) is a block of 
flags in upper case [TCRSBH]. They indicate the following:

.IB T " Subdesktop"

T for tiled or U for untiled.

.IB C " Clickthru"

Whether clicks on an unfocused window 
should focus and pass the click on to the client, or 
just focus and discard the click. C means pass to client.

.IB R " Tile Resizing"

Whether tiled windows are resized or not.
R means they are resized. If not, they are just 
stacked in the right track, each having the top left 
corner visible.

.IB S " Skip Focus"

Whether giving focus to a window in the 
right track makes it jump to the left track. S means 
no, you have to Control-Button1 click it to make it 
jump. If off, you can Control-Button1 click to make a 
window stay in place while getting focus.

.IB B " Big Move/Resize"

Whether the keyboard and mouse 
wheel commands to move and resize windows should work 
a pixel at a time, or 5% of the screen width/height 
at a time.

.IB H " Hidden Windows"

Whether any windows are hidden 
(iconified) on any screens. It's there so you won't 
forget about them, since larswm has no visual 
representation of iconified windows.

.B Window mode flags

The status bar will also show the focused window's class
and instance in the format (Class~Instance). Just to the
right of that is another set of flags in lower case [nfts] that mean:

.IB n " Notile"

Window belongs to the untiled subdesktop.

.IB f " Floating"

Window always stays on top of non-floating windows.

.IB t " Tool"

Window is tiled around, not over.

.IB s " Sticky"

Window is visible on all virtual desktops.

.B User defined message

If you want, you can put any message you like in the 
right most portion of the status bar. This can be used 
for things like clocks, email notifiers, stock tickers 
etc. Included in the distribution is a small example of 
a clock called larsclock. It is started by the default 
session script.

If you don't run larsclock, you can set the message 
from any shell script with the command larsremote 
message TEXT, which would show TEXT on the status bar. 
See the file sample.barclock for an example of this.

.SH Window Types

Here's a more detailed look at the different types 
larswm can associate with a window.

.B Transient windows

Windows that have the WM_TRANSIENT_FOR property set are 
not tiled. When a window that has transients gets 
focus, larswm will make the transients stay on top and 
have focus. If you switch focus to a different top 
level window while transients are mapped they will be 
left alone, underneath the other window, and will not 
be raised until you focus their top level window.

To focus the top level window without having one of its 
transients get focus automatically, use Control-Button1.

When a transient window first gets mapped, it will 
always show up, no matter what desktop you are viewing. 
The transient window will be assigned to the desktop 
where the parent window is though, so as soon as you 
change desktop, it will only show up on the virtual 
desktop the parent belongs to.

.B Untiled windows

Any window that is not tiled is assigned to the untiled 
subdesktop. These windows are completely separate from 
the tiled subdesktop. The untiled subdesktop behaves 
more or less like any traditional window manager, but 
adds a few keyboard shortcuts for moving windows to 
different parts of the screen or zooming them in both dimensions.

larswm will not tile a window unless its class/instance 
can be found in the larswm.dotileclass list.

The way to move between your tiled and untiled desktop 
is through a keyboard shortcut, which by default is 

When a window mapped on the untiled subdesktop for the 
first time, it is centered on the screen, unless it has 
had its position set in the hints, in which case that 
position is used instead of centering.

.B Floating windows

Floating windows will always stay on top of other 
non-floating windows, regardless of which subdesktop is 
active. This can be used for small windows, like xcalc, 
that you always want accessible. If clickthru is on, 
clicks will be passed on to floating windows regardless 
of which subdesktop was active before the click.

.B Sticky windows

Sticky windows are windows of a class and instance that 
matches an entry in the larswm.stickyclass list. They 
are always visible no matter which virtual desktop you 
are on.

.B Tools

Tools are windows you always want visible. Examples of 
tools are xclock, xload and other small informational 
windows. When a window has been identified as a tool 
window, it will be assigned to the untiled desktop, it 
will be sticky and the tiled windows will not cover it. 
Also, if clickthru is on, any clicks on tool windows 
will be passed on to the client, regardless of which 
subdesktop was active before the click.

.SH Internals

A little more detail about how larswm does things.

.B Tiling

Every time a window is mapped or unmapped, or (if 
skip_focus is off) you focus a new window on the tiled 
subdesktop by clicking on it the following process is executed:

1. The width of the two tracks are calculated. This is 
by default set up so the left track uses 2/3 of the 
screen width, but it can be configured in the 
.larswmrc file. 

2. It calculates how many windows should be in each 
track, one in the left track and the rest in the right.

3. The height of each window in each track is calculated.

4. It goes through the list of all windows and places 
them in the designated spot.

5. Transient windows of the current window are 
recursively put on top so that you never will lose a 
dialog box under your main window.

6. After this it returns to the event loop. 

That is pretty much it. When you click on an inactive 
window in the right track, it will pop over into the 
left track, and the window that were there will pop 
over to the top of the right track. Hence, the right 
track will contain windows in the order that they were 
in the left track, starting with most recent.

.B Associating windows with a virtual desktop

You can associate certain window classes/instances to a 
certain virtual desktop number by adding resources to 
your .larswmrc.

An example of how to associate all Netscape windows 
with the second virtual desktop:

larswm.dtclass.0: Netscape

larswm.dtnum.0: 1

When any Netscape window opens, larswm will first 
switch to the specified desktop, and then map the window.

.B Hidden windows

larswm iconifies windows by hiding them. To unhide a 
hidden window, you must first locate its label using 
the status bar. Please see the section about using 
menus on the status bar for information on how this works.

You can move a window between desktops by hiding it, 
changing desktop, and then unhiding the window again. 
You cannot move windows between screens this way, 
because X11 does not support it.

The best way to use the window hiding feature is 
through keyboard shortcuts. You can hide the focused 
window and unhide the last hidden window without using 
the mouse at all. This makes for a quick way to move a 
window from one virtual desktop to another.

.B Focus handling

To change focus to a window, you just left click on it, 
and if skip_focus is off that window will pop into the 
left track, and the window currently there will pop 
over to the top of the right track.

If you have it set up to automatically put the focused 
window in the left track, you might still sometimes 
want to type something into one of the tiled windows 
without rearranging all the windows, and to do that you 
Control-Button1 click on a window. Focus will change, 
but all windows will stay where they are. This will 
also prevent any transient windows owned by the 
application from immediately be raised and get focus.

If you have it in the default mode, where selecting a 
new window to have focus does not make it pop into the 
left track you can do that by Control-Button1 clicking it.

.B Clickthru

When you click on a window to give it focus, that click 
is also passed on to the client. This makes it easier 
to work with a multi-window application. You can turn 
this feature off, in which case the click used to focus 
a window is never seen by the application. 

.B Multi-Head

When a window gets mapped, for whatever reason, it is 
usually given focus. But if the MapRequest event occurs 
on a different screen than the one you are working on, 
things could get confusing. I solved this by adding the 
following rules to how focus is assigned when windows 
open and close:

1. If the currently focused window is on the same 
screen, then the new window will get focus.

2. If the currently focused window is on a different 
screen, the new window will get focus only if the 
mouse pointer is on the same screen as the new window.

3. If no window is focused, a newly mapped window will 
get focus only if the mouse pointer is on the same 
screen as the new window.

4. If the focused window closes, focus will revert to 
another window, usually the window that was focused 
before the one that just closed. Focus will revert 
only if the mouse pointer is on the same screen as 
the window that closed.

I believe these rules will help eliminate most cases of 
having your keystrokes go to a window you did not 
intend to.

.B Atoms

The following atoms are created and monitored by larswm 
and can be used in third party tools:


Tells larswm to exit.


Tells larswm to restart, reloading the .larswmrc file.

When this is updated, the content of 
this atom is shown as text on the status bar until 
this atom is updated again. See larsclock for an 
example of how to use this.

.SH Compatibility

.B Terminal Windows

xterm windows might look like they 
are not redrawing correctly, but they are in fact. It 
is up to the program running inside it to detect 
window size changes and redraw the screen as 
necessary. One way to deal with this is to run screen 
inside the xterm, as it will handle resizing and 
redrawing correctly.

.B Size Hints

The PResizeInc and PMaxSize hints are 
honored. PMinSize is not, as it might have problems 
fitting all the windows in when tiling them.

.B Resizing Windows

For windows that do not cope well 
with being resized, you can disable automatic 
resizing on a particular desktop, making the windows 
in the right track be stacked on top of eachother 
instead. This can also be used for windows that 
resize slowly, like Netscape, to speed things up considerably.

.B Multi-Head Displays
It does work well with multi-head 
displays. One of my development systems is a 
dual-head Sun Ultra2 running Solaris 9, so this 
functionality has been tested quite alot. It 
currently behaves in a predictable manner when you 
switch focus between screens, move between desktops etc.

.B GTK Applications
Some GTK apps do not set 
WM_TRANSIENT_FOR correctly on their dialog boxes, and 
they also sometimes have a different class string on 
those subwindows, making things confused. The best 
way to deal with those kinds of problems is to 
specify both the class and instance of the top level 
windows you do want tiled.

.B Standards Compliance
At this time there is no 
GNOME/KDE/Motif/whatever compatibility. It follows 
the ICCCM as much as it can while still providing all 
the automatic functionality that it does.


Many thanks to David Hogan for writing 9wm and 
releasing it under such a license that I could use it 
as a base to build larswm on.

Here is the original license for 9wm:


9wm is free software, and is Copyright (c) 1994-1996 by David Hogan.
Permission is granted to all sentient beings to use this software,
to make copies of it, and to distribute those copies, provided that:

(1) the copyright and licence notices are left intact

(2) the recipients are aware that it is free software

(3) any unapproved changes in functionality are either

(i) only distributed as patches

or (ii) distributed as a new program which is not called 9wm
and whose documentation gives credit where it is due

(4) the author is not held responsible for any defects
or shortcomings in the software, or damages caused by it.

There is no warranty for this software.  Have a nice day.


Please consider my code to be under the same type of 
license as 9wm, inserting my name where appropriate.
larsremote(1), larsclock(1)
.I larswm
was created by Lars Bernhardsson <> by building on
.I 9wm
by David Hogan.
-------- FINE DI en/

-------- INIZIO DI it/
.TH larswm 1
larswm \- Window Manager con affiancamento automatico per X
.B larswm
.B \-display
.I dpy
] [
.B \-f
.I file
] [
.B \-defaults
] [
.B \-v
.I larswm
è un piccolo window manager per X. Quello che lo rende unico rispetto a molti window manager è l'affiancamento automatico delle finestre.
Sono supportate le seguenti opzioni a riga di comando:
.TP 18
.BI \-display " dpy"
specifica il display da far gestire a
.I larswm
.TP 18
.BI \-f " file"
specifica un file di preferenze da usare per la configurazione al posto di $HOME/.larswmrc.
.TP 18
.B \-defaults
stampa sullo standard output un file di risorse completo per
.I larswm
contenente tutte le opzioni e i loro valori predefiniti.
.TP 18
.B \-v
stampa la versione corrente sullo standard error ed esce.
.TP 18
.B $HOME/.larswmrc /etc/X11/larswmrc
questi due file sono cercati, nell'ordine indicato, quando parte
.I larswm

.SH Reperire e installare larswm

Sia i sorgenti sia gli RPMS sono disponibili presso

.B Normale installazione dai sorgenti

Dopo aver estratto i file sorgenti, compilare e installare
con i seguenti comandi:

xmkmf -a

make install

.B Costruire un RPMS

Se si usa RedHat e si è scaricata la versione 7.2.8
di larswm, si può costruire un RPMS lanciando il comando:

rpm -ta larswm-7.2.8.tar.gz

Quindi installare lo RPM i386 binario con:

rpm -Uvh /usr/src/redhat/RPMS/i386/larswm-7.2.8-1.i386.rpm

Con lo RPM vengono installati sample.larswmrc in
/etc/X11/larswmrc e sample.xsession in
/etc/X11/gdm/Sessiones/LarsWM, cosicché si può scegliere
dalla schermata di login. È pronto da usare da tutti
gli utenti senza ulteriore configurazione da parte loro, sebbene
molti vorranno probabilmente copiarsi larswmrc e
modificarselo secondo i loro gusti.

.SH Far funzionare le finestre dei terminali

Per far capire alle finestre dei terminali che esse stesse sono
state ridimensionate ed affiancate alla loro prima apertura, inserire
questa linea nel .cshrc o .bashrc:

eval `resize`

Questo assicura che saranno impostati i corretti numeri di
righe e colonne al momento dell'apertura.

.SH L'idea

Quando iniziavo a lavorare a larswm, avevo un po' d'idee che
penso siano importanti in un window manager. Sono le seguenti:

1. L'utente non dovrebbe spendere troppo tempo
arrangiando finestre sullo schermo, sprecando molto tempo
del lavoro che egli sta cercando di portare a termine.

2. Manipolazione diretta. Invece di accedere a finestre
e desktop attraverso rappresentazioni di questi, accederci
direttamente. Significa: Niente icona quando una finestra viene
ridotta a tale. Nessuna mappa grafica dei desktop virtuali;
larswm è abbastanza veloce da rendere preferibile, piuttosto, lo sfogliare
degli attuali desktop. Cosa molto rapida
e facile da farsi, specialmente se si ha un
mouse con rotella; e siccome le finestre sono affiancate l'una all'altra,
normalmente non s'impiega molto tempo a guardare il desktop per sapere
cosa c'è sopra. E dentro un desktop, affiancare è un
buon esempio di manipolazione diretta. Un modo comune di
avere a che fare con molte finestre sullo schermo, è
sovrapporle e selezionare quella che si vuole,
cliccando su una rappresentazione a forma di un bottone
sulla barra delle applicazioni. Comunque, larswm non ha bisogno di questo,
perché l'attuale finestra, quella con abbastanza contenuto
visibile per sapere qual è, è sempre visibile.

3. Nessun click millimetrico. Usare i bordi del monitor
per rendere facile la selezione con il puntatore del mouse.

4. Deve essere prevedibile. Se l'utente si meraviglia di come
il focus finisca su una finestra che egli non ha
cliccato, c'è qualcosa di sbagliato. larswm ha molto codice
che ha a che fare con il calcolo di dove il focus dovrebbe andare,
nel momento in cui si verificano differenti eventi.

5. Deve avere un feeling "solido". Parte di questo è
la velocità. Quando si cambia desktop oppure quando le finestre vengono
sistemate in giro, come risultato di essere state affiancate,
ebbene, tutto questo deve avvenire velocemente,
e parte di questo è la prevedibilità.

6. Il window manager non dovrebbe usare risorse di sistema
(tempo di CPU, memoria virtuale) di quanto strettamente
necessario a svolgere il compito di gestire finestre.
La GUI è minimale, fornisce
bordi attorno alle finestre, e la barra di stato ai
piedi dello schermo. Fornisce tutto il feedback usando
testo in chiaro sulla barra di stato.

7. Controllo di qualità. È stato controllato con Electric
Fence per trovare errori d'accesso di memoria e rifinito con
gprof. Per quanto sia stato in grado di sistemare qualsiasi cosa che
ho trovato con questi strumenti, purtroppo non sono un
esperto d'informatica senior e
sono sicuro che alcune cose potrebbero essere fatte meglio.
In ogni caso, funziona, e in circostanze normali funziona
usando il minimo delle risorse di sistema.

.SH Terminologia

Alcune terminologie sono uniche a larswm mentre altre sono
prese in prestito dai design di altre GUI.

.I Screen

Schermo. Il monitor, fisicamente. Normalmente larswm può usare
fino a 4 monitor. Questo limite si modifica nel file dat.h.

.I Virtual Desktop

Desktop virtuale. Ogni schermo è diviso, idealmente,
in un massimo di 16 aree di lavoro. Una finestra è
di solito visibile in una di queste aree di lavoro.

.I Sottodesktop

Ogni desktop virtuale è logicamente 
diviso tra due sottodesktop. Come primo, abbiamo finestre
normali e non affiancate. Queste sono gestite in maniera
comune a molti altri window manager. Secondo, abbiamo i
sottodesktop con affiancamento, dove non è permessa la sovrapposizione
tra finestre. È molto rapido passare tra l'insieme di finestre
con o senza affiancamento; basta un tasto o
un clic del mouse.

.I Track

Sezione. Nel sottodesktop con affiancamento le finestre giacciono
in due sezioni distinte. La sezione di sinistra occupa i
2/3 dello schermo mentre la destra occupa il resto. Il rapporto può
essere cambiato dinamicamente attraverso tasti di scelta rapida e si può
impostare un diverso valore predefinito nel file .larswmrc.
La sezione di sinistra contiene sempre una finestra che la riempie
da cima a fondo, mentre la destra contiene le altre finestre
opportunamente ridimensionate. Ci sono tasti di scelta rapida per far sì
che ogni finestra della sezione destra sia espansa e spostata nella
sezione di sinistra, mentre la finestra che era nella sezione sinistra viene
ristretta e disposta in alto nella sezione di destra.

.I Status Bar

Barra di stato. La barra di stato ha due funzioni. Primo,
come dice il nome, mostra messaggi di stato. Questi comprendono
il titolo della finestra che ha il focus, il desktop virtuale
prescelto, contrassegni che mostrano quali modi sono impostati
nel desktop virtuale corrente e un messaggio definito dall'utente,
che è utilizzato dall'applicazione-orologio di esempio per
mostrare data ed ora attuali. Secondo, c'è un grane bottone
che può essere cliccato per eseguire varie funzioni. È facile
da individuare, dal momento che bisogna muovere il mouse
in fondo allo schermo, senza bisogno di puntarlo in maniera

.I Tool

Strumento. Una speciale tipo di finestra che appartiene al
sottodesktop non affiancato, ma che comunque rimane affiancata. È
visibile su tutti i desktop virtuali. Usata per cose
come orologi e misuratori di risorse.

.I Select Zoom

Ingrandisce una finestra cosicché il rapporto altezza/larghezza
è lo stesso di un foglio dimensione "US letter" e in più
centrato sullo schermo. Oltre a volere le finestre
affiancate, questa era l'operazione di spostamento/ridimensionamento
più comune che usavo, prima che la automatizzassi.

.SH Una sessione di prova

Quel che segue presuppone che si usino i file di configurazione
sample.xsession e sample.larswm inclusi nei sorgenti
e nei file RPM. Se si ha installato lo RPM su un sistema RedHat
con GDM come gestore di login (predefinito), tutto quello
che c'è da fare è selezionare la sessione LarsWM dallo
schermo di login per usare larswm con questa configurazione.
Dopo essere entrati, si vedrà un desktop grigio e vuoto. Ai
piedi dello schermo c'è la barra di stato, e nell'angolo
in basso a destra ci sono due piccole finestre (xload e
xbiff) che nella configurazione predefinita sono impostate
come finestre strumento (tool). Cioè, sono visibili in
tutti i desktop virtuali e non dovrebbero essere coperte
da finestre che sono piazzate automaticamente nel
sottodesktop con affiancamento.

.B Lavorare con finestre affiancate

Premere i tasti Shift-Control-Info Questo aprirà una nuova
finestra terminale. Notare che occupa i 2/3 sinistri
dello schermo. Scrivere qualcosa in questa finestra e premere
di nuovo Shift-Control-Invio La prima finestra è spostata
ed incastrata nella sezione destra, mentre il nuovo xterm
occupa la sezione più grande sulla sinistra. Notare che
le due finestre strumento (xload e xbiff) non sono
state ricoperte.

Premere Shift-Control-Invio ancora una volta e si noterà
come le due finestre precedenti si trovino nella sezione destra,
utilizzando ognuna metà dello spazio.

Premere adesso Control-Tasto1 sulla prima finestra che è stata aperta,
dovrebbe essere lo xterm appena sopra le finestre strumento
nella sezione destra. Questo metterà quella finestra nella
sezione sinistra e la precedente finestra della sezione sinistra
in cima alla sezione destra.

Questo è tutto quello di cui si ha bisogno per non allineare
mai più manualmente i propri xterm!

.B Lavorare con finestre non affiancate

Per scopi dimostrativi, possiamo usare xlogo. Normalmente
la window class di xlogo non è impostata per essere affiancata,
quindi sarà aperto nel sottodesktop senza affiancamento,
separato da tutti gli xterm. Nell'xterm con il focus,
digita xlogo e premere Invio. La finestra di xlogo dovrebbe
apparire in mezzo allo schermo sopra la finestra affiancata.
Se si necessita di passare dalle finestre affiancate a quelle non,
si può usare Shift-Control-Backspace.
Premerlo due volte di seguito ed osservare come xlogo venga
prima nascosto dietro le xterm affiancate e quindi riportato
nuovamente di fronte. Se hai più finestre non affiancate
aperte, saranno tutte ridotte e ripristinate insieme.

.B Spostare finestre in aree predefinite

Si possono spostare finestre non affiancate in 9 differenti aree
predefinite sullo schermo con un sol colpo di tasto. Con
la finestra di xlogo selezionata, premere Shift-Control-Tn_6. La
finestra di xlogo dovrebbe attaccarsi al lato destro dello
schermo, a metà altezza, proprio così come il 6 sul tastierino numerico
si trovi piazzato fra i tasti da 1 a 9.
Premere Shift-Control insieme con ogni numero sul tastierino
numerico per vedere le locazioni. Quando si finisce, lasciare la
finestra nel lato destro al centro (Shift-Control-Tn_6).

.B Select zooming

Con la finestra xlogo selezionata ed in una parte dello
schermo, premere Shift-Control-Spazio. Notare come venga
centrata e ridimensionata per rendere più comodo lavorarci.
Quando vengono premuti di nuovo Shift-Control-Spazio, essa è riportata
al suo posto e la sua dimensione precedenti. Questo può essere usato
come alternativa all'affiancamento, se si hanno alcune finestre
che si vuole gestire principalmente da sole, ma per le quali
si vuole un sistema veloce per concentrarsi su una.

.B Usare il mouse per spostare e ridimensionare finestre

Con la finestra di xlogo selezionata ma non ingrandita,
spostare il mouse sopra la barra di stato, in qualsiasi
posizione, e premere Shift-Alt-Tasto1. Il puntatore del mouse
sarà portato nell'angolo in alto a sinistra della finestra
e si potrà portare la finestra a spasso muovendo il mouse.
Per piazzare la finestra, rilasciare il bottone del mouse.
Spostare xlogo da qualche parte vicino l'angolo
in alto a sinistra dello schermo.

Ora, con il mouse nella barra di stato, tenere premuti
Shift-Control-Alt-Tasto1. Il puntatore del mouse verrà
spostato nell'angolo in basso a destra della finestra di
xlogo e spostando il mouse, si sposta la finestra.
Per impostare la dimensione, rilasciare il bottone.

.B Spostare una finestra tra sottodesktop

Assicurarsi che la finestra di xlogo sia selezionata e quindi premere
Shift+Alt+Spazio. xlogo dovrebbe adesso essere affiancato
e selezionato nella sezione sinistra. Se si preme Shift+Alt+Spazio
ancora, tornerà ad essere non affiancato e le altre finestre
affiancate si sposteranno per riempire lo spazio vacante nella
sezione sinistra. Quando una finestra è stata affiancata e
spostata nel sottodesktop non affiancato, gli è data una
dimensione generica ed una posizione che è a metà dell'altezza
e larghezza, oltre ad essere centrata.

.B Lavorare con desktop virtuali

Precedentemente si è usato soltanto il primo desktop.
Il modo per passare da un desktop all'altro è facile.
Shift-Control-Sinistra e Shift-Control-Destra sulla tastiera
porteranno avanti e dietro tra i desktop. Premere
Shift-Control-Destra quattro volte. Notare come l'etichetta
della barra di stato cambia per mostrare quale desktop è
attivo. Normalmente ci sono quattro desktop virtuali per
ogni schermo, cosicché ora si dovrebbe essere ritornati al
primo desktop.

.B Usare la rotella del mouse

Con larswm, la rotella del mouse può essere usata per
un po' d'operazioni. Una delle più comuni è cambiare
desktop virtuale. Questo si può fare spostando il puntatore
nella status bar, oppure su una qualsiasi finestra senza
focus e girare la rotella su e giù. Raccomando di
spostare il puntatore nella barra di stato perché quando
si cambia desktop virtuale una finestra con focus potrebbe
finire sotto il puntatore del mouse e quindi il
successivo girare della rotella potrebbe non
cambiare desktop ma essere inviato a quella finestra.

Si può usare la rotella del mouse anche per spostare
e ridimensionare velocemente le finestre. Con xlogo
selezionato, spostare il puntatore nella barra di stato
e tenere premuti Shift-Alt contemporaneamente al muovere la rotella,
per poter così spostare la finestra sul piano orizzontale.
Se si tengono premuti Shift-Control-Alt si sposterà la
finestra su e giù e con Shift-Control si può ingrandire
e rimpicciolire la finestra.

Se si ha più di una finestra aperta, tenere premuto Shift
mentre si muove la rotella per passare il focus ad ogni
finestra rispettivamente. Per provarlo adesso, passare
al sottodesktop affiancato cliccando su una qualsiasi degli xterm
affiancati, quindi spostare il puntatore del mouse sulla
barra di stato, tenere premuto il tasto shift e muovere
la rotella del mouse.

Tutto ciò non è molto intuitivo, ma molto veloce una volta
che si ha imparato le combinazioni dei tasti Shift, Control
ed Alt per fare queste cose.

.SH Sistema di menu per la barra di stato

La barra di stato è usata per un semplice sistema a menu.
Con il puntatore sulla barra di stato, tenere premuto Control
e cliccare Tasto1 e Tasto3, oppure muovere la rotella
su e giù per scorrere le voci di menu.
Control-Tasto3 seleziona la voce di menu corrente, normalmente
commuta una impostazione di un desktop o di una finestra.

Se invece del Control si tiene premuto il tasto Alt, si può
scorrere la lista delle finestre ridotte ad icona e Alt-Tasto2
ridimensiona la finestra selezionata.

.SH Cose che si possono configurare

Si può modificare moltissimo (ma non tutto!) riguardo al comportamento
di larswm, modificando il proprio file .larswmrc e mettendolo
nella propria home directory.

.B Impostazioni predefinite

Inclusa nei file di distribuzione c'è nè uno chiamato
sample.larswmrc che si può usare come punto di partenza
per una propria configurazione. Quando è installato un RPM,
questo file si trova anche a /etc/X11/larswmrc

.B Lista completa delle parole chiavi per la configurazione

Un'altro modo per ottenere un .larswmrc predefinito è quello
di lanciare larswm con l'opzione -defaults. Questo stamperà tutte le
possibili opzioni con i loro valori predefiniti impostati, tutto
quello che si deve fare è di togliere i commenti e modificare le
righe che si desidera cambiare. Piuttosto che riportarlo qui,
si può creare, nella versione aggiornata, lanciando il comando
larswm -defaults e redirezionarlo ad un file.

.B Risorse indicizzate

Nel sample.larswmrc tutte voci che finiscono in un numero,
sono risorse indicizzate. Il numero deve essere compreso tra
0 e 63 e deve essere unico con ogni tipo di risorsa.

.B Multi-head

Più monitor. Quando si specifica un'opzione che influenza
solamente uno dei desktop virtuali, si può limitare anche
ad uno specifico monitor. Per esempio, larswm.0.0.dtname: Uno
nominerebbe il primo desktop virtuale solamente nel primo
monitor. Per motivi di precedenze si può impostare una
opzione per tutti i desktop in un modo, quindi specifici
desktop in un'altro. I modi per specificare schermi e desktop
sono, in ordine di precedenza:

.I larswm.S.D.resource

Riguarda solo il desktop D sullo schermo S.

.I larswm.S.?.resource

Riguarda tutti i desktop sullo schermo S.

.I larswm.?.D.resource

Riguarda solo il desktop D su tutti gli schermi.

.I larswm.?.?.resource

Riguarda tutti i desktop su ogni schermo.

.I larswm*resource

Un altro modo per specificare tutti i desktop su ogni schermo.

Com'esempio, se si vuole che tutti i desktop, tranne
il primo sul secondo monitor, non ridimensionino finestre che
sono affiancate, bisogna inserire la riga seguente nel proprio .larswmrc:

larswm*tile_resize: false

larswm.1.0.tile_resize: true

C'è bisogno della prima riga perché il comportamento predefinito è
di ridimensionare le finestre.

.SH Riferimenti per mouse e tastiera

Inclusi nei sorgenti e nella distribuzione RPM ci sono due
cartoline di riferimento in formato tbl. Possono essere viste
usando i seguenti comandi:

gtbl | groff -TX75

gtbl | groff -TX75

.SH La barra di stato

La finestra lungo i piedi dello schermo è la barra di stato.
Sulla sinistra c'è il titolo della finestra con il focus e
sulla destra c'è un'area di stato (status area).

.B Contrassegni di modo

Fra l'etichetta del desktop virtuale ed il messaggio definibile
dall'utente (ora e data nell'impostazione predefinita) c'è un
insieme di contrassegni scritti in maiuscolo [TCRSBH]. Essi
indicano quanto segue:

.IB T " Sottodesktop"

T per affiancato (tiled) oppure U per non affiancato (untiled).

.IB C " Clickthru"

Determina se, nel caso in cui si clicchi su una finestra senza focus,
bisognerebbe dargli il focus e far agire il clic nel client
oppure solamente dare il focus e basta. C significa far
agire il clic nel client.

.IB R " Tile Resizing"

Ridimensionamento per l'affiancamento automatico.
Determina se le finestra siano ridimensionate oppure no.
R significa che saranno ridimensionate. Altrimenti, esse
saranno solamente impilate nella sezione destra, ognuna con
visibile l'angolo in alto a sinistra.

.IB S " Skip Focus"

Determina se dando il focus ad una finestra della sezione destra,
questa venga fatta saltare nella sezione sinistra. S significa no, bisogna
premere Control-Tasto1 per farla saltare. Se spento si può
usare Control-Tasto1 per rimanere una finestra al suo posto mentre
prende il focus.

.IB B " Big Move/Resize"

Determina i comandi da tastiera e dalla rotella del mouse,
per spostare e ridimensionare finestre, dovrebbero lavorare
un punto per volta oppure al 5% della larghezza/altezza per volta.

.IB H " Hidden Windows"

Finestre nascoste. Whether any windows are hidden 
(iconified) on any screens.
Esiste perché non ci si dimentichi riguardo loro, dal momento che
larswm non ha rappresentazioni visuali di finestre ridotte ad icona.

.B Contrassegni dei modi di finestra

La barra di stato mostra anche la classe e l'istanza della finestra,
nel formato (Classe~Istanza). Appena sulla destra c'è una altro
insieme di contrassegni scritti in minuscolo [ntfs] che significano:

.IB n " Notile"

Non affiancato. La finestra appartiene al sottodesktop non affiancato.

.IB f " Floating"

Fluttuante. La finestra rimane sempre sopra le altre che non lo sono.

.IB t " Tool"

Strumento. Le altre finestre vengono affiancate ad essa, non sopra.

.IB s " Sticky"

Appiccicata. La finestra è visibile su tutti i desktop virtuali.

.B Messaggi definibili dall'utente

Volendo, è possibile mettere qualsiasi messaggi si desideri
nell'estrema parte destra della barra di stato. Questo può
essere usato per cose come orologi, allarmi di posta, stock ticker,
eccetera. Incluso nella distribuzione c'è un piccolo esempio
d'orologio chiamato larsclock. Viene fatto partire dallo script
di sessione predefinito.

Se non si lancia larsclock si può impostare il messaggio
da un qualsiasi script di shell con il comando larsremote message TEXT,
che dovrebbe mostrare TEXT nella barra di stato.
Guarda il file sample.barclock per un esempio a riguardo.

.SH Tipi di finestra

Segue una descrizione più dettagliata dei differenti modi
che larswm può associare ad una finestra.

.B Finestre temporanee

Finestre che hanno la proprietà WM_TRANSIENT_FOR impostata
non vengono affiancate. Quando una finestra temporanea prende il
focus, larswm la farà rimanere davanti e con il focus.
Se si da il focus ad una finestra principale differente mentre
quelle temporanee sono disegnate, queste saranno lasciate
da sole, al di sotto delle altre finestre e non saranno
ripristinate fino a che non si darà il focus alla loro
finestra principale.

Per dare il focus alla finestra principale senza che
una delle sue temporanee prenda il focus automaticamente,
usare Control-Tasto1.

Quando una finestra temporanea viene all'inizio disegnata,
rimarrà sempre visibile, indipendentemente da quale desktop
si stia vedendo.
La finestra temporanea verrà assegnata al desktop dove la
finestra padre (parent window), sebbene, al momento di cambiare desktop,
essa verrà mostrata solamente sul desktop virtuale dove
risiede la finestra padre.

.B Finestre non affiancate

Ogni finestra non affiancata è assegnata al sottodesktop
senza affiancamento. Queste finestre sono completamente separate
dal sottodesktop con affiancamento. Il sottodesktop senza
affiancamento funziona più o meno come un window manager
tradizionale ma aggiunge un po' di scorciatoie con la
tastiera per muovere finestre in differenti parti dello
schermo o per fare lo zoom in entrambe le dimensioni.

larswm non affiancherà una finestra, a meno che la sua
classe/istanza non venga trovata nella lista larswm.dotileclass.

Per passare da un proprio desktop con affiancamento ad
uno senza, si usa una scorciatoia con la tastiera che
normalmente consiste in Shift-Control-BackSpace.

Quando una finestra è assegnata per la prima volta
al sottodesktop senza affiancamento,
questa viene centrata sullo schermo, a meno che essa abbia
la sua posizione registrata negli hints, nel qual caso
viene usata quella posizione invece di essere centrata.

.B Finestre flottanti

Le finestre flottanti (floating) rimangono sempre davanti
a quelle non-flottanti, indipendentemente da quale sottodesktop
è attivo. Questo può essere usato per piccole finestre, come
xcalc, che uno vuole sempre siano accessibili. Se clickthru
è attivo, i clic verranno girati alla finestra flottante
indipendentemente da quale sottodesktop era attivo prima del clic.

.B Sticky windows

Finestre appiccicate. Le finestre sticky sono finestre che
corrispondono alla classe e istanza di una voce della
lista larswm.stickyclass. Esse sono sempre visibili indipendentemente
da quale desktop ci si trovi.

.B Tools

Strumenti. Sono finestre che si vuole avere sempre visibili. Esempi
di strumenti sono xclock, xload ed altre piccole finestre
informative. Quando una finestra sarà stata identificata come
finestra strumento, verrà assegnata al desktop non affiancato,
sarà di tipo sticky e le finestre non affiancate non la copriranno.
Inoltre, se clickthru è attivo, qualsiasi clic sulla finestra strumento
sarà inoltrato al client, indipendentemente dal sottodesktop attivo
prima del clic.

.SH Note tecniche

Un po' più di dettagli su come larswm fa le cose.

.B Affiancamento automatico

Ogni qualvolta una finestra viene tracciata o tolta,
oppure (se skip_focus è spento) si da il focus ad una nuova
finestra nel sottodesktop non affiancato cliccandoci sopra,
accade quanto segue:

1. Viene calcolata la larghezza delle due sezioni. Questo è
predefinito così che la sinistra usi 2/3 della larghezza dello
schermo ma può essere configurato nel file .larswmrc.

2. Vengono calcolate quante finestre dovrebbero esserci
in ogni sezione, una in quella sinistra ed il resto in quella destra.

3. L'altezza d'ogni finestra, in ogni rispettiva sezione, viene calcolata.

4. Si scorre la lista di tutte le finestre e le piazza
nei posti designati.

5. Le finestre temporanee della finestra corrente sono
messe ricorsivamente davanti così che non si perderà più
una dialog box sotto la propria finestra principale.

6. Alla fine di tutto, ritorna il controllo alla gestione degli eventi.

Questo è molto carino.
Quando si clicca su una finestra inattiva nella sezione destra, essa
verrà spostata nella sezione sinistra e la finestra che era lì verrà
appoggiata in altro nella sezione destra. Per cui la sezione destra
conterrà le finestre nell'ordine in cui erano nella sezione di
sinistra, iniziando dalla più recente.

.B Associare finestre con un desktop virtuale

Si possono associare certe classi/istanze di finestra ad
un certo numero di un desktop virtuali aggiungendo risorse
al proprio .larswmrc.

Un esempio di come associare tutte le finestre di Netscape
con il secondo desktop virtuale:

larswm.dtclass.0: Netscape

larswm.dtnum.0: 1

Quando viene aperta una qualsiasi finestra di Netscape, larswm
cambierà prima al desktop specificato e quindi traccerà la

.B Finestre nascoste

larswm riduce ad icona le finestre nascondendole.
Per svelare una finestra nascosta bisogna prima trovare
la sua etichetta usando la barra di stato. Si prega di
leggere la sezione riguardo l'uso dei menu nella barra di
stato per informazioni su come funziona.

Si può spostare una finestra tra desktop nascondendola,
cambiando desktop ed infine svelando la finestra.
Non si possono spostare finestre tra schermi in questo modo
perché X11 non lo supporta.

Il miglior modo per usare nascondere le finestre è attraverso
le scorciatoie di tastiera. Si può nascondere la finestra con
focus e svelare l'ultima finestra nascosta senza usare per niente
il mouse. Questo rende un metodo veloce per spostare una finestra
da un desktop virtuale ad un altro.

.B Gestione del focus

Per cambiare il focus ad una finestra, bisogna solamente
cliccare col tasto sinistro, e se skip_focus è spento quella
finestra andrà nella sezione sinistra e quella che era lì verrà
posta in cima alla sezione destra.

Se si è impostato di mettere automaticamente le finestre con il focus
nella sezione sinistra, si potrebbe aver bisogno
di scrivere qualcosa in una delle finestre affiancate
senza reimpostare tutte le finestre, e per fare ciò si usa
Control-Tasto1 su una finestra. Il focus cambierà,
ma tutte le finestre rimarranno dove sono. Questo previene
anche il fatto che le finestre temporanee possedute dall'applicazione,
vengano portate avanti e prendano il focus.

Se si ha questo nella modalità predefinita, quando si seleziona
una nuova finestra, che per avere il focus non debba essere spostata
nella sezione sinistra, si usa Control-Tasto1.

.B Clickthru

Quando si clicca su una finestra per dargli il focus, quel clic
viene anche passato al client. Questo rende più facile lavorare
con un'applicazione a più finestre. Si può disattivare
questa cosa, in tal caso il clic usato per dare il
focus ad una finestra non verrà mai passato all'applicazione.

.B Multi-Head

Quando una finestra viene tracciata sullo schermo, per una
qualsiasi ragione, ad essa viene normalmente dato il focus.
Ma se arriva l'evento MapRequest su uno schermo differente
da quello su cui si sta lavorando, le cose si confondono.
Ho risolto questo aggiungendo le seguenti regole su come
il focus è assegnato quando le finestre vengono aperte
è chiuse:

1. Se la finestra con il focus è sullo stesso
schermo, allora la nuova finestra prenderà il focus.

2. Se la finestra con il focus è su uno schermo differente,
la nuova finestra prenderà il focus solo se il
puntatore del mouse è sullo stesso schermo dell'altra.

3. Se nessuna finestra ha il focus, una nuova finestra
tracciata prenderà il focus solo se il puntatore del mouse
è sullo stesso schermo della nuova finestra.

4. Se la finestra col focus si chiude, il focus torna ad
un'altra finestra, normalmente quella che aveva il focus
prima che l'altra venisse chiusa. Il focus verrà ritornato
solo se il puntatore del mouse è sullo stesso schermo
della finestra appena chiusa.

Spero che queste regole aiuteranno ad eliminare molti di quei casi
in cui la pressione dei tasti porta ad una finestra che non si

.B Atomi

I seguenti atomi sono creati e monitorati da larswm
e possono essere usati in strumenti di terze parti:


Chiude larswm.


Fa ripartire larswm, ricaricando il file .larswmrc.

Quando questo viene aggiornato, il contenuto di
quest'atomo è mostrato come testo nella barra di stato fino a quando
l'atomo non viene nuovamente aggiornato. Vedere larsclock per
un esempio su come usarlo.

.SH Compatibilità

.B Finestre terminali

Le finestre di xterm potrebbero apparire non correttamente
ridisegnata ma in realtà no. Dipende dal programma che gira
nella finestra determinare i cambiamenti della dimensione
della finestra e ridisegnare sullo schermo quando necessario.
Un modo di risolvere è quello di far girare screen all'interno
di xterm perché gestisce correttamente il ridimensionamento e
il ridisegno.

.B Hint per le dimensioni

Gli hint PResizeInc e PMaxSie sono gestiti.
PMinSize no, perché potrebbe avere problemi
inserendo tutte le finestre durante il loro affiacamento.

.B Ridimensionare le finestre

Per finestre che non funzionano bene nell'essere ridimensionate,
si può specificare il ridimensionamento automatico su particolari
desktop, rendendo le finestre nella sezione destra accavallate una
sopra l'altra. Questo può essere anche usato per finestra che
si ridimensionano lentamente, come Netscape, per poter
velocizzare notevolmente le cose.

.B Display Multi-Head
Lavora bene con display multi-head (a più monitor).
Uno dei miei sistemi di sviluppo è una Sun Ultra2
dual-head (cioè con due monitor, Ndt), cosicché questa
funzionalità è stata testata abbastanza. Funziona
in maniera prevedibile quando si cambia il focus
tra schermi, spostarsi tra desktop, eccetera.

.B Applicazioni GTK
Alcune applicazioni GTK non impostano correttamente
WM_TRANSIENT_FOR nelle loro finestre di dialogo ed a volte
hanno una classe differente in queste sottofinestre,
rendendo le cose confuse. Il miglior approccio con questo
tipo di problemi è di specificare entrambi le classi ed
istanze per le finestre principali che si desiderano

.B Conformità agli standard
Al momento non c'è compatibilità per
GNOME/KDE/Motif/altro. Rispetta ICCCM il meglio possibile
fornendo allo stesso tempo tutte le funzionalità
automatiche che può.


Ringraziamenti vanno a David Hogan per aver scritto 9wm ed
averlo rilasciato con una licenza tale che ho potuto
usarlo come base per costruirci larswm sopra.

Segue la licenza originale di 9wm:


9wm is free software, and is Copyright (c) 1994-1996 by David Hogan.
Permission is granted to all sentient beings to use this software,
to make copies of it, and to distribute those copies, provided that:

(1) the copyright and licence notices are left intact

(2) the recipients are aware that it is free software

(3) any unapproved changes in functionality are either

(i) only distributed as patches

or (ii) distributed as a new program which is not called 9wm
and whose documentation gives credit where it is due

(4) the author is not held responsible for any defects
or shortcomings in the software, or damages caused by it.

There is no warranty for this software.  Have a nice day.

(Segue traduzione in italiano a titolo puramente informativo N.d.T)

9wm è software libero ed è Copyright (c) 1994-1995 di David Hogan.
È permesso a tutti i senzienti l'uso di questo software, di farne
copie e distribuire queste cose a patto che:

(1) il copyright e le note di licenza rimangano intatte

(2) i recapitati siano consapevoli che si tratta di software libero

(3) verranno fatte modifiche senza avvertimento nei modi:

(i) distribuite solo come patch

oppure (ii) distribuite come un nuovo programma che non sia chiamato
9wm e la cui documentazione fornisce credito dove necessario

(4) l'autore non è ritenuto responsabile per difetti o imperfezioni
del software o danni causati dallo stesso.

Non c'è garanzia per questo software. Buona giornata.


Si prega di considerare il mio codice accompagnato dallo stesso tipo
di licenza di 9wm, inserendo appropriatamente il mio nome.

larsremote(1), larsclock(1)
.I larswm
è stato creato da Lars Bernhardsson <> basandosi su
.I 9wm
di David Hogan.
-------- FINE DI it/

-------- INIZIO DI en/
c s s s s s
c s s s s s
c c c c c c
l l l l l l.
larswm Mouse Reference (Button4 = wheel up, Button5 = wheel down)
Clicks on the Status Bar
Modifier	Button1	Button2	Button3	Button4	Button5
None	Prev Desktop	Subdesktop	Next Desktop	Prev Desktop	Next Desktop
Shift				Prev Window	Next Window
Control	Prev Menu	Select Menu	Next Menu	Prev Menu	Next Menu
Alt	Prev Hidden	Hide/Unhide	Next Hidden	Prev Hidden	Next Hidden
Shift-Control	Shrink	Select Zoom	Grow	Grow	Shrink
Shift-Alt	Move Window			Move Up	Move Down
Shift-Control-Alt	Resize Window	Lower Window	Zoom Window	Move Left	Move Right
c s s s s s
c c c c c c
l l l l l l.
Clicks on Unfocused Windows
Modifier	Button1	Button2	Button3	Button4	Button5
None	Focus				
Control (tiled)	Focus and Raise				
-------- FINE DI en/

-------- INIZIO DI it/
c s s s s s
c s s s s s
c c c c c c
l l l l l l.
Riferimenti al mouse per larswm (Tasto4 = ruotare sù, Tasto5 = ruotare giù)
Clic sulla barra di stato
Modificatore	Tasto1	Tasto2	Tasto3	Tasto4	Tasto5
Nessuno	Desktop prec.	Sottodesktop	Desktop succ.	Desktop prec.	Desktop succ.
Shift				Prev Window	Next Window
Control	Menù prec.	Seleziona Menù	Menù succ.	Menù prec.	Menù succ.
Alt	Nascosta prec.	Nascondi/Svela	Nascosta succ.	Nascosta prec.	Nascosta succ.
Shift-Control	Rimpicciolisce	Select Zoom	Ingrandisce	Ingrandisce	Rimpicciolisce
Shift-Alt	Sposta Finestra			Sposta Sù	Sposta giù
Shift-Control-Alt	Ridimensiona F.	Iconizza F.	Zoom F.	A Sinistra	A Destra
c s s s s s
c c c c c c
l l l l l l.
Clic su finestra senza focus
Modificatore	Tasto1	Tasto2	Tasto3	Tasto4	Tasto5
Nessuno	Focus				
Control (affiancato)	Dà Focus ed Alza				
-------- FINE DI it/

-------- INIZIO DI en/README
* larswm - Lars Window Manager *


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?

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

gtbl | groff -TX75
gtbl | groff -TX75

How do I compile and install it?

xmkmf -a
make install

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.


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 and
files for a complete list of all larswm commands.

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

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

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

xmodmap /path/to/file
exec larswm

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:

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

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


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

Lars Bernhardsson
-------- FINE DI en/README

-------- INIZIO DI it/README
* larswm - Lars Window Manager *


Questo non è veramente un nuovo window manager ma piuttosto una
versione pesantemente modificata di 9wm di David Hogan.
Si prega di leggere il file README.9wm per la licenza originale
di David. Nel rispetto dei termini della sua licenza, rilascio
sotto un differente che 9wm.

Questo è attualmente molto più larswm che 9wm al giorno d'oggi.
Sono partito con pre-9wm-1.2, il quale consiste di 2901 linee di
codice. larswm ha adesso 6416 righe di codice. Molto del codice
di 9wm è stato reimplementato per migliorare le richieste di
design di larswm e molto del codice di 9wm rimane lì, molto del
quale è stato modificato in qualche altra maniera.

Dove posso trovare nuove versioni? Dopo posso trovare più documentazione?

Guarda anche i file e
che contengono tabelle di informazioni utili.
Questi sono in formato troff/tbl e puoi vederli se hai installato
groff, digitando:

gtbl | groff -TX75
gtbl | groff -TX75

Come posso compilarlo ed installarlo?

xmkmf -a
make install

Compilare con gcc sotto Solaris:

Non ho Sun C installato, solo gcc. Per far funzionare l'Imakefile con
l'installazione predefinita di X11 in /usr/openwin ho dovuto aggiungere
un po' di linee in cima all'Imakefile.
Se si hanno problemi a compilare su Solaris, provare ad modificarle/


Si prega di vere il file Changelog nella distribuzione dei sorgenti
per un elenco dei cambiamenti fin dalla versione 1.0.


Problemi noti:

Quando si aprono gli xterm, questi qualche volta pensano siano 80x24
anche se sono stati affiancati con altre dimensioni.
Soluzione: mettere questa riga nel proprio .bashrc o .cshrc

	eval `resize`


Other issues:

1. Le scorciatoie da tastiera non lavorano quando uno qualsiasi dei modificatori
   è attivo. Questo vuol dire che se si configura una scorciatoia come
   Control-Alt-x, allora questa non funziona se ShiftLock, NumLock o ScrollLock
   è attivo.
        Workaround:     Se il più delle volte si ha NumLock acceso, si
			possono configurare tutte le scorciatoie per
			includere il modificatore Mod2. Cioé, si si vuole
			usare Alt-Tab per andare alla finestra precedenti,
			invece di
                        larswm.prev_window_key: Tab
                        larswm.prev_window_mod: Alt
			cambiare l'ultima riga in
                        larswm.prev_window_mod: Mod2+Alt
			Adesso non funzionerà con NumLock è spento, quindi
			fare questo solamente se NumLock è accesso il più
			delle volte.
			I nomi dei modificatori per i quali vorresti fare
			ciò sono:
                                Tasto           Simbolo
                                CapsLock        ShiftLock
                                NumLock         Mod2
                                ScrollLock      Mod5

Opzioni a riga di comando:

-display display        Apre un display differente da quello predefinito.

-f file                 Carica «file» invece di $HOME/.larswmrc

-defaults               Stampa un larswmrc propriamente formattato sullo stdout.

-v                      Mostra le informazioni sulla versione ed esce.

Comandi da mouse e tastiera:

Si prega di leggere i file inclusi e
per una lista completa di tutti i comand di larswm.

Per far funzionare i collegamenti KP_ (tastierino numerico NdT)
con una tastiera Sun, io uso questo file xmodmap:

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

Mettere questo in un file da qualche parte e caricarlo dal proprio
.xsession PRIMA di lanciare larswm:

xmodmap /percorso/al/file
exec larswm

Se si sta usando un altro tipo di tastiera ed il tastierino numerico
non sembra funzionare, usare "xev" per trovare i codici dei tasti per
ogni tasto e quindi assegnarli.

File di configurazione:

Per una descrizione approfondita, vedere la documentazione reperibile
presso la home page di larswm.

Si può generare un file .larswmrc completo con tutti i valori predefiniti
compilati eseguendo quanto segue:

larswm -defaults > .larswmrc

Ricordarsi di togliere i commenti alle line che si vorranno modificare. :)

Inclusa nel pacchetto sorgente (e nello RPM) la mia propria
configurazione nel file sample.larswmrc che mostra come si possa
impostare l'affiancamento automatico per un po' di applicazioni
senza editare troppo il file di configurazione.

Status bar info:
Informazioni sulla barra di stato:

Il file sample.barclock è un piccolo esempio, applicabile per un
portatile non connesso alla rete. Mostra ora e data e stato delle
batterie sulla barra di stato. larsclock è un altro semplice
orologio, stavola scritto in C, che fa uso delle funzioni ipc di
X11 direttamente (nessuna fork()/exec() a larsremote per
inviare messaggi).

Il file sample.xsession mostra come si può far partire questo
programma in fase di login ed ucciderlo in fase di logout.

New source files:
Nuovi file sorgenti:

tiling.c	- contiene tuttla la logica per positionare le
		  le finestre ed un sacco di altre cose ho aggiunto
		  a 9wm.

prefs.c		- contiente il codice per gestire le preferenze.
		  Usa Xrm per leggere file di risorse.
keys.c		- Tasti scorciatoia.

bar.c		- La barra di stato ai piedi dello schermo.

buttons.c	- Questo è il mio rimpiazzo per menu.c

mouse.c		- Questo è il mio rimpiazzo per grab.c

larsremote.c	- Programma esterno che si usa per mostrare
		  messaggi sulla barra di stato e dire a larswm
		  di terminare o ripartire.

larsclock.c	- Esempio molto semplice di come scrivere una
		  applicazione orologio per la barra di stato che
		  funziona senza chiamare un programma esterno ogni
		  secondo per aggiornare il messaggio.


Si prega di leggere il file README.9wm per la licenza originale di
David Hogan per 9wm [1]
Lo stesso tipo di licenza si applica a larswm.

Lars Bernhardsson

[1] Per la traduzione italiana, a scopo puramente informativo, vedere
la pagina man di larswm(1) NdT.
-------- FINE DI it/README

-------- INIZIO DI en/
.TH larsclock 1
larsclock \- Status bar clock for larswm
.B larsclock
.B \-display
.I dpy
.I larsclock
is a minimal status bar clock application for the larswm window manager.
The following command line options are supported:
.TP 18
.BI \-display " dpy"
lets you specify which display you want
.I larsclock
to open.
larswm(1), larsremote(1)
.I larsclock
was created by Lars Bernhardsson <>.
-------- FINE DI en/

-------- INIZIO DI it/
.TH larsclock 1
larsclock \- Orologio per la barra di stato di larswm
.B larsclock
.B \-display
.I dpy
.I larsclock
è una applicazione orologio minimale per la barra di stato del window
manager larswm.
Sono supportate le seguenti opzioni da riga di comando:
.TP 18
.BI \-display " dpy"
permette di specificare quale display si vuol far aprire a
.I larsclock
larswm(1), larsremote(1)
.I larsclock
è stato creato da Lars Bernhardsson <>.
-------- FINE DI it/

-------- INIZIO DI en/
.TH larsremote 1
larsremote \- Command line control for larswm
.B larsremote
.B \-display
.I dpy
.B message
.I text
.B | exit | restart
.I larsremote
lets you control the larswm window manager from the command line.
The following command line options are supported:
.TP 18
.BI \-display " dpy"
lets you specify which display you want to open.
.TP 18
.BI message " text"
Sends text to the running
.I larswm
to be displayed on the status bar.
.TP 18
.B exit
tells the running
.I larswm
to exit gracefully.  This is the normal way to log out if your session hangs on the window manager.
.TP 18
.B restart
tells the running
.I larswm
to restart.  Use this if you have updated your preferences file and want the new preferences to take effect without first logging out.
larswm(1), larsclock(1)
.I larsremote
was created by Lars Bernhardsson <>.
-------- FINE DI en/

-------- INIZIO DI it/
.TH larsremote 1
larsremote \- Controllo a riga di comando per larswm
.B larsremote
.B \-display
.I dpy
.B message
.I testo
.B | exit | restart
.I larsremote
permette di controllare il window manager larswm dalla riga di comando.
Sono supportate seguenti opzioni a riga di comando:
.TP 18
.BI \-display " dpy"
permette di specificare quale display si vuole aprire.
.TP 18
.BI message " testo"
Invia testo al
.I larswm
attivo per essere mostrato nella barra di stato.
.TP 18
.B exit
dice al
.I larswm
attivo di terminare ordinatamente. Questo è il modo normale di uscire se
la propria sessione si blocca sul window manager.
.B restart
dice al
.I larswm
attivo di ripartire. Usare nel caso si abbia aggiornato il proprio file di
preferenze e si desidera queste prefenze abbiano effetto senza prima
larswm(1), larsclock(1)
.I larsremote
è stato creato da Lars Bernhardsson <>.
-------- FINE DI it/