Mentioned in days
yoshioriさんのオンラインミーティングが始まったら自動で点灯するオンエアーネオンライト作った - 宇宙行きたい を参考に、自動でオン・オフするライトを設置してみた。
ハードウェアの設置は、まあ置けば完了で。意外と苦戦したのが「オン・オフ」を制御するソフトウェアの方。yoshioriさんの記事ではLinuxだとlsofコマンドでシュッと確認できそうなことが書いてあるが、ぼくがmacOSで試したところうまくいかなかった。
AI Agentに「カメラとマイクの使用を検出したい」と相談したらいろんなコマンドを試してくれておもしろかった。
lsof | grep -i "camera" | cat
lsof | grep -i "camera" | grep -v "mscamerad" | grep -v "ptpcamera"
lsof | grep -i "audio" | grep -v "coreaudio" | grep -v "VDC"
lsof -c coreaudiod | grep -i "zoom" | head -10
ioreg -l | grep -i "audio" | cat
ioreg -l | grep -i "audio" | grep -i "input" | grep -i "active.*= *1"
ioreg -l | grep -i "IOAudioEngine" | grep -i "active" | head -20
system_profiler SPAudioDataType | grep -A 20 -i "input"
grep -a0 -i 'running' < /dev/null || ps aux | grep -i "audio" | grep -v grep
ps aux | grep -i "AudioService"
結局、ぼくの手元で検証した限りにおいてはコマンドでの検出はうまくいかず、どうしようかな〜と考えた末、メニューバーのスクリーンショットを撮ってその内容から判定する方式に切り替えた。macOS Sequoiaだと、マイクやカメラを使うと状況メニューってところにオレンジやグリーンのアイコンが表示されるので、これを見て「使用中」を判定する。
このアイディアをAI Agentに伝えたらピピッと実装してくれたのでよかった。あとは、できあがったスクリプトをlaunchdに登録して、macOSの起動時に自動実行してもらえるようにする。これでソフトウェア部分も完成。
給油した日・洗車した日。昼間は日差しがあたたかくて「洗車をするならこういうあたたかい日がいいな」と思ってガソリン・スタンドに寄ったのだった。
乾燥フェーズで登場する「温風を出すバー」みたいなやつに「↑自動で上昇します↑」と書いてあって、おもしろいと感じた。これを書いてあることで「バーが前方からまっすぐに迫ってきてフロントガラスにぶつかることはないよ」が車内の人に伝わるってことだろうか…?
macOS SonomaからmacOS Sequoiaにバージョンを上げたよ。数時間ほど使ってみて、とくに問題は起きていない。あれこれ実務を進めていく中で「あれ、これが動かないか」ってなるかもね。
夜になって「なんか調子が出ないのは、急に寒くなったからでは?」と思えてきて、防寒アクションをやっていった。湯船にお湯をはってゆっくりつかってみたり、お布団にホット・カーペットを仕込んでみたり。
ホット・カーペットを仕込むために敷き布団のカバーを外してみたらクーリッシュの抜け殻が登場して「は???」となった。たぶん数ヶ月前の自分が、お布団の上でゴロゴロしながら吸っていたんだろうね…?
