Discussion:
FVWM: Various notes on my experience with FVWM
Mathieu Bonnet
2012-02-08 23:32:42 UTC
Permalink
NOTICE: I am not subscribed to this list, so CC me if there is
a need for me to reply, and it does not take too much time. No
need to CC me for simple comments and status, I'll check the
web archive once in a while for some time.


Hi,

I started using FVWM around September 2011, and as I regularly
do, I wrote most problems I encountered, and suggestions I could
make. There are about 7000 words, for about 70 notes.

I suppose you know most of what I wrote already, some things may
only be confusion on my part (which may not be insignificant in
some cases though), and some others may have already been solved
since, but it's my experience with FVWM, and I hope there can
be some use for it :)

I was using FVWM 2.6.1 and 2.6.2 at the time (it is mostly a
September/October test, I couldn't find the time to continue
my configuration for now, but I'm using it now :)), under Gentoo
Linux.

Feel free to contact me if you need some clarification, if it
does not take too much time.

Thanks for FVWM,

Good luck in the future,

Bye!


PS: Don't mind the possibly directive tone in some notes, it's
mostly just terseness.


============================================================


01) New functions to implement by default:

- MoveToDeskAndPage
- MoveAndGotoDesk, MoveAndGotoPage, MoveAndGotoDeskAndPage

==========

02) I didn't find a way to concatenate commands (i.e., execute
multiple commands for like a keyboard shortcut or a menu
entry), and to specify user function arguments. We should not
need to use Perl or something else like this, for such
relatively simple features. It could avoid the need to create
user functions in the first case, and limit their number in the
second case (instead of having to define a function for each
possible argument).

- Ok actually we sure can use function arguments, so no problem
for this. The manual states, for the AddToFunc section: "There
is a number of predefined symbols that are replaced by certain
values if they appear on the command line. Please refer to the
Command Expansion section for details". Visibly, I didn't find
this clear enough. Now that I read more in detail, arguments
are also described in the examples under it. I'd say the
expression "function argument" or "function parameter" should
be in bold somewhere near the top of this section, probably
associated to the "predefined symbols" sentence, slightly
adjusted in consequence.

==========

03) Why "EWMHNoMiniIconOverride", and not
"!EWMHMiniIconOverride"? Is it still not deprecated? Will it be
in the future? (if not it should, for consistency). Does
"!EWMHMiniIconOverride" already works?

- Same for many options, it's not consistent, it's confusing.

- Even more confusing: "EWMHUseStrutHints" vs.
"EWMHIgnoreStrutHints".

- "DecorateTransient" vs. "NakedTransient".

- "BackingStore" vs. "BackingStoreOff" (vs.
"BackingStoreWindowDefault").

- "IconOverride" vs. "NoIconOverride" vs.
"NoActiveIconOverride" (apparently no "ActiveIconOverride"...
why a different name, if it is to prefix it with "No"?).

- Why "Style ** Icon unknown.xpm", and not simply "Style * Icon
unknown.xpm, NoIconOverride"? '**' is apparently used nowhere
else in this way... It complexifies the syntax...

- It's not even consistent for the same form of options... In
EWMH options, you already have "EWMHIgnoreWindowType" vs.
"!EWMHIgnoreWindowType"... (However you should really use
positive names, to avoid double-negatives, which are more
confusing... I suppose you used "Ignore", because the default
is not to ignore, to avoid having to use '!' symbols, but it
makes names inconsistent, and defaults can change -and AFAIC I
prefer to define most everything anyway, to be sure, so it
makes everything quite complex).

==========

04) I'd say the default configuration should:

- Use ClickToFocus.

- Allow resizing using the entire window borders and not just
their corners.

- Have nothing bound on Mouse 1 on the root window. The current
root menu would be rebound to Mouse 3, the current window list
on Mouse 3 would be rebound to Mouse 2. The current window ops
menu on Mouse 2 would be removed.

- Have various mouse and keyboard shortcuts to move between
desks and pages.

Like some combinations of Ctrl/Alt/Shift + arrows, to move
between pages, with or without the focused window. And Page
Up/Down instead of the arrows for desks.

- Obviously, to each his own, and obviously it is not meant to
be a stable configuration. But these changes would make it
significantly easier to start FVWM more rapidly, to continue
and finish our configuration, rather than either having to
spend days configuring FVWM from another window manager, or
suffering the various differences with "the more common
settings". MouseFocus and the left-click root menu easily make
every action dangerous. Missing the titlebar and clicking the
root window may mean closing FVWM. Forgetting to move the mouse
inside a window may mean deleting/adding some text to the
window below, with consequences which can easily be desastrous.
I understand some people may have gotten used to it, but it is
a very particular choice, and making it the default, notably
today, is simply a problem.

==========

05) Isn't there any way to EdgeResistance to switch desktop
pages with some pixel distance traveled outside the screen
area? A simple timer changes nothing to the problem of putting
the mouse in some corner quickly to get it out of the way,
leading to unwanted switches... If I had to actually travel a
few hundred pixels, it would limit this problems.

- If not possible (i.e., no way to record mouse movements in
the direction of the desktop page border, when already at the
desktop page border), at least some option so that, if the
mouse is not moving vertically on the left/right sides, or
horizontally on the top/bottom sides (i.e., perpendicular to
where we want to go, parallel to the screen side), after x
milliseconds from the time it entered the edge area of the
screen, desktop page switching is cancelled. That is, if I
throw my mouse to the side of my screen, and do not move it
anymore, there will be no switching. If I really want to
switch, I know I need to be sure to move my mouse a bit in the
edge area, perpendiculary to where I want to go, so that the
move can be registered and detected. And I suppose there is not
even to think about it, there will most likely be some
involuntary perpendicular movement. AFAIC, when I want to
switch, I generally often already have a clear diagonal
movement anyway.

==========

06) "Style * ResizeOpaque", but "OpaqueMoveSize unlimited"? No
transition to Style? Like "Style * MoveOpaque <max-size>". If
no argument, it would mean "unlimited".

==========

07) Some option so that "SnapAttraction" and "SnapGrid" apply
to resizing windows too. It is just as commonly needed as for
moving actions.

==========

08) Why is UrgencyFunc by default so pushy? Why is it filled
internally and not simply part of the default configuration
files generated when requested on first start, so we can easily
notice and adjust/remove it?

==========

09) Why are there internal default keyboard and mouse bindings?
Same as UrgencyFunc, they should all be defined in the default
configuration files generated when requested on first start, so
we can easily notice and adjust/remove them. This is a matter
of control and security in case you add any other internal
default bindings. And this is a matter of simplicity so we
don't have to find them all (`PrintInfo bindings`, manual, web
hoping it is updated) and reset them.

- If you are really worried about configuration mistakes making
us lose all access to FVWM commands, then at least provide some
option which would reset all builtin bindings easily, without
having to worry about future changes.

==========

10) There should be special keywords for the Layer command, for
the bottom/put/top layers as specified by the DefaultLayers
command. There should also be references to the Layer command
in the manual, from the DefaultLayers command section, and from
the StaysOnBottom, StaysPut, and StaysOnTop style descriptions.

==========

11) Why isn't WindowListFunc prefixed with 'Fvwm' like some
other builtin functions? I suppose I should use my own prefix
(but without namespace support, there is always a risk that a
simple prefix may be used some day), but mixing functions with
and without the 'Fvwm' prefix can be a bit confusing, and some
people may mistakenly override a builtin function, maybe losing
some functionality, or replacing them, with possible
control/security risks.

==========

12) I'd like to have an empty space on the right of window
titlebars, between the minimize/maximize buttons, and the close
button. I used an empty button with the Nop command, which is
visually ok although I would prefer full control of the space
to reduce it a bit, including in case I may want to add more
buttons there (like a sticky button on the left of the minimize
button, with yet another margin... I cannot even do it now
using an empty button, because it would require 6 buttons on
the right side). However, it still shows a hand when hovering
the area, which I would like to avoid.

- It would be nice to fully control the margin between these
buttons, and use the normal mouse cursor inside these spaces.
Probably set in the flag part of the ButtonStyle command.
Something like 'Margin 10' would add 10px to the left margin of
the left-side buttons, and 10px to the right margin of the
right-side buttons.

==========

13) ImagePath does not accept double quotes around the path
list.

==========

14) Configuration GTK en su root.

==========

15) "TitleStyle Centered Height 22", but "Style * BorderWidth
7, HandleWidth 7"? (there should be a BorderStyle alternative
syntax to specify these settings, like there is with
TitleStyle).

==========

16) Rounded corners for window borders. From what I understand,
we can use a transparent pixmap, but it requires enough
BorderWidth/HandleWidth for the actual corner. If I want a
1px-wide border, I could only remove 1px from the corners,
which is not enough. There should at least be some option to
have simple length-adjustable symmetric rounded corners for all
corners. The possibility to adjust their length independently
from each other would be useful in some cases (notably to
adjust the corners around the titlebar independently from the
two opposite ones). Asymmetric corners are probably far less
useful, but I suppose some people might want some, for specific
designs.

==========

17) BorderStyle should accept more styles. For example, Solid,
instead of having to give a colorset.

==========

18) Why is there a "Background" option for colorsets, but no
"Highlight" (only "Hilight")? It's even shorter by one
character... Also, "hilight" is used as a noun and verb all
through the manual, which from what I can see is an incorrect
usage.

==========

19) Apparently we cannot set different pixmaps for each border,
nor style the corners independently from the borders. What if I
want some horizontal texture for the horizontal borders, a
90°-rotated variation for the vertical borders, and some
adapted corners to join the two? Maybe even just 1px white, 2px
black, 1px white. The NoInset/Raised/Sunk flags do not give
good results for this, and I may want very specific colors.
Maybe at least some sort of SGradient which would only start
from the start of the border, and would not be stretched from a
square (i.e., you could set precisely the pixels for a thin
border).

- It could be useful to be able to specify different
BorderWidth/HandleWidth for each side too.

==========

20) I use flat borders and a flat titlebar, of the same color.
There should be an option to include a margin, between the
content of the window and the titlebar, of the same height of
the border, so that the titlebar buttons and title look
centered vertically in the titlebar area.

