Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FvwmTheme(1)			 FVWM Modules			  FvwmTheme(1)

NAME
       FvwmTheme  - an FVWM module for managing	the appearance of FVWM and its
       modules

SYNOPSIS
       ModuleSynchronous Timeout 5 FvwmTheme

       FvwmTheme can only be invoked by	fvwm.  Command line invocation of  the
       FvwmTheme module	will not work.

DESCRIPTION
       FvwmTheme  creates  appearance resources	that may be shared by FVWM and
       other modules.  It reads	an initial configuration and  also  reacts  to
       configuration  commands	and  messages  sent  from FVWM so that the re-
       sources can be dynamically changed.

INVOCATION
       Starting	with 2.5.1, FvwmTheme is obsolete, please read fvwm  man  page
       about  the built-in colorsets solution.	However, all options are still
       the same, so this man page defines the exact Colorset syntax.

       FvwmTheme must be spawned as a module by	fvwm.

       It is highly suggested that FvwmTheme is	invoked	before any other  mod-
       ules  that use the colorsets provided by	FvwmTheme.  Thus FvwmTheme has
       to be invoked with the 'ModuleSynchronous'  command  by	inserting  the
       line 'ModuleSynchronous Timeout 5 FvwmTheme' in the .fvwm2rc file right
       after the ImagePath has been  defined.	Invoking  FvwmTheme  from  the
       InitFunction,  StartFunction  or	RestartFunction	or later can cause ex-
       cessive redrawing of already running modules.  It is  highly  suggested
       that  the configuration lines for FvwmTheme appear in the configuration
       file before FvwmTheme is	started.  You can find a  proper  sample  fvwm
       setup  at  the  end of this document.  It is pointless to run more than
       one FvwmTheme so	there is no provision for using	an alias name.

