A console that goes up/down when we press ALT F12 (yakuake)

Of course it can, yes. But if that’s your own consideration, then:

Next (!Visible) SomeAction

CirculateSkip is really meant as a blanket covering for missing out all conditional commands, not just one where you’ve failed to cater for a specific instance.

– Thomas Adam

Do you mean “All (!Visible) SomeAction”? This is far less likely to happen than “Next Focus”.

I may be wrong, but are there better solutions? Prevent a window in a hidden state from being focused?

No. I really did mean Next. c.f. my earlier comment. Or, in your case:

Next (!Visible, CirculateHit) Focus

Remember there’s a difference between input focus and keyboard focus.

Crudely speaking:

DestroyModuleConfig FE:*
*FE: focus_change "Current (!Visible) Prev (AcceptsFocus, Visible) FlipFocus"

But that’s not preventative – it’s always going to be “after the fact” since there’s no way of checking which window has requested/receiving focus until it has got it in this case.

– Thomas Adam

Aha, this is what I don’t know. It might be the major problem I’m having also in the other “focus” thread. I skimmed over the man page and is still not clear on the difference. Can you explain it for me? Thank you.

I have tried to remove CirculateSkip and use “Next” instead of “All”. It also works fine and the term never gets inputed when invisible. I’m really confused…

Finally, what does the !Overlapped comment mean? Is there a reason to prefer !Overlapped to Visible?

Thank you for your patience :slight_smile:

Well, keyboard focus refers to the window which accepts input from the keyboard. It may or may not be the currently focused window (c.f. mousefocus, or transient/modal windows). Input focus typically involves the window which the mouse pointer is in.

An example of this is using:

Focus NoWarp

to focus a window for keyboard input without warping the pointer to it.

But surely that’s correct behaviour when invisible?

Depends what you want out of it. !Visible means covered. !Overlapped means the window isn’t obscured by other windows – c.f. you’d probably want to RaiseLower anyway to obviate these conditions.

– Thomas Adam

Yes, exactly what I want in a quake style term. I’m just curious why the term won’t get input when invisible, even if I change the last line of Thumbnail to

+ I Next (quake, CirculateHit) Focus

to purposely test it.

Thumbnail? Aren’t you confusing this with your other thread?

Anyway, it does work, so I suggest you re-evaluate what else is going on.

– Thomas Adam

No. I want to simulate a possible case in which the invisible term can get focused and inputed. This is of course what I do not like in my future use.

What I thought was that invisible term can receive keyboard input. This causes all the complications in my first attempt of implementation. But I’m aware now that it is not the case after playing with the following experiment.

First I made the term invisible. Then type in FvwmConsole, All (quake) Focus. After that I type some words. These words will not be inputed to the term. However, if the term is not completely invisible, things differ.

The improved? version… uses percentage of geometry size, and no CirculateSkip in style.

When using mrxvt, the -title may not be enough, use -name as well. And it seems that my version of mrxvt does not recognize -e parameter.

Style quake NoTitle, Sticky, WindowListSkip, StaysOnTop, \
            NoHandles, BorderWidth 1

SetAnimation 20 0 .01 .02 .04 .08 .16 .32 .64 1

DestroyFunc QuakeTerminal
AddToFunc QuakeTerminal
+ I Next (quake) ToggleQuakeTerminal
+ I TestRc (NoMatch) StartQuakeTerminal

DestroyFunc ToggleQuakeTerminal
AddToFunc ToggleQuakeTerminal
+ I ThisWindow (Visible) AnimatedMove +0p -100
+ I TestRc (Match) KeepRc Next (HasPointer) Focus
+ I TestRc (NoMatch) KeepRc ThisWindow Move +0p +0p
+ I TestRc (NoMatch) ThisWindow Focus

DestroyFunc StartQuakeTerminal
AddToFunc StartQuakeTerminal
+ I Exec exec rxvt -title quake -e screen -S Quake -R
+ I Wait quake
+ I Next (quake) ResizeMove 100 60 +0p +0p

AddToFunc RestartFunction
+ I Next (quake) Move +0p -100


Module FvwmAuto 40 -mleave "Silent ThisWindow (quake) AnimatedMove +0p -100"

So when I said…:

!title and !handles here please.

– Thomas Adam

in our code:
has someone an idea how to start :

+ I Exec exec rxvt -title quake -e screen -S Quake -R

with a transset-df 0.8 ?
thanks

You’ll need to start xcompmgr at some point. Then you’ll need to run transset-df after that line above.

– Thomas Adam

