107 lines
3.2 KiB
Lua
107 lines
3.2 KiB
Lua
local wezterm = require 'wezterm'
|
|
local mux = wezterm.mux
|
|
|
|
local maps = require 'maps'
|
|
|
|
-- STATUSBAR
|
|
-- show currently active key table in lower right status bar
|
|
-- mimicking Vim modes
|
|
wezterm.on('update-right-status', function(window, _)
|
|
local keytable = window:active_key_table()
|
|
if keytable then
|
|
keytable = 'MODE: ' .. keytable
|
|
else
|
|
keytable = ''
|
|
end
|
|
local workspace = window:active_workspace()
|
|
if workspace and workspace ~= 'default' then
|
|
workspace = 'WORKSPACE: ' .. workspace
|
|
else
|
|
workspace = ''
|
|
end
|
|
|
|
local status = keytable .. ' ' .. workspace
|
|
window:set_left_status(status or '')
|
|
|
|
-- "Wed Mar 3 08:14"
|
|
local date = wezterm.strftime '%a %b %-d %H:%M '
|
|
|
|
local bat = ''
|
|
for _, b in ipairs(wezterm.battery_info()) do
|
|
bat =
|
|
'🔋 ' .. string.format('%.0f%%', b.state_of_charge * 100) .. ' ' ..
|
|
b.state
|
|
end
|
|
|
|
window:set_right_status(wezterm.format {{Text = bat .. ' ' .. date}})
|
|
end)
|
|
|
|
wezterm.on("set-up-dotfile-workspace", function(window, pane)
|
|
-- Set a workspace for coding on a current project
|
|
-- Top pane is for the editor, bottom pane is for the build tool
|
|
local project_dir = wezterm.home_dir .. '/projects/test/quarto/quarto-test'
|
|
local tab, build_pane, window = mux.spawn_window {
|
|
workspace = 'coding',
|
|
cwd = project_dir,
|
|
args = args
|
|
}
|
|
local editor_pane = build_pane:split{
|
|
direction = 'Top',
|
|
size = 0.6,
|
|
cwd = project_dir
|
|
}
|
|
build_pane:send_text 'quarto check'
|
|
mux.set_active_workspace 'coding'
|
|
end)
|
|
--
|
|
-- wezterm.on('gui-startup', function(cmd)
|
|
-- -- allow `wezterm start -- something` to affect what we spawn
|
|
-- -- in our initial window
|
|
-- local args = {}
|
|
-- if cmd then args = cmd.args end
|
|
--
|
|
-- -- Set a workspace for coding on a current project
|
|
-- -- Top pane is for the editor, bottom pane is for the build tool
|
|
-- local project_dir = wezterm.home_dir .. '/projects/test/quarto/quarto-test'
|
|
-- local tab, build_pane, window = mux.spawn_window {
|
|
-- workspace = 'coding',
|
|
-- cwd = project_dir,
|
|
-- args = args
|
|
-- }
|
|
-- local editor_pane = build_pane:split {
|
|
-- direction = 'Top',
|
|
-- size = 0.6,
|
|
-- cwd = project_dir
|
|
-- }
|
|
-- build_pane:send_text 'quarto check'
|
|
--
|
|
-- -- A workspace for interacting with a local machine that
|
|
-- -- runs some docker containners for home automation
|
|
-- local tab, pane, window = mux.spawn_window {
|
|
-- workspace = 'toppy',
|
|
-- args = { 'top' }
|
|
-- }
|
|
--
|
|
-- -- We want to startup in the coding workspace
|
|
-- mux.set_active_workspace 'coding'
|
|
-- end)
|
|
|
|
return {
|
|
enable_wayland = true,
|
|
|
|
hide_tab_bar_if_only_one_tab = true,
|
|
use_fancy_tab_bar = false,
|
|
tab_bar_at_bottom = true,
|
|
window_padding = {left = 0, right = 0, top = 0, bottom = 0},
|
|
|
|
color_scheme = "Nord (base16)",
|
|
-- default_prog = {"nu"},
|
|
scrollback_lines = 10000,
|
|
|
|
font = wezterm.font('Liga Iosevka'),
|
|
line_height = 1.0,
|
|
|
|
leader = {key = 'a', mods = 'CTRL', timeout_milliseconds = 1500},
|
|
keys = maps.keys,
|
|
key_tables = maps.key_tables
|
|
}
|