cosmic-weather-applet/README.md

81 lines
2.6 KiB
Markdown

# Cosmic Weather Applet
A weather applet for the [COSMIC](https://github.com/pop-os/cosmic-epoch) desktop environment that displays current conditions in the panel and a full forecast in a popup. Weather data is provided by [wttr.in](https://wttr.in) using IP-based geolocation.
## Building
Requires a Rust toolchain and the following system dependencies:
```sh
# Debian/Ubuntu
sudo apt-get install pkg-config libxkbcommon-dev libwayland-dev
```
Install Rust via [rustup](https://rustup.rs/) if needed, then:
```sh
cargo build --release
```
## Testing
For development, `cargo run` launches the applet in a standalone window in the center of the display. It behaves the same as when embedded in the panel.
```sh
cargo run
```
## Deploying
To deploy to your local user session, build a release binary, replace the running instance, and restart the panel so it picks up the new binary:
```sh
cargo build --release
cp target/release/cosmic-weather-applet ~/.local/bin/
# Restart the applet and panel
killall cosmic-weather-applet
killall cosmic-panel
```
The panel will relaunch automatically and load the updated applet.
## Configuration
### Temperature and wind units
By default, the applet lets [wttr.in](https://wttr.in) pick units based on
your IP-based location (so users in the US get Fahrenheit, everyone else
gets Celsius).
At startup the applet additionally inspects your measurement locale
(`LC_MEASUREMENT`, then `LC_ALL`, then `LANG`). Locales in the US,
Liberia, the Bahamas, Belize, the Cayman Islands, and Palau are requested
as Fahrenheit / USCS; all other locales fall through to the wttr.in
default.
To override the choice explicitly, set `COSMIC_WEATHER_UNITS`:
| Value | Meaning |
| ------ | ----------------------------------------- |
| `u` | Fahrenheit, mph (USCS) |
| `m` | Celsius, km/h (metric) |
| `M` | Celsius, m/s |
| `auto` | (or unset) Use locale / geolocation |
Because the applet is launched by `cosmic-panel`, a persistent override
is easiest to set on that service, e.g.:
```sh
systemctl --user edit cosmic-panel
# In the override file:
# [Service]
# Environment=COSMIC_WEATHER_UNITS=u
systemctl --user restart cosmic-panel
```
Changes take effect after the applet is restarted.
## Localization
[Fluent](https://projectfluent.org/) is used for localization. Translation files are in the [i18n directory](./i18n). To add a new language, copy the [English (en) localization](./i18n/en), rename the directory to the target [ISO 639-1 language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes), and translate the message values.