Surfraw provides a fast unix command line interface to a variety of popular WWW search engines and other artifacts of power. It reclaims google, altavista, dejanews, freshmeat, research index, slashdot and many others from the false‐prophet, pox‐infested heathen lands of html‐forms, placing these wonders where they belong, deep in unix heartland, as god loving extensions to the shell.

Surfraw consists of a collection of elvi, each of which knows how to search a specific web site. To see the list of elvi type:

If you are a regular user of surfraw, you will probably get sick of typing sr or surfraw each time. You can regain the old behaviour of running the elvi directly by adding the elvi directory (/usr/libexec/surfraw) to your path, either manually or using surfraw-update-path(1).

If the url contains the string %s, you can specify an optional argument to the bookmark. Without an argument, only the domain will be returned. With arguments, %s will be replaced by the arguments. This obviates the need to create elvi for sites with very simple search options.

To invoke a bookmark, use "surfraw bookmark" or "sr bookmark", and if an elvis of that name doesn't exist, it searches for a bookmark of that name instead.

Surfraw uses the XDG basedir spec (http://standards.freedesktop.org/basedi…) to locate config files. The default locations are shown below, but can be modified by setting the environment variables $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS. See the spec for more details.

Surfraw gets its configuration from three sources, in order:

1.

Environment variables

2.

/etc/xdg/surfraw/conf

3.

$HOME/.config/surfraw/conf

/etc/xdg/surfraw.conf and $HOME/.config/surfraw/conf are both fragments of bourne‐shell style shell script.

/etc/xdg/surfraw.conf should use def and defyn to define variables. These functions set variables unless they are already set by the environment. defyn is used for boolean configuration variables, def for all others. For instance:

def SURFRAW_text_browser

/usr/bin/lynx

defyn SURFRAW_graphical

no

$HOME/.config/surfraw/conf should use sh‐style entries, eg:

SURFRAW_text_browser=/usr/bin/lynx SURFRAW_graphical=no

This is because you want them to override environment variables unconditionally.

Please report any bugs found (or any web sites in need of surfrawizing) either via the debian bug tracking system (http://bugs.debian.org/) or to the surfraw-devel list (surfraw-devel@lists.alioth.debian.org).

Read HACKING. Surfrawize the soul of your favourite internet wonder. Join the Shell Users' Revolutionary Front Against the WWW by submitting code. Reclaim heathen lands. Bear witness to the truth. Its love will set you free.