Linux Cinnamon向け日本天気アプレット「JWA」

最新版情報

  • 安定版:v3.2.0
  • 公開日:2026年7月24日
  • 対象:Linux上のCinnamon desktop environment

現在・時間別の地点データと、気象庁の地域予報を分けて表示し、
降水確率だけでは雨アイコンへ変更しないよう改善しています。

GitHub
最新版をダウンロード
Release Notes

現在の推定天気、時間別予報、気象庁の地域予報、週間予報をひとつのメニューで確認できます。

こんな方におすすめです

  • Cinnamonで日本の天気をすぐ確認したい
  • 時間別の雨・気温・風・UVをまとめて見たい
  • 広告やニュースを含まない天気表示が欲しい
  • 通信障害時にも直前の天気を確認したい

JWAとは

おはようございます、十円玉です。ちょこん。

体調を崩して家でゆっくり休んでいた時期に、
「今日は病院へ行けるかな……」
「この暑さの中を外へ出ても大丈夫かな……」
と、天気を確認する機会が増えましてな。

ChatGPTと話しているうちに、

「LinuxのCinnamon desktop environment向けに、
日本の天気アプレットを作ったら面白いんちゃう?」

という話になり、

「だったら自分で作ったほうが早いやん!」

と、勢いそのままに開発を始めちまった。ァー。

最初は小さな天気表示アプレットのつもりでしたが、
あれも欲しい、これも欲しいと作り続けた結果、
日常的に使える天気アプレットへ育ちました。

正式名称は
JMA Weather Widget for Cinnamon
略してJWAです。

MITライセンスで公開していますので、

  • 改造OK
  • Fork歓迎
  • Issue歓迎
  • Pull Request大歓迎

です。^^

Cinnamon標準の天気表示、ちょっと物足りない……

Cinnamonには天気を表示できるアプレットがあります。

便利ではあるんですが、日本で使っていると、

  • 日本の地域予報を確認したい
  • 今日の雨を時間ごとに見たい
  • 気温だけでなく体感温度も知りたい
  • UVが強い日や危険な暑さを目立たせたい
  • 都道府県と市区町村から簡単に地域を選びたい
  • 通信障害が起きても直前の天気を確認したい

と思うことがありました。

そこでJWAでは、日本向けの地域設定と気象庁の予報、
Open-Meteoの細かな地点データを組み合わせています。

主な機能

現在・時間別と、気象庁の地域予報を分けて表示

天気データは、提供元によって対象範囲や時間単位が異なります。
JWAでは、現在・時間別と地域予報の役割を次のように分けています。

Open-Meteo

  • 現在の推定天気
  • 現在気温・体感温度
  • 現在の降水量・風速・風向
  • 時間別の天気・気温
  • 時間別の降水確率・降水量
  • 時間別の風・UV指数

気象庁

  • 今日・明日の地域予報
  • 天気概況・風の概況
  • 時間帯単位の降水確率
  • 最高気温・最低気温
  • 週間予報

Open-Meteoは指定した緯度・経度付近の地点データ、
気象庁は予報区を対象にした地域予報です。

同じ画面へ表示していても意味が違うため、
JWAでは現在・時間別と地域予報を別の欄へ分けています。
現在値は実測観測値と誤解されないよう、
「現在の天気(推定)」と表示します。

降水確率が高いだけでは雨アイコンにしない

降水確率が100%でも、その時間を通してずっと雨が降るとは限りません。

現在のJWAでは、時間別の天気アイコン、降水確率、降水量、風を、
同じOpen-Meteoの時間別レコードから表示します。

雨アイコンは、

  • Open-Meteoのweather codeが雨・にわか雨・雷雨などを示す
  • precipitation、rain、showersのいずれかに正の値がある

場合に使用します。

降水確率が高くても予測雨量が0mmで、
weather codeが晴れや曇りなら、元の晴れ・曇りアイコンを維持します。

⛅ 16:00 31℃  ☔100%  0.0mm
🌧 17:00 30℃  ☔100%  1.2mm

このように、「降る可能性が高い」と
「雨量が予測されている」を分けて確認できます。

パネル表示は現在時間の予報と同期

JWAでは、パネルの天気アイコンと降水確率を、
現在時刻に対応する同じ時間別予報から取得します。

気温については、時間別の予想気温へ置き換えず、
現在値を表示します。

