# 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.