Multiple FvwmIconMan

Hi.
I’m currently rewriting my fvwm-config and trying to get two FvwmIconMan running. What I want is one IconMan to show all but the iconified windows and the other to show ONLY the iconified windows. The config look like this:

Style FvwmIconMan NoTitle, Sticky, WindowListSkip, BorderWidth 0, HandleWidth 0

DestroyModuleConfig FvwmIconMan: *
*FvwmIconMan: NumManagers 2

*FvwmIconMan: FocusAndSelectButton down
*FvwmIconMan: FocusButton down
*FvwmIconMan: IconButton down
*FvwmIconMan: PlainButton down
*FvwmIconMan: SelectButton down
*FvwmIconMan: Action Mouse 0 N sendcommand Nop
*FvwmIconMan: Colorset 8
*FvwmIconMan: FocusAndSelectColorset 9
*FvwmIconMan: FocusColorset 9
*FvwmIconMan: ReliefThickness 1
*FvwmIconMan: Font $[FontShadow]
*FvwmIconMan: Resolution global
*FvwmIconMan: DrawIcons Always
*FvwmIconMan: FollowFocus True
*FvwmIconMan: UseWinList True
*FvwmIconMan: Sort name

*FvwmIconMan: 1 Title "IconManSideBar"
*FvwmIconMan: 1 IconName "FvwmIconMan: Iconified"
*FvwmIconMan: 1 ManagerGeometry 1x1
*FvwmIconMan: 1 ButtonGeometry 24x24
*FvwmIconMan: 1 ShowOnlyIcons True

*FvwmIconMan: 2 Title "IconManTaskBar"
*FvwmIconMan: 2 IconName "FvwmIconMan: TaskBar"
*FvwmIconMan: 2 ManagerGeometry 1x1
*FvwmIconMan: 2 ButtonGeometry 24x24
*FvwmIconMan: 2 ShowNoIcons True

Both are swallowed by FvwmButtons:

...
*FvwmButtons: (1x31, Swallow "IconManSideBar")
...
*FvwmBar: (64x1, Swallow "IconManTaskBar")
...

And the initialization is:

+ I Exec xsri --geometry=1152x864 $[WallpaperPath]/$[Wallpaper]
+ I Module FvwmAuto 300 raise
+ I Module FvwmPager 0 0
+ I Module FvwmButtons
+ I Module FvwmButtons FvwmBar
+ I Module FvwmIconMan

The odd thing is that only the first IconMan (FvwmIconMan: 1 …) is working regardless of which one (“IconManTaskBar” or “IconManSideBar”) is configured as manager number 1. The other is just showing the title, nothing else. Restarting fvwm does not help.

I read something about transient windows could perhaps lock the IconMan, but adding

*FvwmIconMan: transient Geometry 194x100
*FvwmIconMan: transient DontShow icon=Untitled
*FvwmIconMan: transient Action   Mouse 0 A sendcommand select select Iconify

from the example in the man page does not help.

Have I missed a point?

I think it would be better to just create two aliases for the two FvwmIconMans as now FvwmButtons will try to swallow both of them as they’ll have the same title which might be causing the strangeness you see.

In order to test what you proposed I disabled the swallowing of the IconMans. If I use:

*FvwmIconMan: 1 Title "IconManTaskBar"
*FvwmIconMan: 1 IconName "FvwmIconMan: TaskBar"
*FvwmIconMan: 1 ManagerGeometry 1x1
*FvwmIconMan: 1 ButtonGeometry 24x24
*FvwmIconMan: 1 ShowNoIcons True

*FvwmIconMan: 2 Title "IconManSideBar"
*FvwmIconMan: 2 IconName "FvwmIconMan: Iconified"
*FvwmIconMan: 2 ManagerGeometry 1x1
*FvwmIconMan: 2 ButtonGeometry 24x24
*FvwmIconMan: 2 ShowOnlyIcons True

I get:
http://www.daimi.au.dk/~alras/FvwmIconMan.png
If I change the order:

#NB: SIDEBAR is first!
*FvwmIconMan: 1 Title "IconManSideBar"
*FvwmIconMan: 1 IconName "FvwmIconMan: Iconified"
*FvwmIconMan: 1 ManagerGeometry 1x1
*FvwmIconMan: 1 ButtonGeometry 24x24
*FvwmIconMan: 1 ShowOnlyIcons True

