123 lines
3.1 KiB
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
|