wezterm: refactor config and add session management

This commit is contained in:
Noah Masur 2024-11-17 13:16:58 -07:00
parent 7128cd8d0d
commit ce298b9600
No known key found for this signature in database

View File

@ -102,49 +102,76 @@
}; };
}; };
extraConfig = '' extraConfig = ''
return { local wezterm = require("wezterm")
color_scheme = "myTheme", local config = wezterm.config_builder()
config.check_for_updates = false
config.color_scheme = "myTheme"
-- Scrollback -- Scrollback
scrollback_lines = 10000, config.scrollback_lines = 10000
-- Window -- Window
window_padding = { config.window_padding = {
left = 10, left = 10,
right = 10, right = 10,
top = 10, top = 10,
bottom = 10, bottom = 10,
}, }
font = wezterm.font('${font}', { weight = 'Bold'}), config.font = wezterm.font('${font}', { weight = 'Bold'})
font_size = ${if pkgs.stdenv.isLinux then "14.0" else "18.0"}, config.font_size = ${if pkgs.stdenv.isLinux then "14.0" else "18.0"}
-- Fix color blocks instead of text -- Fix color blocks instead of text
front_end = "WebGpu", config.front_end = "WebGpu"
-- Tab Bar -- Tab Bar
hide_tab_bar_if_only_one_tab = true, config.hide_tab_bar_if_only_one_tab = true
window_frame = { config.window_frame = {
font = wezterm.font('${font}', { weight = 'Bold'}), font = wezterm.font('${font}', { weight = 'Bold'}),
font_size = ${if pkgs.stdenv.isLinux then "12.0" else "16.0"}, font_size = ${if pkgs.stdenv.isLinux then "12.0" else "16.0"},
}, }
colors = { config.colors = {
tab_bar = { tab_bar = {
active_tab = { active_tab = {
bg_color = '${config.theme.colors.base00}', bg_color = '${config.theme.colors.base00}',
fg_color = '${config.theme.colors.base04}', fg_color = '${config.theme.colors.base04}',
}, },
}, },
}, }
-- Disable audio -- Disable audio
audible_bell = "Disabled", config.audible_bell = "Disabled"
initial_rows = 80, config.initial_rows = 80
initial_cols = 200, config.initial_cols = 200
keys = { config.unix_domains = {
{
name = 'unix',
},
}
config.leader = {
key = 'a',
mods = 'CTRL',
timeout_milliseconds = 2000,
}
config.keys = {
-- Attach to muxer
{
key = 'a',
mods = 'LEADER',
action = wezterm.action.AttachDomain 'unix',
},
-- Detach from muxer
{
key = 'd',
mods = 'LEADER',
action = wezterm.action.DetachDomain { DomainName = 'unix' },
},
-- sends completion string for fish autosuggestions -- sends completion string for fish autosuggestions
{ {
key = 'Enter', key = 'Enter',
@ -229,8 +256,23 @@
) )
end), end),
}, },
},
} }
-- print the workspace name at the upper right
wezterm.on("update-right-status", function(window, pane)
window:set_right_status(window:active_workspace())
end)
-- load plugin
local workspace_switcher = wezterm.plugin.require("https://github.com/MLFlexer/smart_workspace_switcher.wezterm")
-- set path to zoxide
workspace_switcher.zoxide_path = "${pkgs.zoxide}/bin/zoxide"
-- keymaps
table.insert(config.keys, { key = "s", mods = "CTRL|SHIFT", action = workspace_switcher.switch_workspace() })
-- table.insert(config.keys, { key = "t", mods = "CTRL|SHIFT", action = wezterm.action.ShowLauncherArgs({ flags = "FUZZY|WORKSPACES" }) })
table.insert(config.keys, { key = "[", mods = "CTRL|SHIFT", action = wezterm.action.SwitchWorkspaceRelative(1) })
table.insert(config.keys, { key = "]", mods = "CTRL|SHIFT", action = wezterm.action.SwitchWorkspaceRelative(-1) })
return config
''; '';
}; };
}; };