# Xfce 4 Window Manager

### François Le Clainche

`<fleclainche@wanadoo.fr>`

This manual describes `xfwm4` version 4.2.0

Copyright © 2004 François Le Clainche

Copyright © 2004 Jasper Huijsmans

## Introduction

The Xfce 4 Window Manager is part of the Xfce Desktop Environment. The actual command to run is `xfwm4`. To run it in the background use `xfwm4` --daemon. The window manager is responsible for the placement of windows on the screen, provides the window decorations and allows you for instance to move, resize or close them.

`xfwm4` adheres strongly to the standards defined on freedesktop.org. Consequently, special features such as making windows borderless, or providing an icon for the application must now be implemented in the application; you can no longer use the window manager to force different behaviour. One of the great features of `xfwm4` is its themeability. The window decorations (borders, title bar and window buttons) can be configured by using window manager themes.

`xfwm4` offers multihead support, for both xinerama and real multiscreen modes, useful when you have more than one monitor connected to your computer.

`xfwm4` can be run stand-alone, but if you use it this way, you will need the Xfce 4 Settings Manager if you want GUI settings management. Tasks other than managing windows, like setting a background image or launching programs, need to be performed by other programs.

`xfwm4` includes its own compositing manager, which takes advantage of the new X.org's server extensions. The compositor is like a WM on its own, it manages a stack of all windows, monitor all kinds on X event and reacts accordingly. Having the compositing manager embedded in the window manager also helps keeping the various visual effects in sync with window events. If you want to use the compositor, you have to build `xfwm4` using the --enable-compositor configure option. In any case, you can disable the compositor on `xfwm4` startup using the '--compositor=off' argument.

## Using `xfwm4`

### Manage windows

The window manager provides borders, a title bar and window buttons to application windows. The look is defined by the window manager theme.

In the default theme `xfwm4` shows six buttons and a title on regular application windows. The six buttons perform these basic functions:

Figure 1. `xfwm4` title bar buttons

You can open the window menu with a left-click on the menu button on the title bar, or with a right-click on the window title area itself.

If you use `xftaskbar4`, you can open an action menu with a right-click on one of the taskbar entries; it includes several items among those available in the window menu.

Give focus to a window

  You need to give the focus to a window if you want it to receive keyboard and mouse input. Window decorations colors will change, following the focus. To obtain more details about focus options, please refer to the corresponding section below.

  A keyboard shortcut allows to switch the focus from a window to others : Hold Alt and then you can press Tab repeatedly untill you get to the window you want to focus. If you use it, you will see a small popup showing the application name, its icon and the window title. Also `xfwm4` will highlight the outline of the window that will receive the focus.

  NOTE: the use of a keyboard shortcut in an application needs the application window to have the focus :)

Maximize / unmaximize windows

  If you maximize a window, it will expand on your display and use all avaible space (as it is defined by workspace settings). You can maximize a window either vertically, horizontally, or both at once.

  To maximize a window, perform one of those actions:

  - click the maximize button of the title bar
  - open the window menu from the title bar and choose the "maximize" item
  - use Alt + F5 keyboard shortcut

  You can make any window appear in fullscreen mode (it will then use all the size of your screen without showing the window borders) by using the customizable Alt + F11 keyboard shortcut.

  To maximize a window vertically :

  - middle-click the maximize button of the title bar
  - use Alt + F6 keyboard shortcut

  To maximize a window horizontally :

  - right-click the maximize button of the title bar
  - use Alt + F7 keyboard shortcut

  When a window has been maximized in a way or another, it can be restored to its previous size doing one of these actions :

  - click the unmaximize button of the title bar
  - use the same keyboard shortcut once again
  - choose the "Unmaximize" item in the window menu

Resize windows

  Although certain special windows can not be resized, you are able to resize most of them to fit your needs.

  - you can use the edges and corners of the window frame to modify its size, dragging them with the mouse
  - you can use the Alt + right click shortcut while you hold the mouse pointer anywhere over the window frame; it will act as if you were dragging the bottom-right corner of the window
  - you can use practical keyboard shortcuts : Shift + Alt + (up, down, right or left) Arrow

Hide / unhide windows

  You can hide a window performing one of these actions :

  - click the hide button of the title bar
  - open the window menu from the title bar and choose the "Hide" item
  - use Alt + F8 keyboard shortcut

  Alternatively, you can hide all windows of current workspace, excepted the one you are using, in only one action : click the menu button of the title bar and choose "Hide all others".

  To "unhide" a window, you will have to select its name or its icon in one of those Xfce 4 components :

  - `xftaskbar4`
  - the list of windows, accessible with a middle-click on the desktop background. This list shows all opened windows, classified by workspaces. Windows that are currently hidden are marked between [ ].
  - the `xfce4-iconbox`

