dotfiles/configlinux/wezterm/wezterm.lua
2022-12-20 09:41:39 -06:00

256 lines
5.3 KiB
Lua
Executable file

-- -------------------------------------------------------------------
-- rxyhn's aesthetic wezterm configuration
-- A GPU-accelerated cross-platform terminal emulator and multiplexer
--
-- https://github.com/rxyhn
-- -------------------------------------------------------------------
local wezterm = require("wezterm")
local function font_with_fallback(name, params)
local names = { name, "Apple Color Emoji", "azuki_font" }
return wezterm.font_with_fallback(names, params)
end
local font_name = "FiraCode Nerd Font"
local colors = {
-- special
foreground = "#d9d7d6",
darker_background = "#000a0e",
background = "rgba(6,17,21,0)",
lighter_background = "#0d181c",
-- black
color0 = "#1c252c",
color8 = "#484e5b",
-- red
color1 = "#df5b61",
color9 = "#f16269",
-- green
color2 = "#78b892",
color10 = "#8cd7aa",
-- yellow
color3 = "#de8f78",
color11 = "#e9967e",
-- blue
color4 = "#6791c9",
color12 = "#79aaeb",
-- magenta
color5 = "#bc83e3",
color13 = "#c488ec",
-- cyan
color6 = "#67afc1",
color14 = "#7acfe4",
-- white
color7 = "#d9d7d6",
color15 = "#e5e5e5",
}
return {
-- OpenGL for GPU acceleration, Software for CPU
front_end = "OpenGL",
-- Font config
font = font_with_fallback(font_name),
font_rules = {
{ italic = true, font = font_with_fallback(font_name, { italic = true }) },
{
italic = true,
intensity = "Bold",
font = font_with_fallback(font_name, { bold = true, italic = true }),
},
{
intensity = "Bold",
font = font_with_fallback(font_name, { bold = true }),
},
{ intensity = "Half", font = font_with_fallback(font_name .. " Light") },
},
font_size = 11,
line_height = 1.0,
-- Cursor style
default_cursor_style = "BlinkingUnderline",
-- X11
enable_wayland = false,
-- Keybinds
disable_default_key_bindings = true,
keys = {
{
key = [[\]],
mods = "CTRL|SHIFT",
action = wezterm.action({
SplitHorizontal = { domain = "CurrentPaneDomain" },
}),
},
{
key = [[\]],
mods = "CTRL",
action = wezterm.action({
SplitVertical = { domain = "CurrentPaneDomain" },
}),
},
{
key = "q",
mods = "CTRL",
action = wezterm.action({ CloseCurrentPane = { confirm = false } }),
},
{
key = "h",
mods = "CTRL|SHIFT",
action = wezterm.action({ ActivatePaneDirection = "Left" }),
},
{
key = "l",
mods = "CTRL|SHIFT",
action = wezterm.action({ ActivatePaneDirection = "Right" }),
},
{
key = "k",
mods = "CTRL|SHIFT",
action = wezterm.action({ ActivatePaneDirection = "Up" }),
},
{
key = "j",
mods = "CTRL|SHIFT",
action = wezterm.action({ ActivatePaneDirection = "Down" }),
},
{
key = "h",
mods = "CTRL|SHIFT|ALT",
action = wezterm.action({ AdjustPaneSize = { "Left", 1 } }),
},
{
key = "l",
mods = "CTRL|SHIFT|ALT",
action = wezterm.action({ AdjustPaneSize = { "Right", 1 } }),
},
{
key = "k",
mods = "CTRL|SHIFT|ALT",
action = wezterm.action({ AdjustPaneSize = { "Up", 1 } }),
},
{
key = "j",
mods = "CTRL|SHIFT|ALT",
action = wezterm.action({ AdjustPaneSize = { "Down", 1 } }),
},
{ -- browser-like bindings for tabbing
key = "t",
mods = "CTRL",
action = wezterm.action({ SpawnTab = "CurrentPaneDomain" }),
},
{
key = "w",
mods = "CTRL",
action = wezterm.action({ CloseCurrentTab = { confirm = false } }),
},
{
key = "Tab",
mods = "CTRL",
action = wezterm.action({ ActivateTabRelative = 1 }),
},
{
key = "Tab",
mods = "CTRL|SHIFT",
action = wezterm.action({ ActivateTabRelative = -1 }),
}, -- standard copy/paste bindings
{
key = "x",
mods = "CTRL",
action = "ActivateCopyMode",
},
{
key = "v",
mods = "CTRL|SHIFT",
action = wezterm.action({ PasteFrom = "Clipboard" }),
},
{
key = "c",
mods = "CTRL|SHIFT",
action = wezterm.action({ CopyTo = "ClipboardAndPrimarySelection" }),
},
},
-- Aesthetic Night Colorscheme
bold_brightens_ansi_colors = false,
colors = {
background = colors.background,
foreground = colors.foreground,
cursor_bg = colors.foreground,
cursor_fg = colors.foreground,
cursor_border = colors.foreground,
selection_fg = colors.background,
selection_bg = colors.color4,
scrollbar_thumb = colors.foreground,
split = colors.lighter_background,
ansi = {
colors.color0,
colors.color1,
colors.color2,
colors.color3,
colors.color4,
colors.color5,
colors.color6,
colors.color7,
},
brights = {
colors.color8,
colors.color9,
colors.color10,
colors.color11,
colors.color12,
colors.color13,
colors.color14,
colors.color15,
},
tab_bar = {
active_tab = {
bg_color = colors.background,
fg_color = colors.color8,
italic = true,
},
inactive_tab = { bg_color = colors.darker_background, fg_color = colors.color8 },
inactive_tab_hover = { bg_color = colors.color0, fg_color = colors.background },
},
},
-- Padding
window_padding = {
left = 25,
right = 25,
top = 25,
bottom = 25,
},
-- Tab Bar
enable_tab_bar = true,
hide_tab_bar_if_only_one_tab = true,
show_tab_index_in_tab_bar = false,
tab_bar_at_bottom = true,
-- General
automatically_reload_config = true,
inactive_pane_hsb = { saturation = 1.0, brightness = 1.0 },
window_frame = { active_titlebar_bg = colors.darker_background },
exit_behavior = "CloseOnCleanExit",
window_decorations = "RESIZE",
selection_word_boundary = " \t\n{}[]()\"'`,;:",
}