nixos-config/dotfiles/dot_config/wezterm/wezterm.lua

153 lines
3.6 KiB
Lua

local wezterm = require 'wezterm'
local config = wezterm.config_builder()
local act = wezterm.action
-- config.default_prog = { 'fish', '-l' }
config.enable_wayland = false;
config.front_end = "WebGpu";
local bar = wezterm.plugin.require("https://github.com/adriankarlen/bar.wezterm")
config.font_size = 12
config.font = wezterm.font {
family = 'JetBrains Mono',
weight = 'Medium'
}
config.color_scheme = 'Adventure'
config.colors = {
tab_bar = {
inactive_tab = {
fg_color = "#444444",
bg_color = "#000000"
}
}
}
config.window_decorations = "TITLE|RESIZE"
config.window_padding = {
left = 12,
right = 12,
top = 6,
bottom = 6,
}
config.cursor_thickness = 2
config.default_cursor_style = 'SteadyBar'
config.use_fancy_tab_bar = false
config.tab_bar_at_bottom = true
config.enable_kitty_keyboard = true
config.keys = {
{
key = 'Enter',
mods = 'CTRL',
action = act.SplitVertical { domain = 'CurrentPaneDomain' },
},
{
key = 'Enter',
mods = 'CTRL|SHIFT',
action = act.SplitHorizontal { domain = 'CurrentPaneDomain' },
},
{
key = 'w',
mods = 'CTRL',
action = wezterm.action.CloseCurrentTab { confirm = true },
},
{
key = 'k',
mods = 'CTRL',
action = act.Multiple {
act.ClearScrollback 'ScrollbackAndViewport',
act.SendKey { key = 'L', mods = 'CTRL' },
},
},
{
key = 'w',
mods = 'CTRL',
action = wezterm.action.CloseCurrentPane { confirm = true },
},
{ key="Backspace", mods="CTRL", action=act.SendKey { key="Backspace", mods="META" } },
{ key='t', mods='CTRL', action=act { SpawnCommandInNewTab = { cwd = wezterm.home_dir } } },
{key="LeftArrow", mods="CTRL|META", action=act.ActivateTabRelative(-1)},
{key="RightArrow", mods="CTRL|META", action=act.ActivateTabRelative(1)},
{key="UpArrow", mods="CTRL|META", action=act.ActivatePaneDirection("Prev")},
{key="DownArrow", mods="CTRL|META", action=act.ActivatePaneDirection("Next")},
{ key='h', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Left"} },
{ key='l', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Right"} },
{ key='j', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Up"} },
{ key='k', mods='CTRL|META', action=wezterm.action{ActivatePaneDirection="Down"} },
}
local barconfig = {
position = "bottom",
max_width = 32,
separator = {
space = 2,
left_icon = wezterm.nerdfonts.fa_long_arrow_right,
right_icon = wezterm.nerdfonts.fa_long_arrow_left,
field_icon = wezterm.nerdfonts.indent_line,
},
modules = {
tabs = {
active_tab_fg = 4,
inactive_tab_fg = 8, -- overridden by tab colour customization near the top
},
workspace = {
enabled = true,
icon = wezterm.nerdfonts.cod_window,
color = 8,
},
leader = {
enabled = true,
icon = wezterm.nerdfonts.oct_rocket,
color = 2,
},
pane = {
enabled = false,
icon = wezterm.nerdfonts.cod_multiple_windows,
color = 7,
},
username = {
enabled = false,
icon = wezterm.nerdfonts.fa_user,
color = 6,
},
hostname = {
enabled = false,
icon = wezterm.nerdfonts.cod_server,
color = 8,
},
clock = {
enabled = false,
icon = wezterm.nerdfonts.md_calendar_clock,
color = 5,
},
cwd = {
enabled = false,
icon = wezterm.nerdfonts.oct_file_directory,
color = 7,
},
spotify = {
enabled = false,
icon = wezterm.nerdfonts.fa_spotify,
color = 3,
max_width = 64,
throttle = 15,
},
},
}
bar.apply_to_config(config, barconfig)
return config