diff --git a/apps/wezterm/wezterm.lua b/apps/wezterm/wezterm.lua
index 0ec2d06669b1e55aabc4691f8ba8ded2f3697ae5..dcedb48d0d9075a93fa27657c98c5e7bda9f9926 100644
--- a/apps/wezterm/wezterm.lua
+++ b/apps/wezterm/wezterm.lua
@@ -1,14 +1,5 @@
local wezterm = require "wezterm"
--- Choose theme based on system
-function theme_for_appearance(appearance)
- if appearance:find "Dark" then
- return "Catppuccin Mocha"
- else
- return "Catppuccin Latte"
- end
-end
-
-- Update right status with "mode"
wezterm.on('update-right-status', function(window, pane)
local name = window:active_key_table()
@@ -32,55 +23,68 @@ window:set_config_overrides({ window_background_opacity = opacity })
end)
-- config
-return {
- default_prog = { "nu", "--config", "~/.config/nushell/config.nu", "--env-config", "~/.config/nushell/env.nu" },
- color_scheme = theme_for_appearance(wezterm.gui.get_appearance()),
- window_close_confirmation = 'NeverPrompt',
- window_background_opacity = opacity,
- window_decorations = "RESIZE",
- leader = {
- key = "Space",
- mods = "CTRL",
- timeout_milliseconds = math.maxinteger,
- },
- keys = {
- { key = "p", mods = "LEADER", action = wezterm.action.ActivateKeyTable({ name = "pane_mode", one_shot = false }) },
- { key = "h", mods = "SHIFT|CTRL|ALT", action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
- { key = "v", mods = "SHIFT|CTRL|ALT", action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }) },
- { key = "c", mods = "SHIFT|CTRL|ALT", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
- { key = "s", mods = "SHIFT|CTRL|ALT", action = wezterm.action.PaneSelect({ alphabet = "1234567890", mode = "SwapWithActive" }) },
-
- { key = "o", mods = "SHIFT|CTRL|ALT", action = wezterm.action.EmitEvent("toggle-opacity") },
-
- { key = "1", mods = "LEADER", action = wezterm.action.ActivateTab(0) },
- { key = "2", mods = "LEADER", action = wezterm.action.ActivateTab(1) },
- { key = "3", mods = "LEADER", action = wezterm.action.ActivateTab(2) },
- { key = "4", mods = "LEADER", action = wezterm.action.ActivateTab(3) },
- { key = "5", mods = "LEADER", action = wezterm.action.ActivateTab(4) },
- { key = "6", mods = "LEADER", action = wezterm.action.ActivateTab(5) },
- { key = "7", mods = "LEADER", action = wezterm.action.ActivateTab(6) },
- { key = "8", mods = "LEADER", action = wezterm.action.ActivateTab(7) },
- { key = "9", mods = "LEADER", action = wezterm.action.ActivateTab(8) },
- { key = "0", mods = "LEADER", action = wezterm.action.ActivateTab(-1) },
- },
- key_tables = {
- pane_mode = {
- { key = "h", action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
- { key = "v", action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }) },
- { key = "c", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
- { key = "s", action = wezterm.action.PaneSelect({ alphabet = "1234567890", mode = "SwapWithActive" }) },
- { key = "LeftArrow", action = wezterm.action.ActivatePaneDirection("Left") },
- { key = "UpArrow", action = wezterm.action.ActivatePaneDirection("Up") },
- { key = "RightArrow", action = wezterm.action.ActivatePaneDirection("Right") },
- { key = "DownArrow", action = wezterm.action.ActivatePaneDirection("Down") },
- { key = "Delete", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
- { key = "LeftArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Left", 1 }) },
- { key = "RightArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Right", 1 }) },
- { key = "UpArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Up", 1 }) },
- { key = "DownArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Down", 1 }) },
- { key = "Escape", action = "PopKeyTable" },
- },
+local cfg = wezterm.config_builder()
+cfg.default_prog = { "nu", "--config", "~/.config/nushell/config.nu", "--env-config", "~/.config/nushell/env.nu" }
+cfg.window_close_confirmation = 'NeverPrompt'
+cfg.window_background_opacity = opacity
+cfg.window_decorations = "RESIZE"
+cfg.leader = {
+ key = "Space",
+ mods = "CTRL",
+ timeout_milliseconds = math.maxinteger,
+}
+cfg.keys = {
+ { key = "p", mods = "LEADER", action = wezterm.action.ActivateKeyTable({ name = "pane_mode", one_shot = false }) },
+ { key = "h", mods = "SHIFT|CTRL|ALT", action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
+ { key = "v", mods = "SHIFT|CTRL|ALT", action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }) },
+ { key = "c", mods = "SHIFT|CTRL|ALT", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
+ { key = "s", mods = "SHIFT|CTRL|ALT", action = wezterm.action.PaneSelect({ alphabet = "1234567890", mode = "SwapWithActive" }) },
+ { key = "o", mods = "SHIFT|CTRL|ALT", action = wezterm.action.EmitEvent("toggle-opacity") },
+ { key = "LeftArrow", mods = "SHIFT|CTRL", action = wezterm.action.ActivateTabRelative(-1) },
+ { key = "RightArrow", mods = "SHIFT|CTRL", action = wezterm.action.ActivateTabRelative(1) },
+ { key = "1", mods = "LEADER", action = wezterm.action.ActivateTab(0) },
+ { key = "2", mods = "LEADER", action = wezterm.action.ActivateTab(1) },
+ { key = "3", mods = "LEADER", action = wezterm.action.ActivateTab(2) },
+ { key = "4", mods = "LEADER", action = wezterm.action.ActivateTab(3) },
+ { key = "5", mods = "LEADER", action = wezterm.action.ActivateTab(4) },
+ { key = "6", mods = "LEADER", action = wezterm.action.ActivateTab(5) },
+ { key = "7", mods = "LEADER", action = wezterm.action.ActivateTab(6) },
+ { key = "8", mods = "LEADER", action = wezterm.action.ActivateTab(7) },
+ { key = "9", mods = "LEADER", action = wezterm.action.ActivateTab(8) },
+ { key = "0", mods = "LEADER", action = wezterm.action.ActivateTab(-1) },
+}
+cfg.key_tables = {
+ pane_mode = {
+ { key = "h", action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
+ { key = "v", action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }) },
+ { key = "c", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
+ { key = "s", action = wezterm.action.PaneSelect({ alphabet = "1234567890", mode = "SwapWithActive" }) },
+ { key = "LeftArrow", action = wezterm.action.ActivatePaneDirection("Left") },
+ { key = "UpArrow", action = wezterm.action.ActivatePaneDirection("Up") },
+ { key = "RightArrow", action = wezterm.action.ActivatePaneDirection("Right") },
+ { key = "DownArrow", action = wezterm.action.ActivatePaneDirection("Down") },
+ { key = "Delete", action = wezterm.action.CloseCurrentPane({ confirm = false }) },
+ { key = "LeftArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Left", 1 }) },
+ { key = "RightArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Right", 1 }) },
+ { key = "UpArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Up", 1 }) },
+ { key = "DownArrow", mods = "SHIFT", action = wezterm.action.AdjustPaneSize({ "Down", 1 }) },
+ { key = "Escape", action = "PopKeyTable" },
},
}
+-- Plugins
+wezterm.plugin.require("https://github.com/catppuccin/wezterm").apply_to_config(cfg, {
+ sync = true,
+ sync_flavors = {
+ light = "latte",
+ dark = "mocha",
+ }
+})
+wezterm.plugin.require("https://github.com/nekowinston/wezterm-bar").apply_to_config(cfg, {
+ clock = {
+ enabled = false,
+ }
+})
+
+return cfg