Re: FVWM: How to compile fvwm with stroke support

From: Alvin Chin <achin_at_cs.toronto.edu>
Date: Tue, 18 May 2004 16:31:12 -0400

Thanks Thomas, I can't seem to get the strokes to work from my fvwm2rc
file. Is there a sample file that includes strokes? This is what I
have in fvwm2rc file but this doesn't seem to work for strokes. It just
does standard right click showing the menus.

It's attached below under the section for mouse strokes:

# Unfortunately, order does matter in this file
# The correct order for inserting configurations is:
# 1. Colors
# 2. Assorted configuration paramters such as ClickToFocus, or
MWMBorders
# 3. Path setup (ModulePath, PixmapPath, IconPath)
# 4. Style settings, including the default style Style "*" ...
# 5. InitFunction and ResetFunction definitions.
# 6. Other Functions. Functions cannot be forward referenced from
# other functions, but they can be backward referenced.
# 7. Menus definitions. Same caveats about forward referencing
# 8. Key and Mouse Bindings.
# 9. Module options.

# The order of steps 5, 6, and 7 is not critical, as long as there are
# no forward references to functions or menus.

# If you get it wrong, the most common problem is that color or font
settings
# are ignored

###########################################################################
# set up the colors
#
# OK some people like bright clear colors on their window decorations.
# These people, I guess would mostly be from nice sunny/good weather
places
# line California.
#
# StdForeColor Black
# StdBackColor LightSkyBlue
# HiForeColor yellow
# HiBackColor PeachPuff1
# PagerBackColor BlanchedAlmond

# Me, I'm from Upstate New York, and live in New Hampshire, so I prefer
# these dark muddy colors...

#StdForeColor Wheat
StdForeColor White
StdBackColor DimGrey

# this is used for the selected window
##HiForeColor Wheat
HiForeColor Black
##HiBackColor SlateBlue4
HiBackColor White

#PagerBackColor #5c54c0
#PagerForeColor orchid

StickyForeColor Black
# pager colors which we don't use or have:
StickyBackColor #60c0a0

# Menu colors
MenuForeColor White
MenuBackColor DimGrey
MenuStippleColor SlateGrey

############################################################################
# Now the fonts - one for menus, another for window titles, another for
icons
Font lucidasanstypewriter-12
WindowFont lucidasanstypewriter-12
IconFont lucidasanstypewriter-12

###########################################################################
# Set up the major operating modes
#
######################## FOCUS STUFF
##############################
# Set windows to auto-raise after 750 milliseconds if you like it.
# Autoraise can sometimes obscure pop-up windows. Performance is now
# similar to olvwm's auto-raise feature.
#AutoRaise 750

# Normally, we'll be in focus-follows mouse mode, but uncomment this
# for mwm-style click-to-focus
#ClickToFocus

######################## ICON STUFF
##############################
# Auto Place Icons is a nice feature....
# This creates two icon boxes, one on the left side, then one on the
# bottom. Leaves room in the upper left for my clock and xbiff,
# room on the bottom for the Pager.
IconBox -70 1 -1 -140

# If you uncomment this, and make sure that the WindowList is bound to
# something, it works pretty much like an icon manager.
#SuppressIcons

# StubbornIcons makes icons de-iconify into their original position on
the
# desktop, instead of on the current page.
#StubbornIcons

# With AutoPlacement, icons will normally place themselves underneath
active
# windows. This option changes that.
#StubbornIconPlacement

# If you want ALL you icons to follow you around the desktop (Sticky),
try
# this
#StickyIcons

######################## MWM EMULATION #######################
#
# My feeling is that everyone should use MWMDecorHints and
MWMFunctionHints,
# since some applications depend on having the window manager respect
them

# MWMFunction hints parses the function information in the
MOTIF_WM_HINTS
# property, and prohibits use of these functions on the window.
Appropriate
# portions of the window decorations are removed.
MWMFunctionHints

# MWM is kinda picky about what can be done to transients, and it was
keeping
# me from iconifying some windows that I like to iconify, so here's an
# over-ride that will allow me to do the operation, even tough the menu
# item is shaded out.
MWMHintOverride

# MWMDecor hints parses the decoration information in the MOTIF_WM_HINTS
# property, and removes these decoratons from the window. This does not
affect
# the functions that can be performed via the menus.
MWMDecorHints

