【Mac】デスクトップに現在の気温を表示したい 2023

2023年1月26日

デスクトップに現在の気温を表示したい 2023

筆者はデスクトップに現在の気温を表示したい、という強い欲望を持っていて、以前、下のような記事を書いたりした。

デスクトップに気温を表示したいなぁ、というあまりに強い欲望が心身を蝕むにいたり、いまや外見が醜く変貌し、禿げた怪物みたいになっているのだが、そんな群馬のケダモノを Apple も憐れと思ったか、macOS 13 ventura には「天気.app」という iPhoneではお馴染の天気予報アプリが追加されたのだった。

天気.app アイコン

これのなにが良いといって、ショートカット.app で天気と気温が取得できるようになったのである。もうこそこそ web スクレイピングみたいなことしなくてもいいのだ。

ショートカット.app で現在の天気と気温を取得する

やり方は簡単で、ショートカット.app を起動したら新規ショートカットを作り、右のエリアの「カテゴリ」>「場所」>「天気」から、「現在の天気を取得」を選び、左の広いところのドロップする。
 結果はテキストファイルに書き出すことにする。右のエリア「カテゴリ」>「書類」から「ファイルを保存」を左へドロップする。

ショートカット.app の様子

とりあえず上の画像のように、デスクトップに「kion.txt」という名前で保存することにした。
 右上の再生ボタンを押してテストすると、うまいこと動いてくれる。

ショートカット書類をコマンドで走らせる

これを、GeekTool でデスクトップに表示させるわけだ。
 注意として macOS ventura のステージマネージャを使っていると、GeekTool がうまく操作できない。コントロールセンターでステージマネージャを切っておくのがいいだろう。

コントロールセンターでステージマネージャを切っておく

GeekTool はコマンドの結果などをデスクトップに表示してくれるアプリだ。ということは、ショートカットをコマンドで実行する必要がある。
 ショートカットをターミナルで走らせる方法は、

shortcuts run "ショートカット名"

これで OK。
 ショートカット名を調べるには、 shortcuts list を実行する。

> shortcuts list
天気
IPアドレス
自前リーディングリスト
休憩する
最新の写真をメッセージで送信
Shazamショートカット
音楽クイズ
自前リーディングリスト
ファイルを移動
ファイルを保存
ウィンドウのスクショ
天気をテキストに書き出し

GeekTool のコマンド欄には、以下のように書いた。

shortcuts run "天気をテキストに書き出し"
sleep 5
cat ~/Desktop/kion.txt

sleep 5 ってのはなんなんだ、という話だが、ショートカットの天気の取得にちょっと時間がかかるのである。なので 5 秒ばかり待たせてみた。
 また実行の間隔は 30 分ごと、1800 秒とした。

GeekTool の様子

これで 30 分ごとに現在の天気と気温が表示されるようになった。
 なお shortcuts コマンドは -i オプションで入力、 -o オプションで出力が出来る。
 詳しくは下記の通りだ。

🔗 コマンドラインからショートカットを実行する – Apple サポート (日本)

kion.txt

kion.txt をデスクトップに置くのもなんなんで、書類フォルダの目立たないところに保存することにする。
 天気と気温をテキストとして書き出しておけば、いろんなことに使えて便利だと思うのだ。
 例えば以下は、Hammerspoon でホットキーを押した時、時刻、天気、気温を打ち出すスクリプトだ。

📝 init.lua

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "T", function()
    local time = hs.execute("date +%H:%M")
    local weather = hs.execute("cat ~/Documents/weather/kion.txt")
    local str = '**'..time..' '..weather..'**'
    str = string.gsub(str, "\n", "")
    hs.pasteboard.setContents(str)
    hs.eventtap.keyStroke({"cmd"}, "v", 0)
end)

string.gsub で改行を削除している。
 hs.pasteboard.setContents でクリップボードに時刻と天気をコピーし、 keyStrokecommand + v を実行しペーストするという仕掛けだ。

おもに Obsidian で command + option + control + t を押し、現在時刻と天気を挿入する時に使っている。

Obsidian で利用する

天気と同じように、場所の情報とか、緯度、経度、高度なんかも取得できるみたいだ。いろいろ工夫すれば MacBook Air を持って遠出するのが楽しくなるのでは、と思う。