refactor(wezterm): run stylua

chezmoi
sgoudham 2 years ago
parent 4c00a4bea6
commit 179b031c74
Signed by: hammy
GPG Key ID: 44E818FD5457EEA4

@ -0,0 +1,7 @@
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferDouble"
call_parentheses = "Always"
collapse_simple_statement = "Never"

@ -4,248 +4,243 @@ local wsl_domains = wezterm.default_wsl_domains()
-- WSL related -- WSL related
for _, dom in ipairs(wsl_domains) do for _, dom in ipairs(wsl_domains) do
dom.default_cwd = "~" dom.default_cwd = "~"
end end
local function get_os() local function get_os()
local target = wezterm.target_triple local target = wezterm.target_triple
if string.find(target, "linux") then if string.find(target, "linux") then
return "linux" return "linux"
elseif string.find(target, "darwin") then elseif string.find(target, "darwin") then
return "macos" return "macos"
else else
return "windows" return "windows"
end end
end end
if get_os() == "windows" then if get_os() == "windows" then
default_prog = { "wsl.exe", "~", "-d", "Ubuntu-20.04" } default_prog = { "wsl.exe", "~", "-d", "Ubuntu-20.04" }
default_domain = "WSL:Ubuntu-20.04" default_domain = "WSL:Ubuntu-20.04"
end end
-- Superscript/Subscript -- Superscript/Subscript
local function numberStyle(number, script) local function numberStyle(number, script)
local scripts = { local scripts = {
superscript = { superscript = {
"", "",
"¹", "¹",
"²", "²",
"³", "³",
"", "",
"", "",
"", "",
"", "",
"", "",
"", "",
}, },
subscript = { subscript = {
"", "",
"", "",
"", "",
"", "",
"", "",
"", "",
"", "",
"", "",
"", "",
"", "",
}, },
} }
local numbers = scripts[script] local numbers = scripts[script]
local number_string = tostring(number) local number_string = tostring(number)
local result = "" local result = ""
for i = 1, #number_string do for i = 1, #number_string do
local char = number_string:sub(i, i) local char = number_string:sub(i, i)
local num = tonumber(char) local num = tonumber(char)
if num then if num then
result = result .. numbers[num + 1] result = result .. numbers[num + 1]
else else
result = result .. char result = result .. char
end
end end
return result end
return result
end end
-- Custom Tab Bar -- Custom Tab Bar
wezterm.on("format-tab-title", function(tab, tabs, panes, config, hover, max_width) wezterm.on("format-tab-title", function(tab, tabs, panes, config, hover, max_width)
local RIGHT_DIVIDER = utf8.char(0xe0bc) local RIGHT_DIVIDER = utf8.char(0xe0bc)
local colours = config.resolved_palette.tab_bar local colours = config.resolved_palette.tab_bar
local active_tab_index = 0 local active_tab_index = 0
for _, t in ipairs(tabs) do for _, t in ipairs(tabs) do
if t.is_active == true then if t.is_active == true then
active_tab_index = t.tab_index active_tab_index = t.tab_index
end
end end
end
local active_bg = colours.active_tab.bg_color
local active_fg = colours.active_tab.fg_color local active_bg = colours.active_tab.bg_color
local inactive_bg = colours.inactive_tab.bg_color local active_fg = colours.active_tab.fg_color
local inactive_fg = colours.inactive_tab.fg_color local inactive_bg = colours.inactive_tab.bg_color
local new_tab_bg = colours.new_tab.bg_color local inactive_fg = colours.inactive_tab.fg_color
local new_tab_bg = colours.new_tab.bg_color
local s_bg, s_fg, e_bg, e_fg
local s_bg, s_fg, e_bg, e_fg
-- the last tab
if tab.tab_index == #tabs - 1 then -- the last tab
if tab.is_active then if tab.tab_index == #tabs - 1 then
s_bg = active_bg if tab.is_active then
s_fg = active_fg s_bg = active_bg
e_bg = new_tab_bg s_fg = active_fg
e_fg = active_bg e_bg = new_tab_bg
else e_fg = active_bg
s_bg = inactive_bg
s_fg = inactive_fg
e_bg = new_tab_bg
e_fg = inactive_bg
end
elseif tab.tab_index == active_tab_index - 1 then
s_bg = inactive_bg
s_fg = inactive_fg
e_bg = active_bg
e_fg = inactive_bg
elseif tab.is_active then
s_bg = active_bg
s_fg = active_fg
e_bg = inactive_bg
e_fg = active_bg
else else
s_bg = inactive_bg s_bg = inactive_bg
s_fg = inactive_fg s_fg = inactive_fg
e_bg = inactive_bg e_bg = new_tab_bg
e_fg = inactive_bg e_fg = inactive_bg
end end
elseif tab.tab_index == active_tab_index - 1 then
local muxpanes = wezterm.mux.get_tab(tab.tab_id):panes() s_bg = inactive_bg
local count = #muxpanes == 1 and "" or #muxpanes s_fg = inactive_fg
e_bg = active_bg
return { e_fg = inactive_bg
{ Background = { Color = s_bg } }, elseif tab.is_active then
{ Foreground = { Color = s_fg } }, s_bg = active_bg
{ s_fg = active_fg
Text = " " e_bg = inactive_bg
.. tab.tab_index + 1 e_fg = active_bg
.. ": " else
.. tab.active_pane.title s_bg = inactive_bg
.. numberStyle(count, "superscript") s_fg = inactive_fg
.. " ", e_bg = inactive_bg
}, e_fg = inactive_bg
{ Background = { Color = e_bg } }, end
{ Foreground = { Color = e_fg } },
{ Text = RIGHT_DIVIDER }, local muxpanes = wezterm.mux.get_tab(tab.tab_id):panes()
} local count = #muxpanes == 1 and "" or #muxpanes
return {
{ Background = { Color = s_bg } },
{ Foreground = { Color = s_fg } },
{
Text = " " .. tab.tab_index + 1 .. ": " .. tab.active_pane.title .. numberStyle(count, "superscript") .. " ",
},
{ Background = { Color = e_bg } },
{ Foreground = { Color = e_fg } },
{ Text = RIGHT_DIVIDER },
}
end) end)
return { return {
color_scheme = "Catppuccin Mocha", color_scheme = "Catppuccin Mocha",
font = wezterm.font_with_fallback({ "VictorMono Nerd Font" }), font = wezterm.font_with_fallback({ "VictorMono Nerd Font" }),
font_size = 14, font_size = 14,
background = { background = {
{ {
source = { File = "Pictures/astronaut.png" }, source = { File = "Pictures/astronaut.png" },
hsb = { brightness = 0.07, hue = 1.0, saturation = 0.1 }, hsb = { brightness = 0.07, hue = 1.0, saturation = 0.1 },
}, },
},
default_domain = default_domain,
wsl_domains = wsl_domains,
default_prog = default_prog,
window_padding = { top = 0, bottom = 0, left = 0, right = 0 },
adjust_window_size_when_changing_font_size = false,
window_decorations = "RESIZE",
window_close_confirmation = "NeverPrompt",
use_fancy_tab_bar = false,
tab_bar_at_bottom = true,
hide_tab_bar_if_only_one_tab = true,
tab_max_width = 32,
scrollback_lines = 1000000,
exit_behavior = "CloseOnCleanExit",
clean_exit_codes = { 130 },
audible_bell = "Disabled",
disable_default_key_bindings = false,
keys = {
-- Fullscreen
{ key = "F11", action = wezterm.action.ToggleFullScreen },
-- Zoom
{ key = "z", mods = "ALT|SHIFT", action = wezterm.action.TogglePaneZoomState },
-- Copy / Paste
{ key = "C", mods = "CTRL", action = wezterm.action.Copy },
{ key = "V", mods = "CTRL", action = act.PasteFrom("Clipboard") },
-- Open Pane
-- https://github.com/wez/wezterm/discussions/2426
-- https://github.com/neovim/neovim/issues/2252
{
key = "n",
mods = "ALT|SHIFT",
action = wezterm.action_callback(function(window, pane)
if pane:get_title() == "nvim" then
window:perform_action(act.SendKey({ key = "n", mods = "ALT|SHIFT" }), pane)
else
window:perform_action(act.SplitPane({ direction = "Right", size = { Percent = 50 } }), pane)
end
end),
},
{
key = "m",
mods = "ALT|SHIFT",
action = wezterm.action_callback(function(window, pane)
if pane:get_title() == "nvim" then
window:perform_action(act.SendKey({ key = "m", mods = "ALT|SHIFT" }), pane)
else
window:perform_action(act.SplitPane({ direction = "Down", size = { Percent = 50 } }), pane)
end
end),
}, },
default_domain = default_domain, -- Navigating Panes
wsl_domains = wsl_domains, { key = "h", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Left") },
default_prog = default_prog, { key = "l", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Right") },
{ key = "k", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Up") },
window_padding = { top = 0, bottom = 0, left = 0, right = 0 }, { key = "j", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Down") },
adjust_window_size_when_changing_font_size = false, -- Close Pane
window_decorations = "RESIZE", { key = "c", mods = "ALT|SHIFT", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
window_close_confirmation = "NeverPrompt", -- Swap Panes
{ key = "i", mods = "ALT|SHIFT", action = act.PaneSelect({ alphabet = "asdfghjkl;", mode = "Activate" }) },
use_fancy_tab_bar = false, {
tab_bar_at_bottom = true, key = "s",
hide_tab_bar_if_only_one_tab = true, mods = "ALT|SHIFT",
tab_max_width = 32, action = act.PaneSelect({ alphabet = "asdfghjkl;", mode = "SwapWithActive" }),
scrollback_lines = 1000000, },
-- Resize Panes
exit_behavior = "CloseOnCleanExit", { key = "LeftArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Left", 5 } }) },
clean_exit_codes = { 130 }, { key = "DownArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Down", 5 } }) },
audible_bell = "Disabled", { key = "UpArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Up", 5 } }) },
disable_default_key_bindings = false, { key = "RightArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Right", 5 } }) },
keys = { -- New Tab
-- Fullscreen { key = "n", mods = "CTRL|SHIFT", action = act({ SpawnTab = "CurrentPaneDomain" }) },
{ key = "F11", action = wezterm.action.ToggleFullScreen }, -- Swap Tabs
-- Zoom { key = "h", mods = "CTRL|SHIFT", action = act.ActivateTabRelative(-1) },
{ key = "z", mods = "ALT|SHIFT", action = wezterm.action.TogglePaneZoomState }, { key = "l", mods = "CTRL|SHIFT", action = act.ActivateTabRelative(1) },
-- Copy / Paste
{ key = "C", mods = "CTRL", action = wezterm.action.Copy }, -- Open Links
{ key = "V", mods = "CTRL", action = act.PasteFrom("Clipboard") }, {
key = "o",
-- Open Pane mods = "ALT|SHIFT",
-- https://github.com/wez/wezterm/discussions/2426 action = wezterm.action.QuickSelectArgs({
-- https://github.com/neovim/neovim/issues/2252 label = "open url",
{ patterns = {
key = "n", "https?://\\S+",
mods = "ALT|SHIFT",
action = wezterm.action_callback(function(window, pane)
if pane:get_title() == "nvim" then
window:perform_action(act.SendKey({ key = "n", mods = "ALT|SHIFT" }), pane)
else
window:perform_action(act.SplitPane({ direction = "Right", size = { Percent = 50 } }), pane)
end
end),
},
{
key = "m",
mods = "ALT|SHIFT",
action = wezterm.action_callback(function(window, pane)
if pane:get_title() == "nvim" then
window:perform_action(act.SendKey({ key = "m", mods = "ALT|SHIFT" }), pane)
else
window:perform_action(act.SplitPane({ direction = "Down", size = { Percent = 50 } }), pane)
end
end),
},
-- Navigating Panes
{ key = "h", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Left") },
{ key = "l", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Right") },
{ key = "k", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Up") },
{ key = "j", mods = "ALT|SHIFT", action = act.ActivatePaneDirection("Down") },
-- Close Pane
{ key = "c", mods = "ALT|SHIFT", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
-- Swap Panes
{ key = "i", mods = "ALT|SHIFT", action = act.PaneSelect({ alphabet = "asdfghjkl;", mode = "Activate" }) },
{
key = "s",
mods = "ALT|SHIFT",
action = act.PaneSelect({ alphabet = "asdfghjkl;", mode = "SwapWithActive" }),
},
-- Resize Panes
{ key = "LeftArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Left", 5 } }) },
{ key = "DownArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Down", 5 } }) },
{ key = "UpArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Up", 5 } }) },
{ key = "RightArrow", mods = "ALT|SHIFT", action = act({ AdjustPaneSize = { "Right", 5 } }) },
-- New Tab
{ key = "n", mods = "CTRL|SHIFT", action = act({ SpawnTab = "CurrentPaneDomain" }) },
-- Swap Tabs
{ key = "h", mods = "CTRL|SHIFT", action = act.ActivateTabRelative(-1) },
{ key = "l", mods = "CTRL|SHIFT", action = act.ActivateTabRelative(1) },
-- Open Links
{
key = "o",
mods = "ALT|SHIFT",
action = wezterm.action.QuickSelectArgs({
label = "open url",
patterns = {
"https?://\\S+",
},
action = wezterm.action_callback(function(window, pane)
local url = window:get_selection_text_for_pane(pane)
wezterm.open_with(url)
end),
}),
}, },
action = wezterm.action_callback(function(window, pane)
-- ScrollBack To Prompt local url = window:get_selection_text_for_pane(pane)
{ key = "UpArrow", mods = "CTRL|SHIFT", action = act.ScrollToPrompt(-1) }, wezterm.open_with(url)
{ key = "DownArrow", mods = "CTRL|SHIFT", action = act.ScrollToPrompt(1) }, end),
}),
}, },
-- ScrollBack To Prompt
{ key = "UpArrow", mods = "CTRL|SHIFT", action = act.ScrollToPrompt(-1) },
{ key = "DownArrow", mods = "CTRL|SHIFT", action = act.ScrollToPrompt(1) },
},
} }

Loading…
Cancel
Save