That’s sooo powerful Fvwm ! You can program almost everythg you want !

Well we’d be missing some apps that gives more effects using xcompmgr like transset-df, eg :

  • fancy iconify
  • expose (like compiz fusion)
  • the 3d effects are already in metisse

well I guess that metisse is more ligthweight than compiz fusion…

content.answers.com/main/content … esktop.png
linuxdesktop.cn/wp-content/uploa … -new-1.jpg

edit:

[code]DestroyFunc StartQuakeTerminal
AddToFunc StartQuakeTerminal

  • I Exec exec mrxvt -g 170x14+0+0 -name quake -fg green -bg black
  • I PipeRead ‘echo Exec exec transset-df -i $[w.id] 0.75’
  • I Thiswindow Exec exec transset-df -i $[w.id] 0.75
  • I Wait quake
  • I All (quake) State 0 True[/code]

not working … :frowning: I still have to learn fvwm coding …:slight_smile:

The reason is Visible condition does not work while xcompmgr is running (cf. this thread) . You need to change the first line of ToggleQuakeTerminal to something like

+ I ThisWindow State 0 toggle
+ I ThisWindow (State 0) AnimatedMove +0p -100

and add your transset-df commands.

You’ll also need to toggle State 0 in the last line of FvwmAuto

Oh, god, Fvwm will not given the correct $[w.id] when xcompmgr is running…

So your transset-df line will not work…

+ I All (quake, CirculateHit) Exec echo $[w.id]

in StartQuakeTerminal will print w.id of some other window instead of quake term. Funny

Sorry but I am lost in the code …
I’d need the following 2 days of RTFM ! :slight_smile:

###################
Style quake NoTitle, Sticky, WindowListSkip, CirculateSkipIcon, \
            CirculateSkip, StaysOnTop, NoHandles, BorderWidth 1

SetAnimation 20 0 .01 .03 .08 .18 .3 .45 .65 1

DestroyFunc QuakeTerminal
AddToFunc QuakeTerminal
+ I All (quake) ToggleQuakeTerminal     
+ I TestRc (NoMatch) StartQuakeTerminal   

Key F12  A   N   QuakeTerminal
Key Escape  A   M   QuakeTerminal

DestroyFunc ToggleQuakeTerminal
AddToFunc ToggleQuakeTerminal
#+ I None (quake) StartQuakeTerminal
+ I All (quake, CurrentPage, Overlapped, !State 0) Nop
+ I TestRc (Match) All (quake) Focus
+ I TestRc (Match) All (quake) Raise
+ I TestRc (Match) Break
+ I All (quake, State 0) Move screen 0 +0p +0p
#+ I TestRc (NoMatch) ThisWindow Focus
+ I TestRc (Match) All (quake) Focus
+ I TestRc (Match) All (quake) Raise
+ I TestRc (Match) All (quake) State 0 False
+ I TestRc (Match) Break
+ I All (quake) State 0 toggle
+ I All (quake) Move +0p -1000p
+ I All (quake) PipeRead 'echo Exec exec transset-df -i $[w.id] 0.75'
+ I All (quake)  Exec exec transset-df -i $[w.id] 0.75
+ I TestRc (Match) KeepRc Next (HasPointer) Focus
+ I All (quake) State 0 True
+ I UnSetEnv i
#+ I ThisWindow State 0 toggle
#+ I ThisWindow (State 0) AnimatedMove +0p -100

DestroyFunc StartQuakeTerminal
AddToFunc StartQuakeTerminal
+ I Exec exec mrxvt -g 170x14+0+0 -name quake -fg green -bg black
+ I Wait quake
+ I All (quake) State 0 True

AddToFunc RestartFunction
+ I All (quake) Move +0p -1000p

Module FvwmAuto 40 -mleave "Silent ThisWindow (quake) AnimatedMove +0p -1000p"

Is it possible to notify fvwm when a long-time job finishes in the shell of quake term? For example, I’d like to bring back the quake term when some time consuming job is done.

Seems that we can write a script to track the processes spawned by quake term using pstree and act correspondingly. Are there better ways to achieves this?

AddToFunc StartFunction I Test (Init) FvwmCommandS

In your shell script (or at the console, depending):

someTimeConsumingTask && FvwmCommand 'someFunctionNameOrFvwmCommand'

– Thomas Adam

Thanks!

FvwmCommand 'QuakeTerminal'

Good it works for you. Hence what is your final code you use?
I think that I will remove the auto-rolling up when you start a command. I’d rather have the quake down even if doing net for debuging.