Easiest Thumnails Ever!

False alarm, emerging it all a second time made the errors disappear :slight_smile:

NickFortune (or anyone else who knows),
Could you explain what the Factor option does exactly?

*FvwmThumbnail: Class Icons, Factor 0.2x0.2

Sure - the factor scales the image by the two facors given

So if you specify 0.5x0.25 then the image will be scaled to half size in the X axis and one-quarter size in the Y axis.

It’s an alternative to the ScaleTo option. Sometimes its useful to scale proportional to a box size, other times it’s easier to say “just make it half size”

Thanks! And sorry to be such a pain :slight_smile:

I am getting closer…I think I finally got the Bigpager working but I am not getting the Thumbnail generation from FvwmThumbnail. I am sure that I have something configured incorrectly.

Assuming fvwm logs to ~/.xsession-errors – checking that would be useful.

– Thomas Adam

Post your module configuration if you like. I’ll see if I can spot anything

I apoligize in advance if this turns out to be a long post. It concerns both FvwmThumbnail and FvwmBigpager. Configs I stole from you.

[code]#

Stays on top, cause I don’t want screen clutter on top of it

WindowSkipList so I can stop it showing itself and blotting out the rest of

that window

Style FvwmBigPager WindowListSkip, StaysOnTop

adjust for local colorsets and screen size

DestroyModuleConfig FvwmPager: FvwmBigPager
*FvwmBigPager: Geometry 1020x768+0+0
*FvwmBigPager: UseSkipList
*FvwmBigPager: Rows 2
*FvwmBigPager: Colorset 0 $[cset_wall_1]
*FvwmBigPager: Colorset 1 $[cset_wall_2]
*FvwmBigPager: Colorset 2 $[cset_wall_3]
*FvwmBigPager: Colorset 3 $[cset_wall_4]
*FvwmBigPager: Font none
*FvwmBigPager: NoSeparators # turn off the lines separating desks
*FvwmBigPager: MiniIcons
[/code]

[code]*FvwmThumbnail: Mode Manual
*FvwmThumbnail: Refresh 0
*FvwmThumbnail: Directory $[FVWM_USERDIR]/fvwm_thumbs

*FvwmThumbnail: Class Icons, Factor 0.25x0.25
*FvwmThumbnail: Class Icons, Command “WindowId %w WindowStyle IconOverride, Icon %i”

*FvwmThumbnail: Class Pager, ScaleTo 64x64
*FvwmThumbnail: Class Pager, Command “WindowId %w WindowStyle EWMHMiniIconOverride, MiniIcon %i”
*FvwmThumbnail: GenerateOn raise_window
*FvwmThumbnail: DeleteOn destroy_window windowshade iconify

#Mouse 1 6 A ThisWindow SendToModule FvwmThumbnail Thumbnail $[w.id]
Key F9 A 4 ThisWindow SendToModule FvwmThumbnail Thumbnail $[w.id]
[/code]

Last code: [code]ImagePath $HOME/Icons:+:$HOME/.fvwm/images:+:/usr/share/icons:+
#ImagePath /usr/share/wallpaper:+
ModulePath /usr/lib/fvwm/2.5.12

#Global Settings
EdgeScroll 0 1
EdgeResistance 10000 100000
OpaqueMoveSize -5
DeskTopSize 1x1
IgnoreModifiers L25
EwmhBaseStruts 10 18 10 28

SetEnv fvwm_icon_size 128
SetEnv cset_wall_1 26
SetEnv cset_wall_2 27
SetEnv cset_wall_3 28
SetEnv cset_wall_4 29

Colorset 25 fg white, Translucent #a00b0f 75 #a red colorset–also my favorite
Colorset $[cset_wall_1] Pixmap /home/catherine/Backgrounds/pomarble.png
Colorset $[cset_wall_2] Pixmap /home/catherine/Backgrounds/vs7.png
Colorset $[cset_wall_3] Pixmap /home/catherine/Backgrounds/red.png
Colorset $[cset_wall_4] Pixmap /home/catherine/Backgrounds/spins.png

Read “/home/catherine/menu-config2”
Read “/home/catherine/.fvwm/Decors/manufactured-decor”
Read “/home/catherine/.fvwm/menustyle”
Read “/home/catherine/.fvwm/colorset”
Read “/home/catherine/.fvwm/FvwmBigpager”
Read “/home/catherine/.fvwm/FvwmThumbnail”

DestroyFunc StartFunction
AddToFunc StartFunction

  • I Exec exec hsetroot -center $HOME/Backgrounds/spins.jpg
  • I Exec exec xlaunch -d
  • I Module FvwmEvent
  • I Module FvwmThumbnail[/code]

so that is what I have so far.

Now, in the FvwmThumbnail config I have F9+ Windows Key that invokes an icon for any window that I am using. Which is okay when using WinList but it changes my Titlebar mini icon and I don’t like that. So I suppose that would be easy to change via FvwmThumbnail config…just didn’t get that far.

But here is what my pager looks like:

On the first desktop is defined a pixmap but it get covered up or something and then there is just the ugly light blue something with the gray outlines of windows. Not at all like some of the screen shots. I hope I am making some sort of sense.

That looks good. Try the NoDeskHilight option for the big pager. I remember having to turn that off. On the other hand, it’s not in the test file for this module (the one I posted) and it still works on my machine. I suppose it must be something from my main config.

See if the NoDeskHilight sorts it out. If not I’ll have a rethink.

Be sure to have your “last code” -part in the beginning of config file. I think at least the imagepath definition needs to be at the beginning, maybe colorset definitions too. With some things, the order counts.

forgot to mention. About the title bar miniicon: that’s going to happen, sadly. So far as I know, there’s no way to make the pager, windowlist, and the iconmanager all use different minicion sets.

