cgps, gegps, gps, lcdgps — simple clients for gpsd


cgps [-D debug-level] [-h ] [-l [[d] | [m] | [s]]] [-m ] [-s ] [-u [[i] | [n] | [m]]] [-V ] [server [:port [:device]]]

gegps [--debug DEBUG] [--device DEVICE] [--help ] [--host HOST] [--initialize ] [--kmldir DIRECTORY] [--port PORT] [--version] [-D DEBUG] [-d DIRECTORY] [-h ] [-i ] [-V ] [server [:port [:device]]]

lcdgps [-h ] [-j ] [-l [[d] | [m] | [s]]] [-s ] [-u [[i] | [n] | [m]]] [-V ] [server [:port [:device]]]


These are some simple clients shipped with gpsd. They have some common options:

The -h option causes each client to emit a summary of its options and then exit.

The -V option causes each client to dump the package version and exit.

The -l option, when present, sets the format of latitude and longitude reports. The value 'd' produces decimal degrees and is the default. The value 'm' produces degrees and decimal minutes. The value 's' produces degrees, minutes, and decimal seconds.

Where present, the -u option can be used to set the system units for display; follow the keyword with 'i' for 'imperial' for American units (International Feet in altitude and error estimates, miles per hour in speeds), 'n' for 'nautical' (feet in altitude and error estimates, knots in speed) or 'm' for 'metric' (meters in altitude and error estimates, kilometers per hour in speeds).

Note: The USA Survey Foot is not supported.

The -D option, when present, sets a debug level; it is primarily for use by GPSD developers. It enables various progress messages to standard error.

By default, clients collect data from all compatible devices on localhost, using the default GPSD port 2947. An optional argument to any client may specify a server to get data from. A colon-separated suffix is taken as a port number. If there is a second colon-separated suffix, that is taken as a specific device name to be watched. However, if the server specification contains square brackets, the part inside them is taken as an IPv6 address and port/device suffixes are only parsed after the trailing bracket. Possible cases look like this:


Look at the default port of localhost, trying both IPv4 and IPv6 and watching output from serial device 1.

Look at port 2317 on, trying both IPv4 and IPv6.

Look at port 2317 at the specified IPv4 address, collecting data from attached serial device 3.


Look at port 2317 at the specified IPv6 address, collecting data from attached serial device 5.


cgps is a client resembling xgps, but without the pictorial satellite display and able to run on a serial terminal or terminal emulator.

The -s option prevents cgps from displaying the data coming from the daemon. This display can also be toggled with the s command.

The -m option will display your magnetic track (as opposed to your true track). This is a calculated value, not a measured value. Magnetic variation is always potentially subject to large errors, but is usually better than two degrees.

cgps terminates when you send it a SIGHUP or SIGINT; given default terminal settings this will happen when you type Ctrl-C at it. It will also terminate on 'q'


A client that passes gpsd data to lcdproc, turning your car computer into a very expensive and nearly feature-free GPS receiver. Currently assumes a 4x40 LCD and writes data formatted to fit that size screen. Also displays 4- or 6-character Maidenhead grid square output.


This program collects fixes from gpsd and feeds them to a running instance of Google Earth for live location tracking.

The -d argument is the location of the Google Earth installation directory. If not specified, it defaults to the current directory.

If you have the free (non-subscription) version, start by running with the -i option to drop a clue in the Google Earth installation directory, as 'Open_in_Google_Earth_RT_GPS.kml', then open that file in Places (File > Open...). Run gegps in the normal way after that.


The environment variable GPSD_UNITS is checked if no unit system is specified on the command line. It may be set to 'i'. 'imperial', 'm', 'metric', or 'n', 'nautical'.

LC_MEASUREMENT and then LANG are checked if no unit system has been specified on the command line, or in GPSD_UNITS. If the value is 'C', 'POSIX', or begins with 'en_US' the unit system is set to imperial. The default if no system has been selected defaults to metric.


gpsd(8), libgps(3), libgpsmm(3), gpsfake(1), gpsctl(1), gpscat(1), gpsprof(1). gpspipe(1). gpsmon(1). gpxlogger(1). xgps(1). xgpsspeed(1).


Remco Treffcorn, Derrick Brashear, Russ Nelson & Eric S. Raymond, Jeff Francis (cgps), Chen Wei (gegps & xgpsspeed), Robin Wittler (xgpsspeed).

This manual page by Eric S. Raymond