CONFIGURATION OPTIONS
       FvwmTheme supports some configuration options.

       *FvwmTheme: Colorset n options
	      Creates or modifies colorset n. Each colorset has	 four  colors,
	      an  optional pixmap and an optional shape	mask.  The four	colors
	      are used by modules as the foreground, background, highlight and
	      shadow  colors.	When  a	 colorset  is created it defaults to a
	      foreground of black and background of gray.  The background  and
	      foreground are marked as "average" and "contrast"	(see later) so
	      that just	specifying a pixmap or	gradient  gives	 sensible  re-
	      sults.

	      Warning: The highest colorset number used	determines memory con-
	      sumption.	 Thus if you define 'Colorset 100000', the memory  for
	      100001  colorsets	 is used.  Keep	your colorset numbers as small
	      as possible.

	      options is a comma separated list	containing some	 of  the  key-
	      words:  fg,  Fore, Foreground, bg, Back, Background, hi, Hilite,
	      Hilight, sh, Shade, Shadow, fgsh,	Pixmap,	 TiledPixmap,  Aspect-
	      Pixmap, Transparent, RootTransparent, Shape, TiledShape, Aspect-
	      Shape, NoShape, ?Gradient, Tint, fgTint, bgTint, Alpha, fgAlpha,
	      Dither, NoDither,	IconTint, IconAlpha, NoShape and Plain.

	      fg, Fore and Foreground take a color name	as an argument and set
	      the foreground color.  The special name Contrast may be used  to
	      select  a	 color	that contrasts well with the background	color.
	      To reset the foreground color to the default value you can  sim-
	      ply omit the color name.

	      bg, Back and Background take a color name	as an argument and set
	      the background color.  It	also sets  the	highlight  and	shadow
	      colors  to  values  that give a 3d effect	unless these have been
	      explicitly set with the options below.  The special name Average
	      may  be  used to select a	color that is the average color	of the
	      pixmap.  If the pixmap is	tinted with the	Tint option, the  tint
	      is not taken in account in the computation of the	average	color.
	      You should use the bgTint	 option	 to  get  the  "real"  average
	      color.   The  background	color is reset to the default value if
	      the color	name is	omitted.

	      hi, Hilite and Hilight take a color name as an argument and  set
	      the  highlight  color.  If the highlight color is	not explicitly
	      set, the default is to calculate it from the  background	color.
	      To  switch  back	to  the	default	behavior the color name	can be
	      omitted.

	      sh, Shade	and Shadow take	a color	name as	an  argument  and  set
	      the  shadow  color.   If the shadow color	is not explicitly set,
	      the default is to	calculate it from the  background  color.   To
	      switch  back to the default behavior the color name can be omit-
	      ted.

	      fgsh takes a color name as an argument and sets the  color  used
	      by  the  shadowing font effect. See the FONT SHADOW EFFECTS sec-
	      tion of the fvwm man page. By default  this  color  is  computed
	      from  the	 foreground  and background colors.  To	switch back to
	      the default the color name can be	omitted.

	      Pixmap, TiledPixmap and AspectPixmap take	a file name as an  ar-
	      gument,  search  the  ImagePath  and  use	 it  as	the background
	      pixmap.  Any transparent parts are filled	 with  the  background
	      color.  Not specifying a file name removes any existing one from
	      the colorset.  TiledPixmap produces repeated copies of the image
	      with  no scaling,	Pixmap causes the image	to be stretched	to fit
	      whatever object the colorset  is	applied	 to  and  AspectPixmap
	      stretches	to fit but retains the image aspect ratio.

	      Transparent  tries  to  create  a	transparent background pixmap.
	      The pixmap may be	used as	a window background  to	 achieve  root
	      transparency.   For  this	 you should use	the ParentalRelativity
	      fvwm style.  The root background change may be detected or  not,
	      this  depends  on	the program used to set	the background.	If you
	      use fvwm-root, xsetbg (xli), FvwmBacker with a solid or  a  col-
	      orset  colors  or	 a recent version of Esetroot (>= 9.2) a back-
	      ground change should be detected.	If background changes are  not
	      detected	(e.g., if you use xv or	xsetroot) you can force	detec-
	      tion by using the	-d option of fvwm-root:
	      xv -root -quit mybg.png; fvwm-root -d
	      Due to the way X implements transparency no  guarantees  can  be
	      made  that  the  desired effect can be achieved. The application
	      may even crash.  If you experience any problems  with  this  op-
	      tion, do not use it.

	      Using  outline  move  and	resize (see the	OpaqueMoveSize command
	      and the ResizeOpaque style)  as  well  as	 setting  the  Window-
	      ShadeShrinks  style  may	help.  The  transparency achieved with
	      Transparent depends on whether the colorset is  applied  to  the
	      foreground or the	background of a	window.	In the second case the
	      transparency is relative to the parent window of the  window  on
	      which the	colorset is defined. For example:
	      Colorset 12 VGradient 200	grey30 grey60
	      Colorset 17 Transparent
	      *FvwmIconMan: Colorset 12
	      *FvwmIconMan: PlainColorset 17
	      gives  an	 IconMan  with a vertical grey gradient	background and
	      the buttons use the background (by transparency).	 To  obtain  a
	      (root) transparent IconMan:
	      Colorset 12 Transparent
	      Colorset 17 Transparent
	      Colorset 18 Transparent
	      Colorset 19 Transparent
	      *FvwmIconMan: Colorset 12
	      *FvwmIconMan: PlainColorset 17
	      *FvwmIconMan: FocusColorset 18
	      *FvwmIconMan: IconColorset  19
	      The  Colorset  IconMan  option  defines the IconMan window back-
	      ground, but the PlainColorset and	the FocusColorset are drawn on
	      the  foreground.	So, the	transparency of	the IconMan buttons is
	      achieved by drawing nothing.  Now	if this	IconMan	 is  swallowed
	      in an FvwmButtons	as:
	      FvwmButtons:(Colorset 10,	Swallow	"FvwmIconMan" 'FvwmIconMan')
	      then,  IconMan become a child of FvwmButtons and it is transpar-
	      ent relative to FvwmButtons. So, in this case IconMan uses  Col-
	      orset  10	 as  background. If you	want root transparency use the
	      RootTransparent  option.	FvwmButtons,  FvwmIconMan,  FvwmIdent,
	      FvwmScroll  and  FvwmTaskBar are relatively simple. There	is one
	      main colorset option which defines the background	of the	window
	      and  the	other  colorsets (if any) are drawn on the foreground.
	      The case of FvwmWinList and FvwmProxy are	simpler. With FvwmWin-
	      List  all	 the  colorsets	 are  drawn on the foreground and with
	      FvwmProxy	the two	colorsets refer	 to  the  window  backgrounds.
	      FvwmPager	 is more complicated as	almost everything in the pager
	      are windows with some parental relations (the mini  windows  are
	      the  child and the desktops are the parents and all this is com-
	      plicated by the hilighted	page). So, the colorsets apply to  the
	      background of these windows. You should experiment. For FvwmForm
	      and FvwmScript the situation is similar.	There is a main	window
	      (a  child	of the root window) which corresponds to the main col-
	      orset and	most of	the widgets are	windows	which are children  of
	      the  main	window.	 Tint may work or not with the Transparent op-
	      tion. When the colorset is drawn on the foreground  Tint	should
	      work.  In	 the  other  cases,  tinting works in some exceptional
	      cases (and may be	very slow). Tinting may	work  with  fvwm  menu
	      (without	animation). In the other case tinting may work if your
	      X	server has backing store enabled (try xdpyinfo to see if  this
	      the  case).   But, there is a chance that	the backing store sup-
	      port of your X server does not work well with the	terrible  hack
	      used  to	Tint the ParentRelative	Pixmap.	So, to get tinted root
	      transparency it is more safe to use the RootTransparent option.

	      RootTransparent [	buffer ]  creates  a  root  transparent	 back-
	      ground.  To make this option work, you must use an Esetroot com-
	      patible program, fvwm-root with the  --retain-pixmap  option  or
	      FvwmBacker  with	the RetainPixmap option	(and colorset or solid
	      backgrounds).  The buffer	keyword	is useful only when  the  Tint
	      option is	used too. This speeds up creation of windows which use
	      the colorset (useful for fvwm menus) at the cost of  memory  us-
	      age.   It	also speeds up opaque move and resize which can	be un-
	      acceptably slow without buffer.  However,	this option may	add  a
	      lot of memory to your X server (depending	on the size of the im-
	      age used to set the background). In summary, using outline  move
	      and  resize  for modules which use such a	colorset may be	a good
	      idea.

	      Shape, TiledShape	and AspectShape	take a file name as  an	 argu-
	      ment,  search  the  ImagePath  and  use  it as the shape bitmap.
	      TiledShape produces repeated copies of the bitmap	with no	 scal-
	      ing, Shape causes	the bitmap to be stretched to fit whatever ob-
	      ject the colorset	is applied to and AspectShape stretches	to fit
	      but retains the bitmap aspect ratio.  If the file	is a pixmap in
	      xpm format, the shape mask of the	pixmap is used.

	      Warning: Due to the way X11 implements shapes and	the  implemen-
	      tation  of the FvwmTheme module you cannot take back making win-
	      dows shaped.  You	may have to restart fvwm or the	shaped	appli-
	      cation.

	      ?Gradient	 ... creates a pixmap and stretches it to fit the win-
	      dow.  ?Gradient may be one of HGradient,	VGradient,  DGradient,
	      BGradient,  SGradient,  CGradient,  RGradient or YGradient.  The
	      gradient types are as follows:  H	is horizontal; V is  vertical;
	      D	 is  diagonal  from top	left to	bottom right; B	is a backwards
	      diagonal from bottom left	to top right; S	is concentric squares;
	      C	 is  concentric	 circles; R is a radar like pattern and	Y is a
	      Yin Yang style (but without the dots,  we	 are  not  that	 mad).
	      Please refer to the COLOR	GRADIENTS section in the fvwm man page
	      for the syntax of	gradients.

	      Tint takes 2 arguments, a	color and a percentage between	0  and
	      100.   It	causes the image defined using ?Pixmap or ?Gradient to
	      be tinted	with the specified color using the percentage.	If the
	      image  is	 transparent Tint tints	only the image part.  Unfortu-
	      nately, a	colorset background specified  using  the  Transparent
	      option  can give strange results.	See the	Transparent option for
	      details.	With no	arguments this option removes the tint.

	      fgTint takes 2 arguments,	a color	and a percentage between 0 and
	      100.  It causes the color	defined	using fg to be tinted with the
	      specified	color using the	percentage.  With  no  arguments  this
	      option removes the tint.

	      bgTint takes 2 arguments,	a color	and a percentage between 0 and
	      100.  It causes the color	defined	using bg to be tinted with the
	      specified	 color	using the percentage.  If the sh and hi	colors
	      are not specified, they are recomputed from the tinted bg	color.
	      With no arguments	this option removes the	tint.

	      Alpha  takes  a percentage between 0 and 100 as an argument.  It
	      causes fvwm to merge the image defined using ?Pixmap or  ?Gradi-
	      ent with the bg color using the percentage. If the percentage is
	      0	the image is hidden and	if it is 100 the image is displayed as
	      usual  (no  merge).  The default is 100 and it is	restored if no
	      argument is given.

	      fgAlpha takes a percentage between 0 and 100 as an argument.  It
	      causes  fvwm to merge the	text and the colorset background using
	      the percentage. If the percentage	is 0 the text is hidden	and if
	      it  is  100 the text is displayed	as usual (no merge).  This op-
	      tion has an effect only with fonts loaded	by Xft,	see  the  FONT
	      NAMES AND	FONT LOADING section of	fvwm man page.	The default is
	      100 and it is restored if	no argument is given.

	      Dither causes fvwm to dither the image defined using ?Pixmap  or
	      ?Gradient.   This	 is  useful only with displays with depth less
	      than or equal to 16 (i.e., on displays which  can	 only  display
	      less  than 65537 colors at once).	 The dithering effect lets you
	      simulate having more colors available that  you  actually	 have.
	      NoDither causes fvwm to do not dither the	images.	 Dither	is the
	      default if the depth is less than	or equal to 8 (a  screen  with
	      256  colors  or less).  In depth 15 (32768 colors) and 16	(65536
	      colors), the default is NoDither,	however	 this  effect  can  be
	      useful  with images which	contain	a lot of close colors. For ex-
	      ample a fine gradient will look more smooth.

	      IconTint takes 2 arguments, a color and a	percentage  between  0
	      and  100.	  It causes fvwm or a module to	tint the "icons" which
	      are rendered into	the colorset  background  with	the  specified
	      color  using a percentage.  Here "icons" means, fvwm Icons, fvwm
	      menu icons, MiniIcons which represent  applications  in  various
	      modules, images loaded by	modules	(e.g., images specified	by the
	      Icon FvwmButtons button option) ...etc.  With no arguments  this
	      option removes the icon tint.

	      IconAlpha	 takes	a percentage between 0 and 100 as an argument.
	      It causes	fvwm to	merge the "icons" which	are rendered into  the
	      colorset	background  using this percentage.  The	default	is 100
	      and it is	restored if no argument	is given.

	      Note: It is equivalent to	use "Tint a_color rate"	and "Alpha  a"
	      if  a  =	100 and	the bg color is	a_color. This equivalence does
	      not hold for IconAlpha and IconTint as the background can	be  an
	      image  or	a gradient (and	not a uniform color background).  How-
	      ever, in some cases you can achieve (almost) the same effect  by
	      using IconTint in	the place of IconAlpha.	This is	preferable as,
	      in general, IconAlpha generates more redrawing than IconTint.

	      NoShape removes the shape	mask from the colorset while Plain re-
	      moves the	background pixmap or gradient.

