{"id":16105918,"url":"https://github.com/fightling/i3owm","last_synced_at":"2025-03-18T08:31:55.037Z","repository":{"id":44409720,"uuid":"362655610","full_name":"fightling/i3owm","owner":"fightling","description":"Open Weather extension for i3status","archived":false,"fork":false,"pushed_at":"2022-07-10T17:44:49.000Z","size":105,"stargazers_count":11,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T08:28:34.380Z","etag":null,"topics":["crates","i3status","i3wm","open-notify","openweathermap","rust","weather"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fightling.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-29T01:36:34.000Z","updated_at":"2025-01-09T13:01:00.000Z","dependencies_parsed_at":"2022-08-30T16:20:11.425Z","dependency_job_id":null,"html_url":"https://github.com/fightling/i3owm","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fightling%2Fi3owm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fightling%2Fi3owm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fightling%2Fi3owm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fightling%2Fi3owm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fightling","download_url":"https://codeload.github.com/fightling/i3owm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243910749,"owners_count":20367545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crates","i3status","i3wm","open-notify","openweathermap","rust","weather"],"created_at":"2024-10-09T19:11:12.365Z","updated_at":"2025-03-18T08:31:54.688Z","avatar_url":"https://github.com/fightling.png","language":"Rust","readme":"# I3owm [![Rust](https://github.com/fightling/i3owm/actions/workflows/rust.yml/badge.svg)](https://github.com/fightling/i3owm/actions/workflows/rust.yml)\n\nrust implementation of Open Weather Map and open-notify (ISS spotting) add-on for i3status\n\n## Contents\n\n\u003c!-- MDTOC maxdepth:4 firsth1:2 numbering:0 flatten:0 bullets:1 updateOnSave:1 --\u003e\n\n- [Contents](#contents)   \n- [Installation](#installation)   \n- [Usage](#usage)   \n   - [Program Arguments](#program-arguments)   \n      - [Required Arguments](#required-arguments)   \n      - [Options](#options)   \n      - [Optional Arguments](#optional-arguments)   \n         - [ISS spotting with `--level`, `--soon` \u0026 `--prediction`](#iss-spotting-with-level-soon-prediction)   \n   - [Display Format](#display-format)   \n      - [Available Properties](#available-properties)   \n      - [Testing your Display Format](#testing-your-display-format)   \n         - [Weather](#weather)   \n         - [ISS Spotting Events](#iss-spotting-events)   \n         - [Complex Example](#complex-example)   \n   - [Integration into i3status](#integration-into-i3status)   \n- [Reference Documentation](#reference-documentation)   \n- [Links](#links)   \n   - [Website](#website)   \n   - [*github* repository](#github-repository)   \n   - [on *crates.io*](#on-cratesio)   \n- [License](#license)   \n\n\u003c!-- /MDTOC --\u003e\n\n## Installation\n\nTo install this from Rust community's crate registry, one must have installed *Rust* an *Cargo*.\nThen enter this in the terminal:\n\n```\ncargo install i3owm\n```\n\n## Usage\n\n### Program Arguments\n\n#### Required Arguments\n\n| Option              | Parameter  | Description |\n|---------------------|------------|-------------|\n| `-k`, `--apikey`    | `\u003capikey\u003e` | Set OpenWeatherMap API key (see at https://openweathermap.org/price) |\n\n#### Options\n\n| Option              |  Description |\n|---------------------|--------------|\n| `-b`, `--blink`     |  Let ISS icon blink when visible |\n| `-h`, `--help`      |  Prints help information |\n| `-n`, `--notify`    |  Show notifications about ISS getting visible |\n| `-r`, `--reverse`   |  Reverse position (from right) |\n| `-t`, `--test`      |  Do **not** process i3status from stdin, instead show formatted string |\n| `-V`, `--version`   |  Prints version information |\n\n#### Optional Arguments\n\n| Option              | Parameter Description | Default |\n|---------------------|-----------------------|---------|\n| `-f`, `--format`    | Format string including one ore more of the following keys | `{city} {icon} {temp}{temp_unit}` |\n| `-c`, `--location`  | City's name maybe followed by comma-separated 2-letter (state code for the USA locations and) country code (ISO3166) or city ID (see https://openweathermap.org/find) or geographical coordinate as comma-separated latitude and longitude. | `Berlin,DE` |\n| `-C`, `--cloudiness` | Maximum cloudiness in percent at which ISS can be treated as visible | `25` |\n| `-l`, `--lang`      | Two character language code of weather descriptions | `en` |\n| `-L`, `--level`     | ISS minimum show level: `watch`: duration when visible; `soon`: latency until visible; `rise`: spotting time; `far`: max. prediction time | `soon` |\n| `-P`, `--poll`      | Duration of polling period in minutes | `10` |\n| `-p`, `--position`  | Position of output in JSON when wrapping i3status | `0` |\n| `-s`, `--soon`      | Duration in minutes when ISS rising is \"soon\" in minutes | `15` |\n| `-u`, `--units`     | Use imperial units (`metric`, `imperial` or `standard`) | `metric` |\n| `-T`, `--prediction`| set number of predicted ISS spots | `100` |\n\n##### ISS spotting with `--level`, `--soon` \u0026 `--prediction`\n\nJust a note about what `--level` does and how it interacts with the optional arguments in `--soon` and `--prediction`:\n\nWith `--level` you set what you get:\n\n| Level       | When?                        | Format             | Example          |\n|-------------|------------------------------|--------------------|------------------|\n| `watch`     | only if currently visible    | `🛰+`*duration*    | `🛰+03:12`      |\n| `soon`      | only if visible within *soon*| `🛰-`*duration*    | `🛰-12:34`      |\n| `rise`      | when there is any prediction | `🛰`*[date] time*  | `🛰12:15`      |\n| `far`       | prediction time in days if no prediction available | `🛰\u003e`*days*   | `🛰\u003e16`      |\n\nLevels are inclusive backwards. So if you set the level to `rise` you will see `soon` and `watch` events too.\n\nAn event is \"soon\" if it happens within the number of minutes you set with option `--soon`.\n\nThe value given by argument `--prediction` sets the number of spotting events that will be fetched from *api.open-notify.org*. So this value somehow limits the time of prediction. A maximum of 100 events is given by *api.open-notify.org*.\n\n### Display Format\n\n#### Available Properties\n\nChoose your display format by inserting the following properties keys into your format string:\n\n| Key               | Description | Example |\n|-------------------|-------------|---------|\n| `{city}`          |  City name | `Berlin` |\n| `{main}`          |  Group of weather parameters | `Clouds` |\n| `{description}`   |  Weather condition within the group | `scattered clouds` |\n| `{icon}`          |  Weather icon | `🌞`,`🌛`, `🌤`, `⛅`, `🌧`,`🌦`,`🌩`,`❄`,`🌫` |\n| `{pressure}`      |  Atmospheric pressure (sea level or ground level), hPa | `1010` |\n| `{humidity}`      |  Humidity, % | `45` |\n| `{wind}`          |  Wind direction | `N`, `NO`, `O`, `SO`, `S`, `SW`, `W`, `NW` |\n| `{wind_icon}`     |  Wind direction as arrow icon | `↓`, `↙`, `←`, `↖`, `↑`, `↗`, `→`, `↘` |\n| `{wind_speed}`    |  Wind speed | `m/s`, `mi/h` |\n| `{wind_deg}`      |  Wind direction, degrees (meteorological) | `56` |\n| `{deg_unit}`      |  Direction unit | `°` |\n| `{visibility}`    |  Visibility, meter | `10000` |\n| `{visibility_km}` |  Visibility, kilometer | `10` |\n| `{rain.1h}`       |  Rain volume for the last 1 hour, mm | `12` |\n| `{rain.3h}`       |  Rain volume for the last 3 hours, mm | `32` |\n| `{snow.1h}`       |  Snow volume for the last 1 hour, mm | `11` |\n| `{snow.3h}`       |  Snow volume for the last 3 hours, mm | `24` |\n| `{temp_min}`      |  Minimum temperature at the moment | `-8` |\n| `{temp_max}`      |  Maximum temperature at the moment | `10` |\n| `{feels_like}`    |  Temperature for the human perception of weather | `8` |\n| `{temp}`          |  Temperature | `15` |\n| `{temp_unit}`     |  Temperature | `°C`, `°F`, `K` |\n| `{speed_unit}`    |  Wind speed unit | `m/s` |\n| `{update}`        |  Local time of last update | `12:45` |\n| `{iss}`           |  ISS spotting time, latency or duration | `+01:15` , `-02:21`, `12:10`, `\u003e16` |\n| `{iss_icon}`      |  show icon if ISS is visible | `🛰` |  \n| `{iss_space}`     |  inserts space (`' '`) if any ISS information is displayed | ` ` |\n\n#### Testing your Display Format\n\nTo make testing easy *i3owm* has an option `-t` (or `--test`) which disables processing of input from i3status and just produces the *i3owm* related output string.\nWe use that option to test some examples without *i3status*.\n\n##### Weather\n\nTo get the weather we could use the following command line:\n\n```\ni3owm -t -k \u003ckey\u003e -c Berlin,DE -f '{icon} {temp}{temp_unit} 💧{humidity}%'\n```\n\n###### Output\n\n```\nloading...\n⛅ 11°C 💧55%\n```\n\n##### ISS Spotting Events\n\nTo get ISS spotting events we could use the following parameters:\n\n```\ni3owm -t -Lrise -k \u003ckey\u003e -c Berlin,DE -f 'before {iss_icon}{iss}{iss_space}after'\n```\n\nThis example would show the satellite icon, a time for ISS spotting and a space ` ` separator if any prediction can be made:\n\n###### Output\n\n```\nloading...\nbefore 🛰+03:12 after\n```\n...or...\n\n```\nloading...\nbefore after\n```\n\n...if no ISS status is available.\n\nThis would mean that ISS is already visible for 3:12 minutes.\n\n##### Complex Example\n\nIn this complex example we use the following parameters:\n\n```\ni3owm -tnb -Lrise -C100 -k \u003ckey\u003e -cBerlin -f'{iss_icon}{iss}{iss_space}{icon} {temp}{temp_unit} 💧{humidity}% {wind_icon}{wind_speed}{speed_unit} ({update})'\n```\n\n###### Output\n\n```\nloading...\n⛅ 14°C 💧70% ↑2m/s (13:47)\n🛰16:37 ⛅ 14°C 💧70% ↑2m/s (13:47)\n```\n\n### Integration into i3status\n\nTo use your *i3owm* command line in your i3 configuration you need to remove option `-t` and append a pipe symbol `|` and your command line to your it (usually at `.config/i3/config`).\n\n```\nbar {\n  status_command i3status | i3owm \u003cyour options\u003e\n}\n```\n\n## Reference Documentation\n\nBeside this introduction there is a reference documentation for the source code which can be found [here](https://docs.rs/i3owm).\n\n## Links\n\n### Website\n\nThis README tastes better at [i3owm.thats-software.com](http://i3owm.thats-software.com).\n\n### *github* repository\n\nFor the source code see [this repository](https://github.com/fightling/i3owm) at *github.com*.\n\n### on *crates.io*\n\nPublished at [*crates.io*](https://crates.io/crates/i3owm).\n\n## License\n\ni3status_ext is licensed under the *MIT license* (LICENSE-MIT or http://opensource.org/licenses/MIT)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffightling%2Fi3owm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffightling%2Fi3owm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffightling%2Fi3owm/lists"}