- The style of this margin would be configured like a border.
Some option to use the current border styles, and another one
to use the current titlebar style (in practice, in this case,
it would act as if it was an integral part of the titlebar).

- There is also the possibility of allowing us to adjust the
vertical alignment of the title in the titlebar, to center it
manually, but the possibility to configure the bottom of the
titlebar like a border would be nice, including to simply add
some 1px contrasting line to better separate it from the
content of the window.

==========

21) "Olive" is missing from my /usr/share/X11/rgb.txt. When set
as a background color with TitleStyle Inactive, through a
colorset, it leads to a black background. While this surely
should be the responsibility of Xorg maintainers, I suppose
that for some obscure matter, they still refuse to add it (they
have various color names containing "olive", and "olive" is an
HTML 3.2 and SVG color). It would be nice to include aliases
for all colors mentioned in HTML/CSS/SVG, which are not
included in Xorg, to avoid having to use RGB values.

==========

22) The rgb:XX/XX/XX format is used in examples in the manual,
but not explained independently, and there are apparently no
mention to the #XXXXXX format, which seems to be used by some
people, and I think I already tested it, although it sure is
not very good for it to use the '#' which is used for comments
in the file (even if maybe only at the beginning of lines
here?).

- Maybe an rgb:XXXXXX format should be supported too. It would
make it easier to copy-paste from and to other sources,
compared to the rgb:XX/XX/XX format.

==========

23) If I use "TitleStyle Centered Height 16", the application
mini-icon is 12x12px instead of 16x16px (i.e., there is some
margin we apparently cannot remove, which is reducing the icon
dimensions). There should be some option to adjust and remove
this margin, so that we can have a 16x16px titlebar without
reducing the icon dimensions. Same with all the titlebar
buttons I suppose.

==========

24) I'm used to being able to click the root window to unfocus
windows, to remove the text cursor and prevent text entry. It's
mostly a tic, but I'd like to reproduce this in FVWM, which by
default, after having remove the left-click root menu, does not
unfocus windows at all when clicking the root window.

- Currently, I use "Mouse 1 R A Focus", but while it does
remove the text cursor and prevent text entry, there are two
problems: it does not use the inactive window border/titlebar
styles, so visual feedback is limited, and it changes the mouse
cursor to a cross, which can catch the attention.

When clicking the root window twice, I get some brief HDD
and/or CPU noise, and the mouse cursor changes back to the
normal cursor. But the previously focused window still keeps
the active styles.

==========

25) Why "Iconify", "Maximize", "Delete", etc., but
"WindowShade"?

==========

26) I bound mouse buttons 6 to 9 to simple commands, and I get
on stderr things like:

[fvwm][ParseBinding]: <<WARNING>> Got mouse button 6 when the
maximum is 5. You can't bind complex functions to this button.
To suppress this warning, use: Silent Mouse 6 W 3 WindowShade

- FVWM should detect if it will work, and do not print a
warning. I don't want to clutter my session log file, and would
like to avoid using an additional keyword for no reason.

==========

27) In FvwmButtons, "ActiveColorset" when hovering, but for
commands like "ButtonStyle", "BorderStyle", etc., "Active"
means "pressed" ("PressColorset" in FvwmButtons).

==========

28) Apparently "TitleStyle Colorset" only sets the background
color. For the foreground color, "Style * ForeColor" and
"HilightFore" color must be used.

- Also, colorsets have a "Hilight" property, but it does not
differentiate between background and foreground.

- More generally, colorsets seem underused.

As another example, in FvwmButtons, the manual says the
"Colorset" option only sets the background color... We have to
use the "Fore" option for the foreground, and apparently it
does not accept colorsets. Not only is this inconsistent, but
it also make us lose the benefit of centralizing color
definitions to easily change them...

Now that I read more and more of the different manuals and try
to find help from the web, I notice that there are multiple
cases of "commands vs. style instructions"... Sometimes
apparently the command is more basic, regarding colorsets, than
using a style instruction... It's quite confusing for
beginners, and can lead to quite a bit of wasted time. More
generally, it is quite messy in term of inheritance rules...
Apparently, if we specify one colorset, we cannot use
Back/Fore/etc. options in child contexts... For example, I use
the "Colorset" option of my FvwmButtons, and it renders the
"Back" option of each individual button useless, and I have to
define a colorset for each one...

It would be nice to be able to use names for colorsets, instead
of numbers. It would ease things a lot, when working on complex
configurations with a lot of modules and color variations
between modules.

==========

29) I noticed a few typos in the manuals. You should at least
use a spell checker to limit these (including FVWM keywords,
using a personal dictionary).

Some examples:

- Main manual: "What it should be understand".

"or that attepmts to become full screen but has
the." ("attempts", and unfinished sentence).

"NoUseUSPosition works like !UsePPosition but applies
suppresses using the user specified position indicated by the
program" ("applies suppresses"?).

- FvwmButtons manual: '$lleft' instead of '$left' (well this
one would still be noticed by a spell checker, and anyway you
could include all keywords in a personal dictionary to check
them too).

- FvwmPager manual: '*FvwmPager: Font font-name', then just
below 'If font_name is' ('-' vs. '_'). Same below for the
'SmallFont' option. Possibly elsewhere too.

==========

30) I use "Style FvwmButtons FixedSize, FixedPosition" for my
system panel, it does prevent resizing/movements, but the mouse
cursor still changes when hovering the border.

==========

31) I do not understand what the ColormapFocus does. The manual
says very little about it. Searching for "Colormap" leads us to
a large paragraph about color depth... If I understand it
correctly, considering I use a depth of 24 bits, I should not
care at all about this option? It should be written in the
description of the ColormapFocus command.

==========

32) In the default configuration, fvwm.buttons file:

# Show 5 more desks in a popup panel:
# Unfortunately, a popup shows the desks 1 to 5, then 0

- This comment is above the line for the task list. The popup
panel line is:

*FvwmButtons: (1x2, Panel(up, indicator, delay 5000, steps 5,
position Root 46 -108p) FvwmPagerSubPanel "Module FvwmPager
FvwmPagerSubPanel 1 5")

==========

33) FvwmButtons manual: the option following the "Legacy fields
[title icon command]" option is titled "The command", which can
leave us to think that the option is named "The", and that
"command" is a parameter.

==========

34) It seems to be quite complex to get pixel-precise results
with FvwmButtons... There should be a new BoxSize algorithm,
enabling us to specify the button geometry with pixel values
(relative to the inside of the FvwmButtons window), for all
buttons (including swallowed windows).

- For example, I'm swallowing an FvwmPager with one desk,
composed of three pages aligned horizontally. My screen
resolution is 1920x1200. My FvwmButtons is 1920x24. At first I
was using 14 columns (1 row) for the Buttons, so about 137px
per button. I had a menu button first, which effectively was
137px. But the Pager following it was limited to 36px, instead
of about 117px... I tried the "Size 117 24" option, but it does
not seem to work... I was using NoHints, I tried with Hints,
but it only add a vertical bar probably around the button
separation, without changing anything to the size of the pager.
I tried increasing the geometry of the pager to take two
buttons, and its width was doubled... but what was it taking as
a reference...? I tried setting my Buttons to 1920 columns, and
making the Pager 117 buttons wide, but it is still 36px... To
get around 117px, I have to make the Pager about 350 buttons
wide... It does work, but it is eating about 230 buttons more
than should be needed, which will likely cause me issues with
the rest of the Buttons... I can understand the original 36px,
considering FVWM considers pages as a virtual workspace, I
suppose it only takes into account the aspect ratio of the real
screen, so it squeezes my three pages into one screen
representation (of course it should not, but this is
understandable). But everything else is quite confusing. You
force using button geometry, but swallowed windows mostly
require pixel geometry, so they are quite hard to control with
the current button geometry...

If I don't specify "Columns 3" for the pager, it takes the
whole button, but I use pages completely independently from
each other, so I need a clear separation. It seems the
"Columns" option, beside the separation, is also dividing the
width by three, and requiring the use of three buttons to get
back to the width of one button... Really confusing and
erroneous.

Having said that, I checked on an empty desk for clarity, and
the separations are still there, so it should be alright I
suppose... So it would be specifying the columns manually, that
is causing issues with FvwmButtons?

==========

35) What if I want more separation between the different pages
of a swallowed FvwmPager? I may want to put each page in
different buttons, but the pager only allow to specify the
desks to show, not the pages... And I want to keep some
grouping, including for labels and easier keyboard shortcuts,
so I can't use 1x1 desks.

- It would be useful for more complex designs like aligning
pages in diagonal or even in zig-zags.

==========

36) There are regularly missing (and/or undocumented) options
and option values, corresponding to the default configuration.
I'd like to be able to specify everything, to avoid the risk of
changing defaults some day.

- For example, in the FvwmPanel manual: "*FvwmPager:
NoSeparators" and "*FvwmPager: SolidSeparators", but no
"DashedSeparators".

There are also many inconsistencies. In the example above, you
still use "No" in some modules at least, while in the main
manual all or most "No" are replaced with '!'. And why
different options instead of a single "Separator" option with
different possible values? This would also be easier to
document.

Of course this is a large project which evolved during a long
time, but it is currently quite messy, and it would be time for
a general cleanup, for the longer term. Of course there will be
some compatibility issues for some time, but if they are all
properly identified, in a dedicated document, with all version
numbers, I suppose this won't be too problematic, as long as
these changes are limited in time.

==========

37) I swallowed an FvwmPager in an FvwmButtons. There is a 1px
black line on the right of the pager, but not on the left, nor
on top or bottom. It does not appear if I make the pager
wider...

- If using dashed separators, I'd like to be able to control
the size/spacing of the dashes. I use it in a 24px-high
taskbar, so the current large dashes are not aesthetic.

I would also like to specify some page padding, so windows are
not stuck to the external borders of the pager, nor to the
separator lines. Currently the windows even overlap the
separation, which is apparently counted in the desk space.

==========

