Evie Litherland-Smith
b102f9e209
Reduce complexity and in flake.nix and be more efficient in re-using things Removed some reduandant files in home/ and tidied up the structure somewhat Moved things from desktop, gui, etc... to top level Changed env to shell, indiv shell expressions import relevant others
77 lines
2.7 KiB
Lua
77 lines
2.7 KiB
Lua
local wezterm = require "wezterm"
|
|
|
|
-- The filled in variant of the powerline ( symbol
|
|
local SOLID_LEFT_SEP = require("utf8").char(0xe0b6)
|
|
|
|
local M = {}
|
|
M.setup = function(scheme)
|
|
wezterm.on("update-right-status", function(window, _)
|
|
-- 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
|
|
|
|
local date = wezterm.strftime("%a %-d %b %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
|
|
|
|
-- Foreground color for the text across the fade
|
|
local text_fg = scheme.tab_bar.active_tab.fg_color
|
|
-- Tab bar background to complete fade
|
|
local tab_bar_bg = scheme.tab_bar.background
|
|
-- Color palette for the backgrounds of each cell
|
|
local colours = wezterm.color.gradient({
|
|
colors = {
|
|
scheme.tab_bar.new_tab.bg_color,
|
|
scheme.tab_bar.active_tab.bg_color,
|
|
},
|
|
}, #cells + 1)
|
|
|
|
-- The elements to be formatted
|
|
local elements = {}
|
|
-- How many cells have been formatted
|
|
local num_cells = 0
|
|
|
|
-- Translate a cell into elements
|
|
local function push(text, is_last)
|
|
local cell_no = num_cells + 1
|
|
table.insert(elements, { Foreground = { Color = text_fg } })
|
|
table.insert(elements, { Background = { Color = colours[cell_no + 1] } })
|
|
table.insert(elements, { Text = text })
|
|
if not is_last then
|
|
table.insert(elements, { Foreground = { Color = colours[cell_no + 2] } })
|
|
table.insert(elements, { Text = " " .. SOLID_LEFT_SEP })
|
|
end
|
|
num_cells = num_cells + 1
|
|
end
|
|
|
|
table.insert(elements, { Foreground = { Color = colours[num_cells + 2] } })
|
|
table.insert(elements, { Background = { Color = tab_bar_bg } })
|
|
table.insert(elements, { Text = SOLID_LEFT_SEP })
|
|
while #cells > 0 do
|
|
local cell = table.remove(cells, 1)
|
|
push(cell, #cells == 0)
|
|
end
|
|
|
|
if os.getenv("XDG_CURRENT_DESKTOP") ~= "i3" then
|
|
window:set_right_status(wezterm.format(elements))
|
|
end
|
|
end)
|
|
end
|
|
return M
|