I'll start.
First off most people using Ubuntu or Debian are probably going to use Gnome. By default Gnome's Window manager (called Metacity) is rather limited.
Metacity is designed specificly to be crack-free. This means that while most Window managers are laden down with odd configurations and obscure or over-built functionality that make them difficult to use. Metacity is designed to be your mom's window manager. Do basic, predictable things and do them well.. which is much more difficult then it seems.
For more information check out /usr/share/doc/metacity/README.gz
It's a response to the lisp-based Sawmill window manager from Gnome 1.x. It had a very complex configuration and often one option would break a whole string of other functionality in unpredictable manners.
Metacity frequently gets critized for being rather weak for a lot of people's uses. It misses a lot of stuff that people are used to in other window managers.
So there are two approaches to fixing this.. Both are very effective thanks to the EWMH standards that many (not all) Window managers support.
----first method is to replace Metacity----
The common fix is to replace Metacity altogether. There are several other WMs that support EWMH.
A common modern replacement is Compiz or Beryl due to their OpenGL goodness.
One that I like is OpenBox. It's a rewrite of a fork from the original blackbox window manager (and it's fork Fluxbox), which is favored by many advanced users. http://icculus.org/openbox/index.php/Main_Page
To replace Metacity there are several ways. The first way is to use the --replace option that many WM support.
You hit alt-f2 to open the run dialog, then type 'openbox --replace'. Then you close out all your applications and log out. When you log out be sure to check 'save current session'. Then when you log back in openbox (or whatever) will be running by default.
Beryl has a switching applet that you can use to choose your Window manager...
Also if you go and edit the ~/.gnome2/session file your can replace 'metacity' with openbox (or whatever) and it will be replaced when you logout and log back in. Also you can do other fun things with that file.
----The second method is to extend Metacity-----
As stated above Metacity supports the EWMH standard.
And because of this you can use various applications to extend it's functionality. Most of them are aviable in UBuntu by enabling the universe repository.
Also as a bonus if you do end up replacing Metacity then these things will extend to support other EWMH-compliant WMs, although they may make functionality redundant.
wmctrl --- Window manager control.
http://www.sweb.cz/tripie/utils/wmctrl/
With wmctrl you have command-line access to your window manager. This makes it easy to script window manager behavior with simple bash scirpts. Then you can take those scripts and bind them to keys or launch them from icons on your desktop or taskbar.
You can do things like resize windows. Move them to different workspaces. Rename Windows. Maximize, hide, close, whatever you want.
For example I use a script to local my text editor on any desktop and bring it forward on the current desktop. Then I have another script that I use to 'banish' windows to the last workspace. That way if a Window is in my way and I want to get rid of it without closing out my application I can send it away with a simple key press.
Also if you look towards the bottom of that homepage you can find links to other doo-dads.
Brightside --- do usefull things with the edge and corners of your screen.
http://wiki.catmur.co.uk/Brightside/
This thing can add 'edge flipping' to the gnome desktop. This means that with brightsides you can grab a Window (either by the window bar or by hitting alt and clicking anywere on the window) and drag it to different workspaces.
It's configurable and you can disable it.
Also you can add commands or actions that are activated when you move the mouse to corners.
devilspie -- Devil's Pie, window management for the terminal control freak.
http://burtonini.com/blog/computers/devilspie
Devilspie privides a advanced window management scripting system based on lisp.
For example... Want to open up Gimp, but have the window decorations removed from the tool, have that window (and only that window) with sloppy focus, and line up all your editing windows to be 'fullscreen' to take up all the aviable space not used by your dialogs and toolbar? Want that to happen automaticly every time you open up gimp?
Well you can do that easily with devilspie. All sorts of stuff is possible with it. It's far beyond what most people will ever need out of a window manager/window manager add-on.
First off most people using Ubuntu or Debian are probably going to use Gnome. By default Gnome's Window manager (called Metacity) is rather limited.
Metacity is designed specificly to be crack-free. This means that while most Window managers are laden down with odd configurations and obscure or over-built functionality that make them difficult to use. Metacity is designed to be your mom's window manager. Do basic, predictable things and do them well.. which is much more difficult then it seems.
For more information check out /usr/share/doc/metacity/README.gz
It's a response to the lisp-based Sawmill window manager from Gnome 1.x. It had a very complex configuration and often one option would break a whole string of other functionality in unpredictable manners.
Metacity frequently gets critized for being rather weak for a lot of people's uses. It misses a lot of stuff that people are used to in other window managers.
So there are two approaches to fixing this.. Both are very effective thanks to the EWMH standards that many (not all) Window managers support.
----first method is to replace Metacity----
The common fix is to replace Metacity altogether. There are several other WMs that support EWMH.
A common modern replacement is Compiz or Beryl due to their OpenGL goodness.
One that I like is OpenBox. It's a rewrite of a fork from the original blackbox window manager (and it's fork Fluxbox), which is favored by many advanced users. http://icculus.org/openbox/index.php/Main_Page
To replace Metacity there are several ways. The first way is to use the --replace option that many WM support.
You hit alt-f2 to open the run dialog, then type 'openbox --replace'. Then you close out all your applications and log out. When you log out be sure to check 'save current session'. Then when you log back in openbox (or whatever) will be running by default.
Beryl has a switching applet that you can use to choose your Window manager...
Also if you go and edit the ~/.gnome2/session file your can replace 'metacity' with openbox (or whatever) and it will be replaced when you logout and log back in. Also you can do other fun things with that file.
----The second method is to extend Metacity-----
As stated above Metacity supports the EWMH standard.
And because of this you can use various applications to extend it's functionality. Most of them are aviable in UBuntu by enabling the universe repository.
Also as a bonus if you do end up replacing Metacity then these things will extend to support other EWMH-compliant WMs, although they may make functionality redundant.
wmctrl --- Window manager control.
http://www.sweb.cz/tripie/utils/wmctrl/
With wmctrl you have command-line access to your window manager. This makes it easy to script window manager behavior with simple bash scirpts. Then you can take those scripts and bind them to keys or launch them from icons on your desktop or taskbar.
You can do things like resize windows. Move them to different workspaces. Rename Windows. Maximize, hide, close, whatever you want.
For example I use a script to local my text editor on any desktop and bring it forward on the current desktop. Then I have another script that I use to 'banish' windows to the last workspace. That way if a Window is in my way and I want to get rid of it without closing out my application I can send it away with a simple key press.
Also if you look towards the bottom of that homepage you can find links to other doo-dads.
Brightside --- do usefull things with the edge and corners of your screen.
http://wiki.catmur.co.uk/Brightside/
This thing can add 'edge flipping' to the gnome desktop. This means that with brightsides you can grab a Window (either by the window bar or by hitting alt and clicking anywere on the window) and drag it to different workspaces.
It's configurable and you can disable it.
Also you can add commands or actions that are activated when you move the mouse to corners.
devilspie -- Devil's Pie, window management for the terminal control freak.
http://burtonini.com/blog/computers/devilspie
Devilspie privides a advanced window management scripting system based on lisp.
For example... Want to open up Gimp, but have the window decorations removed from the tool, have that window (and only that window) with sloppy focus, and line up all your editing windows to be 'fullscreen' to take up all the aviable space not used by your dialogs and toolbar? Want that to happen automaticly every time you open up gimp?
Well you can do that easily with devilspie. All sorts of stuff is possible with it. It's far beyond what most people will ever need out of a window manager/window manager add-on.