larswm man page on Knoppix

Man page or keyword search:  
man Server   3132 pages
apropos Keyword Search (all sections)
Output format
Knoppix logo
[printable version]

larswm(1x)							    larswm(1x)

NAME
       larswm - Tiling Window Manager for X

SYNOPSIS
       larswm [ -display dpy ] [ -f file ] [ -defaults ] [ -v ]

DESCRIPTION
       larswm is a tiling window manager for X11, based on 9wm by David Hogan.
       It provides virtual desktops, support for tiled	and  untiled  windows,
       keyboard	 shortcuts and more, while using very little system resources.
       Please see http://larswm.fnurt.net for more information.

OPTIONS
       The following command line options are supported:

       -display dpy	 lets you specify which display	 you  want  larswm  to
			 manage.

       -f file		 lets  you  specify  a	preferences  file  other  than
			 $HOME/.larswmrc to use for configuration.

       -defaults	 prints to standard out a complete resource  file  for
			 larswm containing all options and their defaults.

       -v		 prints	 the  current  version on standard error, then
			 exits.

FILES
       $HOME/.larswmrc /etc/X11/larswmrc
			 these two files are looked for	 in  the  above	 order
			 when larswm starts up.

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 desk‐
       tops,  larswm  is  fast	enough	that it is easier to browse the actual
       desktops instead, something that is very quick and easy	to  do,	 espe‐
       cially  if you have a wheel mouse, and since the windows are tiled, you
       usually do not need much time looking at a desktop to know what	is  on
       it.  And within one desktop, tiling is a good example of direct manipu‐
       lation, 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 representa‐
       tion 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 win‐
       dows,  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
       resources.

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

       Screen

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

       Virtual Desktop

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

       Subdesktop

       Each virtual desktop is then logically divided between two subdesktops.
       First we have normal, untiled, windows. They are managed in a way simi‐
       lar 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.

       Track

       On  the tiled subdesktop, windows are laid out in one of two tracks. By
       default, the ratio is 60%/40% for left/right track. 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	 fill‐
       ing it from top to bottom while the right track contains any other win‐
       dows, 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.

       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 func‐
       tions. It is easy to target, since you just move the mouse down against
       the bottom of the screen, no need to precision aim for it.

       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.

       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.

       Put Aside

       All this means is that a window is moved	 mostly	 off  screen,  leaving
       just a portion visible. It is another way to do iconification.

A Sample Session
       The following assumes you are using the sample.xsession and sample.lar‐
       swm config files.  After logging in, you will see a mostly empty	 desk‐
       top.   Along  the  bottom  of  the screen is the status bar, and in the
       lower right corner are three smaller windows (xload, xbiff and  xclock)
       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 subdesk‐
       top.

       Working with tiled windows

       Now hit Shift-Control-Return. This will bring up a new terminal window.
       Notice  how  it	occupies the left 60% 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 toolwindows (xload, xbiff  and
       xclock) are not overlapped.

       Hit Shift-Control-Return once more and notice how the two previous win‐
       dows 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  is	 all  there is to never having to manually line up your xterms
       again!

       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.

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

       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 alterna‐
       tive to tiling, if you have some windows you would like to mostly  man‐
       age yourself, but want a quick way to concentrate on one of them.

       Set aside windows

       Sometimes  when	working	 on the untiled desktop you just want to set a
       window aside for a moment. Hit Control-Alt-space to move a window side‐
       ways  off  the  right  edge of the screen, leaving just a small portion
       visible. Clicking on the visible part will put that window  back	 where
       it  was.	 If  you hit Control-Alt-space with no untiled window focused,
       the last put aside window will be brought back. See the mouse reference
       section for more ways to manipulate windows in this fashion.

       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  win‐
       dow,  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.

       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.

       Working with virtual desktops

       So far, we have 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.

       If  you	instead use Shift-Alt-Left or Shift-Alt-Right you will move to
       the new virtual desktop while dragging  the  currently  focused	window
       with you.

       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  mov‐
       ing the pointer to the status bar and rolling the wheel up and down.

       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 while 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 combi‐
       nations of Shift, Control and Alt keys to do these things.

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.	  Con‐
       trol-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.

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.

       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.

       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.

Keyboard commands for all windows and subdesktops
       ┌──────────────┬───────────┬──────────────────────────────────┐
       │Shift-Control │ Prior	  │ Prev Screen			     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Control │ Next	  │ Next Screen			     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Control │ Left	  │ Prev Desktop		     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Alt     │ Left	  │ Prev Desktop Drag Focused Window │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Control │ Right	  │ Next Desktop		     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Alt     │ Right	  │ Next Desktop Drag Focused Window │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Control │ F1-F12	  │ Jump to desktop 1-12	     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Control │ BackSpace │ Toggle Subdesktop		     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Control │ Up	  │ Prev Window			     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Control │ Down	  │ Next Window			     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Control-Alt   │ z	  │ Hide Window			     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Control-Alt   │ x	  │ Unhide last hidden window	     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Control-Alt   │ w	  │ Close Window		     │
       ├──────────────┼───────────┼──────────────────────────────────┤
       │Shift-Alt     │ space	  │ Move window to other subdesktop  │
       └──────────────┴───────────┴──────────────────────────────────┘