# These are affect minor aspects for the look-and-feel.
# Sub-menus placement mwm-style?
# MWMMenus
# mwm-style border reliefs (less deep than default fvwm) ?
# MWMBorders
# Maximize button does mwm-inversion thingy
# MWMButtons
######################## MISCELLANEOUS STUFF
#######################
# If you don't like the default 150 msec click delay for the complex
functions
# change this and uncomment it.
# ClickTime 150
EdgeResistance 10000 100000


######################## WINDOW PLACEMENT
#######################
# RandomPlacement prevents user interaction while placing windows:
RandomPlacement

# SmartPlacement makes new windows pop-up in blank regions of screen
# if possible, or falls back to random or interactive placement.
# SmartPlacement

# With SmartPlacement, windows will normally place themselves over
icons.
# Uncomment this to change that.
#StubbornPlacement

# NoPPosition instructs fvwm to ignore the PPosition field in window
# geometry hints. Emacs annoyingly sets PPosition to (0,0)!
# NoPPosition

Lenience
######################## DECORATIONS #######################
# If you want decorated transient windows, uncomment this:
#DecorateTransients


###########################################################################
# Set up the virtual desktop and pager
DeskTopSize 1x1

##########################################################################
# Module path and paths to the icons
#
# ModulePath is a colon-separated list, just like regular unix PATH
#ModulePath /usr/lib/X11/fvwm/
ModulePath <X_LIBRARIES>/X11/fvwm/
#PixmapPath /usr/X11R6/include/X11/pixmaps/
PixmapPath
<X_INCLUDES>/X11/pixmaps/:/usr/share/icons/:/usr/share/icons/mini/
#IconPath /usr/X11R6/include/X11/pixmaps/
IconPath
<X_INCLUDES>/X11/bitmaps/:/usr/share/icons/:/usr/share/icons/mini/

############################################################################
# Set the decoration styles and window options
# Order is important!!!!
# If compatible styles are set for a single window in multiple Style
# commands, then the styles are ORed together. If conflicting styles
# are set, the last one specified is used.

# These commands should command before any menus or functions are
defined,
# and before the internal pager is started.

# change the default width.
Style "*" BorderWidth 3, HandleWidth 3, Icon unknown1.xpm

# Style "Fvwm*" NoTitle, NoHandles, Sticky, WindowListSkip,
BorderWidth 0
# Style "Fvwm Pager" StaysOnTop
# Style "FvwmPager" StaysOnTop
# Style "FvwmBanner" StaysOnTop
Style "Current frames" NoTitle, WindowListHit, CirculateHit
Style "oclock" NoTitle, WindowListHit, CirculateHit
Style "xclock" NoTitle, WindowListHit, CirculateHit
Style "gzilla" NoTitle, NoHandles, BorderWidth 0
Style "xcaplive" NoTitle, NoHandles, BorderWidth 0
Style "rxvt" Icon term.xpm
Style "xterm" Icon xterm.xpm
Style "Console" Icon xterm.xpm
Style "xterm_color" Icon xterm.xpm
Style "Appointment" Icon datebook.xpm, NoButton 2, NoButton 4
Style "xcalc" Icon xcalc.xpm, NoButton 2
Style "xbiff" Icon mail1.xpm, NoButton 2, NoTitle, NoHandles,
BorderWidth 0
Style "xman" Icon xman.xpm
Style "xvgr" Icon graphs.xpm
Style "matlab" Icon math4.xpm
Style "xmag" Icon mag_glass.xpm
Style "xgraph" Icon graphs.xpm
Style "GoodStuff" Icon toolbox.xpm

# Change the Maximize and iconify buttons to up and down triangles.

#ButtonStyle : 2 4 50x35_at_1 65x65_at_0 35x65_at_0 50x35_at_1
#ButtonStyle : 4 4 50x65_at_1 35x35_at_1 65x35_at_1 50x65_at_0

ButtonStyle 2 20x20
ButtonStyle 4 50x50

#############################################################################

# Stuff to do at start-up

Function "InitFunction"
        Exec "I" xsetroot -solid black
        Desk "I" 0 0
EndFunction

Function "RestartFunction"
        Exec "I" xsetroot -solid black
EndFunction


############################################################################
# Now define some handy complex functions

# This one moves and then raises the window if you drag the mouse,
# only raises the window if you click, or does a RaiseLower if you
double
# click
Function "Move-or-Raise"
        Move "Motion"
        Raise "Click"
EndFunction