That’s one reason for the Apply command. you can switch to a different icon or mini-icon set for specific purposes, such as the big pager. What I haven’t done is a way to reset them afterwards.

One way would be to use FvwmEvent to catch the big pager closing and set it back to a more manageable set of thumbs. If you use non-thumbnail miniicons you’d need to destroy the windowstyle to restore the override. I’ve not really tried or tested that side of things, but it should work.

I keep debating whether to incorporate some sort of generic “on event do” functionality into the module, just for things like this, but I don’t really want to end up duplicating FvwmEvent. On the otherhand needing to run a separate module for such a small part of the configuration is also a bit daft.

Maybe, but then FvwmEvent does exist to do just that - why reinvent the wheel? One advantage of using FvwmEvent is that it’s an extension into your module, rather than a subset of it, should you chose to write your own implementation of it.

– Thomas Adam

I do have that in my first part of my config in fact they are the very first lines…I just thru those in at the last minute

Well, yeah. It makes sense to catch big pagers closing. It doesn’t make sense to reimplement FvwmEvent. The question becomes to what extent should I generalise?

:slight_smile: That depends. I’d prefer the term delegate as it is really all about assigning responsibility out. There may well be a valid reason to implement some or part of a given functionality internally to your module. I’d say that if a given module can do something, then allow it to do so.

It’s the same with programming in many ways – after all, that’s why we have Inheritence, for code-reuse (and for the reason that we, as programmers, are all lazy. :slight_smile:)

– Thomas Adam

Ah yes, but is it not the essence of good software design to make the interface simple and hide the complexity it the code? :slight_smile:

I think the thing to do is allow actions on the close of named windows, since there is a specific use for that. For the rest, I’ll wait and see if a need arises.

No – information hiding should do that for you. If it is complex code, it has probably been designed incorrectly. :slight_smile:

– Thomas Adam

The point I’m trying to make is that given a choice between a simple implementation simple which is hard work for the user and a more difficult implementation which makes life simple for the user, the good designer all other factors being equal, will always the design that favours the user at the expense of the implementor.

There are such things as complex problems. Information hiding and ecapsulation can hide complexity at a local level. They can manage complexity, often very well, but the problem nevertheless remains complex. A full solution to the problem must perforce reflect this complexity. To do otherwise is to foist part of the problem off on the user, which defeats the point of the software.

We do the hard work so our users don’t have to.

Another dilema and I think I will leave this thing alone.

I am getting weird errors…I should say something I don’t know how to fix. I have FvwmThumbnail starting when fvwm starts/loads (whatever)

Unrecognised: GenerateOn raise_window Unrecognised: DeleteOn destroy_window windowshade iconify Config END storing icons in /home/catherine/.fvwm/fvwm_thumbs refresh time = 0 cmd = xwd -silent -id 6291729 | Class Pager, ScaleClass=ARRAY(0x83d1454): Use of uninitialized value in division (/) at /usr/lib/fvwm/2.5.12/FvwmThumbnail line 235. Illegal division by zero at /usr/lib/fvwm/2.5.12/FvwmThumbnail line 235. DESTROY created new reference to dead object 'FVWM::Module' during global destruction

However, when I restart Fvwm, my mini thumbnail icons show up in the titlebar and windowlist

mode: auto refresh time: 0 using /home/catherine/.fvwm/fvwm_thumbs Unrecognised: GenerateOn raise_window Unrecognised: DeleteOn destroy_window windowshade iconify Config END storing icons in /home/catherine/.fvwm/fvwm_thumbs refresh time = 0 cmd = xwd -silent -id 12583091 | Class Pager, ScaleClass=ARRAY(0x83d42fc): Class FvwmBigpager, ScaleClass=ARRAY(0x83d4374): Class Icons, ScaleClass=ARRAY(0x83e1b10): cmd = xwd -silent -id 6291729 | Class Pager, ScaleClass=ARRAY(0x83d42fc)

Also, how do I get the thumbnails in my Bigpager? And is it possible for the windows to iconify like this with FvwmThumbnail. Sorry if I am not understanding

I posted my FvwmThumbnail config before but for convience sake here it is: [code]*FvwmThumbnail: Mode Auto
*FvwmThumbnail: Refresh 0
*FvwmThumbnail: Directory $[FVWM_USERDIR]/fvwm_thumbs

*FvwmThumbnail: Class Icons, Factor 0.25x0.25
*FvwmThumbnail: Class Icons, Command “WindowId %w WindowStyle IconOverride, Icon %i”
*FvwmThumbnail: Class Pager, ScaleTo 64x64
*FvwmThumbnail: Class Pager, Command “WindowId %w WindowStyle EWMHMiniIconOverride, MiniIcon %i”

*FvwmThumbnail: Class FvwmBigpager, ScaleTo 64x64
*FvwmThumbnail: Class FvwmBigpager, Command “WindowId %w WindowStyle EWMHMiniIconOverride, MiniIcon %i”
*FvwmThumbnail: GenerateOn raise_window
*FvwmThumbnail: DeleteOn destroy_window windowshade iconify

#Mouse 1 6 A ThisWindow SendToModule FvwmThumbnail Thumbnail $[w.id]
Key F9 A 4 ThisWindow SendToModule FvwmThumbnail Thumbnail $[w.id]
[/code]

Unrecognised: GenerateOn raise_window Unrecognised: DeleteOn destroy_window windowshade iconify

That looks like a old version of the module. Let me just check I uploaded the proper one. Talk amongst yourselves for a moment…

[ soothing music ]

Whoops - my bad! :blush:

Updated version here

A lot of the rest of that is debugging chatter which should be turned off in this version.

Oh Thank Goodness! I am not going totally crazy. Only mildly iinsane. I will have to check this when I get back.