Autohiding makes no sense :(

First of all, I’m a bit tired atm, so this might be a very simple problem.

Anyhow - I’m using a 1024x768 monitor, and I’d like to save some screen space by hiding my pager at the right center side of the screen, and let it come out when I hover my mouse over that section.

But I can’t figure out how to do it :frowning:
I started by searching these forums, where I got a link to the fvwm FAQ, and there I found what I was looking for - fvwm.org/documentation/faq/#7.17 .
There is nothing wrong with it - it hides the window without any problems - BUT HOW DO I GET IT BACK?! :frowning:
I’m trying this out on gkrellm.

I don’t want to use a keybinding or so to do this - I want the pager to unhide when my mouse pointer moves over the area, and hide after I move it away - but how do I do it?

But that’s exactly what the answer in the FAQ does. So I am not sure what you mean. Can we see your copy of the functions you’re using, please?

– Thomas Adam

[code]AddToFunc autohide

  • I ThisWindow ($0) Deschedule $[w.id]
  • I TestRc (!Match) Deschedule -$[w.id]
  • I ThisWindow ($0) KeepRc ThisWindow (shaded) autohide_show $1 $3
  • I TestRc (!Match) All ($0, !shaded) autohide_hide $2 $3

AddToFunc autohide_show

  • I Schedule $0 -$[w.id] WindowShade $1 off
  • I Schedule $0 -$[w.id] Deschedule $[w.id]
  • I Schedule $0 -$[w.id] Deschedule -$[w.id]

AddToFunc autohide_hide

  • I Schedule $0 $[w.id] WindowShade $1 on
  • I Schedule $0 $[w.id] Deschedule $[w.id]
  • I Schedule $0 $[w.id] Deschedule -$[w.id]

AddToFunc enter_handler
#+ I autohide FvwmButtons 250 500 S

^ ^ ^ ^

| | | |__ Shade direction (optional)

| | |______ Hide delay

| |__________ Show delay

|______________________ Unique window name/resource

  • I autohide gkrellm 250 500 S[/code]

and in my start function:

+ I Module FvwmAuto FvwmAutohide -menter enter_handler

Now, the window does hide when I remove my mousepointer from it, but I can’t make it come back.

gkrellm isn’t ICCM2 compatible. If fvwm refuses resizing of it’s window on request, when it’s shaded (all according to what a WM is allowed according to ICCM2), it will not unshade correclty. Could this be your problem?

Hmm, I tried using FvwmPager instead, and the window hides, but it doesn’t come back.
The plan was to make it come out again once I moved my mouse over it :frowning:

That function should work. Can you try swallowing an xterm instead or something? I never tried gkrellm but your problem could, maybe, be related to the gkrellm config. It has some options to configure how the gkrellm window is handled, maybe you should play with them.

What is your BorderSize and Edge thickness. The Window won’t recive enter events if you enter the frame benethe the pand frames. So you will either need no edgescroll/command on the edge you shade to, or have a thicker border of the shaded window.

Ah!
It did work, it was a user error - I didn’t realize I had to hold my pointer over a 1 px border (trying that with a touchpad wasn’t very easy), which leeds me to a final question - take a look at my silly mockup.

Instead of having the pager living down in the corner, can I make it live in the center of the screen, having a think (not as thick as in the picture) border on the top and left side, and having it always on top?
I don’t know where to begin my search :frowning:

Glad that its working, about the centering, I suppose that you are swallowing your pager into FvwmButtons, to change the location just change the geometry of fvwmbuttons, for example, if you fvwmbuttons holding the pager is called fvwm_pagerholder, you can do:

Module FvwmButtons fvwm_pagerholder -g -0+400

Just modify the line that you use to lauch that instance of fvwmbuttons to adapt it to your geometry. About the border, look into BorderWidth and HandlerWidth properties of the command Style.

Ah, now I got it all sorted out - thanks for your help.

One shouldn’t try to configure fvwm when one hasn’t slept enough… :slight_smile:

I am confused, does this or does this not work with gkrellm? :slight_smile:

If it doesn’t what can I do to hide gkrellm?

GKrellm likes to do all of this stuff by itself – and effectively will ignore the WM. XMMS is like this. Poke around in GKrellm’s settings. I am sure there’s an option in there to tell it to listen to the WM. (Which is what it should be doing in the first instance.)

– Thomas Adam

You can do hiding by moving itt out of sight. You can just not do it by shading.

This is some example code that hides gkrellm off screen. It can be adapted, and combined with other code from this thread to do the hiding on other conditions. Just don’t shade it.

[code]Style Gkrellm2 !Title, Sticky, WindowListSkip

DestroyFunc EdgeFunctionWest
AddToFunc EdgeFunctionWest

  • I All (Gkrellm2) Deschedule $[w.id]
  • I All (Gkrellm2) Move 0 w+0

DestroyFunc EdgeLeaveFunctionWest
AddToFunc EdgeLeaveFunctionWest

  • I All (Gkrellm2) Schedule 600 $[w.id] HideFunction

DestroyFunc HideFunction
AddToFunc HideFunction

  • I ThisWindow (HasPointer) Break
  • I Move ±$[w.width]p w+0p
  • I Move w+5p w+0p

AddToFunc LeaveWindow

  • I ThisWindow (Gkrellm2) Schedule 600 $[w.id] HideFunction

EdgeCommand W Function EdgeFunctionWest
EdgeLeaveCommand W Function EdgeLeaveFunctionWest

*FvwmEvent: leave_window “Function LeaveWindow”

Module FvwmEvent
[/code]

Um - I actually found that it could be done with the original code posted - it just didn’t seem to be working because gkrellm had to be restarted.

I believe that gkrellm own properties options can seriously screwup any attempts to manipulated it with a WM, I strongly suggest people fiddle with them if they are having probs.

It will work as long as gkrellm doesn’t resize itself while hidden. (Happens f example if you bring down an interface)