dotfiles/wezterm/wezterm.lua

123 lines
3.1 KiB
Lua

local wezterm = require("wezterm")
local act = wezterm.action
local hostname = wezterm.hostname()
--
-- Main configuration.
--
config = {
-- Set up our font.
font = wezterm.font_with_fallback({
"MonoLisa",
"Codicons",
}),
font_size = 14,
-- Color scheme stuff.
color_scheme = "Solarized Dark - Patched",
-- Generel config.
term = "wezterm",
-- Get rid of the annoying update popups we can't do anything about.
check_for_updates = false,
-- Automatically reload our config on changes.
automatically_reload_config = true,
-- Improve tab viewing by disabling native wonk,
-- and make it behave more like Tmux.
hide_tab_bar_if_only_one_tab = true,
use_fancy_tab_bar = false,
tab_bar_at_bottom = true,
tab_max_width = 32,
-- Disable window styling, where possible.
window_decorations = "NONE",
-- Use WebGpu, when we can.
front_end = "WebGpu",
-- Tab bar styling.
colors = {
tab_bar = {
background = "#002b36",
active_tab = {
bg_color = "#073642",
fg_color = "#268bd2",
intensity = "Bold",
},
inactive_tab = {
bg_color = "#002b36",
fg_color = "#586e75",
},
new_tab = {
bg_color = "#002b36",
fg_color = "#586e75",
},
},
},
-- Set up multiplexing.
unix_domains = { { name = "unix" } },
ssh_domains = {
{
name = "trailblazer",
remote_address = "trailblazer",
remote_wezterm_path = "/run/current-system/sw/bin/wezterm",
},
{ name = "valere", remote_address = "valere", remote_wezterm_path = "/run/current-system/sw/bin/wezterm" },
{ name = "hinata", remote_address = "hinata", remote_wezterm_path = "/run/current-system/sw/bin/wezterm" },
},
-- Key bindings.
keys = {
-- Generic customization.
{ key = "l", mods = "SHIFT|CTRL", action = "ShowDebugOverlay" },
{ key = "Enter", mods = "ALT", action = "DisableDefaultAssignment" },
{ key = "Enter", mods = "SUPER", action = "ToggleFullScreen" },
},
}
--
-- Font Size Tweaks
--
font_overrides = {
miko = 10,
hinata = 15,
valere = 12,
utol = 13,
trailblazer = 11,
kanbaru = 12,
aigis = 12,
komashi = 12,
}
if font_overrides[hostname] ~= nil then
config.font_size = font_overrides[hostname]
end
--
-- Increase tab bar spacing.
--
wezterm.on("format-tab-title", function(tab, tabs, panes, config, hover, max_width)
-- Truncate our title so we have room for a padding space at the end.
local title = wezterm.truncate_right(tab.active_pane.title, max_width - 6)
local number = tostring((tab.tab_index + 1) % 10)
-- Generate the tab format.
return " " .. number .. ": " .. title .. " "
end)
-- Windows support.
-- Possibly replace with a per-platform equivalent?'
--if (hostname == "hinata") then
if wezterm.target_triple == "x86_64-unknown-linux-gnu" then
config["default_prog"] = { "/run/current-system/sw/bin/zellij", "-l", "welcome" }
end
return config