macのメニューバーに今日の残り分数を表示する
少し前に、『1440分の使い方』という本を読んで感銘を受けた。
そこでふと思いつきで、Macbook のメニューバーに1日の残り分数を出してみた。
xbar
メニューバーのカスタマイズというと SwiftBar というのがあったのだけど、開発が止まったらしい。 後継として xbar というのがあったので、それを使ってみることにした。
最近仕事でよく使っている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