ないなら作る.
Intel mac では bitbar(今はxbar)[1] と smcFanControl を使ってツールバーにCPUの温度を表示していた[2]. しかし smcFanControl は M1 mac には非対応なので使えない.
ということで, M1 mac で温度モニタできるようにする. xbar をそのまま利用するのであれば, コマンドラインから温度が取れればOK. ソースコードは以下.
M1 mac で温度モニタするツールは先駆者がいたので[3], それをもとに "SOC"
の温度だけ抜き出して, 平均を取るようにした. ソースコードでいうと L. 148-166 の dumpValues
の中身を変更した. Object C なんてなんもわからん. シェルが得意であればもとのソースコードのままシェルで整形できるんだろうな.
あとはコンパイルして
$ clang -Wall -v sensor.m -framework IOKit -framework Foundation -o sensor
シンボリックリンク作るだけ.
$ ln ./sensor /usr/local/bin/sensor
温度取るほうでほとんど整形してあるので, xbar で値を表示するスクリプトは単位つけるだけ. 拡張子の前の 20s
は更新間隔. 20秒にしてある.
temp_scan.20s.sh
#!/bin/bash
LABEL="℃"
data=$(/usr/local/bin/sensor)
echo "${data}$LABEL"
xbar を起動して設定からスクリプト (temp_scan.20s.sh
) があるディレクトリを選択する.

M1 mac で温度表示できた! pic.twitter.com/WN2leZGtp1
— toms (@toms74209200) April 22, 2021
0 件のコメント:
コメントを投稿