# XFce 4 Window Manager

### François Le Clainche

`<fleclainche@wanadoo.fr>`

This manual describes `xfwm4` version 4.0

Copyright © 2003 François Le Clainche

Copyright © 2003 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.

If you are familiar with previous versions of XFce you will find many changes. First of all, `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. Most visible change is probably the themeability. The window decorations (borders, title bar and window buttons) can be configured by using window manager themes.

`xfwm4` offers Xinerama support, useful when you have more than one monitor connected to your computer, but you have to make sure `libxfcegui4` is compiled with `--enable-xinerama`.

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

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

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 section called “Keyboard and focus” 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 with the window title and also `xfwm4` will highlight the outline of the window that will receive the focus.

  If you want the panel, and apps that do not appear in the taskbar, to be included when you switch the focus using the Alt+Tab shortcut, edit your $HOME/.config/xfce4/xfwm4/xfwm4rc (or create an new one) and add this line : cycle_minimum=false

  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). Moreover, you can maximize a window only vertically ou horizontally.

  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

  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 `xfce4-iconbox`
  - 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 [ ].

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)

  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

### Keyboard shortcuts summary

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
- Next workspace : Control + Alt + Arrow right arrow
- Previous workspace : Control + Alt + Arrow left
- Add a workspace : Alt + Inser
- 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

## Customizing `xfwm4`

To open the Window Manager preferences dialog, click the button labelled "Window Manager" in the XFce 4 Settings manager. The dialog shows three tabs : Decoration style, Keyboard and 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 10 different themes, but there are more than 50 supplementary themes avaible in xfwm4-themes extra package. You can preview all of them on the official XFce Website

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 intuitive interface with radio buttons. Just imagine that all selected items project themselves on the baseline of the frame. Moreover, all modifications will have an immediate effet on the title bar buttons position.

### Keyboard and focus

Figure 3. Keyboard and focus 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 : $(prefix)/share/xfwm4/themes/default.keys/keythemerc

  You can customize keyboard shortcuts by editing this default keythemerc file (seven shorcuts entries are left empty for your convenience), or you can create a new theme, either like this one : $(prefix)/share/xfwm4/themes/custom.keys/keythemerc, or like this one (in your $HOME directory) : $HOME/.themes/xfwm4/custom.keys/keythemerc.

  NOTE : $prefix is the install-prefix you used during xfwm 4 setup, usually /usr or /usr/local.

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

## Workspaces and Margins

`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

Figure 5. 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.

### Workspace margins

Figure 6. 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, send an email to the xfce4-dev mailing list — this is the preferred method — or use the bug tracking system at the XFce SourceForge project site. If you have questions about the use or installation of this package, please ask on the xfce 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.