A real sky over your wallpaper. Not an animation of a sky — the actual one, computed from an ephemeris for your latitude, longitude and clock.
The desktop, unretouched. Constellation figures and names, the Milky Way, Saturn with its rings, and the horizon with its compass — all computed for this location and this minute. The dock and the icons are in shot on purpose: this is the wallpaper, not a window pretending to be one.
![]() |
Saturn at 19 arcseconds, rings opened and tilted, drawn from the real ring geometry — they close to a line every fifteen years and this shows them part-open. |
The horizon is a real great circle, so it curves. The compass marks stand at their true azimuths in the observer's frame, which means they hold still while the whole sky turns past them.
- 5044 stars from the XHIP Hipparcos compilation, at their true positions, magnitudes and B−V colours, precessed to the current epoch.
- The 89 IAU constellation figures, with names.
- The Milky Way, as a real isophote outline rather than a painted smear.
- The Moon, with its true phase and libration-free orientation — the bright limb points at the Sun, because it is computed from where the Sun actually is.
- The planets, at relatively true sizes: Venus as a crescent, Jupiter with equatorial belts and its four Galilean moons in tonight's configuration, Saturn with rings that open and close across its 15-year cycle.
- Meteors, whose rate follows the real shower calendar. The Perseids arrive in August because the Earth gets there, not because a date is stored — peaks live in solar longitude.
- A horizon and compass, in the observer's frame, so they stand still while the sky turns past them.
Everything dims correctly near the horizon (Kasten–Young airmass and real extinction), twinkles harder down there, and fades through twilight driven by the Sun's actual altitude.
Hold Super and drag. Super + middle-click returns to your configured view. Looking around is temporary — it never rewrites your settings.
The overview search knows the sky by name. Type Sirius, Orion, M 42, Saturn or Mars into the search bar and activate a result: the view turns to point at it and a small card gives the current facts — how high and which way it is, where in the sky to find it, magnitude, phase, distance.
Super + click a star, planet, deep-sky object or constellation line on the desktop to get the same card without leaving the desktop. Search is fast because it runs against the catalogue pre-indexed at load; the card's facts are computed from the live ephemeris at the moment you ask, so the Moon's phase and each planet's position are correct now.
Names come from the catalogue: 493 named stars, the 89 constellations (by name and IAU abbreviation), 32 deep-sky objects (also by common name and category — galaxy, nebula, cluster), and the Sun, Moon and planets. Clicking works down to the unnamed stars and the constellation lines themselves.
From extensions.gnome.org, or manually:
git clone https://github.com/igfray/terrafirma ~/.local/share/gnome-shell/extensions/terrafirma@igfray.github.io
glib-compile-schemas ~/.local/share/gnome-shell/extensions/terrafirma@igfray.github.io/schemasThen log out and back in — Wayland cannot restart the shell — and enable it:
gnome-extensions enable terrafirma@igfray.github.io
gnome-extensions prefs terrafirma@igfray.github.ioSet your location first. It is the one thing that cannot be guessed: latitude decides which stars ever rise, and longitude sets the time they do it (four minutes per degree).
The preferences dialog covers what people actually reach for — mode, location, field of view, faintest star, time scale, and what to draw. Changes apply live.
About fifty further tuning keys — line weights, halo alphas, meteor train lifetimes, star size
curves, cloud scales, pointer-gravity radii — live in ~/.config/terrafirma/terrafirma.json.
Every key is documented in the file's own _notes section. Anything set in the dialog
overrides the file.
A few worth knowing:
| Key | What it does |
|---|---|
skyTimeScale |
1 is real time — correct, and almost perfectly still. 60 turns the sky once in ~24 minutes. 0 freezes it. |
skyMagLimit |
The main cost control. Star count roughly triples per magnitude. |
skyMeteorFloor |
A minimum meteors-per-minute, so quiet weeks are not empty. Set 0 for the unembellished astronomical rate. |
renderScale |
Draws at 1/N and scales up. 2 is the default and is most of why this is cheap. |
It pauses entirely when a maximised or fullscreen window covers the desktop, which is most of a working day. When visible, measured on a 2560×1440 panel:
| Sky mode | ~11% of one core |
| Orbit mode | ~5% of one core |
| Behind a maximised window | 0 |
If you want the look without the astronomy, mode: orbit draws an abstract drifting star field
with pointer gravity and click ripples. No catalogue, no ephemeris, cheaper.
TerraFirma is GPL-2.0-or-later. See LICENSE.
The star catalogue is not original work and comes with its own terms — see
NOTICE.md. In short: baked from d3-celestial
by Olaf Frohn (BSD 3-Clause), which in turn compiles star data from XHIP (Anderson & Francis
2012), constellation figures from the IAU, the Milky Way outline from José R. Vieira, and
deep-sky objects from the Saguaro Astronomy Club.
The ephemeris, the projection, the atmosphere model and the renderer are original.