38) I would like to rebind the mouse shortcuts for FvwmPager
(e.g., removing the mouse 2 and 3 actions, and using mouse 3 to
open a panel of the swallowing FvwmButtons, adding a shortcut
to switch page using the mouse wheel when in the pager area,
adding a right-click menu with various stuffs like iconify all,
close all, etc.). Of course I can add a dedicated button, but
it could be avoidable.

- Using "Action (Mouse 3) x" on the button, does not seem to
work/override the FvwmPager shortcuts.

==========

39) FvwmIconMan manual: why "ShowOnlyIcons", but "ShowNoIcons",
which should be, from the description, "ShowOnlyNoIcons", or
"ShowOnlyNotIconified", or something like this.

==========

40) FvwmIconMan manual: In the "ACTIONS" section, it says "The
syntax for actions are: Key actions: Key Keysym Modifiers
FunctionList". Yet the complete syntax, as I understand from
the beginning of the manual, is: "*FvwmIconMan: [id] Action Key
Keysym Modifiers FunctionList"

==========

41) I get this in my logs:

FvwmIconMan: Bad line: *FvwmIconManUseWinList Yes
FvwmIconMan: What is this: Yes?

- FvwmIconMan does not accept "Yes"/"yes"/"No"/"no" for
booleans values, contrary to the main FVWM commands/options. It
should, for consistency.

==========

42) I use "*FvwmIconMan: ButtonGeometry 320x24". The text is
not centered vertically with the default fond. It is 1-2px too
low. I suppose setting a slightly larger font helps, but it
should really be centered.

==========

43) FvwmScript: I'd like a rotate property for the ItemDraw
widget. At least +/- 90°, for vertical text.

==========

44) FvwmScript manual: on multiple occasion, you say things
like "ChangeTitle id1 id2 - Set the title of the widget
numbered id1 to id2". But "id2" is not a widget identifier, it
is a variable or I suppose maybe directly a string. It can be a
bit confusing.

==========

45) FvwmScript manual: The "SingleClic" is not documented
independently from examples. At first I thought it was a simple
event name example, which we had to transmit ourselves, but it
is apparently actually standardized.

- Why "Clic", and not "Click"?

- There is a "Key" instruction, but not a "Mouse" instruction,
to bind mouse buttons independently and generate custom events?
It would very useful.

==========

46) "*FvwmScript: Path $HOME/.fvwm/scripts" does not work.
"$HOME" is not expanded. Same with '~'. And it does not accept
quotes (they are included literally in the path).

==========

47) FvwmScript manual: "WindowTitle string" should be
"WindowTitle { string }". Syntax error otherwise.

- Same for "WindowLocaleTitle string" I suppose.

==========

48) FvwmScript manual: There is apparently no mention of the
Main part of a widget definition being necessary. If I don't
put it, my script will work, but there will be a "syntax error"
message.

- It should not be required.

- Note that not only the "Main End" part is required, but also
either the "Case message of SingleClic: Begin End" event loop,
or maybe at least one event loop, I didnt't test.

By the way, the "Case message of\nEventName:" syntax is
bizarre. I understand this could be considered as "minor as
long as it works", but if someday you update other syntax
elements, breaking compatibility, it should be changed too, to
something like "Event EventName".

"Init" vs. "PeriodicTasks" vs. "QuitFunc". Should be something
like "Init", "Loop", "Quit".

Of course, if you care, temporary aliases could be used, with
enough warning and time before removing the original syntax...

==========

49) FvwmScript: I have a script invoking 'date' every seconds,
updating an ItemDraw... But in practice, it updates only every
two seconds, and it flickers every few updates, sometimes every
second for a few times...

- From some posts in
http://www.fvwmforums.org/phpBB3/viewtopic.php?f=7&t=959 the
flickering seems to be due to TTF fonts. Would be nice to avoid
having to use bitmap fonts or split the widgets so only the
seconds flicker...

I used a bitmap font
(-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1),
and it stills very occasionally flickers (tolerable, but really
should never be there...).

==========

50) FvwmScript: GetOutput should accept word ranges (and words
should be defined precisely -and it would be useful to be able
to change this definition whenever we want).

- And there should be StrCopy-equivalent working with words
instead of characters.

==========

51) WindowList command: I want to be able to specify the exact
format. I notably want to include the class of the window
first, as many applications only show it at the end, if at all,
and relying on icons is not enough.

==========

52) In a button of an FvwmButtons, I use an icon which is
really a picture of a button, as I don't want to use the FVWM
button style. I'd like to avoid having to include the text of
the button inside the picture, but there is apparently no way
to overlay the title above the icon. It is either under or on
the side of it. There should be an option to overlay the two.

==========

53) FvwmIconMan: Apparently we cannot change the font depending
on the state of the window (e.g., bold font for the currently
focused window).

==========

54) Functions can detect double-clicks, but triple-clicks can
also be useful sometimes, and not too difficult to do. XTerm,
for example, allows up to five clicks, for different selections.

- It would be nice to be able to bind multiple clicks directly
with the Mouse command too.

==========

55) FVWM main manual: In a paragraph like: "NoUsePPosition
instructs fvwm to ignore the program specified position
(PPosition hint) when adding new windows. Using PPosition is
required for some applications, but if you do not have one of
those it's a real headache. Many programs set PPosition to
something obnoxious like 0,0 (upper left corner).
Note: !UsePPosition is equivalent to the deprecated option
NoPPosition", what is the actual command to use to allow
PPosition? "!NoUsePPosition"? "PPosition"? "UsePPosition"? Why
is "NoPPosition" deprecated, but not "NoUsePPosition"?

- And the "NoUsePPosition" option at the beginning of the
paragraph is not in italic (same for a lot of other options in
the manual)... I'd say commands and options should even be in
bold, to notice them really easily, when they have no link to
their definition already. Although not sufficient for
accessibility, they should also use different colors (one for
commands, one for options).

==========

56) FVWM main manual: "An IconGrid/IconFill definition must
follow the IconBox definition that it applies to", but no
mention of this for IconSize... Can it be IconBox-specific too?

==========

57) Is it really necessary to allow multiple IconBox for the
same style? Even more than two? (if not, you could have
DefaultIconBox/DefaultIconGrid/DefaultIconFill/DefaultIconSize
options). Linking the concatenation of the
IconBox/IconGrid/IconFill (and IconSize?) options is an abuse
of the generic meaning of the syntax. Having a backslash act
the same as a command separator is even worst. It also forces
longer (and defining a multitude of abbreviations for otherwise
short commands like the IconFill option is not a solution) and
more complex lines.

- If really you want to allow more than two IconBox per style,
there should at least be a dedicated option grouping all these
options, and even then this would be inconsistent with the
generic overriding meaning of using the same option multiple
times (and effectively renders overriding impossible).

The only real solution would be to use dedicated commands,
similarly to how it is handled with ButtonStyle commands
(ButtonStyle, ButtonStyle Reset, AddButtonStyle). Style options
could be kept, but would use the generic meaning of the Style
syntax, meaning we could only define a single IconBox per style
(or two, if you add the DefaultIcon* options mentionned above).

- For more complex IconBox configurations, there is FvwmIconBox
anyway...

==========

58) The IconFill style option uses a "gravity origin" direction
system (i.e., you have to indicate where is the gravity source,
and it starts filling there, so the following icons are put
where there is place left the closest of the gravity source,
but somehow filling up some rows/columns first depending on the
order of the coordinates of a fixed point...), which is very
confusing. It is a clunky and useless metaphor. Some other
programs use it (e.g., StaloneTray), I don't know if there is
any reference to it in X11 documentation for anything, but this
is not a reason, in any case. You should use a simple
directional system: the icons are filled going to the specified
directions. If I want filling from left to right, I specify
right.

- Wait... my icons are actually filled from the point
specified, instead of using it as a direction as specified in
the manual: "using these arguments to control the direction the
box is filled in"... and the example uses "IconFill Bottom
Right", which, with this understanding, seems to be the most
classical use (having the icons in the top left of the screen,
and having them be filled from top to bottom, and left to
right)...

Wait again... "IconFill Bottom Right" is not an example, but a
specification... "Bottom" and "Right" are not meant to be
actual locations/directions, but the name of the arguments...
it is very confusing to name them the same as actual values...
(they should be named something like "Vertical-Direction" and
"Horizontal-Direction").

Alright, so you actually say after this: "By default the
direction is left to right, then top to bottom. This would be
expressed as: IconFill left top"... I think I remember I
actually read this part too, but this was globally so confusing
that I held to the first thing I thought I understood, that is
what seems to be meaning of the first part of the
explainations...

==========

59) The IconSize style option talks about padding and
clipping... Why would you not simply resize the icons...?

==========

60) Why "FocusByProgram", but "AllowRestack" (instead of
"RaiseByProgram")?

- Why are
"PassRaiseClick/AllowRaiseClickFunction/IgnoreRaiseClickMotion"
FocusStyle options, but "AllowRestack" is a normal Style option?

==========

61) FVWM main manual: "FixedPosition and FixedUSPosition make
fvwm ignore attempts of the user to move the window". What's
the difference? Same for the other functions below. From the
NoUsePPosition option documentation, "US" means "User" (not
very good to use all caps, and an abbreviation, here, but camel
case and full names for the other words), but there are the
"FixedPPosition" and "FixedPSize" for programs... so they are
really only simple aliases? They should be avoided.

==========

62) Why is "ResizeOpaque" a Style option, but "OpaqueMoveSize"
a command? Why the completely different syntax?

- Why not "Style * MoveOutline" instead of "OpaqueMoveSize 0"?

- Why "OpaqueMoveSize unlimited" or "OpaqueMoveSize -1", while
some other commands only accept "-1" without a keyword (e.g.,
"EdgeResistance -1"... why not "EdgeResistance infinite", or
something like this?). Why no keyword for other particular
values? "-1" often means nothing outside of the programmer's
point of view. Using many keywords can be a bit more complex,
notably to be precise (instead of using too many generic words
which may bit apply very well to each case), but as long as it
properly documented, and limited to real need, it can be very
clear.

==========

