macのメニューバーに今日の残り分数を表示する

少し前に、『1440分の使い方』という本を読んで感銘を受けた。

www.amazon.co.jp

そこでふと思いつきで、Macbook のメニューバーに1日の残り分数を出してみた。

xbar

メニューバーのカスタマイズというと SwiftBar というのがあったのだけど、開発が止まったらしい。 後継として xbar というのがあったので、それを使ってみることにした。

github.com

最近仕事でよく使っているGo言語もサポートしているので、ここでも使ってみることにした。

Code

unixtimeで差分を計算して表示するコードを書いた。 さっと適当に書いたものなので厳密ではないかもしれないが、ここでは許容した。

package main

import (
    "fmt"
    "time"
)

func main() {
    // 今日 23:59:59 の unixtime を取得する
    t := time.Now()
    loc, _ := time.LoadLocation("Asia/Tokyo")
    // NOTE: 常に今日の 23:59:59 にすることで閏年を考慮しなくて済む
    dt := time.Date(t.Year(), t.Month(), t.Day(), 23, 59, 59, 0, loc)
    lastUnixTimeToday := dt.Unix()

    // 現在の unixtime を取得する
    currentUnixTime := time.Now().Unix()

    // 差分を計算
    diff := lastUnixTimeToday - currentUnixTime

    // 残り分数として表示
    fmt.Println(diff/60)
}

設定

$ go build main.go
$ mv ./main ~/Library/Application\ Support/xbar/plugins/file.1s.cgo

完成

f:id:suzusin:20220106141640g:plain
countdown