Non-overlapping windows

Can I get http://wmii.de behaviour with some sort of script? I tried FvwmPartition but it’s for old FVWM version, I cannot get it compiled with fvwm-snap-20060512.
FvwmProxy has non-overlapping windows, why cannot real apps be places with such policy?

FvwmPartition is a little out-dated. Ask Jason Tibbets about it.

As for what you’re after – no, there’s way you can do this using straight-forward policies. At best you can only lessen the effect using ‘MibOverlapPlacement’ and various ‘MinOverlapPlacementPenalties’, I would have thought.

– Thomas Adam

Well, I never tried wmii itself, but I think I managed to do something similar, as I understood from the documentation. The key point is to use FvwmRearrange:

DestroyFunc WMIArrange
AddToFunc WMIArrange
+ I Current ResizeMove frame 50 100 0 0
+ I Current WindowStyle WindowListSkip
+ I Current WarpToWindow 50 1
+ I UpdateStyles
+ I ModuleSynchronous $[HOME]/.fvwm/FvwmRearrangeSync -tile -u -m -h 50 0 100 100
+ I Current WindowStyle WindowListHit
+ I Current Raise

You can of course adjust the parameters in order to arrange the windows according to your preferences and then bind this function to a key or a FvwmEvent.

But for this to work, you have to modify FvwmRearrange.c in the fvwm source code, compile it and put it in your module path (the FvwmRearrangeSync in the code). You have to locate the line

SendFinishedStartupNotification(fd);

and move it just before the

return 0;

line. In this way FvwmRearrange can work in a synchronous way and can be used in the function. I wanted to submit a patch or at least discuss it in the mailing list, but I didn’t come to it.

Hope it is something similar to what you are looking for.

Look at SetSyncMask().

– Thomas Adam

Hello,
it is working here but if activated it the skiplist is ignored.
Any suggestions?

I have already tried to add a line + I UpdateStyleat the bottom of the function but some apps simply ignore this.

mutze

Can you be more specific about what you mean? (Note that the overuse of Current is a little pedantic – you get a window list for context for free anyway – paste your functions for us to see.)

– Thomas Adam

Hi,

thanks for answering.
The problem is that windows which have ‘Style WindowListSkip’ appear in FvwmIconMan and others like that.

The function is [code]DestroyFunc WMIArrange
AddToFunc WMIArrange

  • I Current ResizeMove frame 60 98 0 0
  • I Current WindowStyle WindowListSkip
  • I Current WarpToWindow 50 1
  • I UpdateStyles
  • I ModuleSynchronous $[HOME]/.fvwm/FvwmRearrangeSync -tile -u -m -h 60 0 100 98
  • I Current WindowStyle WindowListHit
  • I Current Raise DestroyModuleConfig FvwmEvent: *
  • I UpdateStyles[/code]and I call this with DestroyModuleConfig FvwmEvent: * *FvwmEvent: Cmd *FvwmEvent: add_window "WMIArrange" *FvwmEvent: destroy_window "WMIArrange"

I have a TimeScript and FvwmIconman both swallowed in separat FvwmButtons. Also both have Style FvwmTaskbar !Title, !Handles, Sticky, WindowListSkip, \ BorderWidth 0, HandleWidth 0, StaysOnBottombut they still appear in FvwmIconman.

I will post a shot if needed.

Thanks for reading this. I know my english is really bad. :blush:

mutze

So tell FvwmIconMan to use the skip list:

*FvwmIconMan: UseWinList true

Although note that that’s the default unless you tell FvwmIconMan otherwise.

As to your function, note that:

[code]

  • I Current WindowStyle WindowListHit[/code]

Will essentially “remove” the window from the skip list – so you might want to comment this out (again, the use of ‘Current’ is a little exclusive).

[code]

  • I Current Raise DestroyModuleConfig FvwmEvent: *[/code]

This line is wrong. Raise doesn’t accept any arguments in this way.

– Thomas Adam

I already have this in my config:[code]# FvwmIconMan
#############

Style FvwmIconMan Sticky, NoTitle, WindowListSkip, CirculateSkipIcon,
NoHandles, BorderWidth 1, FixedSize, !Iconifiable, StaysOnBottom

DestroyModuleConfig FvwmIconMan: *
FvwmIconMan: NumManagers 1
FvwmIconMan: Resolution page
FvwmIconMan: UseWinList true
FvwmIconMan: DrawIcons always
FvwmIconMan: Shape true
FvwmIconMan: FollowFocus true
FvwmIconMan: Sort name
FvwmIconMan: NoIconAction “SendToModule FvwmAnimate animate”
FvwmIconMan: Font "--snap.de-
-
-
-
-10-
-
-
-
---*"
*FvwmIconMan: MaxButtonWidth 200
*FvwmIconMan: ReliefThickness 1
*FvwmIconMan: Colorset 1

*FvwmIconMan: PlainButton up
*FvwmIconMan: PlainColorset 3
*FvwmIconMan: SelectButton down
*FvwmIconMan: SelectColorset 9
*FvwmIconMan: FocusButton down
*FvwmIconMan: FocusColorset 0
*FvwmIconMan: FocusAndSelectButton down
*FvwmIconMan: FocusAndSelectColorset 8
*FvwmIconMan: IconButton up
*FvwmIconMan: IconColorset 3
…[/code]

If I do this there isn’t any active window and the first frame is everytime empty.

:oops: copy&paste-error. The line is+ I Current Raise

For the moment I comment out complete IconMan. As you can see all open windows everytime it’s a little useless.

mutze