63) There should be more precise suggestions for each modules.

- For example, in the FvwmTaskbar manual, "DESCRIPTION"
section, there should be a prominent note about the fact this
module is relatively basic, that (from what I read on the web)
it is relatively unmaintained, and that, while a bit more
difficult and long, FvwmButtons + FvwmIconMan (along with a few
other modules, like FvwmPager) should be used.

Same for FvwmWinList vs FvwmIconMan I think I remember.

Personally, I would even deprecate FvwmTaskbar and FvwmWinList,
if mostly unmaintained... Of course not suddenly, but the
manual should write in big bold letters at the top "DEPRECATED:
This module is deprecated. It will only be minimally maintained
until 2012-12-31, then removed. You should migrate to using
FvwmButtons + FvwmIconMan", then giving them some link to a
default configuration using FvwmButtons + FvwmIconMan in a
similar arrangement to the current FvwmTaskBar module, with
enough comments in the file, and that should be far enough.
It's not that much complex to configure.

- FvwmIconBox vs. FvwmIconMan vs. FvwmWinList vs. FvwmTaskBar
vs. FvwmButtons... Not clear enough when we do not know about
them... The "DESCRIPTION" section should have at least one
clearer sentence summarizing their functions in more "common"
terms (i.e., to be clear, for people coming from Windows, and
even X11 WMs not as featurefull as FVWM).

For example, for FvwmIconBox, there should be a mention to the
fact we are talking about running minimized window icons (i.e.,
not launcher icons), and that an FvwmIconBox is effectively a
configurable frame to show and control all or part of these
icons.

For FvwmIconMan, there should be a mention to the list of
current windows as in a taskbar (the only mention to it relates
to label width, which is secondary), although far more
configurable in many ways.

For FvwmButtons, there should be a mention to the idea this
"window of buttons" is a fully configurable panel (as with
FvwmIconMan, you do mention panels, but only relating to a
secondary feature... it's like describing a car with all sort
of complex and unusual qualificatives keeping people guessing,
then saying it has wheels, and then everyone exclaims: "Ah! We
were talking about some sort of vehicule!"...).

- FvwmSave vs. FvwmSaveDesk. Names are too close. Why the need
for these two? And in none of the two manuals for these
commands is there any mention to the "session" expression,
which is the common name for what I suppose these two modules
are doing.

==========

64) fvwm.iconbox default configuration file, regarding the
comment 'Note that icons are shown in the module ONLY if NoIcon
commnand is applied. Style "*" NoIcon':

- "NoIcon" is not a command, but a style option.

- There should be a mention to the fact we are talking about
internal IconBox vs. FvwmIconBox module. The style option
deactivates the internal icon boxes, which enables the
possibility to use FvwmIconBox (otherwise disabled, to avoid
listing icons twice, in different boxes). Currently it feels
like "Huh? We have to deactivate icons to show icons? Is that
just very bad and unintuitive naming of sort? What am I missing
here?".

==========

65) FvwmScroll manual: "An integer followed by a p describe a
size as a percentage".

- Fvwm main manual, about the Menu command: "Furthermore a
trailing 'p' changes the interpretation to mean pixels"...

- Inconsistent, confusing.

==========

66) fvwm.scroll default configuration files contains a "Fore"
property, but in the FvwmScroll manual, only "Colorset" and
"Back" are defined.

- And for "Back", it talks about the window background? I
suppose this relates to the scrollbar color...

==========

67) FvwmScroll manual: "integers immediately followed by a p",
"p" should use single quotes at least.

- "An integer describe a size reduction"... What's a "size
reduction"? How do I write it? "50" for "50%"? or "0.5"? or "2"?

==========

68) We cannot read configuration files using jokers? ("Read
*.conf"). I like split files. I can list the main configuration
files, but I'd like to use a joker for a style subdirectory
containing one file per application I want to customize.

==========

69) I use a UTF-8 locale, it works everywhere. Why do I have to
add "encoding=ISO10646-1" (Xft) to my font references manually?
(e.g., "DejaVu Sans", and various others, which is never needed
in any other program I use with these fonts). Why doesn't
"encoding=UTF-8" works? (using "StringEncoding=UTF-8" instead
does not seem to work, the Unicode characters are still
displayed as latin1-like giberish, instead of the one missing
glyph rectangle per Unicode character I get using
"encoding=ISO10646-1").

- Why doesn't FVWM substitute font when a glyph is not found,
like most programs (at the very least, all GTK programs I
know)? I know I should define a dedicated virtual font myself
for this, so Xft handles it by itself, but if it's not too
complex, FVWM should fallback to sans-serif/serif/monospace,
depending on the type of the font specified, if a glyph is
missing.

Well, specifying "sans-serif" (which I should have properly
configured with various fonts) does not seem to work either, so
there may be other problems... I also tried a custom virtual
font name, apparently without change.

- Said otherwise, I want to use "DejaVu Sans" as my main font
for everything it can display, most notably latin scripts, but
it does not support Japanese characters, and I want to use
"Sazanami Gothic" for these. All in UTF-8. I can get either to
work, but if I use a virtual font which specifies both, only
"DejaVu Sans" (the first font) is used, and Japanese characters
are displayed as missing glyph rectangles.

Another problem is that I use "style=Bold" with "Sazanami
Gothic", but it does not show as bold. I do suppose the font
does not support it, but Firefox, for example, simulates a bold
weight if not supported by the font. Well, I probably won't use
it anyway, because it is only readable for kanas and not for
kanji at this size, but may still be useful in some cases.

==========

70) I use: "Style * SnapAttraction 16 SameType ScreenAll" and
"Style * SnapGrid 8 8" (with a 1920x1200 resolution), but I
regularly have some windows which end up like 1px too low, so
when I move my mouse quickly to the top of my screen to select
it, I end up clicking the root window (or some other window
under the application if I had one), thus not changing the
focus, and if I use some keyboard shortcut without noticing, it
can lead to important problems. I'm not sure how it happens
precisely. I notice it most often with Firefox, because of its
location on my desktop and the regular need to select it
through its titlebar to avoid clicking on buttons/links in the
content by error, but I think it happens with various other
windows too.

- If the specific cause cannot be found, it could be useful to
have an option so that any window placed manually/automatically
a few pixels from a screen border (configurable, and by default
probably no more than half the default titlebar+border height,
so people cascading windows do not have any issue with it), are
systematically and immediately moved precisely to the screen
border.

- I thought about MoveThreshold, but I didn't set it, so it
should be the 3px default... I wouldn't think I move my mouse
this much, this commonly, when clicking on window titlebars to
focus them... Well, I'll try increasing it a bit more, although
I don't like the idea losing immediate dragging precision...
There should probably at least be some option to limit this to
focusing/raising clicks...

==========

71) Option for per-page focus, so we don't risk doing things in
an application we do not see, and so we don't have to focus
back applications everytime we do something in another page.

- Another issue with the normal behavior of pages, is that even
with page switching deactivated, when an application creates a
window leaking maybe more than 50% to another page (or we move
it similarly), and we focus it, we are switched to the other
page, which is most confusing, frustrating, and anti-usable.

- I want to use your two-level workspace system for easier
pager management (e.g., showing the current desk in a taskbar
pager, with three pages, simply by calling the pager with
"Module FvwmPager *"), and easier navigation using a 2D space
(Win+Left/Right for pages, Win+Top/Bottom for desks), instead
of a single row or line of desks (of course I still could
implement the 2D space with only desks, but this would require
much more work), considering I need 18 pages (6 desks of 3
pages), but it is apparently difficult, if not impossible, to
make pages behave more like independent desks, except for the
pager and shortcuts.

==========

72) I have 4px window borders. If I click on a pixel closer to
the content to resize the window to a page/screen border, it
will hide all or part of the window border outside the
page/screen, which is not clean. It should probably not be
possible. It goes with the snapping option suggestion for
resizing windows.

- If using diagonal resizing, and clicking farther below, on a
side, it can even hide the titlebar almost completely... (same
for status bars on the bottom). I don't want having the be
precise when resizing. And I don't want having to move the
window for snapping, after each resize...

==========

73) I'm using "Style * IconBox none", without any other IconBox
style definitions, nor any use of FvwmIconBox, yet, after even
a complete FVWM restart (I mean computer restart in-between),
when I iconify windows, they still show as icons on my
workspace. As I'm using a taskbar, I don't want icons at all on
my desktop (catches the attention, risks of clicking on them
when trying to unfocus a window, etc.). Nothing about icons in
my session log.


============================================================
--
Mathieu Bonnet <***@kawagama.net>
Thomas Adam
2012-02-09 01:10:55 UTC
Permalink
Post by Mathieu Bonnet
- MoveToDeskAndPage
- MoveAndGotoDesk, MoveAndGotoPage, MoveAndGotoDeskAndPage
You can do these using a complex function, which I prefer in lieuof
non-specific hard-coded commands in FVWM.
Post by Mathieu Bonnet
03) Why "EWMHNoMiniIconOverride", and not
"!EWMHMiniIconOverride"? Is it still not deprecated? Will it be
in the future? (if not it should, for consistency). Does
"!EWMHMiniIconOverride" already works?
Because EWMH is out-of-band to the original style options, but since
EWMH_CMD_Style() receives the toggle flag "on" to indicate "!Foo" versus
"Foo", it wouldn't be hard to do for this.
Post by Mathieu Bonnet
- It's not even consistent for the same form of options... In
EWMH options, you already have "EWMHIgnoreWindowType" vs.
"!EWMHIgnoreWindowType"... (However you should really use
positive names, to avoid double-negatives, which are more
confusing... I suppose you used "Ignore", because the default
is not to ignore, to avoid having to use '!' symbols, but it
makes names inconsistent, and defaults can change -and AFAIC I
prefer to define most everything anyway, to be sure, so it
makes everything quite complex).
No -- simply retro-fitting negations to use !Foo which form negative
negations, cannot work, and were not meant to work like this. So in
introducing negations for EWMH-specific types, you'd need a little map to
handle this and rename the option.
Post by Mathieu Bonnet
==========
http://article.gmane.org/gmane.comp.window-managers.fvwm/6611
Post by Mathieu Bonnet
05) Isn't there any way to EdgeResistance to switch desktop
pages with some pixel distance traveled outside the screen
area? A simple timer changes nothing to the problem of putting
No, because we look at Enter/Leave events in the pan windows which form the
"edges" of the page. You could then further track MotionNotify events in
this, but it's pointless and not well-defined.
Post by Mathieu Bonnet
08) Why is UrgencyFunc by default so pushy? Why is it filled
internally and not simply part of the default configuration
files generated when requested on first start, so we can easily
notice and adjust/remove it?
It's defined in ConfigFvwmDefaults, and staying there. Just like several
other functions you won't have heard of, but provide functionality out of
the box for you.
Post by Mathieu Bonnet
==========
09) Why are there internal default keyboard and mouse bindings?
Same as UrgencyFunc, they should all be defined in the default
configuration files generated when requested on first start, so
we can easily notice and adjust/remove them. This is a matter
of control and security in case you add any other internal
default bindings. And this is a matter of simplicity so we
don't have to find them all (`PrintInfo bindings`, manual, web
hoping it is updated) and reset them.
You miss the point of why I wrote "PrintInfo bindings", and see above. It's
to provide minimal out-of-the-box configurations even when there's no
default config and/or, that such a FVWM config either augments, or replaces
that functionality found in ConfigFvwmDefaults.

If you don't like something, change it. That's the way it works.
Post by Mathieu Bonnet
- If you are really worried about configuration mistakes making
us lose all access to FVWM commands, then at least provide some
option which would reset all builtin bindings easily, without
having to worry about future changes.
See above.
Post by Mathieu Bonnet
==========
10) There should be special keywords for the Layer command, for
the bottom/put/top layers as specified by the DefaultLayers
command. There should also be references to the Layer command
in the manual, from the DefaultLayers command section, and from
the StaysOnBottom, StaysPut, and StaysOnTop style descriptions.
No, there should be no more Stays* commands, and everything should use
numbers.
Post by Mathieu Bonnet
==========
11) Why isn't WindowListFunc prefixed with 'Fvwm' like some
other builtin functions? I suppose I should use my own prefix
Because there is no "standard" for this, and all FvwmFoo functions/menu
definitions you've seen are examples.
Post by Mathieu Bonnet
(but without namespace support, there is always a risk that a
simple prefix may be used some day), but mixing functions with
and without the 'Fvwm' prefix can be a bit confusing, and some
people may mistakenly override a builtin function, maybe losing
some functionality, or replacing them, with possible
control/security risks.
But see above -- namespacing is a more dangerous thing to suggest here, and
I've yet to see *any* problems from not muddying the waters with this.
Post by Mathieu Bonnet
==========
12) I'd like to have an empty space on the right of window
titlebars, between the minimize/maximize buttons, and the close
button. I used an empty button with the Nop command, which is
visually ok although I would prefer full control of the space
to reduce it a bit, including in case I may want to add more
buttons there (like a sticky button on the left of the minimize
button, with yet another margin... I cannot even do it now
using an empty button, because it would require 6 buttons on
the right side). However, it still shows a hand when hovering
the area, which I would like to avoid.
You can do this already,
Post by Mathieu Bonnet
13) ImagePath does not accept double quotes around the path
list.
Yes it does.
Post by Mathieu Bonnet
==========
14) Configuration GTK en su root.
Eh?
Post by Mathieu Bonnet
==========
15) "TitleStyle Centered Height 22", but "Style * BorderWidth
7, HandleWidth 7"? (there should be a BorderStyle alternative
syntax to specify these settings, like there is with
TitleStyle).
No. These are being replaced slowly.
Post by Mathieu Bonnet
==========
16) Rounded corners for window borders. From what I understand,
In the future, yes.
Post by Mathieu Bonnet
17) BorderStyle should accept more styles. For example, Solid,
instead of having to give a colorset.
No. It's not a Decor.
Post by Mathieu Bonnet
==========
18) Why is there a "Background" option for colorsets, but no
"Highlight" (only "Hilight")? It's even shorter by one
character... Also, "hilight" is used as a noun and verb all
through the manual, which from what I can see is an incorrect
usage.
Patches welcome to the documentation _only_. Why have you not also picked
up on Colorset versus Colourset?
Post by Mathieu Bonnet
==========
19) Apparently we cannot set different pixmaps for each border,
nor style the corners independently from the borders. What if I
You can with a patch I wrote, but it's pointless adding it to FVWM now --
the decor code doesn't need it.
Post by Mathieu Bonnet
21) "Olive" is missing from my /usr/share/X11/rgb.txt. When set
as a background color with TitleStyle Inactive, through a
colorset, it leads to a black background. While this surely
should be the responsibility of Xorg maintainers, I suppose
that for some obscure matter, they still refuse to add it (they
have various color names containing "olive", and "olive" is an
HTML 3.2 and SVG color). It would be nice to include aliases
for all colors mentioned in HTML/CSS/SVG, which are not
included in Xorg, to avoid having to use RGB values.
No, X11 doesn't work like this.
Post by Mathieu Bonnet
==========
22) The rgb:XX/XX/XX format is used in examples in the manual,
but not explained independently, and there are apparently no
mention to the #XXXXXX format, which seems to be used by some
people, and I think I already tested it, although it sure is
not very good for it to use the '#' which is used for comments
in the file (even if maybe only at the beginning of lines
here?).
man FvwmTheme
Post by Mathieu Bonnet
- Maybe an rgb:XXXXXX format should be supported too. It would
make it easier to copy-paste from and to other sources,
compared to the rgb:XX/XX/XX format.
No thanks. We've too many formats as it is.
Post by Mathieu Bonnet
==========
23) If I use "TitleStyle Centered Height 16", the application
mini-icon is 12x12px instead of 16x16px (i.e., there is some
Correct. The application sets this.
Post by Mathieu Bonnet
24) I'm used to being able to click the root window to unfocus
windows, to remove the text cursor and prevent text entry. It's
mostly a tic, but I'd like to reproduce this in FVWM, which by
default, after having remove the left-click root menu, does not
unfocus windows at all when clicking the root window.
And?
Post by Mathieu Bonnet
25) Why "Iconify", "Maximize", "Delete", etc., but
"WindowShade"?
Eh?
Post by Mathieu Bonnet
==========
26) I bound mouse buttons 6 to 9 to simple commands, and I get
[fvwm][ParseBinding]: <<WARNING>> Got mouse button 6 when the
maximum is 5. You can't bind complex functions to this button.
To suppress this warning, use: Silent Mouse 6 W 3 WindowShade
- FVWM should detect if it will work, and do not print a
warning. I don't want to clutter my session log file, and would
like to avoid using an additional keyword for no reason.
No, not it shouldn't. This is in the FVWM FAQ.
Post by Mathieu Bonnet
28) Apparently "TitleStyle Colorset" only sets the background
color. For the foreground color, "Style * ForeColor" and
"HilightFore" color must be used.
Use colorsets, please.
Post by Mathieu Bonnet
- Also, colorsets have a "Hilight" property, but it does not
differentiate between background and foreground.
- More generally, colorsets seem underused.
Yes. 2.6.X has only just gone stable. I am not expecting miracles from
people upgrading from 2.4.X just yet.
Post by Mathieu Bonnet
As another example, in FvwmButtons, the manual says the
"Colorset" option only sets the background color... We have to
use the "Fore" option for the foreground, and apparently it
does not accept colorsets. Not only is this inconsistent, but
it also make us lose the benefit of centralizing color
definitions to easily change them...
I think you've got your knickers in a twist here -- a defined colorset works
fine in FvwmButtons.
Post by Mathieu Bonnet
It would be nice to be able to use names for colorsets, instead
of numbers. It would ease things a lot, when working on complex
You can with InfoStore.
Post by Mathieu Bonnet
configurations with a lot of modules and color variations
between modules.
==========
29) I noticed a few typos in the manuals. You should at least
use a spell checker to limit these (including FVWM keywords,
using a personal dictionary).
Unless you send a patch for these, I'm not interested.
Post by Mathieu Bonnet
30) I use "Style FvwmButtons FixedSize, FixedPosition" for my
system panel, it does prevent resizing/movements, but the mouse
cursor still changes when hovering the border.
Yes. There is no way to know in advance anything about the action a user
might do to this, and I would not like to fool them by not changing the
cursor.
Post by Mathieu Bonnet
31) I do not understand what the ColormapFocus does. The manual
says very little about it. Searching for "Colormap" leads us to
a large paragraph about color depth... If I understand it
correctly, considering I use a depth of 24 bits, I should not
care at all about this option? It should be written in the
description of the ColormapFocus command.
It's somewhat legacy, but still useful. I won't give you the long details,
but it's to do with how the pallet of available colours an application can
use, is allocated.
Post by Mathieu Bonnet
33) FvwmButtons manual: the option following the "Legacy fields
[title icon command]" option is titled "The command", which can
leave us to think that the option is named "The", and that
"command" is a parameter.
Patch?
Post by Mathieu Bonnet
35) What if I want more separation between the different pages
of a swallowed FvwmPager? I may want to put each page in
different buttons, but the pager only allow to specify the
desks to show, not the pages... And I want to keep some
grouping, including for labels and easier keyboard shortcuts,
so I can't use 1x1 desks.
Then you don't want to use a pager. You want to use FvwmEvent, and
FvwmButtons.
Post by Mathieu Bonnet
- It would be useful for more complex designs like aligning
pages in diagonal or even in zig-zags.
Really? Think about that a bit more, and then say it out loud to yourself.
Post by Mathieu Bonnet
==========
36) There are regularly missing (and/or undocumented) options
and option values, corresponding to the default configuration.
I'd like to be able to specify everything, to avoid the risk of
changing defaults some day.
NoSeparators" and "*FvwmPager: SolidSeparators", but no
"DashedSeparators".
There are also many inconsistencies. In the example above, you
still use "No" in some modules at least, while in the main
manual all or most "No" are replaced with '!'. And why
different options instead of a single "Separator" option with
different possible values? This would also be easier to
document.
History. Changing these is difficult. Seriously.
Post by Mathieu Bonnet
37) I swallowed an FvwmPager in an FvwmButtons. There is a 1px
black line on the right of the pager, but not on the left, nor
on top or bottom. It does not appear if I make the pager
wider...
Set the Padding and Frame options.
Post by Mathieu Bonnet
- If using dashed separators, I'd like to be able to control
the size/spacing of the dashes. I use it in a 24px-high
taskbar, so the current large dashes are not aesthetic.
This is an X11-thing. So you can't.
Post by Mathieu Bonnet
I would also like to specify some page padding, so windows are
not stuck to the external borders of the pager, nor to the
separator lines. Currently the windows even overlap the
separation, which is apparently counted in the desk space.
This is correct with respect to where the windows are, isn't it?
Post by Mathieu Bonnet
==========
38) I would like to rebind the mouse shortcuts for FvwmPager
(e.g., removing the mouse 2 and 3 actions, and using mouse 3 to
open a panel of the swallowing FvwmButtons, adding a shortcut
to switch page using the mouse wheel when in the pager area,
adding a right-click menu with various stuffs like iconify all,
close all, etc.). Of course I can add a dedicated button, but
it could be avoidable.
Maybe we could switch to window-specific bindings for FvwmPager, but we'd
break the ability of FvwmPager to drag windows about, etc. Hmm, no, I think
keeping it the way it is, might be best.
Post by Mathieu Bonnet
- Using "Action (Mouse 3) x" on the button, does not seem to
work/override the FvwmPager shortcuts.
Correct.
Post by Mathieu Bonnet
40) FvwmIconMan manual: In the "ACTIONS" section, it says "The
syntax for actions are: Key actions: Key Keysym Modifiers
FunctionList". Yet the complete syntax, as I understand from
the beginning of the manual, is: "*FvwmIconMan: [id] Action Key
Keysym Modifiers FunctionList"
In context that's incorrect, because it's duplicated.
Post by Mathieu Bonnet
==========
FvwmIconMan: Bad line: *FvwmIconManUseWinList Yes
FvwmIconMan: What is this: Yes?
- FvwmIconMan does not accept "Yes"/"yes"/"No"/"no" for
booleans values, contrary to the main FVWM commands/options. It
should, for consistency.
Consistency with what?
Post by Mathieu Bonnet
- Why "Clic", and not "Click"?
The author of it is French-speaking, obviously.
Post by Mathieu Bonnet
46) "*FvwmScript: Path $HOME/.fvwm/scripts" does not work.
"$HOME" is not expanded. Same with '~'. And it does not accept
quotes (they are included literally in the path).
FVWM doesn't expand env vars like this, including "~", so why is it any
different here, would you think?
Post by Mathieu Bonnet
==========
47) FvwmScript manual: "WindowTitle string" should be
"WindowTitle { string }". Syntax error otherwise.
- Same for "WindowLocaleTitle string" I suppose.
Again, patches?
Post by Mathieu Bonnet
51) WindowList command: I want to be able to specify the exact
format. I notably want to include the class of the window
first, as many applications only show it at the end, if at all,
and relying on icons is not enough.
man FvwmWindowMenu
Post by Mathieu Bonnet
==========
52) In a button of an FvwmButtons, I use an icon which is
really a picture of a button, as I don't want to use the FVWM
button style. I'd like to avoid having to include the text of
the button inside the picture, but there is apparently no way
to overlay the title above the icon. It is either under or on
the side of it. There should be an option to overlay the two.
Yuck.
Post by Mathieu Bonnet
53) FvwmIconMan: Apparently we cannot change the font depending
on the state of the window (e.g., bold font for the currently
focused window).
Yes you can.
Post by Mathieu Bonnet
==========
54) Functions can detect double-clicks, but triple-clicks can
also be useful sometimes, and not too difficult to do. XTerm,
for example, allows up to five clicks, for different selections.
This would suck. No.
Post by Mathieu Bonnet
55) FVWM main manual: In a paragraph like: "NoUsePPosition
instructs fvwm to ignore the program specified position
(PPosition hint) when adding new windows. Using PPosition is
required for some applications, but if you do not have one of
those it's a real headache. Many programs set PPosition to
something obnoxious like 0,0 (upper left corner).
Note: !UsePPosition is equivalent to the deprecated option
NoPPosition", what is the actual command to use to allow
PPosition? "!NoUsePPosition"? "PPosition"? "UsePPosition"? Why
is "NoPPosition" deprecated, but not "NoUsePPosition"?
Look at the code in fvwm/style.c
Post by Mathieu Bonnet
- And the "NoUsePPosition" option at the beginning of the
paragraph is not in italic (same for a lot of other options in
the manual)... I'd say commands and options should even be in
bold, to notice them really easily, when they have no link to
their definition already. Although not sufficient for
accessibility, they should also use different colors (one for
commands, one for options).
Don't bother patching this -- is XML, and we're moving to Asciidoc.
Post by Mathieu Bonnet
==========
56) FVWM main manual: "An IconGrid/IconFill definition must
follow the IconBox definition that it applies to", but no
mention of this for IconSize... Can it be IconBox-specific too?
No, they're two different things.
Post by Mathieu Bonnet
==========
57) Is it really necessary to allow multiple IconBox for the
same style? Even more than two? (if not, you could have
DefaultIconBox/DefaultIconGrid/DefaultIconFill/DefaultIconSize
Yuck.
Post by Mathieu Bonnet
options). Linking the concatenation of the
IconBox/IconGrid/IconFill (and IconSize?) options is an abuse
of the generic meaning of the syntax. Having a backslash act
the same as a command separator is even worst. It also forces
longer (and defining a multitude of abbreviations for otherwise
short commands like the IconFill option is not a solution) and
more complex lines.
Are you mistaking the backslashes for readability in the man page?
Post by Mathieu Bonnet
==========
60) Why "FocusByProgram", but "AllowRestack" (instead of
"RaiseByProgram")?
- Why are
"PassRaiseClick/AllowRaiseClickFunction/IgnoreRaiseClickMotion"
FocusStyle options, but "AllowRestack" is a normal Style option?
AllowRestack has nothing to do with focus.
Post by Mathieu Bonnet
==========
61) FVWM main manual: "FixedPosition and FixedUSPosition make
fvwm ignore attempts of the user to move the window". What's
the difference? Same for the other functions below. From the
NoUsePPosition option documentation, "US" means "User" (not
very good to use all caps, and an abbreviation, here, but camel
case and full names for the other words), but there are the
"FixedPPosition" and "FixedPSize" for programs... so they are
really only simple aliases? They should be avoided.
No, they come from Xlib. US == User-Specified. PS == Program-Specified.
If you have to ask, you don't need them.
Post by Mathieu Bonnet
==========
62) Why is "ResizeOpaque" a Style option, but "OpaqueMoveSize"
a command? Why the completely different syntax?
XServer grabs, I suspect.
Post by Mathieu Bonnet
- Why not "Style * MoveOutline" instead of "OpaqueMoveSize 0"?
No one's turned it into a per-window style option.
Post by Mathieu Bonnet
- FvwmSave vs. FvwmSaveDesk. Names are too close. Why the need
Deprecated.
Post by Mathieu Bonnet
65) FvwmScroll manual: "An integer followed by a p describe a
size as a percentage".
- Fvwm main manual, about the Menu command: "Furthermore a
trailing 'p' changes the interpretation to mean pixels"...
- Inconsistent, confusing.
In context, no. But if you compare an orange with another orange, you'll be
OK with an orange. But compare and orange with a pumpkin, because both are
orange, what do you get?
Post by Mathieu Bonnet
68) We cannot read configuration files using jokers? ("Read
Is this your English failing here? Only, this made me laugh. They're
*wildcards* not Jokers. A Joker is something you get in a pack of cards.

And you should use the term glob here, because that's what you're doing.
Post by Mathieu Bonnet
*.conf"). I like split files. I can list the main configuration
files, but I'd like to use a joker for a style subdirectory
containing one file per application I want to customize.
If you want to glob, fine. But that's your own doing, FVWM don't like it
past ten iterations of "-c" anyway, and furthermore, your blind glob has no
guarantee over the order of the files returned. So you're creating yourself
more work like this.
Post by Mathieu Bonnet
71) Option for per-page focus, so we don't risk doing things in
an application we do not see, and so we don't have to focus
back applications everytime we do something in another page.
Write a function for this.
Post by Mathieu Bonnet
- Another issue with the normal behavior of pages, is that even
with page switching deactivated, when an application creates a
window leaking maybe more than 50% to another page (or we move
it similarly), and we focus it, we are switched to the other
page, which is most confusing, frustrating, and anti-usable.
... and exactly as it should be.
Post by Mathieu Bonnet
73) I'm using "Style * IconBox none", without any other IconBox
style definitions, nor any use of FvwmIconBox, yet, after even
a complete FVWM restart (I mean computer restart in-between),
when I iconify windows, they still show as icons on my
workspace. As I'm using a taskbar, I don't want icons at all on
my desktop (catches the attention, risks of clicking on them
when trying to unfocus a window, etc.). Nothing about icons in
my session log.
IconBoxes house icons. The Icon style controls which, if any, get shown.

-- Thomas Adam
--
"Deep in my heart I wish I was wrong. But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)
Mathieu Bonnet
2012-03-18 15:40:14 UTC
Permalink
Hi,


Thanks for your response, and sorry for my late reply.


On 2012-02-09 01:10:55+0000,
Post by Thomas Adam
Post by Mathieu Bonnet
14) Configuration GTK en su root.
Eh?
Sorry, wrote this in the wrong file.
Post by Thomas Adam
Post by Mathieu Bonnet
24) I'm used to being able to click the root window to
unfocus windows, to remove the text cursor and prevent text
entry. It's mostly a tic, but I'd like to reproduce this in
FVWM, which by default, after having remove the left-click
root menu, does not unfocus windows at all when clicking
the root window.
And?
Style Root NeverFocus?
Post by Thomas Adam
Post by Mathieu Bonnet
25) Why "Iconify", "Maximize", "Delete", etc., but
"WindowShade"?
Eh?
WindowShade => Shade
Post by Thomas Adam
Post by Mathieu Bonnet
As another example, in FvwmButtons, the manual says the
"Colorset" option only sets the background color... We have
to use the "Fore" option for the foreground, and apparently
it does not accept colorsets. Not only is this
inconsistent, but it also make us lose the benefit of
centralizing color definitions to easily change them...
I think you've got your knickers in a twist here -- a defined
colorset works fine in FvwmButtons.
In FvwmButtons manual of FVWM 2.6.4:

