dotfiles/config/wezterm/wezterm.lua (view raw)
| 1 | local W = require "wezterm" |
| 2 | local c = W.config_builder() |
| 3 | |
| 4 | c.default_prog = { "fish" } |
| 5 | |
| 6 | c.color_scheme = "Tokyo Night" |
| 7 | c.font = W.font "JetBrains Mono" -- c.font = W.font "Maple Mono" |
| 8 | c.font_size = 12.4 |
| 9 | -- c.line_height = 1.05 |
| 10 | |
| 11 | c.default_cursor_style = "BlinkingBar" |
| 12 | c.cursor_blink_rate = 0 |
| 13 | c.audible_bell = "Disabled" |
| 14 | c.window_decorations = "NONE" |
| 15 | c.use_fancy_tab_bar = false |
| 16 | c.hide_tab_bar_if_only_one_tab = true |
| 17 | c.show_new_tab_button_in_tab_bar = false |
| 18 | c.switch_to_last_active_tab_when_closing_tab = true |
| 19 | c.window_padding = { left = 0, right = 0, top = 0, bottom = 0 } |
| 20 | |
| 21 | -- keys |
| 22 | local function enter_mode(name, action) |
| 23 | return W.action.Multiple { |
| 24 | action, |
| 25 | W.action.ActivateKeyTable { name = name, one_shot = false }, |
| 26 | } |
| 27 | end |
| 28 | local function resize_entry(dir) |
| 29 | return enter_mode("resize_pane", W.action.AdjustPaneSize { dir, 2 }) |
| 30 | end |
| 31 | local function move_tab_entry(rel) |
| 32 | return enter_mode("move_tab", W.action.MoveTabRelative(rel)) |
| 33 | end |
| 34 | |
| 35 | c.leader = { mods = "CTRL", key = "t", timeout_milliseconds = 400 } |
| 36 | c.keys = { |
| 37 | { mods = "ALT", key = "1", action = W.action.ActivateTab(0) }, |
| 38 | { mods = "ALT", key = "2", action = W.action.ActivateTab(1) }, |
| 39 | { mods = "ALT", key = "3", action = W.action.ActivateTab(2) }, |
| 40 | { mods = "ALT", key = "4", action = W.action.ActivateTab(3) }, |
| 41 | { mods = "ALT", key = "5", action = W.action.ActivateTab(4) }, |
| 42 | { mods = "ALT", key = "6", action = W.action.ActivateTab(5) }, |
| 43 | { mods = "ALT", key = "7", action = W.action.ActivateTab(6) }, |
| 44 | { mods = "ALT", key = "8", action = W.action.ActivateTab(7) }, |
| 45 | { mods = "ALT", key = "9", action = W.action.ActivateTab(8) }, |
| 46 | { mods = "CTRL", key = "=", action = W.action.IncreaseFontSize }, |
| 47 | { mods = "CTRL", key = "-", action = W.action.DecreaseFontSize }, |
| 48 | { mods = "CTRL", key = "0", action = W.action.ResetFontSize }, |
| 49 | { mods = "LEADER", key = "t", action = W.action.SpawnCommandInNewTab {} }, |
| 50 | { mods = "LEADER", key = "w", action = W.action.CloseCurrentPane { confirm = false } }, |
| 51 | { mods = "LEADER", key = "n", action = W.action.SplitHorizontal {} }, |
| 52 | { mods = "LEADER", key = "N", action = W.action.SplitVertical {} }, |
| 53 | { mods = "LEADER", key = "f", action = W.action.TogglePaneZoomState }, |
| 54 | { mods = "LEADER", key = "/", action = W.action.ActivateCopyMode }, |
| 55 | { mods = "LEADER|SHIFT", key = "<", action = move_tab_entry(-1) }, |
| 56 | { mods = "LEADER|SHIFT", key = ">", action = move_tab_entry(1) }, |
| 57 | { mods = "LEADER", key = "h", action = W.action.ActivatePaneDirection "Left" }, |
| 58 | { mods = "LEADER", key = "j", action = W.action.ActivatePaneDirection "Down" }, |
| 59 | { mods = "LEADER", key = "k", action = W.action.ActivatePaneDirection "Up" }, |
| 60 | { mods = "LEADER", key = "l", action = W.action.ActivatePaneDirection "Right" }, |
| 61 | { mods = "LEADER", key = "LeftArrow", action = resize_entry "Left" }, |
| 62 | { mods = "LEADER", key = "DownArrow", action = resize_entry "Down" }, |
| 63 | { mods = "LEADER", key = "UpArrow", action = resize_entry "Up" }, |
| 64 | { mods = "LEADER", key = "RightArrow", action = resize_entry "Right" }, |
| 65 | } |
| 66 | |
| 67 | c.key_tables = { |
| 68 | resize_pane = { |
| 69 | { key = "Escape", action = "PopKeyTable" }, |
| 70 | { key = "LeftArrow", action = W.action.AdjustPaneSize { "Left", 2 } }, |
| 71 | { key = "h", action = W.action.AdjustPaneSize { "Left", 2 } }, |
| 72 | { key = "RightArrow", action = W.action.AdjustPaneSize { "Right", 2 } }, |
| 73 | { key = "l", action = W.action.AdjustPaneSize { "Right", 2 } }, |
| 74 | { key = "UpArrow", action = W.action.AdjustPaneSize { "Up", 2 } }, |
| 75 | { key = "k", action = W.action.AdjustPaneSize { "Up", 2 } }, |
| 76 | { key = "DownArrow", action = W.action.AdjustPaneSize { "Down", 2 } }, |
| 77 | { key = "j", action = W.action.AdjustPaneSize { "Down", 2 } }, |
| 78 | }, |
| 79 | move_tab = { |
| 80 | { key = "Escape", action = "PopKeyTable" }, |
| 81 | { mods = "SHIFT", key = "<", action = W.action.MoveTabRelative(-1) }, |
| 82 | { mods = "SHIFT", key = ">", action = W.action.MoveTabRelative(1) }, |
| 83 | }, |
| 84 | } |
| 85 | |
| 86 | return c |