local wezterm = require("wezterm") -- Equivalent to POSIX basename(3) -- Given "/foo/bar" returns "bar" -- Given "c:\\foo\\bar" returns "bar" function basename(s) return string.gsub(s, "(.*[/\\])(.*)", "%2") end wezterm.on("update-right-status", function(window, pane) local scheme = wezterm.color.get_builtin_schemes()["Catppuccin Macchiato"] -- Each element holds the text for a cell in a "powerline" style << fade local cells = {} -- Show current active key table local name = window:active_key_table() if name then name = "TABLE: " .. name table.insert(cells, name) end -- I like my date/time in this style: "Wed Mar 3 08:14" -- local date = wezterm.strftime("%a %b %-d %H:%M") local date = wezterm.strftime("%Y-%m-%d") table.insert(cells, date) local time = wezterm.strftime("%H:%M") table.insert(cells, time) -- Get current hostname to track which device I'm on table.insert(cells, wezterm.hostname()) -- An entry for each battery (typically 0 or 1 battery) for _, b in ipairs(wezterm.battery_info()) do table.insert(cells, string.format("%.0f%%", b.state_of_charge * 100)) end -- The powerline ( symbol local LEFT_SEP = utf8.char(0xe0b7) -- The filled in variant of the ( symbol local SOLID_LEFT_SEP = utf8.char(0xe0b6) -- Define various colours used from active colourscheme local tab_bar_bg = "#333333" -- Not defined in scheme for some reason... local tab_bg = scheme.foreground local tab_fg = scheme.background -- The elements to be formatted local elements = {} table.insert(elements, { Foreground = { Color = tab_bg } }) table.insert(elements, { Background = { Color = tab_bar_bg } }) table.insert(elements, { Text = SOLID_LEFT_SEP }) while #cells > 1 do local text = table.remove(cells, 1) table.insert(elements, { Foreground = { Color = tab_fg } }) table.insert(elements, { Background = { Color = tab_bg } }) table.insert(elements, { Text = " " .. text .. " " }) table.insert(elements, { Foreground = { Color = tab_fg } }) table.insert(elements, { Text = LEFT_SEP }) end local text = table.remove(cells, 1) table.insert(elements, { Foreground = { Color = tab_fg } }) table.insert(elements, { Background = { Color = tab_bg } }) table.insert(elements, { Text = " " .. text .. " " }) window:set_right_status(wezterm.format(elements)) end)