1522 lines
63 KiB
Plaintext
1522 lines
63 KiB
Plaintext
|
======================================================================
|
||
|
FVWM Frequently Asked Questions
|
||
|
======================================================================
|
||
|
|
||
|
Last updated 18 Feb 1999 for release 2.2.0.
|
||
|
|
||
|
Contents
|
||
|
|
||
|
1. About Fvwm
|
||
|
|
||
|
1.1 What does FVWM stand for?
|
||
|
1.2 Where do I find the current versions of fvwm?
|
||
|
1.3 Any WWW Sites about FVWM?
|
||
|
1.4 Where do I ask questions about FVWM?
|
||
|
1.5 What are the differences between FVWM 1.xx and 2.xx?
|
||
|
1.6 What's the relative memory usage for the various window managers
|
||
|
out there?
|
||
|
1.7 Why the rename of the various files (fvwm2, .fvwm2rc,
|
||
|
fvwm2.man)?
|
||
|
1.8 When will fvwm release X.Y.Z be ready?
|
||
|
|
||
|
2. Installation
|
||
|
|
||
|
2.1 I want to use FVWM, but I don't have root access on my
|
||
|
machine. Can I still install and run it?
|
||
|
2.2 I'm trying to use fvwm under CDE/COSE, but encountering
|
||
|
difficulties. Any suggestions?
|
||
|
2.3 I'm trying to compile FVWM under SunOS using cc, but the compiler
|
||
|
is having lots of problems. What gives?
|
||
|
2.4 I want colored icons, but they won't work. Why not?
|
||
|
When I run configure, it reports "no" to "Have XPM support?" How
|
||
|
can I get XPM support?
|
||
|
2.5 I'm a sysadmin, and if I wanted to force fvwm to read a
|
||
|
system rc file and then the user's rc file, how would I do
|
||
|
that?
|
||
|
2.6 I'm a sysadmin, and if I wanted fvwm to look for all of
|
||
|
it's rc files in a hidden directory, say ~/.fvwm, much like
|
||
|
CDE does, how could I do that?
|
||
|
|
||
|
3. Features, Configuration, Functions & Commands
|
||
|
|
||
|
3.1 I use FVWM on a RedHat Linux system and can't figure out how to
|
||
|
change my FVWM configuration. I've read the FVWM manpage but when
|
||
|
I edit my .fvwm2rc nothing seems to happen. What's going on ?
|
||
|
3.2 Is it possible to raise a window when I click into the
|
||
|
window itself, not just the border?
|
||
|
3.3 How do I get Alt-Tab behaviour like another GUI?
|
||
|
3.4 What's the difference between the Focus and FlipFocus commands?
|
||
|
3.5 You can bind mouse movements to keystrokes, how about mouse
|
||
|
presses?
|
||
|
3.6 I'd like to bind a key to paste/use the current selection,
|
||
|
how can I do that?
|
||
|
3.7 Will FVWM ever support a separate colormap for each desktop?
|
||
|
3.8 I really like the horizontal bars that appear on the title bars of
|
||
|
sticky windows. Can I get those on other windows as well?
|
||
|
3.9 How do I set the Sun keyboard key xxxx to an FVWM command?
|
||
|
Or more generally, I'm having problems defining key
|
||
|
bindings for FVWM - what can I do?
|
||
|
3.10 My .fvwmrc from version 1.xx no longer works. What do I do?
|
||
|
3.11 What happened to the FVWM 1.xx 'include' command?
|
||
|
3.12 How do I get window titles on sub windows of ...
|
||
|
|
||
|
4. Modules
|
||
|
|
||
|
4.1 I'm using FvwmButtons (or GoodStuff in 1.xx), and sometimes the
|
||
|
buttons stay depressed, and other times they don't. Why is that?
|
||
|
4.2 When having FvwmButtons swallow an app, is it possible to
|
||
|
have button presses assigned to actions as well? For
|
||
|
instance, I'd like to swallow xload and have a button press
|
||
|
pop up an xterm, or swallow xbiff and have a button press
|
||
|
bring up the list of messages.
|
||
|
4.3 I'm seeing odd things when trying to preprocess files with
|
||
|
the FvwmM4/Cpp module...
|
||
|
4.4 I heard about this FvwmFileMgr module. Where can I find it?
|
||
|
4.5 I used to use GoodStuff in FVWM 1.xx, but it's not in the 2.xx
|
||
|
distribution. What do I use now?
|
||
|
|
||
|
5. Development, Known Problems & Bug Reports
|
||
|
|
||
|
5.1 I'd really like to see neat feature XYZ in FVWM.
|
||
|
Wouldn't that be cool? I even have a patch. When can it
|
||
|
be added?
|
||
|
5.2 How do I create/submit/apply patches?
|
||
|
5.3 How do I submit a bug report?
|
||
|
5.4 I have a window that is behaving unexpectedly under FVWM, but just
|
||
|
fine under (whatever other window manager), or I have just some
|
||
|
random bug. What do I do?
|
||
|
5.5 Why do NumLock and CapsLock interfere with ClickToFocus
|
||
|
and/or my mouse bindings?
|
||
|
5.6 Menus with gradient backgrounds flicker or are very slow.
|
||
|
5.7 Why won't the StartIconic style work with {Netscape, etc.}?
|
||
|
5.8 How do I capture the output (eg errors) of fvwm?
|
||
|
5.9 I try to run some program under FVWM, but it dies with an
|
||
|
X11 error like BadAccess. The same program works just fine
|
||
|
under MWM or OLWM. What's going on?
|
||
|
5.10 Every time I update my install, my currently running fvwm
|
||
|
session dies. Why is that?
|
||
|
|
||
|
|
||
|
6. Miscellaneous
|
||
|
|
||
|
6.1 What exactly is the differenct between a DESK, a PAGE, and
|
||
|
the SCREEN?
|
||
|
6.2 I'd really like {NeXT, Win95, etc} look and feel. Are you
|
||
|
going to support that?
|
||
|
6.3 Where can I get more XPMs for icons?
|
||
|
6.4 Linux XF86 virtual screen size & fvwm interaction...
|
||
|
6.5 I know this question doesn't have to do with FVWM, but what
|
||
|
happened to to rxvt and rclock which Rob Nation used to
|
||
|
support? Where can I find them now?
|
||
|
|
||
|
7. Hints and Examples from the Developers
|
||
|
|
||
|
7.1 An easy way to test new configurations.
|
||
|
7.2 Using shell commands for configuration.
|
||
|
7.3 How to start applications on a page or desk other than the
|
||
|
current.
|
||
|
7.4 How to start applications on a page or desk other than the
|
||
|
current without moving the viewport to the new page or desk.
|
||
|
7.5 A more efficient MWM menu style.
|
||
|
7.6 Placing menus on the screen.
|
||
|
7.7 Are you flipping pages by accident when moving the mouse
|
||
|
close to the border of the screen?
|
||
|
7.8 Lining up your windows and icons.
|
||
|
7.9 Moving the mouse/focus/page with the keyboard.
|
||
|
7.10 The cat safe desktop :-)
|
||
|
7.11 Lowering and moving windows.
|
||
|
|
||
|
|
||
|
======================================================================
|
||
|
1 - About Fvwm
|
||
|
======================================================================
|
||
|
|
||
|
1.1 What does FVWM stand for?
|
||
|
|
||
|
A: "Fill_in_the_blank_with_whatever_f_word_you_like_at_the_time
|
||
|
Virtual Window Manager". Rob Nation (the original Author of FVWM)
|
||
|
doesn't really remember what the F stood for origninally, so we
|
||
|
have several potential answers:
|
||
|
|
||
|
Feeble, Fabulous, Famous, Fast, Foobar, Fantastic, Flexible,
|
||
|
F!@#$%, Flashy, FVWM (the GNU recursive approach), Free, Final,
|
||
|
Funky, Fred's (who the heck is Fred?), Freakin', Flawed,
|
||
|
Father-of-all, Feivel (the mouse from "An American Tail"), etc.
|
||
|
|
||
|
Just pick your favorite (hey, there's another one!), which will of
|
||
|
course change depending on your mood and whether or not you've run
|
||
|
across any bugs recently. I prefer Fabulous or Fantastic myself,
|
||
|
although I often use F!@#$% or Freakin' while debugging...
|
||
|
|
||
|
Recently 'Feline' is becoming popular. Perhaps this has something
|
||
|
to do with the discovery that four of the six core developers have
|
||
|
cats (averaging 1.17 cats)? Miaow.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
1.2 Where do I find the current versions of fvwm?
|
||
|
|
||
|
A: New main distribution site (official + beta code):
|
||
|
|
||
|
ftp://ftp.fvwm.org/pub/fvwm/
|
||
|
|
||
|
Alternate sites:
|
||
|
|
||
|
USA:
|
||
|
ftp://sunsite.unc.edu/pub/Linux/X11/window-managers/
|
||
|
ftp://ftp.cs.columbia.edu/pub/cheah/
|
||
|
|
||
|
Europe:
|
||
|
ftp://unix.hensa.ac.uk/pub/walnut.creek/FreeBSD/incoming/
|
||
|
ftp://ftp.jussieu.fr/pub/X11/fvwm/
|
||
|
ftp://ftp.loria.fr/pub/unix/fvwm/
|
||
|
|
||
|
BTW, 1.24r was the last released version of the 1.xx series and the
|
||
|
first official release of 2.xx will be 2.2. As of 2.2, an odd second
|
||
|
digit denotes development releases and even numbers denote stable
|
||
|
releases.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
1.3 Any WWW Sites about FVWM?
|
||
|
|
||
|
A: Yup. The official site is:
|
||
|
|
||
|
http://www.fvwm.org/
|
||
|
|
||
|
There are links on the official site to other related fvwm sites.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
1.4 Where do I ask questions about FVWM?
|
||
|
|
||
|
A: If your local FVWM maintainer can't help you, then the newsgroup
|
||
|
comp.windows.x.apps is a good place, but the fvwm mailing list is
|
||
|
usually better. The new FVWM discussion mailing list address is:
|
||
|
|
||
|
fvwm@fvwm.org
|
||
|
|
||
|
And there is an announce mailing list as well:
|
||
|
|
||
|
fvwm-announce@fvwm.org
|
||
|
|
||
|
They are maintained by Jason Tibbitts, and are Majordomo based
|
||
|
mailing lists. To subscribe to the list, send "subscribe fvwm" in
|
||
|
the body of a message to <list>-request@fvwm.org. For example, to
|
||
|
subscribe to the fvwm mailing list, send a request to
|
||
|
fvwm-request@fvwm.org.
|
||
|
|
||
|
To unsubscribe from a list, send "unsubscribe fvwm" in the body of a
|
||
|
message to <list>-request@fvwm.org. To report problems, send mail to
|
||
|
fvwm-owner@fvwm.org.
|
||
|
|
||
|
Here's the list descriptions and instructions directly from Jason:
|
||
|
|
||
|
=================================================================
|
||
|
(fvwm)
|
||
|
|
||
|
Description
|
||
|
-----------
|
||
|
|
||
|
This list is for discussion relating to the FVWM window manager,
|
||
|
which is intended to have a small memory footprint and a rich
|
||
|
feature set, be extremely customizable and extendable and have a
|
||
|
high degree of Motif mwm compatibility. All relevant discussion is
|
||
|
encouraged. Posting of binaries or irrelevant discussion is
|
||
|
strongly frowned upon. Posting of short patches (less than 200
|
||
|
lines) is acceptable, but all patches should also be sent to the
|
||
|
fvwm-workers list (see Q5.2, below) for inspection and possible
|
||
|
inclusion in the distribution.
|
||
|
|
||
|
|
||
|
Instructions
|
||
|
------------
|
||
|
|
||
|
To send a message to the list, mail to fvwm@fvwm.org. For help on
|
||
|
dealing with the mailing list software (for getting the archives or
|
||
|
other files which may be made available) send the message "help" to
|
||
|
fvwm-request@fvwm.org. If you have problems with the mailing list
|
||
|
itself and need to talk to a human, send mail to fvwm-owner@fvwm.org.
|
||
|
This address is for mailing list issues only; reports on the FVWM
|
||
|
software will be sent to /dev/null.
|
||
|
|
||
|
Archives of previous messages are available; to get them send the
|
||
|
above mentioned help message and investigate the "index" and "get"
|
||
|
commands or ftp them from ftp://ftp.fvwm.org/pub/fvwm/list-archive/.
|
||
|
|
||
|
|
||
|
(fvwm-announce)
|
||
|
|
||
|
This list is for announcements relating to the FVWM window manager,
|
||
|
which is intended to have a small memory footprint and a rich
|
||
|
feature set, be extremely customizable and extendable and have a
|
||
|
high degree of Motif mwm compatibility.
|
||
|
|
||
|
Replies to messages from this list are set by default to go the
|
||
|
FVWM discussion list, fvwm@fvwm.org.
|
||
|
|
||
|
The current FVWM distribution is available for ftp at
|
||
|
ftp://ftp.fvwm.org/pub/fvwm/
|
||
|
=================================================================
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
1.5 What are the differences between FVWM 1.xx and 2.xx?
|
||
|
|
||
|
A: A lot. To name a few general ones:
|
||
|
- Bugfixes. 1.xx is not worked on at all any more.
|
||
|
- Better rc file format. No longer order dependent.
|
||
|
- More flexible and powerful. For example, many previously
|
||
|
global options now operate on a per window group level
|
||
|
instead.
|
||
|
- More and better modules.
|
||
|
- OpaqueResize is gone (fear not, it may come back).
|
||
|
- M4 preprocessing is no longer part of the fvwm exec, but
|
||
|
rather has been moved to a module. There is also a module
|
||
|
to use cpp too. See the FvwmM4 and FvwmCpp man pages.
|
||
|
|
||
|
Be sure to check the NEWS file for new or changed features too.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
1.6 What's the relative memory usage for the various window managers
|
||
|
out there?
|
||
|
|
||
|
A: Here's a little table comparing some of them. It was done on an
|
||
|
AIX based IBM RS6000 model 355 using the same number of windows (3)
|
||
|
and XSession to switch between the window managers, and I used
|
||
|
'top' to show the values:
|
||
|
|
||
|
SIZE RES
|
||
|
545K 652K fvwm2 (fvwm 2.0.35)
|
||
|
457K 528K fvwm (fvwm 1.24rb)
|
||
|
856K 960K ctwm (ctwm 3.2p1)
|
||
|
1004K 1156K mwm (mwm 1.2)
|
||
|
543K 632K twm (???)
|
||
|
263K 328K aixwm (a simple ugly window manager included w/ aix)
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
1.7 Why the rename of the various files (fvwm2, .fvwm2rc, fvwm2.man)?
|
||
|
|
||
|
A: Some people find this annoying, but let me say that I did that for
|
||
|
several reasons:
|
||
|
|
||
|
- so both 1.xx and 2.xx can be installed for use, in case some
|
||
|
people at the same site would rather stay at 1.xx
|
||
|
- fvwm2 coredumps usually if it tries to read in a 1.xx rc
|
||
|
file because the syntax is pretty different and completely
|
||
|
incompatable
|
||
|
- when people ask questions, if they explicitly mention their
|
||
|
.fvwm2rc file I know that they are running one of the 2.xx
|
||
|
versions, since they rarely mention exactly what version
|
||
|
they are running.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
1.8 When will fvwm release X.Y.Z be ready?
|
||
|
|
||
|
A: This is always a difficult question to answer. We work on fvwm on
|
||
|
a volunteer basis. Things get done when we have the time.
|
||
|
|
||
|
Joining the fvwm-workers mailing list might prove instructive.
|
||
|
|
||
|
|
||
|
======================================================================
|
||
|
2 - Installation
|
||
|
======================================================================
|
||
|
|
||
|
2.1 I want to use FVWM, but I don't have root access on my machine.
|
||
|
Can I still install and run it?
|
||
|
|
||
|
A: Very easily, using the '--prefix' flag at configure time.
|
||
|
|
||
|
Suppose your home directory is /home/sam. After unpacking the
|
||
|
fvwm2 sources, do "./configure --prefix=/home/sam [other options as
|
||
|
needed]'. Now, after building ("make") and installing ("make
|
||
|
install"), you will find the binaries in /home/sam/bin, the
|
||
|
manpages in /home/sam/man, etc. The modules will be in
|
||
|
/home/sam/libexec, and fvwm2 binary will have this module path
|
||
|
built in.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
2.2 I'm trying to use fvwm under CDE/COSE, but encountering
|
||
|
difficulties. Any suggestions?
|
||
|
|
||
|
A: Sure - here's one from Graeme McCaffery:
|
||
|
|
||
|
-----
|
||
|
Finally I have found out how to run fvwm properly from cde 8-))
|
||
|
(thanks to Lars Sodergren).
|
||
|
|
||
|
First set your home session in Dtwm. That usually is an empty
|
||
|
session, though you could have the cde session manager remember
|
||
|
what your desktop was like instead of FvwmSaveDesk etc..
|
||
|
|
||
|
Then you have to set two resources in .Xdefaults:
|
||
|
|
||
|
*wmStartupCommand: /home/orion/spxgm/bin/Fvwm
|
||
|
*waitWmTimeout: 1
|
||
|
|
||
|
In this case I run fvwm from a shell script so that library
|
||
|
variables etc are set properly for everyone. The waitWmTimeout
|
||
|
tells the session manager how long to wait until it starts the
|
||
|
window manager. I've set it to 1 second. By default it's 60 secs.
|
||
|
|
||
|
Finally you have to quit with
|
||
|
|
||
|
/usr/dt/bin/dtaction ExitSession (or whatever your path is for dtaction)
|
||
|
|
||
|
Now you can happily use cde programs and fvwm.
|
||
|
-----
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
2.3 I'm trying to compile FVWM under SunOS using cc, but the compiler
|
||
|
is having lots of problems. What gives?
|
||
|
|
||
|
A: cc under SunOS is not an ANSI C compiler. Try using acc or gcc
|
||
|
instead.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
2.4 I want colored icons, but they won't work. Why not?
|
||
|
When I run configure, it reports "no" to "Have XPM support?" How
|
||
|
can I get XPM support?
|
||
|
|
||
|
A: FVWM uses the XPM (X PixMap) library to provide support for colored
|
||
|
and shaped icons. XPM doesn't ship with the basic X distribution as
|
||
|
provided by The Open Group or XFree86. However, many vendors will
|
||
|
bundle it as a standard component anyway. If not, you can get a copy
|
||
|
of the source from ftp://ftp.x.org/contrib/libraries/ and build it
|
||
|
yourself.
|
||
|
|
||
|
If you have XPM on your system, there are a number of ways configure
|
||
|
could still decide not to use it.
|
||
|
|
||
|
First, if you've installed XPM in a non-standard place (not in the
|
||
|
normal system or X11 directories--say in /opt/xpm or /usr/local or
|
||
|
similar) then you need to tell configure where to look. Use the
|
||
|
--with-xpm-library and --with-xpm-includes options (see
|
||
|
INSTALL.fvwm). Typically configure will say "Xpm library or header
|
||
|
not found" if this is the problem.
|
||
|
|
||
|
Second, your version of XPM may be too old. FVWM requires XPM 3.4f
|
||
|
or better. Typically configure will say "Xpm library version is too
|
||
|
old!" if this is the problem. In that case, you'll need to install a
|
||
|
newer version.
|
||
|
|
||
|
Third, XPM may be mis-installed on your system. If configure says "
|
||
|
Xpm library version and header file version don't match!" then this
|
||
|
may be the problem. Either use the --with-xpm-library and
|
||
|
--with-xpm-includes options to specify more precisely what you want,
|
||
|
or try re-installing XPM.
|
||
|
|
||
|
Last, there could be a linker error. This is especially common on
|
||
|
systems where XPM may be built as a shared library and installed in a
|
||
|
non-standard directory (Solaris is a good example). There are some
|
||
|
notes about building using shared libraries in the INSTALL.fvwm
|
||
|
file.
|
||
|
|
||
|
If you can't figure it out, contact the FVWM mailing list. Please be
|
||
|
sure to provide the type of hardware and operating system you're
|
||
|
using, how you invoked configure, and extract the lines dealing with
|
||
|
XPM from the config.log file and include that.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
2.5 I'm a sysadmin, and if I wanted to force fvwm to read a system rc
|
||
|
file and then the user's rc file, how would I do that?
|
||
|
|
||
|
A: Well, you could probably do something like this:
|
||
|
|
||
|
- have the first line of everyone's .fvwm2rc be 'Read
|
||
|
global.fvwm2rc' and have global.fvwm2rc reside in your
|
||
|
defined "sysconfdir" (from the ./configure step).
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
2.6 I'm a sysadmin, and if I wanted fvwm to look for all of it's rc
|
||
|
files in a hidden directory, say ~/.fvwm, much like CDE does, how
|
||
|
could I do that?
|
||
|
|
||
|
A: This could be probably done similarily to Q2.5 above. The system rc
|
||
|
file in the "sysconfdir" could do something like:
|
||
|
|
||
|
Read .fvwm/Init quiet
|
||
|
Read .fvwm/Decors quiet
|
||
|
Read .fvwm/Styles quiet
|
||
|
Read .fvwm/Functions quiet
|
||
|
Read .fvwm/Menus quiet
|
||
|
Read .fvwm/Keys quiet
|
||
|
Read .fvwm/Modules quiet
|
||
|
|
||
|
or whatever breakdown you deemed appropriate, and you would have
|
||
|
default versions of these in {"sysconfdir"}/.fvwm/ that it could find in
|
||
|
case the user was missing one of them and you wanted to supply defaults.
|
||
|
|
||
|
|
||
|
======================================================================
|
||
|
3 - Features, Configuration, Functions & Commands
|
||
|
======================================================================
|
||
|
|
||
|
3.1 I use FVWM on a RedHat Linux system and can't figure out how to
|
||
|
change my FVWM configuration. I've read the FVWM manpage but when
|
||
|
I edit my .fvwm2rc nothing seems to happen. What's going on?
|
||
|
|
||
|
A: RedHat Linux installs the X server accompanied (by default) by a
|
||
|
configuration management system. In earlier releases it was called
|
||
|
TheNextLevel and in more recent releases it's called AnotherLevel.
|
||
|
For further information about TheNextLevel, consult RedHat's
|
||
|
documentation in /usr/doc/TheNextLevel/. For information about
|
||
|
AnotherLevel, do a 'man AnotherLevel'.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.2 Is it possible to raise a window when I click into the window
|
||
|
itself, not just the border?
|
||
|
|
||
|
A: Any version later than 2.0.46 (i.e. 2.1.0 or later) has this
|
||
|
feature. Currently it is provided through the GlobalOpts command.
|
||
|
This will possibly change in the future and be made an option to
|
||
|
the Style command:
|
||
|
|
||
|
GlobalOpts MouseFocusClickRaises
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.3 How do I get Alt-Tab behaviour like another GUI?
|
||
|
|
||
|
A: The built in command WindowList provides a very close approximation
|
||
|
to the Alt-Tab feature found in another GUI. It doesn't look the
|
||
|
same but the following .fvwm2rc sample will provide a similar
|
||
|
interface:
|
||
|
|
||
|
Key Tab A M WindowList Root c c NoDeskSort
|
||
|
|
||
|
Hitting Alt-Tab will pop up the WindowList menu. Unlike another GUI
|
||
|
you should not keep the Alt key held down, the menu will stay up
|
||
|
until you hit Return/Enter or Escape. You can change focus to a
|
||
|
window on the menu by using the up and down arrow keys to move the
|
||
|
menu selection and then hitting Return or Enter. Hitting Escape will
|
||
|
close the menu without doing anything. The WindowList menu has hot
|
||
|
keys assigned for the first 26 windows and you can use the hot key to
|
||
|
go directly to the window.
|
||
|
|
||
|
The menu invoked with the above line will show all windows in
|
||
|
most recently focused order unless you have used the Focus
|
||
|
command (see Q3.4). It shows each windows name and geometry
|
||
|
with some extra flags to indicate Sticky, OnTop and iconified
|
||
|
windows.
|
||
|
|
||
|
A simpler style can be used with the following:
|
||
|
|
||
|
Key Tab A M WindowList Root c c CurrentDesk NoGeometry
|
||
|
|
||
|
This will just list the windows on the current desk (titles only).
|
||
|
|
||
|
The other GUI has the feature of selecting the previous window if
|
||
|
Alt-TAB is hit and released quickly. This behaviour cannot be exactly
|
||
|
duplicated but similar functionality can be assigned to hitting
|
||
|
Alt-TAB twice in quick succession (like a double click for keys):
|
||
|
|
||
|
DestroyFunc my_dbltab2
|
||
|
AddToFunc my_dbltab2 "I" WindowListFunc $w
|
||
|
DestroyFunc my_dbltab
|
||
|
AddToFunc my_dbltab "I" Prev (CurrentDesk) my_dbltab2
|
||
|
Key Tab A M WindowList Root c c CurrentDesk NoGeometry my_dbltab
|
||
|
|
||
|
There are a lot of options to the WindowList command to control which
|
||
|
windows are listed in which order and it may not be possible to set
|
||
|
conditions for the Prev command to reliably select the second item
|
||
|
when double keying. The WindowList command has no parallel for
|
||
|
CurrentPage, Transient, Visible, Maximised, Raised, and pattern
|
||
|
matching. The Prev conditions have no parallel for OnTop, Alphabetic
|
||
|
and desk sorting. The WindowList menu respects the WindowListSkip
|
||
|
style attribute whereas Prev respects the CirculateSkip and
|
||
|
CirculateSkipIcon style attributes.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.4 What's the difference between the Focus and FlipFocus commands?
|
||
|
|
||
|
A: Both of these commands change the keyboard focus to the target
|
||
|
window. They differ only in the way they affect the internally held
|
||
|
list of windows. This list is used by the Next, Prev and WindowList
|
||
|
commands. The list is normally sorted in most recently focused order
|
||
|
with new windows being added to the end. The FlipFocus command plucks
|
||
|
the target window from the list and inserts it at the beginning, The
|
||
|
Focus command rotates the list around until the target window is at
|
||
|
the beginning. The behaviour of FlipFocus is also used when changing
|
||
|
focus with the mouse and the automatic focus changing when using
|
||
|
ClickToFocus style.
|
||
|
|
||
|
If you never use the Focus command the list will remain in most
|
||
|
recently focused order. If you do use the Focus command the list will
|
||
|
gradually get back to most recently focused order as you use
|
||
|
FlipFocus.
|
||
|
|
||
|
The Focus command is very useful in conjunction with the Next and
|
||
|
Prev commands. e.g.
|
||
|
|
||
|
Key KP_Add A M Next (CurrentDesk !Iconic) Focus
|
||
|
Key KP_Subtract A M Prev (CurrentDesk !Iconic) Focus
|
||
|
|
||
|
These bindings allow you to circulate the focus around the windows on
|
||
|
the current desk in both directions. If Prev FlipFocus were used the
|
||
|
focus would toggle between the top two windows on the window list.
|
||
|
|
||
|
If you have several windows on a desk and you want to set the
|
||
|
circulation order for the Next and Prev commands you should focus on
|
||
|
the windows using the mouse or FlipFocus in the order you want. Fvwm2
|
||
|
will learn the order and use it for the Next and Prev commands. If
|
||
|
you subsequently use the mouse to focus or FlipFocus the order will
|
||
|
be lost.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.5 You can bind mouse movements to keystrokes, how about mouse
|
||
|
presses?
|
||
|
|
||
|
A: Hm. This one is a little tougher. It could be done, but many
|
||
|
programs ignore synthetic events, which is what would be generated.
|
||
|
In X11R6.1 there is an extension (called XKBD?) which can do this,
|
||
|
but I don't want to code to anything specific to one of the newer
|
||
|
X11 versions like this. You could try using Xse, which is a
|
||
|
program to interface to XSendEvent, available at ftp.x.org. It
|
||
|
could probably be used in a smiliar manner to xcb above (or in
|
||
|
conjunction with it). If anyone comes up with good examples for
|
||
|
this, please send it to the fvwm mailing list for inclusion here.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.6 I'd like to bind a key to paste/use the current selection, how can
|
||
|
I do that?
|
||
|
|
||
|
A: You can't directly with fvwm, but there may be a solution that is
|
||
|
more generally applicable - use the program 'xcb' available at
|
||
|
ftp://ftp.x.org/contrib/utilities/ or from your favorite mirror. It
|
||
|
could probably be used to get the desired effect or close to it.
|
||
|
This is most useful for running programs and passing the selection to
|
||
|
them (eg - invoke your favorite browser with the current selection as
|
||
|
the URL). To get a semi-generic paste facility to work, you'll
|
||
|
probably need to use 'xse' (see Q3.5). If anyone comes up with a
|
||
|
good example of this, please send it to the fvwm mailing list for
|
||
|
inclusion here.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.7 Will FVWM ever support a separate colormap for each desktop?
|
||
|
|
||
|
A: Doubtful, althougth I'd like to see it too. I believe that it'd be
|
||
|
possible to change the default colormap whenever you switch desks,
|
||
|
which would give programs started when that desk is active that
|
||
|
colormap, how would you deal with windows being moved across desks?
|
||
|
|
||
|
Plus fvwm itself needs certain colormap entries for all of its
|
||
|
drawing (borders, menus, etc), so these colors would have to be
|
||
|
pre-allocated in all of the colormaps, or something like that.
|
||
|
|
||
|
While this all *might* be technically possible, I don't feel that
|
||
|
it's really feasable right now (too much code bloat and
|
||
|
complexity), especially since most color hog programs (ie Netscape)
|
||
|
allow you to have them install private colormaps.
|
||
|
|
||
|
I may explore this a little at some point in the future though.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.8 I really like the horizontal bars that appear on the title bars of
|
||
|
sticky windows. Can I get those on other windows as well?
|
||
|
|
||
|
A: Yes. Put the line "GlobalOpts StipledTitles" in your .fvwm2rc.
|
||
|
Note that this is a purposely undocumented feature since it
|
||
|
will eventually be made a Style option. If you use this,
|
||
|
it is guaranteed to stop working some day.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.9 How do I set the Sun keyboard key xxxx to an FVWM command? Or
|
||
|
more generally, I'm having problems defining key bindings for FVWM
|
||
|
- what can I do?
|
||
|
|
||
|
A: From Jon Mountjoy, one of FVWM's users:
|
||
|
- Function keys on Sun Keyboard on Top Row are F1 - F8
|
||
|
- Keys on the function keypad on the Left of the Sun Keyboard
|
||
|
are F11 == Stop, F12 == Again, ..., F20 == Cut
|
||
|
|
||
|
His Example:
|
||
|
|
||
|
# Function keys on Sun Keyboard on Top Row
|
||
|
Key F1 A N Exec me(netscape) &
|
||
|
Key F2 A N Exec me(netscape -install) &
|
||
|
Key F5 A N Exec makex(Adder)
|
||
|
Key F6 A N Exec makex(Lambda)
|
||
|
Key F7 A N Exec makex(Castor)
|
||
|
Key F8 A N Exec xterm -T Local &
|
||
|
|
||
|
# Keys on the function keypad on the Left of the Sun Keyboard:
|
||
|
# F11 = Stop, F12 = Again, ..., F20 = Cut
|
||
|
Key F11 AWF N Next [!iconic CurrentScreen CurrentDesk] Focus
|
||
|
Key F12 AWF N Prev [!iconic CurrentScreen CurrentDesk] Focus
|
||
|
Key F13 WF N Maximize 100 100
|
||
|
Key F15 WF N RaiseLower ""
|
||
|
Key F17 WIF N Iconify ""
|
||
|
Key F18 WF N Stick ""
|
||
|
Key F20 WIF N Delete ""
|
||
|
Key Help AWF N Iconify ""
|
||
|
|
||
|
A more general solution is to use xev (usually distributed w/ X11)
|
||
|
or xkeykaps (an X11 interface to xmodmap written by Jamie Zawinski,
|
||
|
available from ftp.x.org) to find out what the keysym for whatever
|
||
|
key you want REALLY is, and use that for binding fvwm commands.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.10 My .fvwmrc from version 1.xx no longer works. What do I do?
|
||
|
|
||
|
A: Start with a new one or convert your old one. This can be done by
|
||
|
hand or with a little help from the 'fvwmrc_convert' in the
|
||
|
utils directory.
|
||
|
|
||
|
And here is a list of rc file command changes compiled by Makoto
|
||
|
'MAR_kun' MATSUSHITA <matusita@ics.es.osaka-u.ac.jp>. It may or
|
||
|
may not be 100% accurate or complete, especially as changes evolve,
|
||
|
but it's a good start.
|
||
|
|
||
|
Note that there have been some changes in 2.1.x and up that are
|
||
|
not reflected in the conversion script yet.
|
||
|
|
||
|
** Fvwm-1.xx commands ** ** Fvwm-2.0.x equiv **
|
||
|
|
||
|
AppsBackingStore (obsoleted)
|
||
|
AutoRaise delay (obsoleted, use FvwmAuto)
|
||
|
BackingStore (obsoleted)
|
||
|
BoundaryWidth Width Style (BorderWidth width)
|
||
|
ButtonStyle button# WidthxHeight <-
|
||
|
CenterOnCirculate (obsoleted)
|
||
|
CirculateSkip windowname Style (CirculateSkip)
|
||
|
CirculateSkipIcons Style (CirculateSkipIcon)
|
||
|
ClickTime delay <-
|
||
|
ClickToFocus Style (ClickToFocus)
|
||
|
Cursor cursor_num cursor_type CursorStyle context cursornum
|
||
|
DecorateTransients Style (DecorateTransient)
|
||
|
DeskTopScale Scale (obsoleted, use FvwmPager)
|
||
|
DeskTopSize HorizontalxVertical <-
|
||
|
DontMoveOff (obsoleted)
|
||
|
EdgeResistance scrolling moving <-
|
||
|
EdgeScroll horizontal vertical <-
|
||
|
Font fontname MenuStyle (arg4)
|
||
|
Function FunctionName AddToFunc (not compatible)
|
||
|
HiBackColor colorname HilightColor (arg1)
|
||
|
HiForeColor colorname HilightColor (arg2)
|
||
|
Icon windowname bitmap-file Style (Icon iconname-file)
|
||
|
IconBox left top right bottom Style (IconBox l t r b)
|
||
|
IconFont fontname <-
|
||
|
IconPath path <-
|
||
|
Key keyname Context Modifiers Function <-
|
||
|
Lenience Style (Lenience)
|
||
|
MenuBackColor colorname MenuStyle (arg2)
|
||
|
MenuForeColor colorname MenuStyle (arg1)
|
||
|
MenuStippleColor colorname MenuStyle (arg3)
|
||
|
Module ModuleName <-
|
||
|
ModulePath path <-
|
||
|
Mouse Button Context Modifiers Function <-
|
||
|
MWMBorders Style (MWMBorder)
|
||
|
MWMButtons Style (MWMButtons)
|
||
|
MWMDecorHints Style (MWMDecor)
|
||
|
MWMFunctionHints Style (MWMFunctions)
|
||
|
MWMHintOverride Style (HintOverride)
|
||
|
MWMMenus MenuStyle (arg5)
|
||
|
NoBorder windowname Style (NoBorder)
|
||
|
NoBoundaryWidth Width Style (HandleWidth width)
|
||
|
NoPPosition Style (NoPPosition)
|
||
|
NoTitle windowname Style (NoTitle)
|
||
|
OpaqueMove percentage OpaqueMoveSize percentage
|
||
|
OpaqueResize (obsoleted)
|
||
|
Pager X_Location Y_Location (obsoleted, use FvwmPager)
|
||
|
PagerForeColor colorname (obsoleted, use FvwmPager)
|
||
|
PagerBackColor colorname (obsoleted, use FvwmPager)
|
||
|
PagerFont fontname (obsoleted, use FvwmPager)
|
||
|
PagingDefault pagingdefaultvalue (obsoleted)
|
||
|
PixmapPath path <-
|
||
|
Popup PopupName AddToMenu (not compatible)
|
||
|
RandomPlacement Style (RandomPlacement)
|
||
|
SaveUnders (obsoleted)
|
||
|
SloppyFocus Style (SloppyFocus)
|
||
|
SmartPlacement Style (SmartPlacement)
|
||
|
StartsOnDesk windowname desk-number Style (StartsOnDesk desk-number)
|
||
|
StaysOnTop windowname Style (StaysOnTop)
|
||
|
StdBackColor colorname Style (BackColor color)
|
||
|
StdForeColor colorname Style (ForeColor color)
|
||
|
StickyBackColor colorname (obsoleted)
|
||
|
StickyForeColor colorname (obsoleted)
|
||
|
Sticky windowname Style (Sticky)
|
||
|
StickyIcons Style (StickyIcon)
|
||
|
StubbornIcons (obsoleted)
|
||
|
StubbornIconPlacement (obsoleted)
|
||
|
StubbornPlacement (obsoleted)
|
||
|
Style windowname options <-
|
||
|
SuppressIcons Style (NoIcon)
|
||
|
WindowFont fontname <-
|
||
|
WindowListSkip windowname Style (WindowListSkip)
|
||
|
XORvalue number <-
|
||
|
|
||
|
** fvwm-1 built-in functions ***
|
||
|
|
||
|
Beep <-
|
||
|
CirculateDown [ name window_name ] Next (not compatible)
|
||
|
CirculateUp [ name window_name ] Prev (not compatible)
|
||
|
Close <-
|
||
|
CursorMove horizonal vertical <-
|
||
|
Delete <-
|
||
|
Desk arg1 arg2 <-
|
||
|
Destroy <-
|
||
|
Exec name command <-
|
||
|
Focus <-
|
||
|
Function <-
|
||
|
GotoPage x y <-
|
||
|
Iconify [ value ] <-
|
||
|
Lower <-
|
||
|
Maximize [ horizontal vertical ] <-
|
||
|
Module name ModuleName Module ModuleName
|
||
|
Move [ x y ] <-
|
||
|
Nop <-
|
||
|
Popup <-
|
||
|
Quit <-
|
||
|
Raise <-
|
||
|
RaiseLower <-
|
||
|
Refresh <-
|
||
|
Resize [ x y ] <-
|
||
|
Restart name WindowManagerName <-
|
||
|
Stick <-
|
||
|
Scroll horizonal vertical <-
|
||
|
Title <-
|
||
|
TogglePage (obsoleted)
|
||
|
Wait name <-
|
||
|
Warp [ name window_name ] Next or Prev (not compatible)
|
||
|
WindowsDesk new_desk (obsoleted, use MoveToDesk)
|
||
|
WindowList arg1 arg2 <-
|
||
|
|
||
|
*** New in fvwm-2 **
|
||
|
|
||
|
AnimatedMove
|
||
|
Destroy
|
||
|
DestroyMenu
|
||
|
ExecUseShell
|
||
|
KillModule
|
||
|
Menu menu-name double-click-action
|
||
|
MoveToDesk
|
||
|
MoveToPage
|
||
|
Next [conditions] command
|
||
|
None [arguments] command
|
||
|
Prev [conditions] command
|
||
|
Read filename
|
||
|
Recapture
|
||
|
SnapAttraction
|
||
|
SnapGrid
|
||
|
+
|
||
|
(more functions are being added from time to time, so please check
|
||
|
the manpage too).
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.11 What happened to the FVWM 1.xx 'include' command?
|
||
|
|
||
|
A: It was actually part of the M4 preprocessing. You can use the 'Read'
|
||
|
builtin to get the same effect, or use the FvwmM4 module.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
3.12 How do I get window titles on sub windows of ... (e.g. Netscape)?
|
||
|
|
||
|
A: These windows are known as 'transient' windows because of their
|
||
|
short lived nature. To get the window decorations for transient
|
||
|
windows you can use the Style command:
|
||
|
|
||
|
Style * DecorateTransient
|
||
|
|
||
|
or to switch it off:
|
||
|
|
||
|
Style * NakedTransient
|
||
|
|
||
|
======================================================================
|
||
|
4 - Modules
|
||
|
======================================================================
|
||
|
|
||
|
4.1 I'm using FvwmButtons (or GoodStuff in 1.xx), and sometimes the
|
||
|
buttons stay depressed, and other times they don't. Why is that?
|
||
|
|
||
|
A: From the FvwmButtons man page:
|
||
|
|
||
|
If command is an fvwm Exec command, then the button
|
||
|
will remain pushed in until a window whose name or
|
||
|
class matches the qouted portion of the command is
|
||
|
encountered. This is intended to provide visual
|
||
|
feedback to the user that the action he has requested
|
||
|
will be performed. If the qouted portion contains no
|
||
|
characters, then the button will pop out immediately.
|
||
|
Note that users can continue pressing the button, and
|
||
|
re-executing the command, even when it looks "pressed
|
||
|
in."
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
4.2 When having FvwmButtons swallow an app, is it possible to have
|
||
|
button presses assigned to actions as well? For instance, I'd
|
||
|
like to swallow xload and have a button press pop up an xterm, or
|
||
|
swallow xbiff and have a button press bring up the list of
|
||
|
messages.
|
||
|
|
||
|
A: You can do this, but it's not obvious how. The button presses
|
||
|
normally get passed through to the swallowed application, but if
|
||
|
you put a title on the button, you can assign actions to that.
|
||
|
Here's an example that someone sent to the mailing list once:
|
||
|
|
||
|
*FvwmButtons(1x4, \
|
||
|
Title, 'System Info' \
|
||
|
Swallow, "xload" 'Exec xload' \
|
||
|
Action(Mouse 1) 'Exec xosview -cua0 -net 200 -ul -l -geometry 325x325', \
|
||
|
Action(Mouse 2) 'Exec xcpustate -interval 1 -bg "#a4978e" -fg black', \
|
||
|
Action(Mouse 3) 'Exec rxvt -fg "khaki" -bg "dark olive green" \
|
||
|
-fat -n top -T Top -7 -e top' )
|
||
|
|
||
|
And you could come up with something similar for xbiff (untested):
|
||
|
|
||
|
*FvwmButtons(1x2 \
|
||
|
Title 'Check Mail' Swallow "xbiff" 'Exec xbiff' \
|
||
|
Action(Mouse 1) 'Exec from | xmessage -file -' )
|
||
|
|
||
|
plus you could bind another button (say Mouse 3) to run your
|
||
|
mail program.
|
||
|
|
||
|
Sometime in the future I'll probably try and fix it so that you can
|
||
|
actually assign a button press over the app itself...
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
4.3 I'm seeing odd things when trying to preprocess files with the
|
||
|
FvwmM4/Cpp module...
|
||
|
|
||
|
A: Yup, I imagine that you might be. Things like the InitFunction not
|
||
|
being called or windows that were running before FVWM started not
|
||
|
getting their Borders & Style options set, etc.
|
||
|
|
||
|
The reason for all this is because of the fact that FvwmM4 is a
|
||
|
module. Fvwm won't be looking at the commands comming back from
|
||
|
the module until after it hits the mainloop of the code, AFTER the
|
||
|
startup is all done and it's already tried to execute the
|
||
|
InitFunction.
|
||
|
|
||
|
So, some solutions I've been thinking about:
|
||
|
|
||
|
- Create an exec or script that will invoke whatever
|
||
|
preprocessor you want appropriately and run that via
|
||
|
PipeRead. All those default macros in the M4/Cpp modules
|
||
|
would need to become FVWM_* env vars, defined by fvwm and
|
||
|
used by the exec/script to pass them on as macros to the
|
||
|
preprocessor.
|
||
|
- I have a new dynamic loading module interface in mind that
|
||
|
would take care of this (among many other things), but that
|
||
|
won't happen for a while...
|
||
|
- As a simple temporary fix, FvwmM4/Cpp could send a
|
||
|
'Recapture' command back as the last thing done, plus
|
||
|
optionally an 'InitFunction' call (but that should be based
|
||
|
on a command line option).
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
4.4 I heard about this FvwmFileMgr module. Where can I find it?
|
||
|
|
||
|
A: The FvwmFileMgr module dissappeared because a file manager doesn't
|
||
|
need to be integrated with a window manager and something like xfm
|
||
|
does a much better job. I recommend you pick that up instead (from
|
||
|
ftp.x.org or your favorite mirror).
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
4.5 I used to use GoodStuff in FVWM 1.xx, but it's not in the 2.xx
|
||
|
distribution. What do I use now?
|
||
|
|
||
|
A: GoodStuff was renamed to FvwmButtons. Same module, new name (that
|
||
|
fits in with the other modules naming convention).
|
||
|
|
||
|
|
||
|
======================================================================
|
||
|
5 - Development, Known Problems & Bug Reports
|
||
|
======================================================================
|
||
|
|
||
|
5.1 I'd really like to see neat feature XYZ in FVWM. Wouldn't
|
||
|
that be cool? I even have a patch. When can it be added?
|
||
|
|
||
|
A: People are always requesting or suggestion new features (many of
|
||
|
which are great ideas and where a lot of the current features came
|
||
|
from). One of the more common ones for example is Windows 95 look
|
||
|
and feel (although since this was first written, that particular
|
||
|
feature has actually been indirectly implemented via several
|
||
|
appearance effecting features).
|
||
|
|
||
|
I'd like to make a statement about this. FVWM is supposed to be
|
||
|
small, fast, powerful, and flexible, and sometimes tradeoffs have
|
||
|
to be made here. The module interface helps here, as a lot of
|
||
|
features that not everyone wants or needs don't have to be in the
|
||
|
main module consuming resources for those people that don't want or
|
||
|
need them.
|
||
|
|
||
|
So if you have a suggestion (or a patch), please think of a way to
|
||
|
make it as small and generic as possible if you feel it belongs in
|
||
|
the main module. Also, take a look in the TODO list and see if it
|
||
|
isn't already in there.
|
||
|
|
||
|
Bear in mind that we make no guarantees that we'll add any requested
|
||
|
feature or apply any submitted patches to the official version, but
|
||
|
please don't let this dissuade you from submitting them. We like to
|
||
|
get new ideas and we're always curious to see how someone would
|
||
|
implement a given feature, even if we never plan to put it in fvwm.
|
||
|
Also, we may choose to reimplement any patches submitted, which may
|
||
|
change the syntax, functionality, etc. Please don't take offense
|
||
|
from that, as we mean no offense and we generally have a good reason
|
||
|
(at least by our way of thinking) for our actions...
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.2 How do I create/submit/apply patches?
|
||
|
|
||
|
A: Creating a patch -
|
||
|
|
||
|
1) Copy the original file(s) to the same name with the
|
||
|
additional extension of .orig (or something like that).
|
||
|
2) Update the ChangeLog file. If you use (x)emacs, move the
|
||
|
cursor into the function you changed and hit <ctrl>-x 4 a.
|
||
|
This will generate an empty ChangeLog entry in the right
|
||
|
file (there are several ChangeLogs). Add a description of
|
||
|
what you did. Do this each time you change a function or
|
||
|
file (for changes outside of funtions). You should update
|
||
|
the AUTHORS and NEWS files too if appropriate.
|
||
|
Please take the time to add the ChangeLog entries, it makes
|
||
|
our work a lot easier.
|
||
|
3) Run diff with either the -c (context) or -u (unified)
|
||
|
switch on the sets of files, with the .orig file FIRST. I
|
||
|
prefer unified diff's because they are smaller, but
|
||
|
sometimes they aren't as readable (and some diff versions
|
||
|
don't support unified diffs), so either context or unified
|
||
|
diffs are fine (but please, no "plain" diffs).
|
||
|
|
||
|
ex: cp fvwm.c fvwm.c.orig ; <edit> ; diff -u fvwm.c.orig fvwm.c
|
||
|
|
||
|
Submitting a patch -
|
||
|
|
||
|
Mail it to the fvwm-workers mailing list <fvwm-workers@fvwm.org>.
|
||
|
|
||
|
If your patch is large you should compress it (preferrably
|
||
|
with gzip). Should it still be larger than 25k you might want
|
||
|
to to place it on a web page and email the URL to the mailing
|
||
|
list or ask on the fvwm-workers list first.
|
||
|
|
||
|
Be sure to read the answer to Q16.
|
||
|
|
||
|
Don't forget the ChangeLog.
|
||
|
|
||
|
Applying a patch -
|
||
|
|
||
|
Get a copy of the program 'patch' from your favorite source,
|
||
|
such as ftp://ftp.gnu.org/gnu/patch/, compile it, and then
|
||
|
follow its directions (generally just cd into the appropriate
|
||
|
directory and run 'patch < patchfile').
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.3 How do I submit a bug report?
|
||
|
|
||
|
A: Please enter a DETAILED description of your problem in our web-based
|
||
|
bug-tracking system. You can find a link on our web page (see Q1.3).
|
||
|
By detailed we mean more than just "my window isn't behaving right" or
|
||
|
"I found a bug":
|
||
|
|
||
|
- Describe the problem as best you can, preferrably with
|
||
|
suggestions on how to reproduce it easily
|
||
|
- If applicable, include information from:
|
||
|
xwininfo (preferably w/ the -all option)
|
||
|
xprop
|
||
|
FvwmIdent
|
||
|
xdpyinfo (maybe)
|
||
|
- What OS & version you are running under
|
||
|
- What version of X11 are you running under, and is it an MIT
|
||
|
server or a vendor specific server (ex the OpenWindow X
|
||
|
server under SunOS)
|
||
|
- What exact version of FVWM you are running.
|
||
|
- How was FVWM compiled (compiler & version, options, etc)
|
||
|
- What settings to you have in your .fvwm2rc that may be
|
||
|
pertinent
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.4 I have a window that is behaving unexpectedly under FVWM, but just
|
||
|
fine under (whatever other window manager), or I have just some
|
||
|
random bug. What do I do?
|
||
|
|
||
|
A: First, check your rc file and your .Xdefaults to make sure that
|
||
|
something blatantly obvious in there isn't causing the problem.
|
||
|
Second, *PLEASE PLEASE PLEASE* check the FAQ, BUGS, TODO, and man
|
||
|
pages. Finally, check the official WWW page and the mailing list
|
||
|
archives (which have a search facility) stored there.
|
||
|
|
||
|
If you still can't figure it out, report your problem to our bug
|
||
|
tracking system (see Q5.3).
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.5 Why do NumLock and CapsLock interfere with ClickToFocus and/or my
|
||
|
mouse bindings?
|
||
|
|
||
|
A: Because they are treated as modifiers.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.6 Menus with gradient backgrounds flicker or are very slow.
|
||
|
|
||
|
A: The flickering is caused by fvwm constantly redrawing the menus
|
||
|
when a submenu pops up or down. One way to help this is to use a
|
||
|
X server with backing storage (XFree86 has backing storage
|
||
|
support, I don't know about other servers but I guess that any
|
||
|
decent X server has it). If your Xserver is started with the
|
||
|
-bs option, remove it. If not try the -wm option, for example:
|
||
|
|
||
|
startx -- -wm
|
||
|
|
||
|
You may have to adapt this example to your system (e.g. if you
|
||
|
use xinit to start X).
|
||
|
|
||
|
If that doesn't help, either because your X server does not have
|
||
|
backing storage or because system resources are limited, make
|
||
|
sure submenus do not overlap the parent menu:
|
||
|
|
||
|
MenuStyle <stylename> PopupOffset 1 100
|
||
|
|
||
|
Unfortunately this does not work properly with the fvwm
|
||
|
menu style.
|
||
|
|
||
|
For the speed problem both suggestions above might help too.
|
||
|
Another thing to try is to turn hilighting of the active menu
|
||
|
item other than by forground color off. Put these lines in your
|
||
|
.fvwm2rc after the menu styles have been defined:
|
||
|
|
||
|
MenuStyle <stylename> Hilight3DOff, HilightBackOff
|
||
|
MenuStyle <Stylename> ActiveFore <preferred color>
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.7 Why won't the StartIconic style work with {Netscape, etc.}?
|
||
|
|
||
|
A: The application won't allow it. This has only been observed with
|
||
|
Netscape. When Netscape starts up, FVWM starts the main window in
|
||
|
the iconic state. Netscape immediately issues another MapRequest,
|
||
|
to which the window manager must respond by de-iconifying the
|
||
|
window, according to the ICCCM rules. (Netscape can be persuaded to
|
||
|
start iconic, however, by invoking it with the -iconic command line
|
||
|
flag.)
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.8 How do I capture the output (eg errors) of fvwm?
|
||
|
|
||
|
A: Errors are reported to the standard error file. You can redirect
|
||
|
standard error to a file when fvwm2 is started: "fvwm2 2>
|
||
|
fvwm-errors". X sessions started by xdm often redirect errors to a
|
||
|
file named ".xsession-errors".
|
||
|
|
||
|
Alternatively, FvwmConsole or FvwmTalk modules will display error
|
||
|
messages.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.9 I try to run some program under FVWM, but it dies with an X11
|
||
|
error like BadAccess. The same program works just fine under MWM
|
||
|
or OLWM. What's going on?
|
||
|
|
||
|
A: The error message usually looks something like this:
|
||
|
|
||
|
X Error of failed request: BadAccess (attempt to access private
|
||
|
resource denied)
|
||
|
Major opcode of failed request: 28 (X_GrabButton)
|
||
|
Serial number of failed request: 1595
|
||
|
Current serial number in output stream: 1596
|
||
|
|
||
|
Well, this is telling you that there is a conflict in key/button
|
||
|
assignments. In your .fvwm2rc you have bound some key/button that
|
||
|
this program really wants to bind to an action, but it can't since
|
||
|
FVWM has already done so (but you weren't doing it in the rc file
|
||
|
for your previous window manager). Figure out what the offending
|
||
|
key binding is and remove it from your .fvwm2rc, or temporarily via
|
||
|
FvwmTalk by removing the FVWM binding (see the man page for the Key
|
||
|
& Mouse commands).
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
5.10 Every time I update my install, my currently running fvwm session
|
||
|
dies. Why is that?
|
||
|
|
||
|
A: Many OSes swap the program from memory via the image on the disk,
|
||
|
and if you overwrite it, and then the current one tries to swap
|
||
|
something back into memory before you restart, it'll core dump. To
|
||
|
avoid this, rename your old execs or move them to some other
|
||
|
directory. The 'mv' command preserves the inode so it won't
|
||
|
coredump, but then when you restart fvwm it'll pick up the new
|
||
|
copy.
|
||
|
|
||
|
|
||
|
======================================================================
|
||
|
6 - Miscellaneous
|
||
|
======================================================================
|
||
|
|
||
|
6.1 What exactly is the differenct between a DESK, a PAGE, and the
|
||
|
SCREEN?
|
||
|
|
||
|
A: Our naming convention is sometimes a source of confusion, and when
|
||
|
discussing problems and the like it's good to maintain a consistent
|
||
|
meaning. To illustrate how features of fvwm should be referred to
|
||
|
- fvwm has multiple disjoint DESKTOPS, each of which is comprised
|
||
|
of M by N PAGES, which are each the size of the physical SCREEN.
|
||
|
The physical SCREEN acts as a viewport over one of the PAGES of the
|
||
|
current DESK. Here's a picture to clarify (also, take a look at
|
||
|
the FvwmPager module):
|
||
|
|
||
|
Desk 0 Desk 1
|
||
|
+----------+----------+ +----------+----------+
|
||
|
| | | | | |
|
||
|
| Page 0 0 | Page 1 0 | | | |
|
||
|
| | | | | |
|
||
|
| | | | | |
|
||
|
+----------+----------+ +----------+----------+
|
||
|
|+--------+| | | | |
|
||
|
||Page 0 1|| Page 1 1 | | | |
|
||
|
|| || | | | |
|
||
|
|+--------+| | | | |
|
||
|
+----------+----------+ +----------+----------+
|
||
|
|
||
|
It shows two 2 x 2 DESKTOPS. If the current DESK were number 0,
|
||
|
and the current PAGE were 0 1, the SCREEN would show only the
|
||
|
windows located there, plus any sticky ones.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
6.2 I'd really like {OpenWindows, NeXT, Win95, Mac, etc} look and
|
||
|
feel. Are you going to support that?
|
||
|
|
||
|
A: This is not our primary mission, but we think fvwm2 does a pretty
|
||
|
good job of producing these appearances.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
6.3 Where can I get more XPMs for icons?
|
||
|
|
||
|
A: If you want more color icons, grab the ones out of the ctwm
|
||
|
distribution (also at ftp.x.org) which has a lot of nice ones. You
|
||
|
can also find more in other distributions at ftp.x.org, and at
|
||
|
http://www.sct.gu.edu.au/~anthony/icons/ (which has a lot, I
|
||
|
believe).
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
6.4 Linux XF86 virtual screen size & fvwm interaction...
|
||
|
|
||
|
A: Turn off the Linux Virtual Screen stuff in your XF86Config file if
|
||
|
you don't like it.... The XFree86 virtual screen feature and hardware
|
||
|
panning support in certain video cards is a pretty useless kludge when
|
||
|
you're using a window manager that implements virtual desktops.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
6.5 I know this question doesn't have to do with FVWM, but what
|
||
|
happened to to rxvt and rclock which Rob Nation used to support?
|
||
|
Where can I find them now?
|
||
|
|
||
|
A: This has come up a few times, so I thought I'd put it here too.
|
||
|
I believe that the new official home for rxvt is:
|
||
|
|
||
|
http://babayaga.math.fu-berlin.de/~rxvt/
|
||
|
|
||
|
and rclock can be found in that rxvt distribution as well.
|
||
|
|
||
|
|
||
|
======================================================================
|
||
|
7 - Hints and Examples from the Developers
|
||
|
======================================================================
|
||
|
|
||
|
7.1 An easy way to test new configurations.
|
||
|
|
||
|
Did you know that you do not need to restart X or fvwm2 to see what
|
||
|
most configuration commands do? There are several modules and
|
||
|
extras that allow you to issue fvwm2 commands at any time. Among
|
||
|
these are FvwmCommand, FvwmTalk and FvwmConsole. Personally I use
|
||
|
FvwmCommand and FvwmConsole.
|
||
|
|
||
|
When you run FvwmConsole you get a shell like window where you can
|
||
|
type configuration commands that are sent to fvwm2. Just add an
|
||
|
entry to some menu that starts it:
|
||
|
|
||
|
AddToMenu main_menu
|
||
|
+ "FvwmConsole" Module FvwmConsole
|
||
|
|
||
|
Using FvwmCommand is a bit more tricky. To use it you need to start
|
||
|
a server in your .fvwm2rc by adding this line:
|
||
|
|
||
|
Module FvwmCommandS
|
||
|
|
||
|
Make sure FvwmCommand is in your search path. Now you can enter
|
||
|
commands on the command line of your favorite shell:
|
||
|
|
||
|
FvwmCommand "MenuStyle * Font 6x9"
|
||
|
|
||
|
Note that you have to quote the command. The advantage of
|
||
|
FvwmCommand over FvwmConsole is that you can use your shell with
|
||
|
all its features to run commands (command completion and history
|
||
|
for example). The disadvantage is that it is a bit slow since a new
|
||
|
FvwmCommand has to be started for each command.
|
||
|
|
||
|
Other related modules and commands are FvwmScript and PipeRead.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.2 Using shell commands for configuration.
|
||
|
|
||
|
Sometimes you might want to use the output of a shell command or
|
||
|
script in your .fvwm2rc. For example you might need a menu that has
|
||
|
all filenames in a certain directory as its entries. You can use
|
||
|
the PipeRead command and the FvwmCommand module. I recommend using
|
||
|
PipeRead since creating twenty menu items takes a considerable
|
||
|
amount of time with FvwmCommand.
|
||
|
|
||
|
Example from my .fvwm2rc:
|
||
|
|
||
|
# make the background menu
|
||
|
AddToFunc MakeBackgroundMenu
|
||
|
+ "I" DestroyMenu BackgroundMenu
|
||
|
+ "I" AddToMenu BackgroundMenu Backgrounds Title
|
||
|
+ "I" PipeRead 'for i in `/bin/ls $HOME/.fvwm2/backgrounds/*.bg.*`; \
|
||
|
do echo -e AddToMenu BackgroundMenu `basename $i | sed -e \
|
||
|
"s/\.bg\..*$//"` Function SetDefaultBackground $i; done'
|
||
|
|
||
|
# set the default background
|
||
|
AddToFunc SetDefaultBackground
|
||
|
+ "I" Exec echo -e $0 > $HOME/.fvwm2/background
|
||
|
+ "I" Function SetBackground
|
||
|
|
||
|
# set a new background
|
||
|
AddToFunc SetBackground
|
||
|
+ "I" Exec test -r $HOME/.fvwm2/background && xv -root -quit -viewonly \
|
||
|
`cat $HOME/.fvwm2/background|tr -d "\n"`
|
||
|
|
||
|
# activate setting from last session and build the menu
|
||
|
AddToFunc InitFunction
|
||
|
+ "I" Function SetBackground
|
||
|
+ "I" Function MakeBackgroundMenu
|
||
|
|
||
|
|
||
|
The MakeBackgroundMenu function builds a menu that contains an item
|
||
|
for every file that matches the pattern "*.bg.*" in the directory
|
||
|
$HOME/.fvwm2/backgrounds. The suffix .bg.* is removed. When I
|
||
|
select an item the file is displayed in the background using xv.
|
||
|
Furthermore the path and filename are stored in
|
||
|
$HOME/.fvwm2/background. When I start my next fvwm2 session the
|
||
|
filename is fetched from there so I get the background from my last
|
||
|
session.
|
||
|
|
||
|
I have an even more complex setup for color palettes.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.3 How to start applications on a page or desk other than the current.
|
||
|
|
||
|
Use the 'StartsOnDesk' or 'StartsOnPage' style in your .fvwm2rc:
|
||
|
|
||
|
Style Netscape* StartsOnPage 0 1
|
||
|
|
||
|
or
|
||
|
|
||
|
Style Netscape* StartsOnDesk 1
|
||
|
|
||
|
Any window with a title that begins with 'Netscape' will be placed
|
||
|
on page 0 1 (desk 1). You will probably want to use these options
|
||
|
too:
|
||
|
|
||
|
GlobalOpts RecaptureHonorsStartsOnPage, CaptureHonorsStartsOnPage
|
||
|
|
||
|
Note that the GlobalOpts command will be removed some day in the
|
||
|
future and this options will become style flags.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.4 How to start applications on a page or desk other than the current
|
||
|
without moving the viewport to the new page or desk.
|
||
|
|
||
|
Use the SkipMapping style:
|
||
|
|
||
|
Style Netscape* StartsOnPage 0 1, SkipMapping
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.5 A more efficient MWM menu style.
|
||
|
|
||
|
Perhaps you have noticed that with the MWM menu style your sub
|
||
|
menus are shown as soon as the pointer enters their menu item. Even
|
||
|
if you just want to scroll down the list. You can prevent this with
|
||
|
the 'PopupDelay' and 'PopupDelayed' options of the MenuStyle
|
||
|
command:
|
||
|
|
||
|
MenuStyle mwm
|
||
|
MenuStyle PopupDelayed, PopupDelay 80
|
||
|
|
||
|
The sub menu will we shown 80 milliseconds after the pointer enters
|
||
|
the menu item. You will hardly notice the delay. Note that 80 ms
|
||
|
is just long enough to move through the menu with auto repeat on my
|
||
|
cursor keys. You may have to experiment with this number to get it
|
||
|
right.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.6 Placing menus on the screen.
|
||
|
|
||
|
Do you have to close windows or move the pointer all over the
|
||
|
screen to find some part of the background where you can bring up
|
||
|
your main menu (or any other root menu)?
|
||
|
|
||
|
Then you should use a keyboard shortcut. For example
|
||
|
|
||
|
Key space A M Menu root c c main_menu
|
||
|
|
||
|
in your .fvwm2rc gives you the menu 'main_menu' in the center of
|
||
|
the screen when you press Alt-space. Or you might want a shortcut
|
||
|
to the window menu:
|
||
|
|
||
|
Key space A SM Menu root c c WindowMenu
|
||
|
|
||
|
You can place menus anywhere you like, not just where the mouse
|
||
|
pointer is. Please read the section for the 'Menu' command in the
|
||
|
manpage.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.7 Are you flipping pages by accident when moving the mouse close to
|
||
|
the border of the screen?
|
||
|
|
||
|
You can disable page flipping with the EdgeScroll command:
|
||
|
|
||
|
EdgeScroll 0 0
|
||
|
|
||
|
in your .fvwm2rc turns it off.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.8 Lining up your windows and icons.
|
||
|
|
||
|
The SnapAttraction and SnapGrid commands really help to keep your
|
||
|
desktop tidy. With SnapAttraction windows (or icons or both) are
|
||
|
'attracted' to each other. When you drag a window (icon) and it
|
||
|
comes close to another window (icon) it clings to it without a gap
|
||
|
between the borders. Put this command in your .fvwm2rc:
|
||
|
|
||
|
SnapAttraction 8 SameType
|
||
|
|
||
|
This means windows cling to other windows if they get closer than
|
||
|
8 pixels and icons cling to icons. Or if you just want it for
|
||
|
windows/icons use
|
||
|
|
||
|
SnapAttraction 8 Windows
|
||
|
|
||
|
or
|
||
|
|
||
|
SnapAttraction 8 Icons
|
||
|
|
||
|
Or if you want icons to cling to windows and vice versa:
|
||
|
|
||
|
SnapAttraction 8 All
|
||
|
|
||
|
|
||
|
The SnapGrid command is a big help too:
|
||
|
|
||
|
SnapGrid 8
|
||
|
|
||
|
in your .fvwm2rc tells fvwm2 to use a grid of 8 pixels to place
|
||
|
windows and icons. Try it and see if you like it.
|
||
|
|
||
|
Hint: It might be a good idea to use a divisor of your desktop
|
||
|
width and height for SnapGrid.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.9 Moving the mouse/focus/page with the keyboard.
|
||
|
|
||
|
Try these key bindings for mouse movement:
|
||
|
|
||
|
# shift-<direction> to move a few pixels
|
||
|
Key Left A S CursorMove -1 0
|
||
|
Key Right A S CursorMove +1 +0
|
||
|
Key Up A S CursorMove +0 -1
|
||
|
Key Down A S CursorMove +0 +1
|
||
|
|
||
|
# shift-meta-<direction> to move 1/4 page
|
||
|
Key Left A SM Scroll -25 +0
|
||
|
Key Right A SM Scroll +25 +0
|
||
|
Key Up A SM Scroll +0 -25
|
||
|
Key Down A SM Scroll +0 +25
|
||
|
|
||
|
or these to flip pages
|
||
|
|
||
|
# shift-control-<direction> to move a full page
|
||
|
Key Left A SC CursorMove -10 +0
|
||
|
Key Right A SC CursorMove +10 +0
|
||
|
Key Up A SC CursorMove +0 -10
|
||
|
Key Down A SC CursorMove +0 +10
|
||
|
|
||
|
# Alt-Fn to go to a specific page (like on the Linux console)
|
||
|
Key F1 A M GotoPage 0 0
|
||
|
Key F2 A M GotoPage 1 0
|
||
|
Key F3 A M GotoPage 0 1
|
||
|
Key F4 A M GotoPage 1 1
|
||
|
|
||
|
or to change the focus to a window in a specific direction:
|
||
|
|
||
|
# number keys on keypad to move the focus
|
||
|
Key KP_1 A C Direction SouthWest Focus
|
||
|
Key KP_2 A C Direction South Focus
|
||
|
Key KP_3 A C Direction SouthEast Focus
|
||
|
Key KP_4 A C Direction West Focus
|
||
|
Key KP_6 A C Direction East Focus
|
||
|
Key KP_7 A C Direction NorthWest Focus
|
||
|
Key KP_8 A C Direction North Focus
|
||
|
Key KP_9 A C Direction NorthEast Focus
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.10 The cat safe desktop :-)
|
||
|
|
||
|
If your cats keep stepping on your keyboard while you are brewing
|
||
|
another cup of coffee on of these hints may help:
|
||
|
|
||
|
Use 'Style * MouseFocus' and move the mouse pointer over the
|
||
|
background when you go away.
|
||
|
|
||
|
If you can't do without your 'SloppyFocus' you can move the
|
||
|
mouse pointer into a window that takes no keyboard input and
|
||
|
give it the focus (e.g. FvwmButtons or a console message
|
||
|
window). A true fanatic creates a separate window with a picture
|
||
|
of his cat for this :-)
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
7.11 Lowering and moving windows.
|
||
|
|
||
|
In some configurations moving a window with the middle mouse
|
||
|
button lowers the window after moving it. Lowering it before
|
||
|
moving gives you a nice visual effect:
|
||
|
|
||
|
Mouse 2 T A Function MoveOrLower
|
||
|
|
||
|
AddToFunc MoveOrLower
|
||
|
+ "Click" Lower
|
||
|
+ "Motion" Lower
|
||
|
+ "Motion" Move
|
||
|
+ "DoubleClick" Lower
|