COMMANDS
       The  following  fvwm  command  may be executed at any time to alter the
       colorsets.  It may be bound to a	menu item or typed into	a module  such
       as FvwmConsole.

       SendToModule FvwmTheme Colorset options
	      The syntax is the	same as	the configuration option.

EXAMPLES
       *FvwmTheme: Colorset 3 fg wheat,	bg navy

       If necessary this creates colorsets 0, 1, 2 and 3 and then changes col-
       orset 3 to have a foreground of wheat, a	background of navy.

       *FvwmTheme: Colorset 3 bg "navy blue"

       changes the background color of colorset	3 to navy blue.	The foreground
       and pixmap are unchanged.

       *FvwmTheme: Colorset 3 AspectPixmap large_murky_dungeon.xpm

       Causes depression.

       *FvwmTheme: Colorset 3 bg Average

       Sets the	background color and the relief	colors to match	the background
       pixmap. This is the default setting but it must be used if a background
       color was specified and is now not required.

       *FvwmTheme: Colorset 3 YGradient	200 3 \
	 blue 1000 navy	1 blue 1000 navy

       Adds a Yin Yang gradient	background pixmap to colorset 3.  If the back-
       ground is set to	average	it is recomputed along with the	foreground  if
       that is set to contrast.

	#!/bin/sh
	FvwmCommand "SendToModule FvwmTheme Colorset 7 fg navy,	bg gray"
	while true
	do
	  FvwmCommand "SendToModule FvwmTheme Colorset 7 fg gray"
	  sleep	1
	  FvwmCommand "SendToModule FvwmTheme Colorset 7 fg navy"
	  sleep	1
	done

       Makes colorset 7	blink.

       The  color  names used in colorsets can be substituted in any fvwm com-
       mand.  Please refer to the COMMAND EXPANSION section in	the  fvwm  man
       page and	the example below for a	description.

