【Mac】現在の気温をデスクトップに

最近やたら寒いので、Mac のデスクトップに現在の気温を表示したくなった。
 やり方はいろいろあると思う。一番簡単なやり方は通知センターにある「天気」を利用することだろう。しかし、もっとこう、デスクトップにピタッと貼りつけたいのである。
 なので GeekTool を使う。

GeekTool インストール

GeekTool はパワフルなデスクトップのカスタマイズツールである。下記サイトでダウンロードできる。

🔗 GeekTool

ダウンロードした zip ファイルを解凍して、アプリ本体をアプリケーションフォルダに投入すればインストールは完了だ。
 右クリックの「開く」で起動する。

新規グループを作成して「Enable」にチェックをつければ、準備は完了だ。

まずは時計を表示させてみる

GeekTool は Geeklet というものを生成して、デスクトップに「Shell」、「Web」、「Log」、「Image」を表示できる。
 Geeklet は左欄のアイコンをドラッグするだけで新規に作られる。

ひとまず、簡単に日付けと時間を表示させてみよう。
「Shell」は、コマンドの結果を表示してくれるギークレットだ。これをデスクトップにドラッグ&ドロップ。

コマンドは「Properties」ウィンドウの「command」に書く。

時刻を出してくれるコマンドは「date」である。
 さっそくやってみる。

あっさり出力された。これでも悪くないが、せっかくなのでもっと見やすくしてみる。
 date コマンドは出力のフォーマットを決められるのだ。
 フォーマットの形式は「 % 」とアルファベットの組み合わせだ。必ず「 ” 」で囲み、最初のフォーマットには頭にプラスをつける。

date "+%Y %m %d"

ターミナルを開いて、上記を試してみる。
「2019 01 28」と半角スペースを挟んで、きょうの日付が出力された。
「何月何日」と表示したい場合も簡単である。

date "+%m月%d日"⏎
01月28日

と、日本語もなんのそので出力してくれる。
 代表的のフォーマットは以下の通りだ。

%Y西暦 4 桁(2019)
%y西暦 2 桁(19)
%m月 2 桁(01)
%b or %h月 3 文字(Jan Febなど)
%B月の名前(January February など)
%d日 2 桁(03)
%e日 1 桁(1,2,……30,31)
%j今年から何日目か
を示す(うるう年の大晦日なら 366)
%H24 時間 2 桁(01-24)
%k24 時間 1 桁(1-24)
%I(大文字i)12 時間 2 桁(01-12)
%l(小文字L)12 時間 1 桁(1-12)
%M分 2 桁(00-59)
%S秒 2 桁(00-59)
%s1970年1月1日から
何秒たったか(UNIX Time)
曜日
%a曜日 3 文字(Mon Tueなど)
%A曜日名(Monday Tuesdayなど)
%U週番号 日曜起点(00-53)
%W週番号 月曜起点(00-53)

だいたいこんな感じ。
 さっそく プロパティウィンドウの command 欄に date "+%m月%d日 %a" と入力してみる。

プロパティウィンドウの下のほうにある「style」でスタイルを整える。
 この辺は、他のアプリのフォントの変更とほぼ同じだ。

command 欄の下にある「Refresh every」に秒数を入力すると、その秒数でコマンドを更新してくれる。
 日付だけでなく時計も同じように作った。「Refresh every」を 1 秒に設定すると秒が動く。なかなかいい感じだ。

date のフォーマットは、"+%H:%M:%S" とした。

現在の気温を表示する

自分が住んでいる地域の、現在の気温は、ネットから取得するしか思いつかなかった。
 ひとまず、天気.jp さんのお世話になることにした。

🔗 日本気象協会 tenki.jp【公式】 / 天気・地震・台風

天気.jp さんでは、アメダスのデータを公開してくれている。
 まずは、以下のページで、自分の住んでいる地域に近い場所のアメダスのページを表示させる。

🔗 アメダス実況(気温) – 日本気象協会 tenki.jp

近所のアメダスには、ちゃんと現在の気温が表示されている。
 このページを取得して、現在の気温だけ抜き出して、デスクトップに表示させればいい。URL アドレスをコピーしておく。

以下のようなスクリプトを考えてみた。

curl -Ss https://tenki.jp/amedas/近所のアメダス.html | grep '<li><span class="bold">現在</span>&nbsp;' | sed -e 's/<[^>]*>//g' -e 's/&nbsp;//' -e 's/^ *//g'

「近所のアメダス」は、実際のアドレスに書きかえていただくとして、これを実行してみる。

ちゃんと動いてくれるようだ。
 フォントなどを整えて、更新間隔は 3,600 秒(一時間)としてみた。
 ちなみに上記画像の、丸で囲んだ「…」をクリックすると、ちょっと大きなエディタでコマンドを編集できる。

なかなかいい感じだ。
 天気.jp さんがサイトの仕様を変更したら効かなくなってしまうが、そうなったらまた考える、というものだろう。

Apple に天気の情報を提供しているらしい、The Weather Channel の場合も調べてみた。
 検索窓に県名を入れたり、ローマ字で地名を入れたりして自分の住んでいるところを捜し、以下のような画面を出し、URL をコピーする。

あとは下のスクリプトの「サイトURL」を書き換えるだけだ。

kion=`curl -Ss サイトURL | grep -o "<div\ class=\"today_nowcard-temp\"><span\ class=\"\">[^>]*<sup>°</sup></span></div>" | sed -e 's/<div class="today_nowcard-temp"><span class="">//' -e 's/<sup>°<\/sup><\/span><\/div>//'`
echo '現在 '$kion'°'

2019 年 1 月現在はどうにかこれで表示される。