dippin-dotfiles/.config/wezterm/events/update_status.lua

62 lines
2.2 KiB
Lua

local wezterm = require("wezterm") --[[@as Wezterm]]
local util = require("util")
local scheme = util.get_schemes()["Everforest Dark Soft (Gogh)"]
wezterm.on("update-status", function(window, pane)
local right_status = {}
-- modes
local modes = {
copy_mode = { text = " 󰆏 COPY ", bg = scheme.brights[3] },
search_mode = { text = " 󰍉 SEARCH ", bg = scheme.brights[4] }
}
local name = window:active_key_table()
local mode_fmt = {}
if name and modes[name] then
mode_fmt = modes[name]
table.insert(right_status, { Background = { Color = mode_fmt["bg"] } })
table.insert(right_status, { Foreground = { Color = scheme.ansi[1] } })
table.insert(right_status, { Attribute = { Intensity = "Bold" } })
table.insert(right_status, { Attribute = { Italic = true } })
table.insert(right_status, { Text = mode_fmt["text"] })
end
-- cwd
local cwd = pane:get_current_working_dir()
local cwd_path = ""
if cwd then
cwd_path = cwd.file_path
end
local home_dir = os.getenv("HOME")
local config_dir = os.getenv("XDG_CONFIG_HOME") or home_dir .. "/.config"
if cwd_path:find(config_dir, 1, true) == 1 then
cwd_path = string.gsub(cwd_path, config_dir, "")
end
local dev_dir = home_dir .. "/workspace"
if cwd_path:find(dev_dir, 1, true) == 1 then
cwd_path = string.gsub(cwd_path, dev_dir, "")
end
if home_dir and cwd_path:find(home_dir, 1, true) == 1 then
cwd_path = string.gsub(cwd_path, home_dir, "")
end
table.insert(right_status, "ResetAttributes")
if cwd_path ~= "" then
table.insert(right_status, { Background = { Color = scheme.ansi[8] } })
table.insert(right_status, { Foreground = { Color = scheme.ansi[1] } })
table.insert(right_status, { Attribute = { Intensity = "Bold" } })
table.insert(right_status, { Text = cwd_path .. " " })
end
-- domain name
table.insert(right_status, { Background = { Color = scheme.brights[1] } })
table.insert(right_status, { Foreground = { Color = scheme.ansi[8] } })
table.insert(right_status, { Text = " " .. pane:get_domain_name() .. " " })
window:set_right_status(wezterm.format(right_status))
end)