天気アイコン:現在時間の時間別予報
降水確率  :同じ時間別予報
気温    :現在値

単純に時間別予報の先頭行を使うのではなく、
各予報の日時を確認し、次の順番で選択します。

  1. 現在時刻以前で最も新しい予報
  2. それがなければ最初の未来予報
  3. 有効な時間別予報がなければ現在天気

日付変更、未整列・重複・不正日時、
タイムゾーンの違いも考慮しています。

気象庁の降水確率は時間帯単位で表示

気象庁の降水確率は、時間別予報の各行へ無理に複製せず、
元の時間帯単位で地域予報欄へ表示します。

気象庁の降水確率
00~06時 20%
06~12時 30%
12~18時 80%
18~24時 90%

これにより、地点の1時間予報と、
気象庁の広域・時間帯予報を混同しにくくしました。

気象庁の風についても、
Open-Meteoの地点風速とは分けて
「地域の風概況」として表示します。

時間別・週間予報

時間別予報では、今後数時間の、

  • 天気
  • 気温
  • 降水確率
  • 1時間降水量
  • 風速・風向
  • UV指数

を一覧表示します。

「夕方から雨が降るんか?」
「いま買い物へ出た方がええんか?」
という判断が、Cinnamonパネルからすぐできます。

表示時間は設定に応じて3~12時間分です。

週間予報では、最大7日分の天気、
最低・最高気温、降水確率を表示します。

雨・高温・UV通知

設定した条件を超えた場合、
Cinnamonのデスクトップ通知を表示します。

  • 雨が予想されている
  • 最高気温が設定値を超える
  • UV指数が設定値を超える

といった条件を、それぞれ設定できます。

なお、高温通知は気象庁の正式な「熱中症警戒アラート」ではなく、
予想最高気温を使ったJWA独自の簡易通知です。

キャッシュだけで表示している場合は、
古いデータによる誤通知を避けるため通知を抑制します。

都道府県と市区町村から地域を選べる

都道府県と市区町村を選ぶと、気象庁予報区、気温観測地点、緯度・経度を自動設定します。

初期版では、気象庁コードや緯度・経度を
手作業で入力する必要がありました。

現在は、

  1. 都道府県を選択
  2. 市区町村を選択
  3. 設定を保存

するだけで利用できます。

市区町村を選択すると、

  • 気象庁の予報区
  • 気温地点
  • 緯度
  • 経度
  • 表示地域名

を自動的に解決します。

必要であれば、緯度・経度だけを
手動で上書きすることもできます。

通信障害でも、いきなり空表示にならない

天気アプレットはネットワークAPIへ依存しています。

しかし、

  • インターネットが一時的に切れた
  • 気象庁側だけ取得に失敗した
  • Open-Meteo側だけ取得に失敗した
  • APIから壊れたJSONが返った
  • Cinnamon起動直後で通信が完了していない

という理由で、毎回表示が空になるのは困ります。

JWAは、最後に正常取得できた天気データを
ローカルキャッシュへ保存します。

次回起動時はキャッシュを即座に表示し、
その後バックグラウンドで最新データを取得します。

APIの片方だけが失敗した場合も、
取得できた側の新しいデータと、
前回取得した側のデータを組み合わせて表示を続けます。

Providerごとに、

  • fresh
  • previous
  • cache
  • missing

の状態を管理し、
「前回取得データ」「一部は前回取得データ」などと表示します。

キャッシュはインスタンスと地域ごとに分離し、
破損・期限切れ・別地域のデータを安全に除外します。

SVG天気アイコンを同梱

初期版では、天気表示にUnicodeの絵文字を使用していました。

手軽ではあるものの、

  • Linuxディストリビューション
  • 使用フォント
  • Cinnamonテーマ
  • フォントのフォールバック

によって見た目が変わります。

そこで現在は、専用のSVG天気アイコンを同梱しています。

  • Cinnamonパネル
  • 現在の天気
  • 時間別予報
  • 週間予報

で同じデザインのアイコンを使用します。

外部のアイコン配信サービスへ依存しないため、
通信状態やフォント環境に左右されず、表示も安定します。

インストールと使い方

インストール方法

GitHubの
Releases
を開き、最新版のgithub-ready.zipをダウンロードします。

ZIPを展開し、展開したディレクトリへ移動して
インストーラーを実行します。

cd /path/to/extracted-jwa
./install.sh

