From 4ee8ff327faebb391261e5ea8287eaf5ac875fa7 Mon Sep 17 00:00:00 2001 From: jolheiser Date: Wed, 16 Aug 2023 10:56:22 -0500 Subject: [PATCH] feat: wezterm plugins Signed-off-by: jolheiser --- apps/wezterm/wezterm.lua | 118 ++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 57 deletions(-) diff --git a/apps/wezterm/wezterm.lua b/apps/wezterm/wezterm.lua index 0ec2d06..dcedb48 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 @@ wezterm.on('toggle-opacity', function(window, pane) 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