|
| 1 | +# Boring -- Weather & Time Display |
| 2 | + |
| 3 | +A GTK-based weather and time display with animated Cairo backgrounds. |
| 4 | +Touch anywhere to temporarily show a configurable web page (e.g., a |
| 5 | +dashboard), then automatically return to the weather view after 30 |
| 6 | +seconds. |
| 7 | + |
| 8 | +## Features |
| 9 | + |
| 10 | +- Live weather from [Open-Meteo](https://open-meteo.com/) (no API key needed) |
| 11 | +- Animated backgrounds: sky gradient, sun, clouds, rain, snow |
| 12 | +- Sunrise/sunset times |
| 13 | +- Touch/click to show a web page (WebKitGTK), auto-returns after 30s |
| 14 | +- Fullscreen kiosk mode |
| 15 | + |
| 16 | +## Quick Start |
| 17 | + |
| 18 | +### Build and Run |
| 19 | + |
| 20 | +```bash |
| 21 | +sudo apt install libgtk-3-dev libwebkit2gtk-4.1-dev libsoup-3.0-dev libcjson-dev |
| 22 | +make |
| 23 | +./boring --lat 59.33 --lon 18.07 -f |
| 24 | +``` |
| 25 | + |
| 26 | +### Run with Docker |
| 27 | + |
| 28 | +```bash |
| 29 | +docker compose up boring |
| 30 | +``` |
| 31 | + |
| 32 | +Or standalone: |
| 33 | + |
| 34 | +```bash |
| 35 | +docker run --rm -it \ |
| 36 | + --privileged \ |
| 37 | + -v /dev/fb0:/dev/fb0 \ |
| 38 | + -v /dev/tty1:/dev/tty1 \ |
| 39 | + -e LATITUDE=59.33 \ |
| 40 | + -e LONGITUDE=18.07 \ |
| 41 | + -e WEB_URL=https://example.com \ |
| 42 | + ghcr.io/kernelkit/demo-boring:latest |
| 43 | +``` |
| 44 | + |
| 45 | +## Command-Line Options |
| 46 | + |
| 47 | +``` |
| 48 | +Usage: boring [OPTIONS] |
| 49 | +
|
| 50 | + -f, --fullscreen Run in fullscreen mode |
| 51 | + --lat LATITUDE Latitude for weather (default: 59.3293) |
| 52 | + --lon LONGITUDE Longitude for weather (default: 18.0686) |
| 53 | + --url URL Web page URL shown on touch/click |
| 54 | +``` |
| 55 | + |
| 56 | +Environment variables `LATITUDE`, `LONGITUDE`, and `WEB_URL` are used |
| 57 | +as fallbacks when command-line options are not given. |
| 58 | + |
| 59 | +## Dependencies |
| 60 | + |
| 61 | +| Library | Package (Debian/Ubuntu) | Purpose | |
| 62 | +|----------------|----------------------------|----------------------| |
| 63 | +| GTK 3 | `libgtk-3-dev` | GUI framework | |
| 64 | +| WebKitGTK 4.1 | `libwebkit2gtk-4.1-dev` | Embedded web view | |
| 65 | +| libsoup 3.0 | `libsoup-3.0-dev` | HTTP client | |
| 66 | +| cJSON | `libcjson-dev` | JSON parsing | |
| 67 | + |
| 68 | +## Vendored Code |
| 69 | + |
| 70 | +The following files are vendored (copied into this repository) to avoid |
| 71 | +external build-time dependencies on libraries not commonly packaged: |
| 72 | + |
| 73 | +| Files | Origin | License | |
| 74 | +|--------------------------|------------------------------------------------------------------------|--------------| |
| 75 | +| `sunriset.c`, `sunriset.h` | [troglobit/sun](https://github.com/troglobit/sun) by Paul Schlyter | Public domain | |
| 76 | + |
| 77 | +Originally written as DAYLEN.C (1989) by Paul Schlyter, modified to |
| 78 | +SUNRISET.C (1992), split into header by Joachim Nilsson (2017). |
| 79 | +Released to the public domain by Paul Schlyter, December 1992. |
| 80 | + |
| 81 | +## License |
| 82 | + |
| 83 | +MIT License -- See [../LICENSE](../LICENSE) for details. |
0 commit comments