# This one maximizes vertically if you click (leaving room for the
GoodStuff bar at the
# bottom, or does a full maximization if you double click, or a true
full vertical
# maximization if you just hold the mouse button down.
Function "maximize_func"
        Maximize "Motion" 0 100
        Maximize "Click" 0 80
        Maximize "DoubleClick" 100 100
EndFunction


# This one moves and then lowers the window if you drag the mouse,
# only lowers the window if you click, or does a RaiseLower if you
double
# click
Function "Move-or-Lower"
        Move "Motion"
        Lower "Motion"
        Lower "Click"
        RaiseLower "DoubleClick"
EndFunction

# This one moves or (de)iconifies:
Function "Move-or-Iconify"
        Move "Motion"
        Iconify "Click"
EndFunction

# This one resizes and then raises the window if you drag the mouse,
# only raises the window if you click, or does a RaiseLower if you
double
# click
Function "Resize-or-Raise"
        Resize "Motion"
        Raise "Motion"
        Raise "Click"
        RaiseLower "DoubleClick"
EndFunction


# This is provided as a hint only.
# Move to a known page on the desktop, then start an application in a
# known location. Could also switch to a known desktop, I guess
#Function "abs_coord"
# GoToPage "Immediate" 1,1
# Exec "Immediate" exec xcalc -geometry +100+100&
#EndFunction


##############################################################################
#now define the menus - defer bindings until later

# This menu is invoked as a sub-menu - it allows you to quit,
# restart, or switch to another WM.
Popup "Quit-Verify"
        Title "Really Quit Fvwm?"
        Quit "Yes, Really Quit"
        Restart "Restart Fvwm" fvwm
        Restart "Start twm" twm
        Restart "Start tvtwm" tvtwm
        Restart "Start mwm" mwm
        Restart "Start olwm" /usr/openwin/bin/olwm
        Nop ""
        Nop "No, Don't Quit"
EndPopup

# Provides a list of modules to fire off
Popup "Module-Popup"
        Title "Modules"
        Module "GoodStuff" GoodStuff
        Module "Clean-Up" FvwmClean
        Module "Identify" FvwmIdent
        Module "SaveDesktop" FvwmSave
        Module "Debug" FvwmDebug
        Module "Pager" FvwmPager 0 0
        Module "FvwmWinList" FvwmWinList
EndPopup

Popup "Apps"
        Exec "Netscape" exec netscape &
        Exec "Mosaic" exec Mosaic &
        Exec "Arena" exec arena &
        Nop ""
        Exec "slrn" exec xterm -e slrn &
        Exec "exmh" exec exmh &
        Exec "Pine" exec xterm -e pine &
        Exec "Elm" exec xterm -e elm &
        Nop ""
        Exec "TkMan" exec tkman &
        Exec "TkInfo" exec tkinfo &
        Exec "Emacs" exec emacs &
        Exec "Emacs nox" exec xterm -e emacs-nox &
        Exec "Jed" exec xterm -e jed &
        Nop ""
        Exec "X File Manager" exec xfm &
        Exec "xpaint" exec xpaint &
        Exec "xfig" exec xfig &
# Why doesn't this work?
# Exec "ImageMagick" exec display &
        Exec "xv" exec xv &
        Nop ""
        Exec "wish" exec xterm -e wish &
        Exec "Python" exec xterm -e python &
EndPopup

Popup "Games"
        Exec "Hextris" exec cxhextris &
        Exec "xbill" exec xbill &
        Exec "Chess" exec xboard &
        Exec "xchomp" exec xchomp &
        Exec "Minesweeper" exec xdemineur &
        Exec "Backgammon" exec xgammon &
        Exec "xjewel" exec xjewel &
        Exec "xlander" exec xlander &
        Exec "xsnow" exec xsnow &
        Exec "Tetris" exec xtetris &
        Exec "Trojka" exec xtrojka &
EndPopup

Popup "Utils"
        Exec "Top" exec xterm -T Top -n Top -e top &
        Exec "Calculator" exec xcalc &
        Exec "Xman" exec xman &
        Exec "Xmag" exec xmag &
        Exec "xosview" exec xosview &
EndPopup

# This menu will fire up some very common utilities
Popup "Utilities"
        Title "Program Menu"
        Exec "Xterm" exec xterm -e bash &
        Exec "Rxvt" exec rxvt -bg Black -fg Wheat &
        Exec "Color Xterm" exec xterm-color &
        Nop ""
        Exec "Control Panel" exec control-panel &
        Exec "Glint" exec glint &
        Nop ""
        Popup "Applications" Apps
        Popup "Games" Games
        Popup "Utilities" Utils
        Popup "Modules" Module-Popup
        Nop ""
        Restart "Restart Fvwm" fvwm
        Popup "Exit Fvwm" Quit-Verify
