[Solved]A couple of config problems...

I hope this is the right place to post this. I considered putting it in basic questions (because I am sure they are) and appended to Nick Fortune’s tutorial but because I am sure I have made a simple mistake somewhere I didn’t feel it was going to contribute there…

I have been going through the man pages and building a from scratch config with Nick Fortune’s beginners guide which is excellent and many things are becoming clear.

I have managed to get everything he describes working except the following:

  1. Although I have set the basestruts as directed to accomodate the top of screen taskbar and then specified the TileCascadePlacement as directed to allow the taskbar to sit in the top of the screen (at least that is how I interpreted his instructions) I am getting the taskbar standing off - but the buttons panel right in the top corner…

  2. He speaks of the ability to shade the pager at the bottom of the buttons panel but I can’t get the double click to do this despite ensuring the title is there and the other buttons are masked. Mind you he never directs me to define a shade action so maybe that is it? Am I on the right track here?

Here is my config work as of now:

# My FVWM Config built on Nick Fortune's Tutorial
#
#
#
#
#

SetEnv resources $[HOME]/.fvwm/resources
ImagePath $[resources]/icons:+

DestroyFunc StartFunction
AddToFunc StartFunction
+ I Exec exec fvwm-root --retain-pixmap $[resources]/wallpaper/.wallpaper
+ I Module FvwmButtons FvwmButtons-Panel
+ I Module FvwmIconMan FvwmIconMan-TaskBar
+ I Module FvwmPager FvwmButtons-Pager
+ I Test (Init) Exec exec xscreensaver

DestroyFunc InvokeAterm
AddToFunc InvokeAterm
+ I Exec exec aterm -tr -fg green -trsb -sl 1000 -ls -sh 60

#
# Add Window Title Bar buttons default
#
Mouse 1 1 N Close
Mouse 1 4 N Iconify
Mouse 1 2 N Maximize

EWMHBaseStruts 0 0 18 0         # cater for the top of screen task bar
EdgeResistance 300 5

#
# Colorsets
#
Colorset 0      Foreground      black,          \
                Background      rgb:90/80/90,   \
                Hilight         rgb:c5/b9/c5,   \
                Shade           rgb:46/41/46

Colorset 1      Foreground      purple,         \
                Background      black,          \
                Hilight         rgb:c5/c5/b9,   \
                Shade           rgb:46/46/41

#
# Global Styles Here
#
Style "*" MinOverlapPlacement
Style "*" BorderWidth 2, HandleWidth 2 # default window borders
Style "*" Colorset 0
Style "*" HilightColorset 1

Style "FvwmIconMan-TaskBar"     TileCascadePlacement,   \
                                NoTitle,                \
                                BorderWidth 0,          \
                                HandleWidth 0,          \
                                WindowListSkip,         \
                                StaysOnTop,             \
                                Sticky

Style "FvwmButtons-Pager"       Title,                  \
                                NoButton 1,             \
                                NoButton 2,             \
                                NoButton 4

Style "FvwmButtons-Panel"       NoTitle,                        \
                                BorderWidth 0,                  \
                                HandleWidth 0,                  \
                                Sticky,                         \
                                StaysOnTop,                     \
                                WindowListSkip

#
# Pager
#
*FvwmPager: Front "none"
*FvwmPager: Back "none"

#
# FvwmIconMan-TaskBar Setup
#
*FvwmIconMan-TaskBar: Colorset 0
*FvwmIconMan-TaskBar: FocusColorset 1
*FvwmIconMan-TaskBar: Action Mouse 1 N sendcommand EWMHActivateWindowFunc
*FvwmIconMan-TaskBar: Resolution Desk
*FvwmIconMan-TaskBar: ManagerGeometry 1x1
*FvwmIconMan-TaskBar: ButtonGeometry 1190x10+--0
*FvwmIconMan-TaskBar: Format "%t"       # just the window title
*FvwmIconMan-TaskBar: PlainButton up    # bye bye indentations
*FvwmIconMan-TaskBar: Sort none         # no sorting, please


