Add wezterm config #1
1 changed files with 241 additions and 0 deletions
241
extra/wezterm/.config/wezterm/wezterm.lua
Executable file
241
extra/wezterm/.config/wezterm/wezterm.lua
Executable file
|
@ -0,0 +1,241 @@
|
|||
local term = require 'wezterm'
|
||||
local mux = term.mux
|
||||
|
||||
local myfont = "JetBrainsMonoNL NFM"
|
||||
local tabwidth = 16
|
||||
local fontsize = 14.0
|
||||
|
||||
local sc = {
|
||||
foreground = "#c0caf5",
|
||||
background = "#24283b",
|
||||
cursor_bg = "#c0caf5",
|
||||
cursor_border = "#c0caf5",
|
||||
cursor_fg = "#24283b",
|
||||
selection_bg = "#364A82",
|
||||
selection_fg = "#c0caf5",
|
||||
|
||||
ansi = { "#1D202F", "#f7768e", "#9ece6a", "#e0af68", "#7aa2f7", "#bb9af7", "#7dcfff", "#a9b1d6" },
|
||||
brights = { "#414868", "#f7768e", "#9ece6a", "#e0af68", "#7aa2f7", "#bb9af7", "#7dcfff", "#c0caf5" }
|
||||
}
|
||||
|
||||
local fallback = function(name, params)
|
||||
-- $ wezterm ls-fonts --list-system
|
||||
-- font_dirs = { "/home/zeno/.local/share/fonts" },
|
||||
local names = { name, "CaskaydiaCove Nerd Font Mono", "FiraCode Nerd Font Mono", "monospace" }
|
||||
return term.font_with_fallback(names, params)
|
||||
end
|
||||
|
||||
term.on("format-tab-title", function(tab, tabs, panes, config, hover, max_width)
|
||||
local title = " " .. term.truncate_right(tab.active_pane.title, tabwidth) .. " "
|
||||
if tab.is_active then
|
||||
return {
|
||||
{ Attribute = { Italic = true } },
|
||||
{ Text = title },
|
||||
}
|
||||
end
|
||||
return {
|
||||
{ Attribute = { Italic = false } },
|
||||
{ Text = title },
|
||||
}
|
||||
end)
|
||||
|
||||
term.on('gui-startup', function(cmd)
|
||||
local tab, pane, window = mux.spawn_window(cmd or {})
|
||||
window:gui_window():maximize()
|
||||
end)
|
||||
|
||||
|
||||
|
||||
local options = {
|
||||
adjust_window_size_when_changing_font_size = false,
|
||||
animation_fps = 1,
|
||||
audible_bell = "SystemBeep",
|
||||
automatically_reload_config = true,
|
||||
check_for_updates = false,
|
||||
cursor_blink_ease_in = "Constant",
|
||||
cursor_blink_ease_out = "Constant",
|
||||
hide_tab_bar_if_only_one_tab = true,
|
||||
initial_cols = 180,
|
||||
initial_rows = 40,
|
||||
scrollback_lines = 10000,
|
||||
warn_about_missing_glyphs = false,
|
||||
window_close_confirmation = "NeverPrompt",
|
||||
window_decorations = "RESIZE",
|
||||
|
||||
color_scheme = "Tokyonight Storm",
|
||||
color_schemes = {
|
||||
["Tokyonight Storm"] = sc,
|
||||
},
|
||||
|
||||
font = fallback(myfont),
|
||||
font_size = fontsize,
|
||||
font_rules = {
|
||||
{
|
||||
intensity = "Normal",
|
||||
italic = false,
|
||||
strikethrough = false,
|
||||
underline = "None",
|
||||
font = fallback(myfont, { weight = "Regular" }),
|
||||
},
|
||||
},
|
||||
|
||||
window_frame = {
|
||||
font = fallback(myfont, { weight = "Regular" }),
|
||||
font_size = fontsize - 3.0,
|
||||
active_titlebar_bg = sc.background,
|
||||
active_titlebar_fg = sc.background,
|
||||
inactive_titlebar_bg = sc.background,
|
||||
inactive_titlebar_fg = sc.background,
|
||||
},
|
||||
|
||||
colors = {
|
||||
tab_bar = {
|
||||
background = sc.background,
|
||||
active_tab = {
|
||||
bg_color = sc.background,
|
||||
fg_color = "#a9b1d6",
|
||||
},
|
||||
inactive_tab = {
|
||||
bg_color = "#2b2c37",
|
||||
fg_color = "#a9b1d6",
|
||||
},
|
||||
inactive_tab_hover = {
|
||||
bg_color = sc.background,
|
||||
fg_color = sc.foreground,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
mouse_bindings = {
|
||||
-- Change the default click behavior so that it only selects
|
||||
-- text and doesn't open hyperlinks
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Left" } },
|
||||
action = { CompleteSelection = "PrimarySelection" },
|
||||
},
|
||||
-- Bind 'Up' event of CTRL-Click to open hyperlinks
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Left" } },
|
||||
mods = "CTRL",
|
||||
action = "OpenLinkAtMouseCursor",
|
||||
},
|
||||
-- Disable the 'Down' event of CTRL-Click to avoid weird program behaviors
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Left" } },
|
||||
mods = "CTRL",
|
||||
action = "Nop",
|
||||
},
|
||||
-- Mimic alacritty text selection
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Left" } },
|
||||
mods = "SHIFT",
|
||||
action = "Nop",
|
||||
},
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Left" } },
|
||||
mods = "SHIFT",
|
||||
action = "Nop",
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Right" } },
|
||||
mods = "SHIFT",
|
||||
action = { ExtendSelectionToMouseCursor = "Cell" },
|
||||
},
|
||||
--
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Left" } },
|
||||
mods = "SHIFT|ALT",
|
||||
action = "Nop",
|
||||
},
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Right" } },
|
||||
mods = "SHIFT|ALT",
|
||||
action = "Nop",
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Right" } },
|
||||
mods = "ALT",
|
||||
action = { ExtendSelectionToMouseCursor = "Block" },
|
||||
},
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Right" } },
|
||||
mods = "ALT",
|
||||
action = { CompleteSelection = "PrimarySelection" },
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Left" } },
|
||||
mods = "SHIFT",
|
||||
action = { SelectTextAtMouseCursor = "Cell" },
|
||||
},
|
||||
{
|
||||
event = { Drag = { streak = 1, button = "Left" } },
|
||||
mods = "SHIFT",
|
||||
action = { ExtendSelectionToMouseCursor = "Cell" },
|
||||
},
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Left" } },
|
||||
mods = "SHIFT",
|
||||
action = { CompleteSelection = "PrimarySelection" },
|
||||
},
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Middle" } },
|
||||
action = "Nop",
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Middle" } },
|
||||
mods = "SHIFT",
|
||||
action = { PasteFrom = "PrimarySelection" }
|
||||
},
|
||||
{
|
||||
event = { Down = { streak = 1, button = "Middle" } },
|
||||
action = { SelectTextAtMouseCursor = "Block" },
|
||||
},
|
||||
{
|
||||
event = { Drag = { streak = 1, button = "Middle" } },
|
||||
action = { ExtendSelectionToMouseCursor = "Block" },
|
||||
},
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Middle" } },
|
||||
action = { CompleteSelection = "PrimarySelection" },
|
||||
},
|
||||
},
|
||||
|
||||
keys = {
|
||||
-- Clipboard handling
|
||||
{ key = "Insert", mods = "CTRL|SHIFT", action = "Paste" },
|
||||
{ key = "Insert", mods = "SHIFT", action = "PastePrimarySelection" },
|
||||
-- Remove crap
|
||||
{ key = "m", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "n", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "t", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "w", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "1", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "2", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "3", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "4", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "5", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "6", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "7", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "8", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "9", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "r", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "h", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "k", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "f", mods = "SUPER", action = "DisableDefaultAssignment" },
|
||||
{ key = "t", mods = "SUPER|SHIFT", action = "DisableDefaultAssignment" },
|
||||
|
||||
{ key = "/", mods = "CTRL|SHIFT", action = { Search = "CurrentSelectionOrEmptyString" } },
|
||||
},
|
||||
|
||||
key_tables = {
|
||||
search_mode = {
|
||||
{ key = "n", mods = "CTRL|SHIFT", action = { CopyMode = "PriorMatch" } },
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
if term.target_triple == 'x86_64-pc-windows-msvc' then
|
||||
options.default_prog = { 'wsl.exe', '--cd', '~' }
|
||||
end
|
||||
|
||||
return options
|
Loading…
Reference in a new issue