EndPopup

# This defines the most common window operations
Popup "Window Ops"
        Title "Window Ops"
        Function "Move" Move-or-Raise
        Function "Resize" Resize-or-Raise
        Raise "Raise"
        Lower "Lower"
        Iconify "(De)Iconify"
        Stick "(Un)Stick"
        Function "(Un)Maximize" maximize_func
        Nop ""
        Destroy "Destroy"
        Close "Close"
        Nop ""
        Refresh "Refresh Screen"
EndPopup

# A trimmed down version of "Window Ops", good for binding to
decorations
Popup "Window Ops2"
        Function "Move" Move-or-Raise
        Function "Resize" Resize-or-Raise
        Raise "Raise"
        Lower "Lower"
        Iconify "Iconify"
        Stick "(Un)Stick"
        Nop ""
        Destroy "Destroy"
        Close "Close"
        Nop ""
# Module "ScrollBar" FvwmScroll 2 2
# 2 2 is halfsize with scrollbars that move around
        Module "ScrollBar" FvwmScroll 1 1
EndPopup

#############################################################################
# One more complex function - couldn't be defined earlier because it
used
# pop-up menus
#
# This creates a motif-ish sticky menu for the title-bar window-ops
# pop-up
# Menu acts like normal twm menu if you just hold the button down,
# but if you click instead, the menu stays up, motif style
Function "window_ops_func"
        PopUp "Click" Window Ops2
        PopUp "Motion" Window Ops2
# Motif would add:
# I'll add it too, it can be mighty handy.
        Close "DoubleClick"
EndFunction


##############################################################################
# This defines the mouse bindings

# First, for the mouse in the root window
# Button 1 gives the Utilities menu
# Button 2 gives the Window Ops menu
# Button 3 gives the WindowList (like TwmWindows)
# I use the AnyModifier (A) option for the modifier field, so you can
hold down
# any shift-control-whatever combination you want!

# Button Context Modifi Function
Mouse 1 R A PopUp "Utilities"
Mouse 2 R A PopUp "Window Ops"
Mouse 3 R A Module "winlist" FvwmWinList transient



# Now the title bar buttons
# Any button in the left title-bar button gives the window ops menu
# Any button in the right title-bar button Iconifies the window
# Any button in the rightmost title-bar button maximizes
# Note the use of "Mouse 0" for AnyButton.

# Button Context Modifi Function
#Mouse 0 1 A Function "window_ops_func"
#Mouse 0 2 A Function "maximize_func"
#Mouse 0 4 A Iconify
Mouse 0 1 A Function "window_ops_func"
Mouse 1 2 A Iconify
Mouse 3 2 A Destroy
Mouse 1 4 A Maximize 0 100
Mouse 3 4 A Maximize 100 100

# Now the rest of the frame
# Here I invoke my complex functions for Move-or-lower, Move-or-raise,
# and Resize-or-Raise.
# Button 1 in the corner pieces, with any modifiers, gives resize or
raise
#Mouse 1 F A Function "Resize-or-Raise"
Mouse 1 FS A Resize
# Button 1 in the title, sides, or icon, w/ any modifiers, gives move or
raise
#Mouse 1 TS A Function "Move-or-Raise"
Mouse 1 T A Function "Move-or-Raise"

# Button 1 in an icons gives move for a drag, de-iconify for a
double-click,
# nothing for a single click
# Button 2 in an icon, w/ any modifiers, gives de-iconify

Mouse 1 I A Function "Move-or-Iconify"
Mouse 2 I A Iconify

# Button 2 in the corners, sides, or title-bar gives the window ops menu
Mouse 2 FST A Function "window_ops_func"
# Button 3 anywhere in the decoration (except the title-bar buttons)
# does a raise-lower
Mouse 3 TSIF A RaiseLower

# Button 3 in the window, with the Modifier-1 key (usually alt or
diamond)
# gives Raise-Lower. Used to use control here, but that interferes with
xterm
#Mouse 3 W M RaiseLower
Mouse 1 W M RaiseLower
Mouse 2 W M Move
Mouse 3 W M Resize

# Do mouse strokes
Mouse 3 R N
# use stroke "sequence 0" to simulate a click
Stroke 0 3 R N Menu WindowsList Nop
# start xterm when mouse ddrags an "I" on root window with button 3
pressed down
Stroke 258 3 R N Exec exec xterm