*FvwmIconMan: 2 Title "IconManTaskBar"
*FvwmIconMan: 2 IconName "FvwmIconMan: TaskBar"
*FvwmIconMan: 2 ManagerGeometry 1x1
*FvwmIconMan: 2 ButtonGeometry 24x24
*FvwmIconMan: 2 ShowNoIcons True

I get:
http://www.daimi.au.dk/~alras/FvwmIconMan2.png
I must conclude that FvwmButtons is not the problem: still only one operational IconMan.

I’m running fvwm 2.5.14 on FC3 and FC4, both have the same problem. I have tried my setup on fwm 2.5.10 but without any luck.

Where do I go from here?

This is how I have done it in one of my configs:

Module FvwmButtons B4
Module FvwmButtons B5

*B4: Colorset 2
*B4: Padding 0 0
*B4: Columns 2
*B4: Rows 1
*B4: ButtonGeometry 100x80-10-300
*B4: Frame 0
*B4: (Padding 15 15, 2x1, Swallow "I1" "Module FvwmIconMan I1")

*B5: Colorset 2
*B5: Padding 0 0
*B5: Columns 2
*B5: Rows 1
*B5: ButtonGeometry 100x80-10-400
*B5: Frame 0
*B5: (Padding 15 15, 2x1, Swallow "I2" "Module FvwmIconMan I2")

*I1: ShowNoIcons True
*I1: Colorset 1
*I1: SelectColorset 4
*I1: FocusColorset 4
*I1: Title ""
*I1: ButtonGeometry 120x21
*I1: DrawIcons Always
*I1: ManagerGeometry 1x1
*I1: ReliefThickness 0
*I1: Resolution Global
*I1: FollowFocus True
*I1: Format "%c"
*I1: Sort id
*I1: Font "xft:romeodn:size=9"

*I2: ShowOnlyIcons True
*I2: Colorset 1
*I2: IconColorset 7
*I2: SelectColorset 4
*I2: FocusColorset 4
*I2: Title ""
*I2: ButtonGeometry 120x21
*I2: DrawIcons Always
*I2: ManagerGeometry 1x1
*I2: Resolution Global
*I2: Format "%c"
*I2: Sort id
*I2: Font "xft:romeodn:size=9"

If I remember correctly, it worked.

Thank you, morbusg: It worked.

However, I don’t know if it is the correct way of solving the problem. The man page for FvwmIconMan states that it needs to know how many instances there is running. I understand this as my first attempt is the right way to do it. The problem then seems to be the Show and DontShow lists associated with each instance of the manager. Since I dindn’t manage to find the patterns for:

*FvwmIconMan: 1 Show [OnlyIconified]
...
*FvwmIconMan: 2 DontShow [OnlyIconified]
...

or equvalent patterns, I’ll stick with current solution.

(I’m rather late in joining this thread, so I apologise.)

That’s not quite true – one instance of FvwmIconMan doesn’t care about the other instance, or other instances (depending on how many you have running.) Indeed, the concept of aliasing a module is just so – so that you’re able to have more than one instance.

Back before module aliasing was possible in FVWM, you used to have to manually symlink a new module name to the main FvwmMODULE file on the disk. Thankfully that’s no longer the case.

Basically, if you use alising (as people have tried to show) then the two managers are independant of each other. However, you can (and this is the only example of a module where it applies) configure FvwmiconMan under one roof, still using more than one manager. Here’s a half-baked example:

*FvwmIconMan: NumManagers 2
*FvwmIconMan: Resolution  page
[..]
*FvwmIconMan: 1 Title           "rxvt windows"
*FvwmIconMan: 2 Title           "all windows"

Which disposes of the need for aliases in this example. By and large, aliasing is the way to go, though.

– Thomas Adam

You just wrote what I assumed to be the case for the IconMan, but I got confused after reading the man page:

Nothing is mentioned about aliasing. Anyway, my config is up and running perfectly again, so thanks for the help.

Well, alising is mentioned in the all important ‘man fvwm’ file – it’s subtle, but just about there. You have to look hard though. :slight_smile:

– Thomas Adam