Skip to main content

greyline

CI PyPI License: GPL v2+

greyline on a dark theme: a world map with city clocks and a day/night terminator

Shown with the ThinkPad wordmark, which you supply yourself. The bundled logo is Tux.

A live world-time desktop wallpaper for Wayland and X11: a world map with clocks for your cities, your home city marked, and a day/night terminator that tracks the sun. A recreation of the IBM/ThinkPad World Time Active Desktop.

Try it in your browser · Documentation · Changelog

There is no daemon and no browser behind this. A scheduler runs greyline once a minute: it renders a PNG per output, hands each to the wallpaper mechanism you already use, and exits.

greyline is in beta. I run it daily on Linux; expect rough edges before 1.0.

Install

pipx install greyline    # or: uv tool install greyline
greyline init

init detects your compositor, picks a backend, writes ~/.config/greyline/config.toml, and where systemd is present enables a user timer that fires every minute. On GNOME, KDE and XFCE it fills in the wallpaper command for you. Without systemd, put greyline watch in your session autostart instead.

To remove it, greyline disable first (that stops the timer and removes the units init wrote), then uninstall the package — --purge also deletes your config.

You need Linux on Wayland or X11, Python 3.11 or newer, and a wallpaper tool for your desktop: swaybg, swww, hyprpaper, feh or xwallpaper, or the one your desktop environment already ships. The wiki covers Nix and home-manager and the beta Windows and macOS backends.

Use

greyline city add "Tokyo" 35.68 139.69 Asia/Tokyo --home
greyline config set theme gruvbox-dark-hard
greyline doctor                 # what's in effect, and why isn't it changing?

Thirty-five themes ship, light and dark. Most are ports of the base16 schemes your editor and terminal already use, so the wallpaper matches them.

blue theme home city marked no logo, 12-hour
the blue theme, a light map on a deep blue ocean a map with one city accented and its timezone column highlighted a minimal map with no corner logo and 12-hour clocks

The full reference is built in. It is generated from the same files the renderer reads, so it describes the version you actually have:

greyline help                 # every command; `greyline help city add` for one
greyline help keys            # every config key, its values and its default
greyline help topics          # themes, backends, desktops

Those pages are on the web too: Configuration · Themes · Backends · Desktop environments · Troubleshooting

How it works

sun.py computes the subsolar point and the terminator. vectormap.py draws the map from public-domain Natural Earth GeoJSON. render.py composites them and places the clocks at native resolution. A backend hands the finished PNG to your desktop. Only the backends are platform-specific, which is why the same renderer runs in the browser demo. The diagram is in Architecture.

Contributing

Bug reports, desktop-compatibility recipes and pull requests are all welcome. The maintainer runs sway, so reports from GNOME, KDE and XFCE are the only way those recipes get verified. Start at CONTRIBUTING.md.

License

GPL-2.0-or-later. greyline descends from Maxim Proskurnya's GPL "World Time Wallpaper" tribute; the concept and the original artwork are © IBM/Lenovo and are not bundled here. The map is public-domain Natural Earth data and the default logo is Tux, by Larry Ewing. map_style = "raster" and the ThinkPad wordmark need art you supply yourself. See NOTICE and docs/CREDITS.md.

Release files for greyline 0.8.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for greyline 0.8.5
File Size Uploaded
greyline-0.8.5.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for greyline 0.8.5
File Interpreter ABI Platform
greyline-0.8.5-py3-none-any.whl Python 3 none any Details

Total release size: 2.2 MB

Release files / greyline-0.8.5.tar.gz

Download URL greyline-0.8.5.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
5c33b80339e7529bd903bf1018968261ea80f11da8a8e9b922b4fe14b387d49b
BLAKE2b-256 checksum
How to use checksums
24e79d8361997232023e818863c37e68b9c649fa5866e805e5a28ccf81e3c77a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / greyline-0.8.5-py3-none-any.whl

Download URL greyline-0.8.5-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
18d9f75abc9d161303f8cffc384b7d1d58865910b6b599647644b84a8def5a35
BLAKE2b-256 checksum
How to use checksums
5c5f8215bc85a328949f1362bdda193652e4ac58af06cbfed6ef473d4a7a965b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.6

2 release files

This release

0.8.5 This release

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page