SAMPLE FVWM CONFIGURATION
       Below  you can find a fvwm configuration	file that demonstrates the use
       of the FvwmTheme	module.	 The order in which FvwmTheme  and  the	 other
       modules are configured and started is important.

	# where	your images are
	ImagePath <put your image path here>

	#
	# FvwmTheme
	#
	# The FvwmTheme	setup must be first in the config file,
	# right	after the paths	are set.
	#
	# Instead of the *FvwmTheme: Colorset... lines below you
	# could	read in	a file with these commands.  So	to change
	# your color scheme you	can simply copy	a different file
	# over your palette file and restart fvwm:
	#
	# Read /home/my_user_name/.fvwm/.fvwm_palette
	#

	# 0 = Default colors
	# 1 = Inactive windows
	# 2 = Active windows
	# 3 = Inactive menu entry and menu background
	# 4 = Active menu entry
	# 5 = greyed out menu entry (only bg used)
	# 6 = module foreground	and background
	# 7 = hilight colors
	*FvwmTheme: Colorset 0 fg black, bg rgb:b4/aa/94
	*FvwmTheme: Colorset 1 fg black, bg rgb:a1/b2/c8
	*FvwmTheme: Colorset 2 fg black, bg rgb:da/9a/68
	*FvwmTheme: Colorset 3 fg black, bg rgb:b4/aa/94, \
	  VGradient 100	dtcolor5 rgb:b4/aa/94
	*FvwmTheme: Colorset 4 fg black, bg rgb:b4/aa/94
	*FvwmTheme: Colorset 5 fg rgb:d2/bf/a8,	\
	  bg rgb:b4/aa/94
	*FvwmTheme: Colorset 6 fg black, bg rgb:b4/aa/94, \
	  VGradient 100	dtcolor5 rgb:b4/aa/94
	*FvwmTheme: Colorset 7 fg black, bg rgb:94/ab/bf

	# run FvwmTheme	before anything	else is	done
	ModuleSynchronous Timeout 5 FvwmTheme

	#
	# general setup
	#
	Style *	Colorset 1
	Style *	HilightColorset	2
	MenuStyle * MenuColorset 3
	MenuStyle * ActiveColorset 4
	MenuStyle * GreyedColorset 5

	#
	# Applications
	#
	AddToFunc InitFunction
	+ I Exec exec xterm -fg	$[fg.cs0] -bg $[bg.cs0]

	#
	# module setup
	#

	# ... more FvwmPager config lines ...
	*FvwmPager: Colorset * 6
	*FvwmPager: BalloonColorset * 6
	*FvwmPager: HilightColorset * 7
	*FvwmPager: WindowColorsets 1 2

	# ... more FvwmIconMan config lines ...
	*FvwmIconMan: Colorset 6
	*FvwmIconMan: FocusColorset 2
	*FvwmIconMan: FocusAndSelectColorset 2
	*FvwmIconMan: PlainColorset 6
	*FvwmIconMan: SelectColorset 6
	*FvwmIconMan: TitleColorset 6

	# ... more FvwmButtons config lines ...
	*FvwmButtons: Colorset 6
	# sample button	passing	color to xterm
	*FvwmButtons: (Title xterm, \
	  Action "Exec exec xterm -fg $[fg.cs6]	-bg[bg.cs6]")

	# ... more FvwmWharf config lines ...
	*FvwmWharf: Colorset 6

	# ... more FvwmIdent config lines ...
	*FvwmIdent: Colorset 6

	# ... more FvwmWinList config lines ...
	*FvwmWinList: Colorset	    1
	*FvwmWinList: FocusColorset 2
	*FvwmWinList: IconColorset  1

	# ... more FvwmTaskBar config lines ...
	*FvwmTaskBar: Colorset	   6
	*FvwmTaskBar: IconColorset 6
	*FvwmTaskBar: TipsColorset 0

       If  you	need to	have more colors and don't want	to reinvent the	wheel,
       you may use the convention used in fvwm-themes, it defines the  meaning
       of the first 40 colorsets for nearly all	purposes:

	http://fvwm-themes.sourceforge.net/doc/colorsets

BUGS
       Initialization  of  fvwm,  FvwmTheme  and  the other modules is tricky.
       Please pay close	attention to the text in the INVOCATION	section.   The
       example above demonstrates the proper way to get	a FvwmTheme setup run-
       ning.

AUTHOR
       Prefers to remain anonymous.  With help from Brad Giaccio  and  Dominik
       Vogt.

COPYRIGHT
       Copyright  (C)  1999  Joey Shutup.  No guarantees or warranties or any-
       thing are provided or implied in	any way	whatsoever.  Use this  program
       at  your	 own  risk.  Permission	to use this program for	any purpose is
       given, as long as the copyright is kept intact.

3rd Berkeley Distribution (not released	yet) (2.5.20)		  FvwmTheme(1)

NAME | SYNOPSIS | DESCRIPTION | INVOCATION | CONFIGURATION OPTIONS | COMMANDS | EXAMPLES | SAMPLE FVWM CONFIGURATION | BUGS | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=FvwmTheme&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help