*FvwmButtons: Colorset colorset
Tells the module to use colorset colorset for the window
background. Refer to the FvwmTheme man page for details about
colorsets.
Post by Thomas Adam
Post by Mathieu Bonnet
FvwmIconMan: Bad line: *FvwmIconManUseWinList Yes
FvwmIconMan: What is this: Yes?
- FvwmIconMan does not accept "Yes"/"yes"/"No"/"no" for
booleans values, contrary to the main FVWM
commands/options. It should, for consistency.
Consistency with what?
Main FVWM manual, section 25. Boolean Arguments:

A number of commands take one or several boolean arguments.
These take a few equivalent inputs: "yes", "on", "true", "t"
and "y" all evaluate to true while "no", "off", "false", "f"
and "n" evaluate to false. [...]
Post by Thomas Adam
Post by Mathieu Bonnet
46) "*FvwmScript: Path $HOME/.fvwm/scripts" does not work.
"$HOME" is not expanded. Same with '~'. And it does not
accept quotes (they are included literally in the path).
FVWM doesn't expand env vars like this, including "~", so why
is it any different here, would you think?
Well it does for the Restart command (Main manual, 31.13.3),
but what I meant was that I wanted it to work.
Post by Thomas Adam
Post by Mathieu Bonnet
options). Linking the concatenation of the
IconBox/IconGrid/IconFill (and IconSize?) options is an
abuse of the generic meaning of the syntax. Having a
backslash act the same as a command separator is even
worst. It also forces longer (and defining a multitude of
abbreviations for otherwise short commands like the
IconFill option is not a solution) and more complex lines.
Are you mistaking the backslashes for readability in the man
page?
Main FVWM manual: "A Style command with the IconBox option
replaces any icon box defined previously by another Style
command for the same style. Thats why the backslash in the
previous example is required".

If the meaning is "required if you want to split lines", then
it should be added to remove any possible confusion. (I'd like
to propose patches at least for these simple documentation
changes, but I do not have enough time, I just wrote problems I
encountered and suggestions I could make, like I do with many
other programs).


Bye.
--
Mathieu Bonnet <***@kawagama.net>
Thomas Adam
2012-03-18 21:29:14 UTC
Permalink
Post by Mathieu Bonnet
Style Root NeverFocus?
You can't focus the root window. Do you mean "MouseFocus"?
Post by Mathieu Bonnet
*FvwmButtons: Colorset colorset
Tells the module to use colorset colorset for the window
background. Refer to the FvwmTheme man page for details about
colorsets.
How is this unclear? I don't like the reference to FvwmTheme, but...
Post by Mathieu Bonnet
Post by Thomas Adam
Post by Mathieu Bonnet
FvwmIconMan: Bad line: *FvwmIconManUseWinList Yes
FvwmIconMan: What is this: Yes?
- FvwmIconMan does not accept "Yes"/"yes"/"No"/"no" for
booleans values, contrary to the main FVWM
commands/options. It should, for consistency.
Consistency with what?
A number of commands take one or several boolean arguments.
These take a few equivalent inputs: "yes", "on", "true", "t"
and "y" all evaluate to true while "no", "off", "false", "f"
and "n" evaluate to false. [...]
Well, this is true of *many* other places as well. Modules are free to do
what ever they please in terms of parsing their configuration file, and
there's no standard to this at all. Maybe we could.
Post by Mathieu Bonnet
Post by Thomas Adam
FVWM doesn't expand env vars like this, including "~", so why
is it any different here, would you think?
Well it does for the Restart command (Main manual, 31.13.3),
but what I meant was that I wanted it to work.
Because of what happens with the Restart command -- it's not parsed by FVWM.
Just like PipeRead operates at the shell level.

-- Thomas Adam
--
"Deep in my heart I wish I was wrong. But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)
Kingsly John
2012-03-19 13:01:52 UTC
Permalink
Post by Thomas Adam
Post by Mathieu Bonnet
Style Root NeverFocus?
You can't focus the root window. Do you mean "MouseFocus"?
Post by Mathieu Bonnet
*FvwmButtons: Colorset colorset
Tells the module to use colorset colorset for the window
background. Refer to the FvwmTheme man page for details about
colorsets.
How is this unclear? I don't like the reference to FvwmTheme, but...
The word "background" should probably be dropped. He's taken that to mean
FvwmButtons only takes the background colour definition from the defined
colorset.

Kingsly
--
---------------------------------------------------------------------------
Kingsly At Users Dot SourceForge Dot Net -- http://kingsly.org/
---------------------------------------------------------------------------
Mathieu Bonnet
2012-03-19 13:40:55 UTC
Permalink
Hi,


On 2012-03-18 21:29:14+0000,
On Sun, Mar 18, 2012 at 04:40:14PM +0100, Mathieu Bonnet
Post by Mathieu Bonnet
Style Root NeverFocus?
You can't focus the root window. Do you mean "MouseFocus"?
Oops sorry, dunno what I was thinking. I meant on the contrary
some sort of pseudo-focus for the root window... I want to be
able to unfocus windows by clicking on the root window, for
example to avoid any keyboard input in program windows...

If not a precise option (and I understand it should be an
option, so we can have other mouse shortcuts on the root window
without removing the focus from the currently focused window),
the possibility to use something like:

Mouse 1 R A Focus

Currently, it apparently changes to a mode to select a window to
focus, probably a generic behavior when using window commands
without clicking an actual program window (the focused window
does not receive keyboard input anymore, the cursor changes to a
cross, clicking a program window gives it focus, or clicking on
root window again simply get us back to the beginning, with the
focus on the window which had focus before clicking the root
window, so it's only half the solution).

This while using ClickToFocus. I don't want to use MouseFocus
(not even just on the root window if it was possible).
Post by Mathieu Bonnet
*FvwmButtons: Colorset colorset
Tells the module to use colorset colorset for the window
background. Refer to the FvwmTheme man page for details
about colorsets.
How is this unclear? I don't like the reference to
FvwmTheme, but...
I was saying, and I quoted it, that the manual present this
option as only setting the background style (well,
technically, it does not say "only", but it's obviously
confusing), meaning we would have to use the "Fore" option to
set the foreground style, defeating the centralization purpose
of the "Colorset" option.

You replied the "Colorset" option does work for both the
background and foreground (technically you didn't, but I
suppose that's was you meant), and I replied by quoting the
manual. If it does work, then the mention to the background, in
the quoted passage, should be removed, or, for even more
clarity, it should enumerate everything it applies to, that is,
in this case, background and foreground styles.


Bye.
--
Mathieu Bonnet <***@kawagama.net>
Thomas Adam
2012-03-19 22:10:39 UTC
Permalink
Post by Mathieu Bonnet
You replied the "Colorset" option does work for both the
background and foreground (technically you didn't, but I
suppose that's was you meant), and I replied by quoting the
manual. If it does work, then the mention to the background, in
the quoted passage, should be removed, or, for even more
clarity, it should enumerate everything it applies to, that is,
Removing the word "background" will suffice.

But as I said in my very initial reply to this thread, either you or someone
else who cares enough and has the time sends me some documentation patches,
or they do not get done.

-- Thomas Adam
--
"Deep in my heart I wish I was wrong. But deep in my heart I know I am
not." -- Morrissey ("Girl Least Likely To" -- off of Viva Hate.)
Thomas Adam
2012-04-17 13:01:43 UTC
Permalink
Post by Mathieu Bonnet
Currently, it apparently changes to a mode to select a window to
focus, probably a generic behavior when using window commands
without clicking an actual program window (the focused window
does not receive keyboard input anymore, the cursor changes to a
cross, clicking a program window gives it focus, or clicking on
root window again simply get us back to the beginning, with the
focus on the window which had focus before clicking the root
window, so it's only half the solution).
Well, this is harder because the focus policy can be per-window; there
is no global policy. The best you can do is this:

diff --git a/fvwm/events.c b/fvwm/events.c
index e6a1a74..8f0ce7f 100644
--- a/fvwm/events.c
+++ b/fvwm/events.c
@@ -1794,6 +1794,7 @@ void HandleButtonRelease(const evh_args_t *ea)
*/
if (Scr.Root == te->xany.window)
{
+ DeleteFocus(True);
GNOME_ProxyButtonEvent(te);
}
}

The way this works is for any button press on the root window which
isn't bound to a button, will remove focus from the current window.
Which I assume does what you want with ClickToFocus? It will apply to
other focus policies as well.

I'll try and embellish it some more if it's the behaviour you're
after, and commit to CVS.

-- Thomas Adam

Dan Espen
2012-02-09 03:27:34 UTC
Permalink
Post by Mathieu Bonnet
NOTICE: I am not subscribed to this list, so CC me if there is
a need for me to reply, and it does not take too much time. No
need to CC me for simple comments and status, I'll check the
web archive once in a while for some time.
Impressive job, thanks.
Post by Mathieu Bonnet
57) Is it really necessary to allow multiple IconBox for the
same style? Even more than two?
Yes, it was(is), since it's exactly what I wanted.
(Yes, I am the guilty party, but it was on the TODO before
I started.)
I run icons down the right side of my screen below where the
clock is.

When I run out of room, I wanted control over where the overflow
icons landed. In my case along the bottom of the screen
moving from the right to the left.
Post by Mathieu Bonnet
(if not, you could have
DefaultIconBox/DefaultIconGrid/DefaultIconFill/DefaultIconSize
options). Linking the concatenation of the
IconBox/IconGrid/IconFill (and IconSize?) options is an abuse
of the generic meaning of the syntax. Having a backslash act
the same as a command separator is even worst. It also forces
longer (and defining a multitude of abbreviations for otherwise
short commands like the IconFill option is not a solution) and
more complex lines.
I'm lost. IconBoxes are styles and the default style is *.
Post by Mathieu Bonnet
- If really you want to allow more than two IconBox per style,
there should at least be a dedicated option grouping all these
options, and even then this would be inconsistent with the
generic overriding meaning of using the same option multiple
times (and effectively renders overriding impossible).
Huh?

You mean define box1, define box2 then have a style command
refer to box1 and box2?

Not sure I like that.
Post by Mathieu Bonnet
The only real solution would be to use dedicated commands,
similarly to how it is handled with ButtonStyle commands
(ButtonStyle, ButtonStyle Reset, AddButtonStyle). Style options
could be kept, but would use the generic meaning of the Style
syntax, meaning we could only define a single IconBox per style
(or two, if you add the DefaultIcon* options mentionned above).
Still lost.
Post by Mathieu Bonnet
- For more complex IconBox configurations, there is FvwmIconBox
anyway...
Nope, no thanks. A window with a border that gets full and
develops a scrollbar is nothing like icons on the root.
Post by Mathieu Bonnet
58) The IconFill style option uses a "gravity origin" direction
system (i.e., you have to indicate where is the gravity source,
and it starts filling there, so the following icons are put
where there is place left the closest of the gravity source,
but somehow filling up some rows/columns first depending on the
order of the coordinates of a fixed point...), which is very
confusing. It is a clunky and useless metaphor. Some other
programs use it (e.g., StaloneTray), I don't know if there is
any reference to it in X11 documentation for anything, but this
is not a reason, in any case. You should use a simple
directional system: the icons are filled going to the specified
directions. If I want filling from left to right, I specify
right.
- Wait... my icons are actually filled from the point
specified, instead of using it as a direction as specified in
the manual: "using these arguments to control the direction the
box is filled in"... and the example uses "IconFill Bottom
Right", which, with this understanding, seems to be the most
classical use (having the icons in the top left of the screen,
and having them be filled from top to bottom, and left to
right)...
Wait again... "IconFill Bottom Right" is not an example, but a
specification... "Bottom" and "Right" are not meant to be
actual locations/directions, but the name of the arguments...
it is very confusing to name them the same as actual values...
(they should be named something like "Vertical-Direction" and
"Horizontal-Direction").
Alright, so you actually say after this: "By default the
direction is left to right, then top to bottom. This would be
expressed as: IconFill left top"... I think I remember I
actually read this part too, but this was globally so confusing
that I held to the first thing I thought I understood, that is
what seems to be meaning of the first part of the
explainations...
Well, I probably wrote what has confused you.
But I don't follow your change suggestions.
Post by Mathieu Bonnet
59) The IconSize style option talks about padding and
clipping... Why would you not simply resize the icons...?
Looks like I failed to properly review the IconSize modification.
It's worse and better than you say.

