nixos-config/home/terminal/emulator/wezterm.nix
2025-06-06 11:20:44 +02:00

93 lines
2.3 KiB
Nix

{
programs.wezterm = {
enable = true;
extraConfig = ''
local wezterm = require'wezterm'
local c = {}
if wezterm.config_builder then
c = wezterm.config_builder()
end
c.hide_tab_bar_if_only_one_tab = true
c.color_scheme = "deep"
c.window_padding = { left = 10, right = 10, top = 5, bottom = 5 }
c.window_decorations = 'RESIZE'
c.window_close_confirmation = "NeverPrompt"
c.use_fancy_tab_bar = false
c.font_size = 9
c.adjust_window_size_when_changing_font_size = true
-- Keys
c.leader = { key = 'j', mods = 'CTRL', timeout_milliseconds = 1000 }
c.keys = {
{
key = 'q',
mods = 'LEADER',
action = wezterm.action.CloseCurrentPane { confirm = false },
},
{
key = 'f',
mods = 'LEADER',
action = wezterm.action.TogglePaneZoomState,
},
{
key = 'h',
mods = 'LEADER',
action = wezterm.action.ActivatePaneDirection('Left'),
},
{
key = 'j',
mods = 'LEADER',
action = wezterm.action.ActivatePaneDirection('Down'),
},
{
key = 'k',
mods = 'LEADER',
action = wezterm.action.ActivatePaneDirection('Up'),
},
{
key = 'l',
mods = 'LEADER',
action = wezterm.action.ActivatePaneDirection('Right'),
},
{
key = 'H',
mods = 'LEADER',
action = wezterm.action.SplitPane { direction = 'Left' },
},
{
key = 'J',
mods = 'LEADER',
action = wezterm.action.SplitPane { direction = 'Down' },
},
{
key = 'K',
mods = 'LEADER',
action = wezterm.action.SplitPane { direction = 'Up' },
},
{
key = 'L',
mods = 'LEADER',
action = wezterm.action.SplitPane { direction = 'Right' },
},
{
key = 's',
mods = 'LEADER',
action = wezterm.action.PaneSelect {
mode = "Activate"
},
},
{
key = ';',
mods = 'LEADER',
action = wezterm.action.PaneSelect {
mode = "SwapWithActive"
},
},
}
return c
'';
};
}