Cheap web site hosting service by

 Back to Index


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 ] [ --wm-icons ] [ --frontpage [where] ] [ --proxy|-p host:port ] [ --buggyproxy|-b ] [ --file [file] ] [ --fake [file] ]


A perl script which builds an fvwm menu definition for headlines of popular news web sites: FreshMeat, Slashdot, LinuxToday, Segfault and more.


--help - show the help and exit

--version - 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: freshmeat.

--name, --title, --icon - define menu name, menu title and menu icon accordingly given in the following argument. Default is name "MenuHeadlinesFreshmeat", title "Freshmeat Headlines" and no mini-icon (equivalent to an empty icon argument).

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

Format specifiers for a headline entry: %h - headline %u - url %d - date in native format %[strftime-argument-string] - date, see strftime(3) %{name} - site-specific-named-value %(text) - arbitrary text

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.

--command 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-item, --icon-home - define menu icon for title, regular item and home item respectively given in the following argument. Default is no menu icons (equivalent to an empty icon argument).

--wm-icons - 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.

--frontpage [where] - show site fronpage item in the menu too. 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

--buggyproxy - try this if your proxy requires non standard end-of-line.

--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 segfault --fake --file

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

Option parameters can be specified both using '=' and 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-menu-headlines/$"

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

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.

In this case your fvwm configuration lines could be:

  DestroyFunc FuncFvwmMenuHeadlines
  AddToFunc   FuncFvwmMenuHeadlines
  + I PipeRead "fvwm-menu-headlines --site $0"

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

In the end 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 segfault --name MenuHeadlinesSegfault"
  # after several seconds
  Popup MenuHeadlinesSegfault  


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:

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

  sub processMySlashdot () {
    return processXml(
      # 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.


Report bugs to




Cheap domain name:
Domain name services from just
$8.95/year only

Register domain name search -
Buy domain name registration and cheap domain transfer at low, affordable price.

2002-2004 Web Site Hosting Service


[ Usenet is like a herd of performing elephants with diarrhea; massive, difficult to redirect, awe-inspiring, entertaining, and a source of mind-boggling amounts of excrement when you least expect it.   ]



Disclaimer: This documentation is provided only for the benefits of our web hosting customers.
For authoritative source of the documentation, please refer to