local wezterm = require("wezterm") local maps = require("maps") require("statusbar").setup() require("events").setup() local function file_exists(name) local f = io.open(name, "r") if f ~= nil then io.close(f) return true else return false end end -- automatically reload colors file local colorsfile = (os.getenv("XDG_STATE_HOME") or (os.getenv("HOME") .. "/.local/state")) .. "/wezterm/colors.toml" local colors = {} if file_exists(colorsfile) == true then wezterm.add_to_config_reload_watch_list(colorsfile) colors = wezterm.color.load_scheme(colorsfile) end local settings = { 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 }, colors = colors, color_scheme = "Nord (base16)", -- will be overwritten by colors -- default_prog = {"nu"}, scrollback_lines = 10000, font = wezterm.font("Iosevka Nerd Font"), -- add cursive italic font from Victor font for all weights font_rules = { { intensity = "Bold", italic = true, font = wezterm.font({ family = "VictorMono Nerd Font", weight = "Bold", style = "Italic", }), }, { italic = true, intensity = "Half", font = wezterm.font({ family = "VictorMono Nerd Font", weight = "DemiBold", style = "Italic", }), }, { italic = true, intensity = "Normal", font = wezterm.font({ family = "VictorMono Nerd Font", style = "Italic", }), }, }, line_height = 1.0, leader = { key = "a", mods = "CTRL", timeout_milliseconds = 1500 }, keys = maps.keys, key_tables = maps.key_tables, mouse_bindings = { { event = { Up = { streak = 1, button = "Left" } }, mods = "NONE", action = wezterm.action.CompleteSelectionOrOpenLinkAtMouseCursor("ClipboardAndPrimarySelection"), }, }, } return settings