最新版情報
- 安定版:v3.2.0
- 公開日:2026年7月24日
- 対象:Linux上のCinnamon desktop environment
現在・時間別の地点データと、気象庁の地域予報を分けて表示し、
降水確率だけでは雨アイコンへ変更しないよう改善しています。
現在の推定天気、時間別予報、気象庁の地域予報、週間予報をひとつのメニューで確認できます。こんな方におすすめです
- 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では、パネルの天気アイコンと降水確率を、
現在時刻に対応する同じ時間別予報から取得します。
気温については、時間別の予想気温へ置き換えず、
現在値を表示します。
天気アイコン:現在時間の時間別予報
降水確率 :同じ時間別予報
気温 :現在値
単純に時間別予報の先頭行を使うのではなく、
各予報の日時を確認し、次の順番で選択します。
- 現在時刻以前で最も新しい予報
- それがなければ最初の未来予報
- 有効な時間別予報がなければ現在天気
日付変更、未整列・重複・不正日時、
タイムゾーンの違いも考慮しています。
気象庁の降水確率は時間帯単位で表示
気象庁の降水確率は、時間別予報の各行へ無理に複製せず、
元の時間帯単位で地域予報欄へ表示します。
気象庁の降水確率
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独自の簡易通知です。
キャッシュだけで表示している場合は、
古いデータによる誤通知を避けるため通知を抑制します。
都道府県と市区町村から地域を選べる
都道府県と市区町村を選ぶと、気象庁予報区、気温観測地点、緯度・経度を自動設定します。初期版では、気象庁コードや緯度・経度を
手作業で入力する必要がありました。
現在は、
- 都道府県を選択
- 市区町村を選択
- 設定を保存
するだけで利用できます。
市区町村を選択すると、
- 気象庁の予報区
- 気温地点
- 緯度
- 経度
- 表示地域名
を自動的に解決します。
必要であれば、緯度・経度だけを
手動で上書きすることもできます。
通信障害でも、いきなり空表示にならない
天気アプレットはネットワーク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では、天気データの取得処理を、
JmaProviderOpenMeteoProviderWeatherServiceWeatherSnapshotCacheService
へ分離しています。
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


コメント