#
# set autoraise
#
AddToFunc StartFunction
+ I Module FvwmAuto 500

DestroyFunc InvokeConsole
AddToFunc InvokeConsole
+ I Module FvwmConsole -terminal aterm -tr +sb -fg red -sh 40 -geometry 145x12+0-1

#
# basic panel
#
DestroyModuleConfig FvwmButtons-Panel: *
*FvwmButtons-Panel: Columns 1
*FvwmButtons-Panel: Colorset 0
*FvwmButtons-Panel: ActiveColorset 1
*FvwmButtons-Panel: (1x1 Icon 'vmware.png',             \
        Action(Mouse 1) 'Exec exec vmware',             \
        Action(Mouse 3) 'Exec exec vmplayer'            \
        )
*FvwmButtons-Panel: (1x1 Icon 'firefox.png',            \
        Action(Mouse 1) 'Exec exec firefox'             \
        )
*FvwmButtons-Panel: (1x1 Icon 'thunderbird.png',        \
        Action(Mouse 1) 'Exec exec thunderbird'         \
        )
*FvwmButtons-Panel: (1x1 Icon 'gnome-term.png',         \
        Action(Mouse 1) 'Exec exec gnome-terminal'      \
        )
*FvwmButtons-Panel: (1x1 Icon 'aterm.png',              \
        Action(Mouse 1) 'Function InvokeAterm',         \
        Action(Mouse 3) 'Function InvokeConsole'        \
        )
*FvwmButtons-Panel: (1x1 Icon 'logout.png',             \
        Action(Mouse 1) 'Module FvwmForm FvwmForm-QuitVerify',          \
        Action(Mouse 3) 'restart'                       \
        )
*FvwmButtons-Panel: (Swallow "FvwmButtons-Pager")

What do you mean by “standing off”?

You can specify a direction to shade in:

WindowShade S

for instance.

– Thomas Adam

Thanks I’ll study the shading options carefully and try that.

By standing off I mean that the TaskBar iteself is positioning itself below the strut exclusion zone…

As you can see the button panel is happily sitting in the very top left of the screen but the taskbar is positioning itself below the defined

EWMHBaseStruts 0 0 18 0

I hope this makes more sense - and thanks for the ongoing patient support Thomas. (Don’t you ever sleep :wink: )

Will

Then that is either being set after the button panel is started, or else some sort of style line utilising ‘EWMHIgnoreStateHints’ (or what have you) is being used, or a function is being used to toggle EWMHBaseStruts (search the forums about this – there’s an example on how to do that).

No, not really.

– Thomas Adam

OK, I have been hacking at this problem for a bit now and can’t identify the reason why my strut definition is being applied to the positioning of the task bar.

If I may I will step through the order that my config introduces these elements and perhaps it will enlighten me in the process or tip off someone with expertise.

my conf starts with some env defs and image locations etc. then I set my basestruts:

 EWMHBaseStruts 0 0 18 0

Then I have some function definitions for InvokeAterm and the defaults for the mouse button actions for close iconify and maximise…

Followed by two colorset definitions and some Global Styles definitions - most importantly these two entries:

Style "*" MinOverlapPlacement
...
Style "FvwmIconMan-TaskBar"     TileCascadePlacement,   \
                                NoTitle,                \
                                BorderWidth 0,          \
                                HandleWidth 0,          \
                                WindowListSkip,         \
                                StaysOnTop,             \
                                Sticky

This is to (according to my reading of the tutorial) ensure that the taskbar is not offset by the basestruts and the MinOverlapPlacement with TileCascadePlacement - but now that I look at it shouldn’t it be more than just a cascade placement but an actual top edge location?

Then some more styles are defined followed by the taskbar setup:

