Personal Nix setup
at main 5.5 kB view raw
1local wezterm = require("wezterm") 2local mux = wezterm.mux 3 4wezterm.on("gui-startup", function(cmd) 5 local tab, pane, window = mux.spawn_window(cmd or {}) 6 window:gui_window():maximize() 7end) 8 9local window_decorations = "RESIZE" 10if is_linux then 11 window_decorations = "TITLE | RESIZE" 12end 13 14return { 15 term = "wezterm", 16 default_prog = { zsh_bin, "-l" }, 17 18 mux_env_remove = { 19 "SSH_AUTH_SOCK", 20 "SSH_CLIENT", 21 "SSH_CONNECTION", 22 "GPG_TTY", 23 }, 24 25 front_end = "WebGpu", 26 font = wezterm.font_with_fallback({ "Dank Mono", "codicon", "Font Awesome 6 Pro" }), 27 allow_square_glyphs_to_overflow_width = "Always", 28 font_size = font_size, 29 line_height = 1.1, 30 max_fps = 120, 31 32 enable_wayland = true, 33 enable_scroll_bar = false, 34 enable_kitty_keyboard = true, 35 check_for_updates = false, 36 window_close_confirmation = "NeverPrompt", 37 native_macos_fullscreen_mode = true, 38 warn_about_missing_glyphs = false, 39 bold_brightens_ansi_colors = false, 40 window_decorations = window_decorations, 41 window_background_opacity = 0.999, 42 hide_mouse_cursor_when_typing = false, 43 underline_thickness = "160%", 44 45 use_fancy_tab_bar = false, 46 tab_bar_at_bottom = true, 47 tab_max_width = 24, 48 tab_bar_style = { 49 active_tab_left = empty, 50 active_tab_right = empty, 51 inactive_tab_left = empty, 52 inactive_tab_right = empty, 53 inactive_tab_hover_left = empty, 54 inactive_tab_hover_right = empty, 55 }, 56 57 inactive_pane_hsb = { 58 hue = 1.0, 59 saturation = 1.0, 60 brightness = 1.0, 61 }, 62 63 window_frame = { 64 font = wezterm.font_with_fallback({ "Dank Mono", "codicon" }), 65 font_size = font_size, 66 active_titlebar_bg = colors.black, 67 inactive_titlebar_bg = colors.black, 68 }, 69 70 window_padding = { 71 left = "3px", 72 right = "3px", 73 top = "4px", 74 bottom = "4px", 75 }, 76 77 colors = { 78 background = colors.black, 79 foreground = colors.white, 80 cursor_border = colors.grey, 81 cursor_fg = colors.grey, 82 cursor_bg = colors.white, 83 selection_bg = colors.grey, 84 selection_fg = colors.white, 85 split = colors.split, 86 ansi = { 87 colors.black, 88 colors.red, 89 colors.green, 90 colors.yellow, 91 colors.blue, 92 colors.magenta, 93 colors.aqua, 94 colors.white, 95 }, 96 brights = { 97 colors.grey, 98 colors.brightRed, 99 colors.brightGreen, 100 colors.orange, 101 colors.brightBlue, 102 colors.magenta, 103 colors.cyan, 104 colors.muted, 105 }, 106 tab_bar = { 107 background = colors.black, 108 active_tab = { 109 bg_color = colors.black, 110 fg_color = colors.yellow, 111 intensity = "Bold", 112 }, 113 inactive_tab_edge = colors.black, 114 inactive_tab = { 115 bg_color = colors.black, 116 fg_color = colors.muted, 117 }, 118 inactive_tab_hover = { 119 bg_color = colors.black, 120 fg_color = colors.blue, 121 }, 122 new_tab = { 123 bg_color = colors.black, 124 fg_color = colors.blue, 125 }, 126 } 127 }, 128 129 send_composed_key_when_left_alt_is_pressed = false, 130 send_composed_key_when_right_alt_is_pressed = true, 131 leader = { key = "a", mods = "CTRL", timeout_milliseconds = 1000 }, 132 keys = { 133 { key = "a", mods = "LEADER|CTRL", action = wezterm.action({ SendString="\x01" }) }, 134 { key = "%", mods = "LEADER|SHIFT", action = wezterm.action({ SplitHorizontal = { domain = "CurrentPaneDomain" } }) }, 135 { key = "\"", mods = "LEADER|SHIFT", action = wezterm.action({ SplitVertical = { domain = "CurrentPaneDomain" } }) }, 136 { key = "c", mods = "LEADER", action = wezterm.action({ SpawnTab = "CurrentPaneDomain" }) }, 137 { key = "h", mods = "CTRL", action = wezterm.action({ ActivatePaneDirection = "Left" }) }, 138 { key = "j", mods = "CTRL", action = wezterm.action({ ActivatePaneDirection = "Down" }) }, 139 { key = "k", mods = "CTRL", action = wezterm.action({ ActivatePaneDirection = "Up" }) }, 140 { key = "l", mods = "CTRL", action = wezterm.action({ ActivatePaneDirection = "Right" }) }, 141 { key = "h", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Left" }) }, 142 { key = "j", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Down" }) }, 143 { key = "k", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Up" }) }, 144 { key = "l", mods = "LEADER", action = wezterm.action({ ActivatePaneDirection = "Right" }) }, 145 { key = "H", mods = "LEADER|SHIFT", action = wezterm.action({ AdjustPaneSize = { "Left", 2 } }) }, 146 { key = "J", mods = "LEADER|SHIFT", action = wezterm.action({ AdjustPaneSize = { "Down", 2 } }) }, 147 { key = "K", mods = "LEADER|SHIFT", action = wezterm.action({ AdjustPaneSize = { "Up", 2 } }) }, 148 { key = "L", mods = "LEADER|SHIFT", action = wezterm.action({ AdjustPaneSize = { "Right", 2 } }) }, 149 { key = "n", mods = "LEADER", action = wezterm.action({ ActivateTabRelative = 1 }) }, 150 { key = "p", mods = "LEADER", action = wezterm.action({ ActivateTabRelative = -1 }) }, 151 { key = "l", mods = "LEADER", action = "ActivateLastTab" }, 152 { key = "&", mods = "LEADER|SHIFT", action = wezterm.action({ CloseCurrentTab = { confirm = true } }) }, 153 { key = "x", mods = "LEADER", action = wezterm.action({ CloseCurrentPane = { confirm = true } }) }, 154 { key = "-", mods = "LEADER", action = wezterm.action({ ClearScrollback = "ScrollbackAndViewport" }) }, 155 { key = "[", mods = "LEADER", action = "ActivateCopyMode" }, 156 { key = "z", mods = "LEADER", action = "TogglePaneZoomState" }, 157 { key = "s", mods = "LEADER", action = "ShowLauncher" }, 158 }, 159}