KillModule very slow

Hi,

I’m doing my fvwm conf. It’s working as i expect but it’s very slow. Especially DeThumbnail and KillThumbnail fonction. I suspect KillModule very slow. By what can i replace KillModule ?

My conf:

[code]# BSDManiak’s fvwm2 configuration file

Directorys

SetEnv fvwm_composite “nice -n 0 xcompmgr -cCfF -r 10 -l 1 -t 1”
SetEnv fvwm_home $[HOME]/.fvwm
SetEnv fvwm_menu $[fvwm_home]/menu
SetEnv fvwm_icons $[fvwm_home]/icons
SetEnv fvwm_scripts $[fvwm_home]/scripts
SetEnv fvwm_wallpapers $[fvwm_home]/wallpapers
SetEnv fvwm_tmp /usr/ports/pobj/fvwm
SetEnv localbase /usr/local
SetEnv bindir /bin:/usr/bin:$[localbase]/bin;

ImagePath $[fvwm_icons]:$[fvwm_icons];.png:+

Programs

SetEnv fvwm_webbrowser $[bindir]/konqueror
SetEnv fvwm_term $[bindir]/xterm
SetEnv fvwm_mail $[bindir]/kmail
SetEnv fvwm_media_player $[bindir]/rhythmbox
SetEnv fvwm_video_player $[bindir]/mplayer

Colorset

Colorset 3 RootTransparent, fg white, bg average,
Tint black 60
Colorset 4 fg #4f4f3f, Translucent Black 60, hi White, sh White
Colorset 5 fg White, bg Black
Colorset 6 fg White, Translucent Black 60, hi White, sh White

Virtual Desktops

DesktopSize 3x3
EdgeScroll 100 100
EdgeResistance 500
EdgeThickness 1

Mouse And Focus

MoveThreshold 3
Style * SloppyFocus, MouseFocusClickRaises

Functions For Init, Start, Exit & Restart

DestroyFunc StartFunction
AddToFunc StartFunction

  • I PipeRead ‘rm -rf $[fvwm_tmp] && mkdir -p $[fvwm_tmp] && echo “SetEnv apps 0” && echo “SetEnv margin_left 0”’
  • I Module FvwmEvent
  • I Module FvwmButtons TaskBar

DestroyFunc InitFunction
AddToFunc InitFunction

  • I Exec exec fvwm-root -r $[fvwm_wallpapers]/background.xpm
  • I Exec exec $[fvwm_composite]

DestroyFunc RestartFunction
AddToFunc RestartFunction

  • I Nop

Functions For Windows Bindings

DestroyFunc FvwmDeleteOrDestroy
AddToFunc FvwmDeleteOrDestroy

  • H Nop
  • M Nop
  • C Delete
  • D Destroy

DestroyFunc FvwmIconifyOrShade
AddToFunc FvwmIconifyOrShade

  • C Iconify
  • D WindowShade

DestroyFunc FvwmMaximize
AddToFunc FvwmMaximize

  • H Nop
  • M Nop
  • C Maximize $0 $1

Thumbnails Functions