Shade / unshade windows

  If you "shade" a window, it will be reduced to the size of its title bar. The same repeated action makes a window to shade/unshade :

  - click the shade/unshade button of the title bar
  - open the window menu from the title bar and choose "Shade" or "Unshade" item
  - use the mouse scrollwheel while you hold the pointer over the title bar
  - use the Alt + F9 keyboard shortcut

Stick / unstick windows

  If you "stick" a window, it will be visible at the same place on all your workspaces. The same repeated action make a window to stick/unstick :

  - click the stick/unstick button of the title bar
  - open the window menu button from the title bar and choose "Stick" or "Unstick" item
  - use the Alt + F10 keyboard shortcut

Raise / lower windows

  The "raise window" function makes a window frame appear above all the other frames. To raise a window, you can :

  - left click on its titlebar
  - give the focus to the window, if the corresponding option is selected in the Keyboard and focus preferences dialog
  - left click anywhere on its frame, if the corresponding option is selected in the Keyboard and focus preferences dialog
  - click on its label in the taskbar or the iconbox
  - use the Shift + Alt + Page_Up keyboard shortcut (if the window is already focused)

  You can make a window frame to always stay above all other windows by opening the window menu and selecting the "always on top" item.

  The "lower" function sends a window frame below all other frames. To "lower" a window, you can :

  - middle-click on its title bar
  - use the Shift + Alt + Page_Down keyboard shortcut (if the window is focused)

Move windows

  There are several ways to move windows :

  - left or right click on the title bar of the window and drag it
  - use Alt + left click while the pointer is anywhere over the window frame and move the mouse
  - use Control + Alt + Shift + (up, down, left or right) Arrow keyboard shortcut

Move a window to another workspace

  You can send a window to another workspace by performing one of these actions :

  - stick the window, move to another workspace, then unstick the window.
  - use the window menu and choose one of the "Send to" submenu items.
  - left or right click on the title bar of the window, drag it to the screen edge : the pointer will then go to the next workspace, still holding the window. Corresponding option needs to be selected in the Window Manager Preferences dialog.
  - use keyboard shortcuts :
    - Alt + Control + End will move a window to the next workspace
    - Alt + Control + Home will move a window to the previous workspace
    - Alt + Control + Keypad-Number will move the current window to corresponding workspace
  - use the graphical pager by clicking on the representation of the window, and move it to the desired workspace.

Close a window

  To close a window :

  - click the close button of the title bar
  - Open the window menu from the title bar and choose the "Close" item
  - or use Alt + F4 keyboard shortcut

## Customizing `xfwm4`

To open the Window Manager preferences dialog, click the button labelled "Window Manager" in the Xfce 4 Settings manager. The dialog shows four tabs : Style, Keyboard, Focus, Advanced. All modifications will have an immediate effect on the behaviour of the selected module.

### Decoration style

Figure 2. Decoration style preferences

Window style

  The list on the left side of the dialog shows all avaible window decorations. The xfwm 4 module offers the choice between 4 different themes, but there are more than 60 supplementary themes avaible in xfwm4-themes extra package.

Title font

  The "Font select" button shows the family font currently in use for the window title appearance. Click this button if you want to change it, and a "Font selection" dialog will appear. It works like the font selection dialog of the user interface settings manager plugin.

Title alignment

  Whatever the buttons layout is, you can choose the alignment of the title inside the title bar, selecting one of those simple options : align it to the left, center or right.

Button layout

  The button layout configuration uses an easy drag and drop tool. Click and drag the buttons to change the layout. Drop a button in the "Hidden" area to remove a button from the titlebar. All modifications will have an immediate effect on the title bar buttons position.

### Keyboard shortcuts

Figure 3. Keyboard shortcuts preferences

