🔠
WezTermで日替わりフォントを設定する
動機
最近は、IBM Plex Sans JPやモリサワBIZ UDなど、フリーの日本語フォントが随分増えてきました。選択肢が増えるのはいいことですが、そうなるとどのフォントを使えばいいのか迷ってしまいます。
それならばいっそのこと、日替わりでフォントが変更されるように設定してしまえ、と思い付いたのでやってみました。Luaで設定が書けるのでできちゃうんです。そう、WezTermならね。
設定
というわけで設定方法です。
wezterm.lua
local function append_table(table, other)
for k, v in pairs(other) do
table[k] = v
end
end
local font_list = {
{
name = "PlemolJP",
setting = {
font = wezterm.font("PlemolJP Console", { weight = "Medium" }),
},
},
{
name = "UDEV Gothic",
setting = {
font = wezterm.font("UDEV Gothic"),
},
},
{
name = "Fira Code",
setting = {
font = wezterm.font_with_fallback({
"FiraCode Nerd Font",
"UDEV Gothic",
}),
},
},
}
local date = os.date("*t")["yday"]
local today_font = font_list[(date % #font_list) + 1]
local settings = {
launch_menu = {
{
label = "Font: " .. today_font["name"],
args = { "nvim", "~/.config/wezterm/wezterm.lua" },
},
},
}
append_table(settings, today_font["setting"])
return settings
補足
大したことはやってないですね。 font_list
に使いたいフォントを入れておきます。nameはフォントを識別するための任意の名前です。settingはあとでweztermの設定にマージされるので、font_size
なんかを一緒に設定しておくことも可能です。
あとはここの+1のところがミソで、Luaの配列インデックスは1始まりなので、これがないとある日突然(割った余りが0になった日に)エラーになります。
local today_font = font_list[(date % #font_list) + 1]
実際に使われているフォントがどれなのかわからなくなってしまうので、今日のフォントをLauncher Menuに表示するようにしています。
launch_menu = {
{
label = "Font: " .. today_font["name"],
args = { "nvim", "~/.config/wezterm/wezterm.lua" },
},
},
私の使っている設定ファイル全体はこちらにあるので参考までにどうぞ。
最後に
やってみると毎日気分が変わって面白いです。
また、WezTermについてはこちらの記事もどうぞ。私がWezTermを使うきっかけになった記事です。
Discussion