*FvwmIconMan-TaskBar: Colorset 0
*FvwmIconMan-TaskBar: FocusColorset 1
*FvwmIconMan-TaskBar: Action Mouse 1 N sendcommand EWMHActivateWindowFunc
*FvwmIconMan-TaskBar: Resolution Desk
*FvwmIconMan-TaskBar: ManagerGeometry 1x1
*FvwmIconMan-TaskBar: ButtonGeometry 1190x10+--0
*FvwmIconMan-TaskBar: Format "%t"       # just the window title
*FvwmIconMan-TaskBar: PlainButton up    # bye bye indentations
*FvwmIconMan-TaskBar: Sort none         # no sorting, please

this is followed by the Autoraising, an InvokeConsole Func, the BasicPanel definitions and then finally the StartFunction (which incidently I had had at the beginning of the config but after studying some of the man pages and Taviso’s configs and also taking into consideration your comment (Thomas) that the order is critical I moved it to the end- with no effect as far as I could see)

The StartFunction in question is:

DestroyFunc StartFunction
AddToFunc StartFunction
+ I Exec exec fvwm-root --retain-pixmap $[resources]/wallpaper/.wallpaper
+ I Module FvwmButtons FvwmButtons-Panel
+ I Module FvwmIconMan FvwmIconMan-TaskBar
+ I Module FvwmPager FvwmButtons-Pager
+ I Test (Init) Exec exec xscreensaver

That is the end of the config.

What happens when I start fvwm is that the Buttons Panel starts up and places itself top left corner (as shown in image posted above) and then only once a terminal or some other programme is launched will the task bar appear and when it does it positions itself at that strut offset position - which of course causes problems when it is always on top because all new windows get placed under it if the min offset allows - this means that their title bars are hard to access of course.

Clearly I am missing something or one of my definitions is not working and being ignored or something similar.

Will

Wherever you read that TileCascade somehow ignores EWMHBaseStruts; forget it. The only way that ever happens if the placement of the window is such that it precludes being able to position itself outside the zone set by the BaseStruts (think large windows for instance).

It doesn’t matter where in the file you place these things. It did at one point (back in the FVWM 1.X days), but no longer. There’s a page on the wiki explaining this:

fvwmwiki.org/Configuration/FvwmFileStructure

I can’t reproduce this. Upload your config file in its entirety for review.

– Thomas Adam

Thanks Thomas,

My config is fvwm config

and is virtually the same as the one copied and posted above but I have moved things all around trying to work out this problem. It is a mess because I built it bit by bit according to the turorial and not familiar with the best way to coordinate all the bits but it is the working one that I am using right now and exhibits the offset taskbar and the strange pager behaviour.

I would be interested to hear what you think.

I got that idea from the (excellent) tutorial NickFortune wrote here:
viewtopic.php?t=188

Reading that again now I can see that he does not explicitly describe the way to ensure that the struts don’t effect the taskbar only that the min offset and cascade don’t play well together.

Most of the things that confused me about following the tutorial actually turned out to be better learning than if I hadn’t had to look harder - I do like that. But on this one I am stumped.

THX
Will

I’m tired, is what I think. But in your case, I would set the geometry of the FvwmButtons panel yourself. I.e. in your StartUp function:

+ I Module FvwmButtons FvwmButtons-foo -g <geometry>

I know of it already.

– Thomas Adam

Don’t worry about this now - after all my config is basically working and I will press on with some new areas of learning which will ultimately allow me to resolve the issue.

Incidently I found that using the geometry specification I was able to place the Buttons Panel exactly where I want it - 18 pixels down - but as soon as I specify it for the taskbar it loses all its other properties and turns back into the vertical button independent window.

Anyway I’ll get there.

Thanks for the suggestions.

Will

UPDATE - I worked it out as you suggested:

This line changed from:

*FvwmIconMan-TaskBar: ManagerGeometry 1x1

to

*FvwmIconMan-TaskBar: ManagerGeometry 1x1+0+0

none of the -g or --geometry commands worked for me for the taskbar but did for the buttons panel.

Anyway - thanks for the help I expect I will muddle through all this - BTW I love it.

Will