-
Download wezterm https://wezterm.org/install/linux.html#__tabbed_1_3
-
Download and install the needed fonts
mkdir -p ~/.local/share/fonts cd ~/.local/share/fonts wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraCode.zip unzip FiraCode.zip fc-cache -fv
-
Create a file a file
~/.wezterm.lua -
Fill the file content:
local wezterm = require("wezterm") local config = wezterm.config_builder() -- ─── Font ──────────────────────────────────────────────────────────────────── config.font = wezterm.font("FiraCode Nerd Font", { weight = "Regular" }) config.font_size = 13.5 config.line_height = 1.3 config.cell_width = 1.0 config.font_rules = { { italic = true, font = wezterm.font("FiraCode Nerd Font", { weight = "Regular", italic = true }), }, { intensity = "Bold", font = wezterm.font("FiraCode Nerd Font", { weight = "Medium" }), }, } -- Enable FiraCode ligatures config.harfbuzz_features = { "calt=1", "clig=1", "liga=1", "ss01", "ss02", "ss03", "ss05", "ss06" } -- ─── Colors ────────────────────────────────────────────────────────────────── local bg = "#0f1117" local bg_alt = "#161b22" local surface = "#1c2128" local border = "#30363d" local muted = "#484f58" local subtle = "#8b949e" local text = "#cdd9e5" local bright_text = "#e6edf3" local accent = "#58a6ff" local accent_dim = "#1f4070" local green = "#3fb950" local amber = "#d29922" local red = "#f85149" local purple = "#bc8cff" config.colors = { foreground = text, background = bg, cursor_bg = accent, cursor_fg = bg, cursor_border = accent, selection_fg = bright_text, selection_bg = accent_dim, ansi = { "#21262d", -- black red, -- red green, -- green amber, -- yellow accent, -- blue purple, -- magenta "#39c5cf", -- cyan subtle, -- white }, brights = { muted, -- bright black "#ff7b72", -- bright red "#56d364", -- bright green "#e3b341", -- bright yellow "#79c0ff", -- bright blue "#d2a8ff", -- bright magenta "#56d4dd", -- bright cyan bright_text, -- bright white }, tab_bar = { background = bg, active_tab = { bg_color = surface, fg_color = bright_text, intensity = "Normal", underline = "None", italic = false, strikethrough = false, }, inactive_tab = { bg_color = bg, fg_color = muted, }, inactive_tab_hover = { bg_color = bg_alt, fg_color = subtle, italic = false, }, new_tab = { bg_color = bg, fg_color = muted, }, new_tab_hover = { bg_color = bg_alt, fg_color = subtle, }, }, } -- ─── Window ─────────────────────────────────────────────────────────────────── config.window_background_opacity = 0.97 config.window_decorations = "INTEGRATED_BUTTONS|RESIZE" config.window_padding = { left = 14, right = 14, top = 10, bottom = 8 } config.scrollback_lines = 10000 config.enable_scroll_bar = true config.initial_cols = 100 config.initial_rows = 20 -- Subtle inactive pane dimming config.inactive_pane_hsb = { saturation = 0.8, brightness = 0.65, } -- ─── Tab Bar ───────────────────────────────────────────────────────────────── config.use_fancy_tab_bar = false config.tab_bar_at_bottom = false config.hide_tab_bar_if_only_one_tab = false config.show_tab_index_in_tab_bar = false config.tab_max_width = 36 -- wider tabs config.window_frame = { font = wezterm.font("FiraCode Nerd Font", { weight = "Regular" }), font_size = 12.5, active_titlebar_bg = bg, inactive_titlebar_bg = bg, } -- Custom tab title: icon + process name + optional activity dot wezterm.on("format-tab-title", function(tab, tabs, panes, cfg, hover, max_width) local pane = tab.active_pane local title = pane.title -- Trim to a clean process name title = title:gsub("%.exe$", "") title = title:match("([^/\\]+)$") or title if #title > 20 then title = title:sub(1, 19) .. "…" end local is_active = tab.is_active local left_sep = "" local right_sep = "" if is_active then return { { Background = { Color = bg } }, { Foreground = { Color = surface } }, { Text = left_sep }, { Background = { Color = surface } }, { Foreground = { Color = accent } }, { Text = " " .. title .. " " }, { Background = { Color = bg } }, { Foreground = { Color = surface } }, { Text = right_sep }, } else return { { Background = { Color = bg } }, { Foreground = { Color = muted } }, { Text = " " .. title .. " " }, } end end) -- ─── Cursor ─────────────────────────────────────────────────────────────────── config.default_cursor_style = "BlinkingBar" config.cursor_blink_rate = 500 config.cursor_blink_ease_in = "Constant" config.cursor_blink_ease_out = "Constant" -- ─── Keys ──────────────────────────────────────────────────────────────────── config.keys = { -- Split panes { key = "d", mods = "CMD", action = wezterm.action.SplitHorizontal { domain = "CurrentPaneDomain" } }, { key = "d", mods = "CMD|SHIFT", action = wezterm.action.SplitVertical { domain = "CurrentPaneDomain" } }, -- Navigate panes { key = "LeftArrow", mods = "CMD|OPT", action = wezterm.action.ActivatePaneDirection("Left") }, { key = "RightArrow", mods = "CMD|OPT", action = wezterm.action.ActivatePaneDirection("Right") }, { key = "UpArrow", mods = "CMD|OPT", action = wezterm.action.ActivatePaneDirection("Up") }, { key = "DownArrow", mods = "CMD|OPT", action = wezterm.action.ActivatePaneDirection("Down") }, -- Tabs { key = "t", mods = "CMD", action = wezterm.action.SpawnTab("CurrentPaneDomain") }, { key = "w", mods = "CMD", action = wezterm.action.CloseCurrentTab { confirm = true } }, { key = "[", mods = "CMD|SHIFT", action = wezterm.action.ActivateTabRelative(-1) }, { key = "]", mods = "CMD|SHIFT", action = wezterm.action.ActivateTabRelative(1) }, -- Font size { key = "=", mods = "CMD", action = wezterm.action.IncreaseFontSize }, { key = "-", mods = "CMD", action = wezterm.action.DecreaseFontSize }, { key = "0", mods = "CMD", action = wezterm.action.ResetFontSize }, -- Copy / paste { key = "c", mods = "CMD", action = wezterm.action.CopyTo("Clipboard") }, { key = "v", mods = "CMD", action = wezterm.action.PasteFrom("Clipboard") }, } -- ─── Mouse ──────────────────────────────────────────────────────────────────── config.mouse_bindings = { -- CMD+click opens URLs { event = { Up = { streak = 1, button = "Left" } }, mods = "CMD", action = wezterm.action.OpenLinkAtMouseCursor, }, } -- ─── Misc ───────────────────────────────────────────────────────────────────── config.audible_bell = "Disabled" config.visual_bell = { fade_in_duration_ms = 0, fade_out_duration_ms = 100 } config.check_for_updates = false config.automatically_reload_config = true config.adjust_window_size_when_changing_font_size = false return config
Last active
May 24, 2026 17:47
-
-
Save ibnsamy96/ff427cb712e90174254e46a9a2f9a4cf to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment