Virtual Desktops
Fvwm splits up its virtual desktops into pages and desks. Starting with fvwm3, DesktopConfiguration can be used to configure if monitors can move through each virtual desk or page independently.
The module /Modules/FvwmPager gives a miniature view of your desks, pages, windows, and monitors location.
Pages
A single fvwm Desktop is split up into an NxM
grid of pages.
Each page is a single viewport of all the Monitors
together. The virtual desktop is then extended in such a way
that the current view is of a single page in this much larger
virtual screen. The number of pages is configured with the
DesktopSize
command.
# 4 Desktops split into a 3x2 Grid.
# Pages are identified using two numbers:
# COLUMN ROW
# +---+---+---+
# |0 0|1 0|2 0|
# +---+---+---+
# |0 1|1 1|2 1|
# +---+---+---+
DesktopSize 3x2
That will give you a grid of 3x2 Pages where the numbers
are the x and y coordinates of each page. You can move through
the pages using the GotoPage
(and MoveToPage
for windows).
In addition to just moving through the page you can scroll or only move part
way between two pages. You can also set up functions that will automatically
move you between pages when your mouse hits the edge of the screen.
For example (note, in fvwm3 all of these commands can be configured per
monitor by adding the screen RandRname
option):
# EdgeScroll Xpercent Ypercent
# EdgeResistance - Timer before scrolling
# EdgeThickness - size of border for mouse around edge of screen
# Styles for dragging windows over the boundaries.
#
# Set EdgeScroll 0 0 and/or EdgeResistance -1 to disable.
EdgeScroll 100 100
EdgeResistance 450
EdgeThickness 1
Style * EdgeMoveDelay 350, EdgeMoveResistance 350
Additionally you can move around with
GotoPage screen RandRname xPage yPage
GotoDeskAndPage screen RandRname desk xPage yPage
Desktops
Fvwm supports multiple Desktops. The default desktop is 0 and there
is no set cap on the number of desktops you can use. Desktops are
available on demand and can be moved between using the GotoDesk
command (note MoveToDesk
, for windows, as the same syntax).
GotoDesk
can be configured to go to a specific Desk or just cycle
through them. Here are some examples:
# GotoDesk [step] [min] [max]
# One Desk forward, max of 6
GotoDesk 1 0 6
# One desk backwards min of 0
GotoDesk -1 0 6
# GotoDesk [relative] [absolute]
# GotoDesk 5
GotoDesk 0 5
# GotoDesk 2
GotoDesk 0 2
Additionally Desktops can be given names with:
DesktopName 0 Main
DesktopName 1 Web
...