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

FreeBSD Manual Pages


home | help
fvwm-menu-headlines(1)		Fvwm Utilities		fvwm-menu-headlines(1)

       fvwm-menu-headlines - builds headlines menu definition for fvwm

       fvwm-menu-headlines [ --help|-h|-? ] [ --version|-V ] [ --info [site] ]
       [ --site|-s site	] [ --name|-n name ] [ --title|-t title	] [ --item
       item ] [	--exec|-e exec-command ] [ --command|-e	fvwm-command ] [
       --icon-title icon ] [ --icon-item icon ]	[ --icon-home icon ] [
       --icon-error icon ] [ --wm-icons	] [ --frontpage	[where]	] [ --proxy|-p
       host:port ] [ --file [file] ] [ --fake [file] ] [ --timeout seconds ]

       This configurable perl script builds an fvwm menu definition for
       headlines of popular news web sites: FreshMeat, Slashdot, LinuxToday,
       DaemonNews, GNOME-News, KDE-News, RootPrompt, LinuxFr, ThinkGeek, CNN,
       BBC and more.

       It is possible to specify a customized menu item	format,	change a
       command (usually	launching a browser) and add menu icons	(there is a
       support for the wm-icons	package).

	   show	the help and exit

	   show	the version and	exit

       --info [site]
	   if site name	is given print the site	specific info, otherwise print
	   all site names

       --site site
	   defile a web	site, headlines	of which to show, this option also can
	   be used together with --help	to get new defaults. Default site:

       --name name
	   define menu name (default is	"MenuHeadlinesFreshmeat")

       --title title
	   define menu title (default is "Freshmeat Headlines").

       --item label-format
       --exec command-format
	   define format for menu item or command (what	is shown and what is
	   executed when the item is chosen). Default label is
	   '%h\t%[(%Y-%m-%d %H:%M)]'. TAB can be specified as '\t', but	in
	   .fvwm2rc you	should specify a double	backslash or a real TAB.

	   Format specifiers for a headline format:

	     %h	- headline
	     %u	- url
	     %d	- date in the native format (that site backend supplied)
	     %[strftime-argument-string] - date/time, see strftime(3)
	       the date/time is	represented according to the local time;
	       date and/or time	fields that can't be guessed are stripped
	       Example:	%[|%d %B %Y| %H:%M %S]
		 If site supplied only date - this becomes %[|%d %B %Y|],
		 if site supplied no date - this becomes an empty string.
	     %{name} - site specific named value, like %{comments}
	     %(text) - arbitrary text, good for	escaping or aligning

	   These specifiers can	receive	an optional integer size, positive for
	   right adjusted string or negative for left adjusted,	example: %8x;
	   and optional	*num or	*-num, which means to leave only the first or
	   last	(if minus) num of chars, the num must be greater than 3, since
	   the striped part is replaced	with "...", example: %*30x. Both can
	   be combined:	%-10*-20x, this	instructs to get only the 20 last
	   characters, but if the length is less then 10 - to fill with	up to
	   10 spaces on	the right.


	     --exec "iceweasel -remote 'openURL(%u, new-window)' || iceweasel '%u'"

       --command command-format
	   like	--exec above, but enables to specify any fvwm command, for
	   example, "Function FuncFvwmShowURL '%u'" not	only Exec.

	   In fact, --exec="mozilla '%u'" is equivalent	to --command="Exec
	   mozilla '%u'"

       --icon-title icon
       --icon-item icon
       --icon-home icon
       --icon-error icon
	   define menu icon for	title, regular item, frontpage item and	error
	   item	respectively. Default is no menu icons (equivalent to an empty
	   icon	argument).

	   define icon names suitable for use with wm-icons package. Currently
	   this	is equivalent to: --icon-title '' --icon-item
	   menu/information.xpm	--icon-home menu/home.xpm --icon-error

       --frontpage [where]
	   add the site	frontpage item to the menu. Optional value can be used
	   to specify where this item will be placed in	the menu - 'top' or
	   't',	'bottom' or 'b'.

       --proxy host[:port]
	   define a proxy to use. Example: --proxy

       --file [file]
	   write the menu output to specified file. If no filename is given
	   with	this option (or	empty filename), the default filename
	   WORK_HOME/ is used.	Without	this option or with '-'
	   filename, the menu output is	written	to standard output.

       --fake [file]
	   don't connect to the	host using HTTP	protocol, instead, read	from
	   WORK_HOME/ file. The following reads input from
	   (downloaded and	saves
	   output to (both files are in WORK_HOME): fvwm-menu-
	   headlines --site freshmeat --fake --file

       --timeout seconds
	   limit a line	reading	from a socket to this timeout, the default
	   timeout is 20 seconds.

       WORK_HOME of this script	is ~/.fvwm/.fvwm-menu-headlines. It is created
       if needed.

       Option parameters can be	specified either using '=' or in the next
       argument. Short options are ok if not ambiguous:	"-h", "-t"; but	be
       careful with short options, what	is now unambiguous, can	become
       ambiguous in the	next versions.

       1. One of the ways to use this script is	to define a crontab entry to
       run the script every hour or so for every monitored site:

	 0,30 *	* * * fvwm-menu-headlines --file --site	freshmeat
	 1,31 *	* * * fvwm-menu-headlines --file --site	linuxtoday
	 2,32 *	* * * fvwm-menu-headlines --file --site	slashdot

       Then add	these lines to your fvwm configuration file:

	 DestroyFunc FuncFvwmMenuHeadlines
	 AddToFunc   FuncFvwmMenuHeadlines
	 + I Read "$HOME/.fvwm/.fvwm-menu-headlines/$"

	 DestroyMenu MenuHeadlines
	 AddToMenu   MenuHeadlines "Headlines" Title
	 + MissingSubmenuFunction FuncFvwmMenuHeadlines
	 + "FreshMeat"	Popup freshmeat
	 + "LinuxToday"	Popup linuxtoday
	 + "Slashdot"	Popup slashdot

       2. Another way to use this script (only if you have fast	network/proxy)
       is to run it every time you want	to open	your Headlines submenus.
       (Note, the submenu that is once created is not reloaded,	use "Reset

       In this case your fvwm configuration lines could	be:

	 DestroyFunc FuncFvwmMenuHeadlines
	 AddToFunc   FuncFvwmMenuHeadlines
	 + I PipeRead "fvwm-menu-headlines --site $0"
	 #+ I Schedule 900000 DestroyMenu $0  #	reset generated	menu in	15 minutes

	 DestroyMenu MenuHeadlines
	 AddToMenu   MenuHeadlines "Headlines" Title
	 + MissingSubmenuFunction FuncFvwmMenuHeadlines
	 + "FreshMeat"	Popup freshmeat
	 + "Slashdot"	Popup slashdot
	 + "LinuxToday"	Popup linuxtoday
	 + "GNOME News"	Popup gnome-news
	 + "KDE	News"	Popup kde-news
	 + "" Nop
	 + "Reset all"	FuncResetHeadlines

	 DestroyFunc FuncResetHeadlines
	 AddToFunc   FuncResetHeadlines
	 + I DestroyMenu freshmeat
	 + I DestroyMenu linuxtoday
	 + I DestroyMenu slashdot
	 + I DestroyMenu gnome-news
	 + I DestroyMenu kde-news

       And finally, add	"Popup MenuHeadlines" somewhere.

       3. Here is a usual usage. Use FvwmConsole or FvwmCommand	to run fvwm
       commands	from a shell script. Every time	you want headlines from	some
       site, execute (give any additional options if you want):

	 PipeRead "fvwm-menu-headlines --site newsforge	--name MenuHeadlinesNewsForge"
	 # this	may take several seconds, you may use: BusyCursor Read true
	 Popup MenuHeadlinesNewsForge

       It is possible to add user defined site headlines without touching the
       script itself. Put your perl extensions to the file
       WORK_HOME/ For each	site add something similar to:

	 $site_info->{'myslashdot'} = {
	   'name' => "MySlashdot",
	   'host' => "",
	   'path' => "/myslashdot.xml",
	   'func' => \&process_my_slashdot,
	   # the following string is only used in --info
	   'flds' => 'time, title, department, topic, author, url',

	 sub process_my_slashdot () {
	   return process_xml(
	     # mandatory 'h', 'u' and 'd' aliases or undef
	     { 'h' => 'title', 'u' => 'url', 'd' => 'time' },
	     sub ($) {	# convert 'd' string to	(y, m, d, H, M,	S)
	       $_[0] =~	/(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
	       ($1, ($2	|| 0) -	1, $3, $4, $5, $6);
	     },	+0,  # timezone	offset;	already	in UTC


       This script is inspired by WMHeadlines v1.3 by:

	 Jeff Meininger	<>

       Reimplemented for fvwm and heavily enhanced by:

	 Mikhael Goikhman <>, 16 Dec 1999.

       The script is distributed by the	same terms as fvwm itself. See GNU
       General Public License for details.

       I try to	keep all supported site	info up	to date, but sites often go
       down, change their backend formats, change their	httpd responses, just
       stop to post news and so	on; the	script in the latest cvs may be	more
       up to date.

       The headline times may be off by	one hour or more, since	the time is
       displayed for your local	time zone, and the time	zone of	the original
       time in the site	backend	output is often	guessed	(sometimes
       incorrectly); similarly it is guessed whether to	apply the daylight
       saving correction.

       Report bugs to

2.5.28 (from cvs)		  2009-03-22		fvwm-menu-headlines(1)


Want to link to this manual page? Use this URL:

home | help