62 lines
2.2 KiB
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)
|