一般ユーザーが通常利用するために、
単体のgjsコマンドを追加インストールする必要はありません。

X11セッションの場合は、インストール後にCinnamonを再読み込みします。

Alt + F2
r
Enter

その後、

システム設定
  → アプレット
  → JMA Weather Japan
  → パネルへ追加

で利用できます。

古いバージョンから更新して表示が変わらない場合は、
アプレットをパネルから一度外し、もう一度追加してください。

バージョン固有の更新方法と互換性情報は、
各リリースのRelease Notesへまとめています。

動作確認環境

Linux Mint
Cinnamon 6.6
GJS 1.80
X11

対象はLinux Mint専用ではなく、
Linux上のCinnamon desktop environmentです。

上記は開発・実機動作確認を行った環境となります。

Waylandでは、更新後にログアウト・ログインが必要になる場合があります。

ライセンスはMITです。

開発の裏側と今後

Provider構造へリファクタリング

JWAでは、天気データの取得処理を、

  • JmaProvider
  • OpenMeteoProvider
  • WeatherService
  • WeatherSnapshot
  • CacheService

へ分離しています。

applet.js
    ↓
WeatherService
    ├── JmaProvider
    └── OpenMeteoProvider
            ↓
      WeatherSnapshot
            ↓
      Cinnamon UI・通知処理

それぞれのProviderがAPIから返されたデータを解析し、
WeatherServiceが天気情報を統合します。

これにより、

  • データ取得
  • JSON解析
  • 天気情報の統合
  • キャッシュ
  • Cinnamon上の表示

を分離できました。

見た目は小さなパネルアプレットなんですが、
中は割と真面目な構造にしますた……!

ChatGPTとCodexと共同開発(笑)

最初は、ほぼChatGPTとのペアプログラミング状態でした。

俺さん
「こんな機能が欲しい!」

↓

ChatGPT
「ほな、こういう構造にしよう」

↓

俺さん
「実装や!」

↓

「動いたーーーー!!」

その後のリリースではCodexも開発へ加わり、

  • リポジトリの調査
  • 実装
  • 自動テスト
  • Gitブランチ管理
  • Pull Request
  • リリース資材作成
  • GitHub Release

まで進めるようになりました。

もちろん、コードを生成して終わりではありません。

実際には、

  • Cinnamon上での動作確認
  • エラーログの確認
  • APIデータの差異確認
  • 時刻・日付変更時の確認
  • キャッシュ破損時の試験
  • オフライン動作
  • パネル表示と時間別予報の比較

を俺さんがLinux Mint実機で確認しています。

AIが実装案と検証コードを作り、
俺さんが実機で問題点を返す。

思った以上に、本物の開発チームに近い形になってきました。

JWAの歩み

  • v1系:気象庁の今日・週間予報、パネル表示、通知
  • v2系:現在気温、体感温度、時間別予報、UV、詳細通知
  • v3.0系:Provider構造、地域選択、SVG、永続キャッシュ、障害耐性
  • v3.1系:現在時間に同期するパネル表示、導入・設定画面の互換性改善
  • v3.2系:現在・時間別と気象庁地域予報の分離、降水表示の意味を改善

細かな修正内容や各バージョンの更新方法は、
GitHubのCHANGELOGとRelease Notesへまとめています。

「ちょっと作ってみるか」
から始まったものが、
まさかここまで大きくなるとは思わんかったわ。

直近の目標

  • Cinnamon Spicesへの公開準備
  • Cinnamonの新しいバージョンでの互換性確認
  • 利用者から届いたIssueへの対応

長期的には、GNOME Shell版の可能性も検討しています。

おわりに

久しぶりに、

「プログラムを書くの、やっぱり楽しいな!」

と思えた作品になりました。

小さな天気アプレットですが、

  • 日本の天気をすぐ確認したい
  • Cinnamonを日常的に使っている
  • 気温や雨だけでなくUVや体感温度も見たい
  • 広告やニュースのない天気表示が欲しい
  • 通信障害でも表示が消えない天気アプレットが欲しい
  • 地点予報と気象庁の地域予報を分けて確認したい

という方には、便利に使ってもらえると思います。

Cinnamonユーザーの方がおられましたら、
ぜひ触ってみてください。

不具合報告、Issue、Fork、Pull Requestもお待ちしています❤

JMA Weather Widget for Cinnamon


GitHubでJWAを見る

コメント

タイトルとURLをコピーしました
~