Keyboard commands for untiled windows
       ┌──────────────────┬───────────┬──────────────────────────────┐
       │Shift-Control	  │ space     │ Select Zoom		     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Control-Alt	  │ space     │ Put/restore aside window     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ 0	      │ Put aside all other windows  │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Home   │ Move window to top left	     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Up     │ Move window to top center    │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Prior  │ Move window to top right     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Left   │ Move window to left center   │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Begin  │ Center window		     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Right  │ Move window to right center  │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_End    │ Move window to bottom left   │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Down   │ Move window to bottom center │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control	  │ KP_Next   │ Move window to bottom right  │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_Up     │ Move window up		     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_Down   │ Move window down	     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_Left   │ Move window left	     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_Right  │ Move window right	     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control-Alt │ KP_Up     │ Grow window vertically	     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control-Alt │ KP_Down   │ Shrink window vertically     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control-Alt │ KP_Left   │ Shrink window horizontally   │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control-Alt │ KP_Right  │ Grow window horizontally     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control-Alt │ KP_Home   │ Grow window both ways	     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control-Alt │ KP_End    │ Shrink window both ways	     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_Insert │ Toggle move/resize increment │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_Home   │ Maximize window vertically   │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_End    │ Maximize window horizontally │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Alt	  │ KP_Begin  │ Maximize window		     │
       ├──────────────────┼───────────┼──────────────────────────────┤
       │Shift-Control-Alt │ KP_Begin  │ Full screen		     │
       └──────────────────┴───────────┴──────────────────────────────┘
Keyboard commands for tiled windows
       ┌──────────────────┬──────────┬────────────────────────────────┐
       │Shift-Control-Alt │ KP_Up    │ Maximize left track	      │
       ├──────────────────┼──────────┼────────────────────────────────┤
       │Shift-Control-Alt │ KP_Down  │ Restore left track	      │
       ├──────────────────┼──────────┼────────────────────────────────┤
       │Shift-Control-Alt │ KP_Left  │ Shrink left track	      │
       ├──────────────────┼──────────┼────────────────────────────────┤
       │Shift-Control-Alt │ KP_Right │ Grow left track		      │
       ├──────────────────┼──────────┼────────────────────────────────┤
       │Shift-Alt	  │ KP_Begin │ Move window to/from left track │
       ├──────────────────┼──────────┼────────────────────────────────┤
       │Control-Alt	  │ space    │ Restore aside window	      │
       └──────────────────┴──────────┴────────────────────────────────┘
Mouse buttons on the status bar
       ┌──────────────────┬───────────────┬───────────────────┬─────────────────┐
       │    Modifier	  │    Button1	  │	 Button2      │	    Button3	│
       ├──────────────────┼───────────────┼───────────────────┼─────────────────┤
       │None		  │ Prev Desktop  │ Subdesktop	      │ Next Desktop	│
       ├──────────────────┼───────────────┼───────────────────┼─────────────────┤
       │Control		  │ Prev Menu	  │ Select Menu	      │ Next Menu	│
       ├──────────────────┼───────────────┼───────────────────┼─────────────────┤
       │Alt		  │ Prev Hidden	  │ Hide/Unhide	      │ Next Hidden	│
       ├──────────────────┼───────────────┼───────────────────┼─────────────────┤
       │Shift-Control	  │ Shrink	  │ Select Zoom	      │ Grow		│
       ├──────────────────┼───────────────┼───────────────────┼─────────────────┤
       │Shift-Alt	  │ Move Window	  │		      │			│
       ├──────────────────┼───────────────┼───────────────────┼─────────────────┤
       │Shift-Control-Alt │ Resize Window │ Lower Window      │ Maximize Window │
       ├──────────────────┼───────────────┼───────────────────┼─────────────────┤
       │Control-Alt	  │ Restore Aside │ Put/Restore Aside │ Put Aside	│
       └──────────────────┴───────────────┴───────────────────┴─────────────────┘
Mouse wheel on the status bar
       ┌──────────────────┬───────────────┬──────────────┐
       │    Modifier	  │    Roll Up	  │  Roll Down	 │
       ├──────────────────┼───────────────┼──────────────┤
       │None		  │ Prev Desktop  │ Next Desktop │
       ├──────────────────┼───────────────┼──────────────┤
       │Shift		  │ Prev Window	  │ Next Window	 │
       ├──────────────────┼───────────────┼──────────────┤
       │Control		  │ Prev Menu	  │ Next Menu	 │
       ├──────────────────┼───────────────┼──────────────┤
       │Alt		  │ Prev Hidden	  │ Next Hidden	 │
       ├──────────────────┼───────────────┼──────────────┤
       │Shift-Control	  │ Shrink	  │ Grow	 │
       ├──────────────────┼───────────────┼──────────────┤
       │Shift-Alt	  │ Move Up	  │ Move Down	 │
       ├──────────────────┼───────────────┼──────────────┤
       │Shift-Control-Alt │ Move Left	  │ Move Right	 │
       ├──────────────────┼───────────────┼──────────────┤
       │Control-Alt	  │ Restore Aside │ Put Aside	 │
       └──────────────────┴───────────────┴──────────────┘