In Fvwm's current state, this command is valid:

Style "*" IconBox -80 240 -1 -1, IconGrid 80 67, IconSize Adjusted 50 50

Other values are Stretched and Shrunk.
Post by Mathieu Bonnet
73) I'm using "Style * IconBox none", without any other IconBox
style definitions, nor any use of FvwmIconBox, yet, after even
a complete FVWM restart (I mean computer restart in-between),
when I iconify windows, they still show as icons on my
workspace. As I'm using a taskbar, I don't want icons at all on
my desktop (catches the attention, risks of clicking on them
when trying to unfocus a window, etc.). Nothing about icons in
my session log.
Yes, there is a default built in iconbox that you cannot remove.
On purpose.

With Fvwm you get the core and modules are free to do what
they want.

The core of Fvwm uses the iconbox to represent minimized
applications. If you want some module to take over
you should tell fvwm you want "Style * NoIcon".

Some time in the future I'll try to update the docs for
iconbox.

Thanks again.
--
Dan Espen
Mathieu Bonnet
2012-03-18 14:15:58 UTC
Permalink
Hi,

Sorry for the late reply.


On 2012-02-08 22:27:34-0500,
Post by Dan Espen
Post by Mathieu Bonnet
57) Is it really necessary to allow multiple IconBox for the
same style? Even more than two?
Yes, it was(is), since it's exactly what I wanted.
(Yes, I am the guilty party, but it was on the TODO before
I started.)
I run icons down the right side of my screen below where the
clock is.
When I run out of room, I wanted control over where the
overflow icons landed. In my case along the bottom of the
screen moving from the right to the left.>
Post by Mathieu Bonnet
(if not, you could have
DefaultIconBox/DefaultIconGrid/DefaultIconFill/DefaultIconSize
options). Linking the concatenation of the
IconBox/IconGrid/IconFill (and IconSize?) options is an
abuse of the generic meaning of the syntax. Having a
backslash act the same as a command separator is even
worst. It also forces longer (and defining a multitude of
abbreviations for otherwise short commands like the
IconFill option is not a solution) and more complex lines.
I'm lost. IconBoxes are styles and the default style is *.
What I meant was that if you only need two main IconBox (a
normal area, and an overflow area, like in your case), there
could a new style to define the overflow area, instead of
having to concatenate the IconBox definitions using a
backslash (which usually only means breaking a line in two
parts).

"Default" may indeed be confusing though... Using "Overflow"
would probably be clearer.

That is:

Style * IconBox l t r b
Style * OverflowIconBox l t r b


And then there is the problem of the different meaning of
the comma concatenation of IconBox/IconGrid/IconFill.

The normal syntax says that the comma is simply used to
concatenate style options, processed in order, at the same
hierarchical level, meaning that if specifying the same style
twice, only the second definition will be taken into account.

Here, you use the comma to mean the properties are linked
together, and do not override other similar definitions.

The solution, if two IconBox are enough (I sure can imagine
people with thirty applications with icons all around the
screen, but is this really necessary, knowing that FvwmIconBox
can be used for these more complex and exceptional setups?),
would be to only allow two IconBox per style, and have
different names for them. We would get rid of the syntax abuses
of the comma and slash character.
Post by Dan Espen
Post by Mathieu Bonnet
- If really you want to allow more than two IconBox per
style, there should at least be a dedicated option grouping
all these options, and even then this would be inconsistent
with the generic overriding meaning of using the same
option multiple times (and effectively renders overriding
impossible).
Huh?
You mean define box1, define box2 then have a style command
refer to box1 and box2?
Not sure I like that.
I meant something like:

Style * IconBox l t r b fill-left fill-top grid-x grid-y,\
IconBox l t r b fill-left fill-top grid-x grid-y

Well, doesn't solve much anything, but still a bit easier than
repeating multiple IconBox/IconFill/IconGrid series, although
long lists of unnamed parameters sure are a problem...

Anyway, I was just noting the abuse of syntax, which can be
confusing. Of course in itself this is rather trivial, but the
less the better.
Post by Dan Espen
Post by Mathieu Bonnet
The only real solution would be to use dedicated commands,
similarly to how it is handled with ButtonStyle commands
(ButtonStyle, ButtonStyle Reset, AddButtonStyle). Style
options could be kept, but would use the generic meaning of
the Style syntax, meaning we could only define a single
IconBox per style (or two, if you add the DefaultIcon*
options mentionned above).
Still lost.
IconBox * l t r b fill-left fill-top grid-x grid-y
AddIconBox * l t r b fill-left fill-top grid-x grid-y
AddIconBox * l t r b fill-left fill-top grid-x grid-y
IconBox * Reset
Post by Dan Espen
Post by Mathieu Bonnet
- For more complex IconBox configurations, there is
FvwmIconBox anyway...
Nope, no thanks. A window with a border that gets full and
develops a scrollbar is nothing like icons on the root.
Seems it would be better to extend the more developed module
with options to control this, rather than trying to complexify
the more simple core options...
Post by Dan Espen
Post by Mathieu Bonnet
58) The IconFill style option uses a "gravity origin"
direction system (i.e., you have to indicate where is the
gravity source, and it starts filling there, so the
following icons are put where there is place left the
closest of the gravity source, but somehow filling up some
rows/columns first depending on the order of the
coordinates of a fixed point...), which is very confusing.
It is a clunky and useless metaphor. Some other programs
use it (e.g., StaloneTray), I don't know if there is any
reference to it in X11 documentation for anything, but this
is not a reason, in any case. You should use a simple
directional system: the icons are filled going to the
specified directions. If I want filling from left to right,
I specify right.
- Wait... my icons are actually filled from the point
specified, instead of using it as a direction as specified
in the manual: "using these arguments to control the
direction the box is filled in"... and the example uses
"IconFill Bottom Right", which, with this understanding,
seems to be the most classical use (having the icons in the
top left of the screen, and having them be filled from top
to bottom, and left to right)...
Wait again... "IconFill Bottom Right" is not an example,
but a specification... "Bottom" and "Right" are not meant
to be actual locations/directions, but the name of the
arguments... it is very confusing to name them the same as
actual values... (they should be named something like
"Vertical-Direction" and "Horizontal-Direction").
Alright, so you actually say after this: "By default the
direction is left to right, then top to bottom. This would
be expressed as: IconFill left top"... I think I remember I
actually read this part too, but this was globally so
confusing that I held to the first thing I thought I
understood, that is what seems to be meaning of the first
part of the explainations...
Well, I probably wrote what has confused you.
But I don't follow your change suggestions.
To summarize:

- To have the icons filled from left to right, and from top to
bottom, we currently have to specify "IconFill left top".
Specifying a direction, instead of an origin, would be far more
intuitive (although of course changing it now will be a
problem, again I was just noting it).

- The manual defines the syntax as: "IconFill Bottom Right".
With the above change, it should be changed to something like
"IconFill <VerticalDirection> <HorizontalDirection>" (well, you
use an italic style in the manual for parameter names, but it
can be confusing...).



Thanks for your reply,

Bye.
--
Mathieu Bonnet <***@kawagama.net>
Loading...