# Example for Netscape
Stroke 7415963 3 R N Exec exec netscape
Stroke 74148963 3 R N Exec exec netscape
Stroke 74158963 3 R N Exec exec netscape
Stroke 7418963 3 R N Exec exec netscape
Stroke 415963 3 R N Exec exec netscape



############################################################################
# Now some keyboard shortcuts.

# Arrow Keys
# press arrow + control anywhere, and scroll by 1 page
#Key Left A C Scroll -100 0
#Key Right A C Scroll +100 +0
#Key Up A C Scroll +0 -100
#Key Down A C Scroll +0 +100

# press arrow + meta key, and scroll by 1/10 of a page
#Key Left A M Scroll -10 +0
#Key Right A M Scroll +10 +0
#Key Up A M Scroll +0 -10
#Key Down A M Scroll +0 +10

# press shift arrow + control anywhere, and move the pointer by 1% of a
page
#Key Left A SC CursorMove -1 0
#Key Right A SC CursorMove +1 +0
#Key Up A SC CursorMove +0 -1
#Key Down A SC CursorMove +0 +1

# press shift arrow + meta key, and move the pointer by 1/10 of a page
#Key Left A SM CursorMove -10 +0
#Key Right A SM CursorMove +10 +0
#Key Up A SM CursorMove +0 -10
#Key Down A SM CursorMove +0 +10

# Keyboard accelerators
#Key F1 A M CirculateUp
#Key F1 A M Popup "Utilities"
#Key F2 A M Popup "Window Ops"
#Key F4 A M Iconify
#Key F5 A M Move
#Key F6 A M Resize
#Key F7 A M CirculateUp
#Key F8 A M CirculateDown
Key n A CS CirculateUp
Key p A CS CirculateDown
Key u A CS Raise
Key d A CS Lower
Key v A CS CirculateUp "xcaplive" xcaplive
#problem with this being the same as altvt7 on twiddler Key c
A CS CirculateUp "oclock " oclock
Key t A CS CirculateUp "oclock " oclock
#problem with this being the same as alt vt8 on twiddler
#Key g A CS CirculateUp "glynx" glynx
Key w A CS CirculateUp "glynx" glynx
Key o A CS CirculateUp "current frames" current
frames
#Key a A CS Next (CurrentDesk) FlipFocus
#Key z A CS Prev (CurrentDesk) FlipFocus

############################################################################
############################################################################
#Definitions used by the modules

########################## Window-Identifier
###############################
# Just choose colors and a fonts
*FvwmIdentBack MidnightBlue
*FvwmIdentFore Yellow
*FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*

##########################FvwmWinList##################################
*FvwmWinListBack #908090
*FvwmWinListFore Black
*FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmWinListAction Click1 Iconify -1,Focus
*FvwmWinListAction Click2 Iconify
*FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent
*FvwmWinListUseSkipList
*FvwmWinListGeometry +0-1

Thanks for any help.
                                      

On Tue, 2004-05-18 at 14:38, Thomas Adam wrote:
> --- Alvin Chin <achin_at_cs.toronto.edu> wrote:
>
> > installed the libstroke-0.4-1mdk. Do I need to also download and
> > compile libstroke as well?
>
> You'll need the source to fvwm (which you have) and the "devel" RPM for
> libstroke.
>
> -- Thomas Adam
>
> =====
> "The Linux Weekend Mechanic" -- http://linuxgazette.net
> "TAG Editor" -- http://linuxgazette.net
>
> "<shrug> We'll just save up your sins, Thomas, and punish
> you for all of them at once when you get better. The
> experience will probably kill you. :)"
>
> -- Benjamin A. Okopnik (Linux Gazette Technical Editor)
>
>
>
>
>
> ____________________________________________________________
> Yahoo! Messenger - Communicate instantly..."Ping"
> your friends today! Download Messenger Now
> http://uk.messenger.yahoo.com/download/index.html
> --
> Visit the official FVWM web page at <URL: http://www.fvwm.org/>.
> To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
> message to majordomo_at_fvwm.org.
> To report problems, send mail to fvwm-owner_at_fvwm.org.

--
Visit the official FVWM web page at <URL: http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to majordomo_at_fvwm.org.
To report problems, send mail to fvwm-owner_at_fvwm.org.
Received on Tue May 18 2004 - 15:35:04 BST

This archive was generated by hypermail 2.3.0 : Mon Aug 29 2016 - 19:37:56 BST