Clicking on unfocused windows
       Button1 is used to focus windows.

       If  skip_focus is on (this is the default) you can force a tiled window
       into the left track by Control-Button1 clicking.

       If skip_focus is off, then Control-Button1 clicking will prevent moving
       the newly focused window to the left track.

       If you Control-Button1 click on a window that is not on the active sub‐
       desktop, you will switch focus without also switching subdesktop.

       If you Control-Button1 click on an aside window, that  window  will  be
       put back while all other untiled windows are put aside.

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.

Multi-head
       When  specifying	 an  option that only affects one of the virtual desk‐
       tops, you can also limit it to a specific monitor. For  instance,  lar‐
       swm.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:

       ┌────────────────────┬────────────────────────────────┐
       │      Format	    │	Affected desktops/screens    │
       ├────────────────────┼────────────────────────────────┤
       │larswm.S.D.resource │ Only desktop D on screen S     │
       ├────────────────────┼────────────────────────────────┤
       │larswm.S.?.resource │ All desktops on screen S	     │
       ├────────────────────┼────────────────────────────────┤
       │larswm.?.D.resource │ Only desktop D on all screens. │
       ├────────────────────┼────────────────────────────────┤
       │larswm.?.?.resource │ All desktops on all screens.   │
       ├────────────────────┼────────────────────────────────┤
       │larswm*resource	    │ 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 follow‐
       ing lines in your .larswmrc:

       larswm*tile_resize: false

       larswm.1.0.tile_resize: true

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

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.

       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:

       T Subdesktop

       T for tiled or U for untiled.

       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.

       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.

       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.

       B Big Move/Resize

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

       H Hidden Windows

       Whether	any windows are hidden (iconified) on any screens. It is there
       so you will not forget about them, since larswm has no visual represen‐
       tation of iconified windows.

       Window mode flags

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

       n Notile

       Window belongs to the untiled subdesktop.

       f Floating

       Window always stays on top of non-floating windows.

       t Tool

       Window is tiled around, not over.

       s Sticky

       Window is visible on all virtual desktops.

       z Zoomed

       Window is in one of the zoomed states.

       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 noti‐
       fiers, stock tickers etc. Included in the distribution is a small exam‐
       ple of a clock called larsclock. It is started by the  default  session
       script.

       If  you	do  not	 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.

Window Types
       Here  is	 a  more detailed look at the different types larswm can asso‐
       ciate with a window.

       Transient windows

       Windows that have the WM_TRANSIENT_FOR property	set  are  put  on  the
       untiled	subdesktop  even  if  the  window  class has been specified as
       tiled.

       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.

       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 dif‐
       ferent 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 Shift-Control-BackSpace

       When a window is mapped on the untiled subdesktop for the  first	 time,
       it  is  centered	 on the screen, unless it has had its desired position
       set in the hints.

       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.

       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.

       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. Tools will never end up focused unless you click on them.

Internals
       A little more detail about how larswm does things.

       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 60% of the screen width, but it can be con‐
       figured 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 des‐
       ignated spot.

       5. After this it returns to the event loop.

       That is pretty much it. If skip_focus is off (default is on), 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.

       At  all	times, the right track will contain tiled windows in the order
       that they were in the left track, starting with most recent.

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	speci‐
       fied desktop, then map the window.

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  sec‐
       tion  about  using  menus on the status bar for information on how this
       works.

       You can also unhide the last hidden window with one keystroke, Control-
       Alt-x.

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.

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.

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

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

       LARSWM_EXIT

       Tells larswm to exit.

       LARSWM_RESTART

       Tells larswm to restart, reloading the .larswmrc file.

       LARSWM_BARTEXT

       When  this is updated, the content of this atom is shown as text on the
       status bar until the atom is updated again.  See larsclock and  larsre‐
       mote for examples of how to use this.

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

       On  some,  mostly older, systems you need 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.

       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.

       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.

       Multi-Head Displays

       It does work well with multi-head displays. One of my development  sys‐
       tems  is	 a  dual-head Sun 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.

       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. In some cases, this still does not
       work, like in some builds of Mozilla where every window it creates  has
       class/instance Mozilla-bin/mozilla-bin.

       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 auto‐
       matic functionality that it does.

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

SEE ALSO
       larsclock(1x), larsmenu(1x), larsremote(1x)

AUTHORS
       larswm  was created by Lars Bernhardsson <lab@fnurt.net> by building on
       9wm by David Hogan.

								    larswm(1x)
[top]

List of man pages available for Knoppix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net