Skip to content

Instantly share code, notes, and snippets.

@ajaxray
Created December 28, 2025 12:03
Show Gist options
  • Select an option

  • Save ajaxray/bd7191337891d6034e7e501eab7c7570 to your computer and use it in GitHub Desktop.

Select an option

Save ajaxray/bd7191337891d6034e7e501eab7c7570 to your computer and use it in GitHub Desktop.
My Wezterm config
local wezterm = require 'wezterm'
local ai_helper = wezterm.plugin.require 'https://github.com/Michal1993r/ai-helper.wezterm'
local workspace_switcher = wezterm.plugin.require("https://github.com/MLFlexer/smart_workspace_switcher.wezterm")
local config = wezterm.config_builder()
config.color_scheme = 'Tokyo Night (Gogh)'
config.font = wezterm.font_with_fallback({ 'MesloLGS Nerd Font Mono', 'JetBrains Mono', 'Fira Mono', 'monospace' })
config.font_size = 16.0
config.line_height = 1.1
config.cell_width = 1.0
config.use_fancy_tab_bar = true
config.hide_tab_bar_if_only_one_tab = false
config.window_decorations = 'RESIZE'
config.native_macos_fullscreen_mode = true
config.window_padding = { left = 4, right = 4, top = 2, bottom = 4 }
-- config.colors = {
-- foreground = '#CBE0F0',
-- background = '#011423',
-- cursor_bg = '#47FF9C',
-- cursor_border = '#47FF9C',
-- cursor_fg = '#011423',
-- selection_bg = '#033259',
-- selection_fg = '#CBE0F0',
-- ansi = { '#214969', '#E52E2E', '#44FFB1', '#FFE073', '#0FC5ED', '#a277ff', '#24EAF7', '#24EAF7' },
-- brights = { '#214969', '#E52E2E', '#44FFB1', '#FFE073', '#A277FF', '#a277ff', '#24EAF7', '#24EAF7' },
-- }
config.window_background_opacity = 0.95
config.macos_window_background_blur = 10
-- config.window_background_image = '/path/to/wallpaper.jpg'
-- Cycling Color themes
local schemes = { "Tokyo Night", "zenbones", "Selenized Light (Gogh)", "Solarized Dark (Gogh)" }
local scheme_index = 1
wezterm.on('cycle-theme', function(window, pane)
scheme_index = (scheme_index % #schemes) + 1
window:set_config_overrides({ color_scheme = schemes[scheme_index] })
end)
config.leader = { key = ',', mods = 'CMD', timeout_milliseconds = 1000 }
-- Sensible keybindings (ctrl+shift+t for new tab, splits like tmux/ghostty)
config.keys = {
{ key = 'w', mods = 'CTRL|SHIFT', action = wezterm.action.CloseCurrentTab { confirm = true } },
{ key = 'i', mods = 'CTRL|SHIFT', action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' } },
{ key = 'e', mods = 'CTRL|SHIFT', action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' } },
{ key = "S", mods = "CTRL|SHIFT", action = wezterm.action.QuickSelect },
{ key = "t", mods = "LEADER", action = wezterm.action.EmitEvent 'cycle-theme' },
{ key = 'LeftArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection('Left') },
{ key = 'RightArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection('Right') },
{ key = 'UpArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection('Up') },
{ key = 'DownArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection('Down') },
}
config.enable_tab_bar = true
config.enable_scroll_bar = false
config.adjust_window_size_when_changing_font_size = false
config.initial_cols = 100
config.initial_rows = 30
config.scrollback_lines = 5000
config.window_frame = {
active_titlebar_bg = '#282828',
font = wezterm.font({ family = 'JetBrains Mono', weight = 'Bold' }),
font_size = 14.0,
}
ai_helper.apply_to_config(config, {
type = 'ollama',
ollama_path = '/usr/local/bin/ollama', -- replace with output of: which ollama
model = 'llama3.2:3b', -- take the name from: ollama list
})
-- WORKSPACE MANAGEMENT --
-- 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
workspace_switcher.zoxide_path = "/opt/homebrew/bin/zoxide"
-- keymaps
table.insert(config.keys, { key = "w", mods = "LEADER", action = workspace_switcher.switch_workspace() })
-- table.insert(config.keys, { key = "r", mods = "CTRL|SHIFT", action = act.ShowLauncherArgs({ flags = "FUZZY|WORKSPACES" }) })
-- table.insert(config.keys, { key = "[", mods = "CTRL|SHIFT", action = act.SwitchWorkspaceRelative(1) })
-- table.insert(config.keys, { key = "]", mods = "CTRL|SHIFT", action = act.SwitchWorkspaceRelative(-1) })
return config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment