# ***************************************************************************** # Name: FvwmTaskBar-plugins.patch.README # Athr: Michael D. Beynon (mdb) - beynon@acm.org # Date: 07/21/1997 : mdb - Created. # 08/12/1997 : mdb - Added several config options per suggestions. # 09/18/1997 : mdb - Fixed memory overwrite problem with mail format. # 01/15/1998 : mdb - Added nodl option for those having problems. # 10/01/1998 : mdb - Small change requested by Vladimir Litovka # to have the original text # popups work automatically like the headers do. # I built on his changes to the code. # Desc: Mods to FvwmTaskBar with plugins. # http://www.cs.umd.edu/~beynon/fvwm95.html # ftp://mitac11.uia.ac.be/pub/FvwmTaskBar-with-plugins-970416.tgz # was used as the basis. # ***************************************************************************** Note: I am no longer supplying patches, since this is a patch to my last patch. I also am aware of several people who have made changes themselves. Providing the full directory makes the most sense. I am assuming you rename the FvwmTaskBar that comes with fvwm95-2.0.43a to be something like FvwmTaskBar.orig, and put the taskbar with plugins in its place. Now run make distclean, configure and build as you normally would, from the top level of the fvwm95 source tree. Be sure to do the distclean, since the changes I made to Makefile.in will only be seen if the Makefiles are re-created. Neglecting this will most likely cause compile time errors about FVWM_ICONDIR, which I added to the Makefile. Check the Makefile created. It is by default setup for my environment, which is Solaris 2.5. Dynamic linking is different on many platforms, so uncomment the Linux region, and comment the Solaris region in the Makefile if needed. If you already have a plugins version of the taskbar compiling for your system, you can probably just put all the modified *.{c,h} files and in your directory and compile. Alternatively, you can use the "nodl" target of the Makefile to try compiling a static version, where the modules are compiled and linked into the taskbar at compile-link time. This can be used as a last resort for those that have linking problems for a given platform I could not test on. This is also helpful in debugging! % cd modules/FvwmTaskBar % make nodl % make install Bugs in FvwmTaskBar: I also fixed a couple small existing bugs in the task bar. The checking for .fvwm95rc options was not correct for anything starting with Auto, due to an incorrect length when checking for "AutoHide". LoopOnEvents made the assumption that all the X Event structures had a time field in the same place. Since this is obviously wrong, I made a change to fix this. The list of buttons used in ButtonArray.{c,h} does not include the id of the window. It seems, iconized and sticky windows were in the windows list and also fvwm messages caused them to be added twice. I tried to hack a quick fix, but it needs to be done like FvwmWinList current code does. Also, I ran gcc with -Wall, and this revealed many unused variables, so I went through and cleaned all this up. I made a simple fix to the bug reported to the fvwm95 mailing list by Christian Worley . The problem was an inconsistency between the module load fcn declarations and how it was called. My Changes to FvwmTaskBar: I have made some changes FvwmTaskBar (and the plugins) to optionally see new unread mail on the taskbar. See the man page for FvwmTaskBar for more details. I modified the Tip window to be able to handle multiple lines. Then I used this to show entries from the users mail spool file. The location of this file is the same as for the mail fcn the taskbar had before. I also made a mod to allow an arbitrary command to be run on the hour. I use this to play sounds indicating that another hour of my life has slipped away. :^) Note that I needed to change the interface for a GoodyModule to include the loadable module's integer id in the init call. This allows me to decide if the AutoMailTip window is still open when the mail file becomes empty, and the tip needs to be removed. All provided goody modules have been changed. There is a small problem with the AutoMailTips as it stands now. If the screen is xlock'ed when the mail tip is displayed, it seems to "fight" with xlock for control. This shows my lack of knowledge in programming X, but I think it has to do with responding to the unmap call from xlock. This is not fatal, and is acutally a nice way to see if I have mail w/o unlocking the screen. (Yeah, I know I am just trying to justify it to myself) There was also a problem with FvwmTaskBar needing a line in ~/.fvwm95rc to find the icon files (specifically for the start menu). I changed the Makefile to pass the default FVWM_ICONDIR as it does for fvwm. (I also changed all the Makefiles to support installing not in /usr/lib/... since I don't have root access where I am -- these changes are not in any diffs) Now icons do not have to be fully qualified pathnames, and can just use the same icon directory as every other part of fvwm. Sample .fvwm95rc: (See the man page for descriptions of these new options.) # .fvwm95rc taskbar section - this is an excerpt from my init # file to illustrate how to use my changes. # TaskBar module Style "FvwmTaskBar" NoTitle,BorderWidth 4,HandleWidth 4,Sticky,StaysOnTop,Circul ateSkip,ClickToFocus,Icon *FvwmTaskBarDeskOnly *FvwmTaskBarUseSkipList #*FvwmTaskBarUseIconNames *FvwmTaskBarGeometry +0-0 *FvwmTaskBarFore Black *FvwmTaskBarBack #c0c0c0 *FvwmTaskBarTipsFore black *FvwmTaskBarTipsBack bisque *FvwmTaskBarFont -adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-* *FvwmTaskBarSelFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-*-* *FvwmTaskBarAction Click1 Iconify -1,Raise,Focus *FvwmTaskBarAction Click2 Iconify *FvwmTaskBarAction Click3 Module "FvwmIdent" FvwmIdent *FvwmTaskBarAutoStick *FvwmTaskBarStartName Start *FvwmTaskBarStartMenu menuStart *FvwmTaskBarStartIcon mini-startmenu.xpm *FvwmTaskBarShowTips #*FvwmTaskBarMaxTipLines 30 #*FvwmTaskBarShowTransients #*FvwmTaskBarHighlightFocus #*FvwmTaskBarAutoHide *FvwmTaskBarGoodyLoadableQuiet #*FvwmTaskBarGoodyLoadablePlugins /fs/unsupported/fvwm95-2.0.43a/lib/solaris-tes t #------------------------------------------------------------------- # Core dump # *FvwmTaskBarGoodyLoadableSymbol CheckLockModuleSymbol *FvwmTaskBarGoodyLoadableId .CORE *FvwmTaskBarCheckLockModuleIcon.CORE mini-bomb.xpm *FvwmTaskBarCheckLockModuleTip.CORE Core Dump #*FvwmTaskBarCheckLockModuleCommand.CORE Popup menuApplications *FvwmTaskBarCheckLockModuleLockFile.CORE $HOME/core #------------------------------------------------------------------- # Sound Control # *FvwmTaskBarGoodyLoadableSymbol GoodyModuleSymbol *FvwmTaskBarGoodyLoadableId .SPEAKER *FvwmTaskBarGoodyModuleIcon.SPEAKER mini-speaker.xpm *FvwmTaskBarGoodyModuleTip.SPEAKER Audio Control Panel *FvwmTaskBarGoodyModuleCommand.SPEAKER Exec /usr/demo/SOUND/bin/gaintool -Wp 845 738 #------------------------------------------------------------------- # Date Control # *FvwmTaskBarGoodyLoadableSymbol ShowDateModuleSymbol *FvwmTaskBarGoodyLoadableId .DATE *FvwmTaskBarShowDateModuleTip.DATE Date *FvwmTaskBarShowDateModuleCommand.DATE Function fcnFindOrRun "Calendar" Exec ical & *FvwmTaskBarShowDateModuleClockFormat.DATE %m/%d %I:%M%p *FvwmTaskBarShowDateModuleHourlyCommand.DATE Exec play /usr/demo/SOUND/sounds/cuckoo.au #------------------------------------------------------------------- # MailCheck Control # *FvwmTaskBarGoodyLoadableSymbol MailCheckModuleSymbol *FvwmTaskBarGoodyLoadableId .MAIL *FvwmTaskBarMailCheckModuleMailIcon.MAIL mini-mail.xpm *FvwmTaskBarMailCheckModuleCommand.MAIL Exec xterm -T Mail -e XtermReadMail.csh *FvwmTaskBarMailCheckModuleNewMailIcon.MAIL mini-newmail.xpm *FvwmTaskBarMailCheckModuleNewMailCommand.MAIL Exec play /usr/demo/SOUND/sounds/doorbell.au *FvwmTaskBarMailCheckModuleUnreadMailIcon.MAIL mini-unreadmail.xpm *FvwmTaskBarMailCheckModuleMailFile.MAIL /var/spool/mail/$USER *FvwmTaskBarMailCheckModuleAutoMailTip.MAIL *FvwmTaskBarMailCheckModuleMailTipUnblankScreen.MAIL #*FvwmTaskBarMailCheckModuleMailTipFormat.MAIL 1 0 20 2 30 # *****************************************************************************