Keyboard Shortcuts

  The list on the left side of the dialog shows all avaible shortcuts themes, using the name of directories that contain a keythemerc file.

  By default, there's only one theme : $(datadir)/themes/Default/xfwm4/keythemerc

  In the default configuration the following keybindings are defined:

  - close window : Alt + F4
  - Maximize window : Alt + F5
  - Maximize vertically : Alt + F6
  - Maximize horizontally : Alt + F7
  - Hide window : Alt + F8
  - Shade window : Alt + F9
  - Stick window : Alt + F10
  - Cycle windows focus : Alt + Tab
  - Move window : Control + Shift + Alt + Arrow (up, down, left, or right)
  - Resize window : Shift + Alt + Arrow (up, down, left, or right)
  - Raise window : Shift + Alt + Page_Up
  - Lower window : Shift + Alt + Page_Down
  - Toggle fullscreen : Alt + F11
  - Next workspace : Control + Alt + Arrow right arrow
  - Previous workspace : Control + Alt + Arrow left
  - Add a workspace : Alt + Insert
  - Delete a workspace : Alt + Delete
  - Go to workspace number N (1-9) : Control + F(N)
  - Move the window to previous|next workspace : Alt + Control + Home|End
  - Move a window to workspace number N (1-9) : Alt + Control + keypad key number N
  - Start xfhelp4 : Alt + F1
  - Start xfrun4 : Alt + F2
  - Lock the screen : Alt + Control + Delete

  There are two lists on the right side of the dialog. The "Windows shortcuts" list shows the keyboard shortcuts which are used to drive the window manager. The "Command shortcuts" list shows the keyboard shortcuts which are aimed at launching applications. To modify one of the shortcuts, you have to double-click on it in the list, using the left button of your mouse, and compose your new shortcut when the "Compose shortcut" popup window appears.

  Figure 4. The compose shortcut popup

  If you want to create a new theme, create a directory like this one, for instance : $HOME/.themes/Custom/xfwm4/keythemerc, then select it in the list of available themes.

  If you do not know the names of your keyboard modifier keys, you can launch the "xev" application from a terminal and test them.

### Focus preferences

Figure 5. Focus preferences

Focus model

  A focused window receives the keyboard and mouse input. You have the choice between two focus models :

  - Click to focus : select this option if you want a window to receive the focus only when you click anywhere on its frame.
  - Focus follow mouse : select this option if you want a window to receive the focus as soon as the mouse pointer is over its frame.

New window focus

  Selecting this option will automatically give the focus to newly created windows, without the need to click or move the mouse pointer.

Raise on focus

  If this option is selected, the frame of a newly focused window will automatically appear over all other frames, after an amount of time that you can adjust with the "delay" slider.

Raise on click

  Choose this option if you want a window to pass over the others when you click anywhere on its frame. If this option is not selected, you will have to click somewhere on its decorations (title bar, borders or corners) to raise it.

### Advanced settings

Figure 6. Advanced preferences

Windows snapping

  You can choose the windows borders to be attracted by the borders of other windows, or by the screen edges, when they are moved. The distance from which this effect will be applied can be specified with the "Distance" slider.

Wrap workspaces

  Select the first option if you want to switch to the next workspace when the mouse pointer reaches the screen edges. Select the second one if you want the same behaviour while dragging a window. You can specify the screen edges resistance using the corresponding slider.

Opaque move and resize

  Two options allow you to choose if the content of a window will appear or not, when you move or resize it (not displaying the content will save some system resources).

Double click action

  Select what must be the behaviour of the window manager when you double-click on the title bar of a window : shade window, hide window, maximize window or none.

### Hidden options

Some hidden options allow you to customize `xfwm4` behaviour. They have to be added by hand to your HOME/.config/xfce4/xfwm4/xfwm4rc file. You may have to create this file.

activate_action=bring|switch|none

  How the window manager must react when a window raises itself. When set to "bring", the window manager to bring the window on the current workspace, "switch" will switch to the window's workspace, and "none" will simply do nothing but set the "demand attention" flag on the window.

## Managing workspaces

`xfwm4` also manages workspaces. There is a special settings dialog to change the workspace properties. You can start it by choosing Workspaces and Margins from the the settings manager dialog. The dialog contains two tab folders where you can change workspace settings and desktop margins.

### Workspaces settings

Figure 7. Workspace Settings

Workspaces

  This option allows you too choose the number of workspaces you want to use (between 1 and 32).

Worspace names

  This field shows the list of avaible workspaces. If you want to edit the name of one of them, click its number and a fill the entry of the dialog that will then appear. When it's done, click the "Apply" button, or just press the Enter key, to return to the list.

### Workspaces margins

Figure 8. The workspace margins dialog

To open the Workspace Margins dialog, click the button labelled "Workspaces and Margins" in the settings manager dialog and choose the tab labelled "Margins".

Margins are areas on the edges of the screen that maximized windows won't cover. You can adjust the size, in pixels, of all margins (left, right, top and bottom). Use this feature, for example, if you do not want maximized windows to overlap panel or iconbox frames.

## About `xfwm4`

`xfwm4` was written Olivier Fourdan (`<fourdan@xfce.org>`). To find more information, please visit the Xfce web site.

To report a bug or make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/.

If you have questions about the use or installation of this package, please ask on the xfce mailing list. Development discussion takes place on the xfce4-dev mailing list.

This program is distributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.