DestroyFunc UpdateThumbnail
AddToFunc UpdateThumbnail

  • I PipeRead ‘echo “SetEnv apps 0” && i=0; for ls in ls -1 $fvwm_tmp/*.png; do id=echo $ls | sed s%$fvwm_tmp/icon.tmp.%%g | sed s%.png%%g && xwd -silent -id $id | convert -scale 80 -quality 0 xwd:- png:$fvwm_tmp/icon.tmp.$id.png && echo “ReThumbnail $id”; done && echo "SetEnv apps ls $[fvwm_tmp]/icon.tmp.*.png | wc -l"’

DestroyFunc ReThumbnail
AddToFunc ReThumbnail

  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) PipeRead ‘xwd -silent -id $0 | convert -scale 80 -quality 0 xwd:- png:$[fvwm_tmp]/icon.tmp.$0.png && echo “SetEnv apps $(($apps + 1))” && echo “SetEnv margin_left $((($apps - 1) * 98 + 230))”’
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) KillModule FvwmButtons TaskBar$0
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) DestroyModuleConfig TaskBar$0: *
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) Style TaskBar$0 StaysOnTop
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) *TaskBar$0: Colorset 3
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) *TaskBar$0: Columns 88
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) *TaskBar$0: Row 100
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) *TaskBar$0: Geometry 85x85+$[margin_left]+500
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) *TaskBar$0: Frame 0
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) *TaskBar$0: Padding 0 0
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) PipeRead ‘echo "SetEnv title $[fvwm_scripts]/windows_name.sh $0"’
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic)*TaskBar$0: (85x1, Id A, Frame 0, Title $[title], Icon $[fvwm_tmp]/icon.tmp.$0.png)
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) Module FvwmButtons TaskBar$0

DestroyFunc Thumbnail
AddToFunc Thumbnail

  • I ReThumbnail $[w.id]

DestroyFunc DeThumbnail
AddToFunc DeThumbnail

  • I KillThumbnail $[w.id]
  • I UpdateThumbnail

DestroyFunc KillThumbnail
AddToFunc KillThumbnail

  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) PipeRead ‘rm $[fvwm_tmp]/icon.tmp.$0.png && echo “SetEnv apps $(($apps - 1))”’
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) KillModule FvwmButtons TaskBar$0
  • I ThisWindow (!Sticky, !Shaded, Iconifiable, !Iconic) DestroyModuleConfig TaskBar$0: *

DestroyModuleConfig FvwmEvent: *
#*FvwmEvent: raise_window UpdateThumbnail
#*FvwmEvent: lower_window UpdateThumbnail
*FvwmEvent: add_window Thumbnail
#*FvwmEvent: enter_window UpdateThumbnail
#*FvwmEvent: focus_change UpdateThumbnail
#*FvwmEvent: iconify UpdateThumbnail
#*FvwmEvent: deiconify UpdateThumbnail
#*FvwmEvent: dewindowshade UpdateThumbnail
*FvwmEvent: destroy_window DeThumbnail
*FvwmEvent: Delay 0
*FvwmEvent: StartDelay 0

#Module FvwmAuto 6000 UpdateThumbnail “Update Thumbnails”

Menus & Windows Bindings

AddToMenu RootMenu “Root Menu” Title

  •                   "XTerm"         Exec exec xterm
    
  •                   ""              Nop
    
  •                   "Refresh Screen"   Refresh
    
  •                   "Recapture Screen" Recapture
    
  •                   ""              Nop
    
  •                   "Exit Fvwm"  	Quit
    
  •                   "Restart Fvwm"      Restart
    

Mouse 1 R A WindowList Root c c NoDeskSort
Mouse 3 R A Menu RootMenu
Mouse 1 2 A FvwmDeleteOrDestroy
Mouse 1 4 A FvwmMaximize 100 84
Mouse 1 6 A FvwmIconifyOrShade

Menus Style

MenuStyle “" MenuColorset 6
MenuStyle "
” ActiveColorset 4
MenuStyle “" BorderWidth 0
MenuStyle "
” Font “xft:Sans:size=13:antialias=True”
MenuStyle “" PopupDelayed, PopupDelay 300, PopdownImmediately
MenuStyle "
” PopupOffset -5 100, TitleWarpOff
MenuStyle “" SeparatorsLong, TrianglesSolid
MenuStyle "
” PopupAsSubmenu, HoldSubmenus, SubmenusRight
MenuStyle “" ItemFormat “%|%5.5i%1.3l%2.3>%|”
MenuStyle "
” VerticalItemSpacing 1 1, VerticalTitleSpacing 2 2
MenuStyle “" ActiveFore, Hilight3DOff
MenuStyle "
” RoundedCorners

Windows Decors

DestroyDecor WindowsDecors
AddToDecor WindowsDecors

  • TitleStyle LeftJustified Height 32

  • ButtonStyle 2
    ActiveUp (Pixmap $[fvwm_icons]/icon_close_pressed.xpm – Flat)
    ActiveDown (Pixmap $[fvwm_icons]/icon_close_inactive.xpm – Flat)
    Inactive (Pixmap $[fvwm_icons]/icon_close_inactive.xpm – Flat)

  • ButtonStyle 4
    ActiveUp (Pixmap $[fvwm_icons]/icon_maximise_pressed.xpm – Flat)
    ActiveDown (Pixmap $[fvwm_icons]/icon_maximise_inactive.xpm – Flat)
    Inactive (Pixmap $[fvwm_icons]/icon_maximise_inactive.xpm – Flat)

  • ButtonStyle 6
    ActiveUp (Pixmap $[fvwm_icons]/icon_reduce_pressed.xpm – Flat)
    ActiveDown (Pixmap $[fvwm_icons]/icon_reduce_inactive.xpm – Flat)
    Inactive (Pixmap $[fvwm_icons]/icon_reduce_inactive.xpm – Flat)

  • ButtonStyle 2 - Clear

  • ButtonStyle 4 - Clear MwmDecorMin

  • ButtonStyle 6 - Clear MwmDecorMax

  • TitleStyle AllActive MultiPixmap
    Main AdjustedPixmap $[fvwm_icons]/tb_main_active.png

  • TitleStyle AllInactive MultiPixmap
    Main AdjustedPixmap $[fvwm_icons]/tb_main_inactive.png

  • TitleStyle – Flat

  • BorderStyle Simple – NoInset Flat

  • ButtonStyle All – UseTitleStyle

Windows Decors

Style “" UseDecor WindowsDecors
Style "
” Font “xft:sans:bold:size=10:antialias=True”
Style “" BorderWidth 2, HandleWidth 1
Style "
” MWMBorder, FirmBorder
Style “*” RoundedCorners

TaskBar

Style TaskBar* NoTitle, Sticky, WindowListSkip,
CirculateSkipIcon, CirculateSkip, HandleWidth 0, BorderWidth 0,
NeverFocus, Layer 1
Style Taskbar StaysOnTop

DestroyModuleConfig TaskBar: *
*TaskBar: BoxSize fixed
*TaskBar: Colorset 3
*TaskBar: Columns 780
*TaskBar: Row 100
*TaskBar: Geometry 780x100+10+490
*TaskBar: Frame 0
*TaskBar: Padding 0 0
*TaskBar: (102x1, Frame 0, Icon $[fvwm_menu]/start_button.png,
Action(Mouse 1) Menu RootMenu rectangle \ $widthx$height+83+656 o+50 -100m)
*TaskBar: (6x1, Frame 0, Icon $[fvwm_menu]/separator.png)
[/code]

Thanks :slight_smile:

No, don’t mislead people.

The slowness is your use of PipeRead which blocks FVWM until it completes.

– Thomas Adam

Check out this.
http://www.fvwmforums.org/phpBB3/viewtopic.php?f=38&t=190&p=3310&hilit=Efficient+Thumbnailing#p3310