local wezterm = require 'wezterm' local act = wezterm.action local config = wezterm.config_builder() config.enable_scroll_bar = true config.scrollback_lines = 12000 config.font = wezterm.font_with_fallback { 'Fira Code', 'FiraCode NF', 'FiraMono', 'Jetbrains Mono', 'Broot Icons Visual Studio Code', } config.font_size = {{cfg.wezterm.font_size}} config.color_scheme = 'Dracula' config.window_background_gradient = { orientation = 'Vertical', colors = { '#1f142c', '#191023', }, } config.inactive_pane_hsb = { saturation = 0.9, brightness = 0.65, } config.window_frame = { active_titlebar_bg = '#090909', -- inactive_titlebar_bg = '#1A002A', } config.colors = { tab_bar = { background = '#3A2A4D', new_tab = { bg_color = '#3A2A4D', fg_color = '#ffffff', }, new_tab_hover = { bg_color = '#2B1C3D', fg_color = '#ffffff', italic = false, }, }, } config.window_padding = { left = 10, right = 10, top = 10, bottom = 10 } config.use_fancy_tab_bar = false config.tab_max_width = 32 local function tab_title(tab) local title = tab.tab_title -- if the tab title is explicitly set, take that if title and #title > 0 then return title end local panetitle = tab.active_pane.title if panetitle and #panetitle > 0 then return panetitle end -- Otherwise, use the default title. return "Tab #" .. tab.tab_index + 1 end wezterm.on("format-tab-title", function(tab, _, _, _, _, max_width) local solid_left_arrow = "" local solid_right_arrow = "" local bg_color = "#3A2A4D" local bg_active_color = "#2B1C3D" local fg_color = "#FFFFFF" local fg_active_color = "#FFFFFF" -- Edge icon color local edge_icon_bg = bg_color local edge_icon_fg = bg_color -- Inactive tab local tab_bg_color = bg_active_color local tab_fg_color = fg_color if tab.is_active then tab_bg_color = fg_active_color tab_fg_color = bg_color end edge_icon_fg = tab_bg_color local title = wezterm.truncate_right(tab_title(tab), max_width - 4) title = " "..title.." " return { { Background = { Color = edge_icon_bg } }, { Foreground = { Color = edge_icon_fg } }, { Text = solid_left_arrow }, { Background = { Color = tab_bg_color } }, { Foreground = { Color = tab_fg_color } }, { Text = title }, { Background = { Color = edge_icon_bg } }, { Foreground = { Color = edge_icon_fg } }, { Text = solid_right_arrow }, } end) -- keybinds, mostly inspired by konsole config.keys = { { key = 't', mods = 'CTRL|SHIFT', action = act.SpawnTab 'CurrentPaneDomain', }, { key = 'w', mods = 'SHIFT | CTRL', action = act.CloseCurrentTab { confirm = true } }, { key = 'RightArrow', mods = 'SHIFT', action = act.ActivateTabRelative(1) }, { key = 'LeftArrow', mods = 'SHIFT', action = act.ActivateTabRelative(-1) }, { key = 'l', mods = 'SHIFT | ALT', action = act.ActivateTabRelative(1) }, { key = 'h', mods = 'SHIFT | ALT', action = act.ActivateTabRelative(-1) }, { key = 'n', mods = 'CTRL', action = act.SpawnWindow }, } {{#if flags.windows}} -- Windows specific configuration config.default_prog = { 'nu' } {{/if}} {{#if flags.unix}} -- Linux specific configuration {{/if}} return config