Skip to content

Instantly share code, notes, and snippets.

@paul-d-ray
Last active February 18, 2026 03:01
Show Gist options
  • Select an option

  • Save paul-d-ray/c3df285aeb953425a6d5db22d485b92b to your computer and use it in GitHub Desktop.

Select an option

Save paul-d-ray/c3df285aeb953425a6d5db22d485b92b to your computer and use it in GitHub Desktop.
Wezterm Config File
-- Pull in the wezterm API
-- PR 2026-02-06 17:52:03
-- Running on windows
-- Running Nushell the OSC133 must be disable
-- $env.config.shell_integration.osc133 = false
local wezterm = require 'wezterm'
-- This will hold the configuration.
local config = wezterm.config_builder()
local act = wezterm.action
-- This is where you actually apply your config choices.
-- For example, changing the initial geometry for new windows:
config.initial_cols = 182
config.initial_rows = 48
max_fps = 120
config.window_padding = { left = 8, right = 10, top = 8, bottom = 8 }
config.enable_scroll_bar = true
config.colors = {
scrollbar_thumb = 'rgba(150,150,150,0.7)', -- light gray semi-transparent
-- or 'silver', '#aaaaaa', etc.
}
config.scrollback_lines = 9001
-- or, changing the font size and color scheme.
--config.color_scheme = 'Vs Code Dark+ (Gogh)'
config.color_scheme = 'Dark+'
--config.color_scheme = 'Darkside (Gogh)'
--config.font = wezterm.font('CaskaydiaCove Nerd Font Mono')
--config.font_size = 11.0
-- from
-- https://codeberg.org/justaguylinux/butterscripts/src/branch/main/wezterm/wezterm.lua
-- Font configuration
config.font = wezterm.font_with_fallback({
{family='CaskaydiaCove Nerd Font Mono', weight='Regular'},
{family='Noto Color Emoji', weight='Regular'},
-- {family='Symbols Nerd Font Mono', weight='Regular'}
})
config.font_size = 11
config.line_height = 1.0
config.window_frame = {
font = wezterm.font{family='CaskaydiaCove Nerd Font Mono', weight='Bold'},
font_size = 11.0,
-- active_titlebar_bg = colors.bg
}
wezterm.on("bell", function(window, pane)
wezterm.run_child_process({
"C:\\Users\\Paul_Ray\\scoop\\apps\\nircmd\\current\\nircmd.exe",
"mediaplay",
"2000",
"C:\\Program Files\\Tclock\\waves\\Alarm.wav"
})
end)
config.visual_bell = {
fade_in_function = 'Linear',
fade_in_duration_ms = 75,
fade_out_function = 'Linear',
fade_out_duration_ms = 75,
target = 'BackgroundColor',
}
config.default_cwd = "d:/temp"
local quick_select_patterns = {
-- from Nushell Prophet
-- https://github.com/nushell-prophet/nushell-prophet-manuals/blob/main/manuals/05-setup-quick-select-patterns-in-wezterm/manual.md
-- Nushell error paths (like ╭─[/path/to/file.nu:1946:63])
"─\\[(.*\\:\\d+\\:\\d+)\\]",
-- -- Table patterns
-- -- $env.config.table.mode = "default"
-- -- $env.config.table.header_on_separator = true
-- -- $env.config.footer_mode = "always"
-- "(?<=─|╭|┬)([a-zA-Z0-9 _%.-]+?)(?=─|╮|┬)", -- Headers
-- "(?<=│ )([a-zA-Z0-9 _.-]+?)(?= │)", -- Column values
--
-- -- File paths (stops at ~, allows dots in path but stops before dot+space)
-- "/[^/\\s│~]+(?:/[^/\\s│~]+)*(?:\\.(?!\\s)[a-zA-Z0-9]+)?",
--
-- from ChatGPT
-- Full Windows paths (fullname column)
"[A-Za-z]:\\\\[^│\\r\\n]+",
-- Filenames with extension (name column)
"\\b[\\w\\-.]+\\.[A-Za-z0-9]+\\b",
-- File sizes like "136.1 kB" or "67 B"
"\\b\\d+(\\.\\d+)?\\s?(B|kB|MB|GB|TB)\\b",
-- ISO-style timestamps
"\\b\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}\\b",
-- Table row numbers
"\\b\\d+\\b",
-- SHA-256
"\\b[0-9a-fA-F]{64}\\b",
-- SHA-1
"\\b[0-9a-fA-F]{40}\\b",
-- Short git hash
"\\b[0-9a-fA-F]{7,12}\\b",
}
config.quick_select_patterns = quick_select_patterns
-- =============================================
-- Launch menu (emulates WT profile list)
-- =============================================
config.launch_menu = {
{ label = 'Command Prompt', args = { '%SystemRoot%\\System32\\cmd.exe' } },
{ label = 'PowerShell (Core)', args = { 'pwsh.exe' } }, -- assuming pwsh is in PATH
{ label = 'Nushell', args = { 'C:\\Users\\Paul_Ray\\AppData\\Local\\Programs\\nu\\bin\\nu.exe' } },
{ label = 'SQLite', args = { 'D:\\work\\sqlite\\bin\\sqlite3.exe' }, cwd = 'D:\\work\\sqlite\\data' },
{ label = 'Python', args = { 'C:\\Users\\Paul_Ray\\AppData\\Local\\Programs\\Python\\Python313\\python.exe' } },
{ label = 'Visidata', args = { 'C:\\Users\\Paul_Ray\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\vd.exe' }, cwd = 'd:\\work\\visidata' },
{ label = 'Router SSH', args = { 'ssh', 'admin@192.168.1.1' } },
-- Add more as needed (e.g. Admin CMD requires extra setup via wezterm cli or external launcher)
}
config.keys = {
{ key = 'UpArrow', mods = 'CTRL|SHIFT', action = act.ScrollByLine(-1) },
{ key = 'DownArrow', mods = 'CTRL|SHIFT', action = act.ScrollByLine(1) },
-- { key = 'l', mods = 'CTRL', action = act.ClearScrollback 'ScrollbackAndViewport'},
}
-- Finally, return the configuration to wezterm:
return config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment