diff options
Diffstat (limited to '.config/wezterm/wezterm.lua')
| -rw-r--r-- | .config/wezterm/wezterm.lua | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/.config/wezterm/wezterm.lua b/.config/wezterm/wezterm.lua new file mode 100644 index 0000000..de48ad6 --- /dev/null +++ b/.config/wezterm/wezterm.lua @@ -0,0 +1,205 @@ +local wezterm = require 'wezterm' + +---- Function to unset Ctrl+C keybinding +--local function unsetCtrlCKeybinding(window) +-- local keys = window:get_config().keys +-- for i, key in ipairs(keys) do +-- if key.key == 'c' and key.mods == 'CTRL' then +-- table.remove(keys, i) +-- break +-- end +-- end +-- window:set_config({ keys = keys }) +--end +-- +---- Event handler to unset Ctrl+C keybinding when using nvim +--wezterm.on("spawn_command", function(window, pane) +-- local cmd = pane:get_command() +-- if cmd and cmd[1] == "nvim" then +-- unsetCtrlCKeybinding(window) +-- end +--end) + +--local function isNvimRunning(window) +-- local pane = window.active_pane +-- local cmd = pane:get_command() +-- return cmd and cmd[1] == "nvim" +--end +-- +---- Function to modify keybindings based on the current program +--local function updateKeybindings(window) +-- local isNvim = isNvimRunning(window) +-- +-- local keys = {} +-- if not isNvim then +-- -- Add the default Ctrl+C keybinding +-- keys = { +-- { +-- key = "c", +-- mods = "CTRL", +-- action = wezterm.action{CopyTo = "ClipboardAndPrimarySelection"} +-- } +-- } +-- end +-- +-- window:set_config({ +-- keys = keys +-- }) +--end +-- +---- Event handler to update keybindings when the active program changes +--wezterm.on("update-right-status", function(window) +-- updateKeybindings(window) +--end) + +wezterm.on("toggle-opacity", function(window) + local overrides = window:get_config_overrides() or {} + if not overrides.window_background_opacity then + overrides.window_background_opacity = 1.0; + elseif overrides.window_background_opacity == 1.0 then + overrides.window_background_opacity = 0.6; + else + overrides.window_background_opacity = nil + end + window:set_config_overrides(overrides) +end) + +return { + --front_end = "OpenGL", + --font = wezterm.font 'JetBrains Mono', + font = wezterm.font_with_fallback { + { + family = 'JetBrains Mono', + --intensity = 'Normal', + weight = 'Medium', + italic = false, + harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, + }, + { family = 'Hack Nerd Font', weight = 'Medium' }, + { + family = 'Fira Code', + harfbuzz_features = { 'zero' } + }, + { family = 'Terminus', weight = 'Bold' }, + 'Noto Color Emoji', + }, + font_size = 9, + warn_about_missing_glyphs = false, + adjust_window_size_when_changing_font_size = false, + line_height = 1.0, + --dpi = 96.0, + -- Keybinds + disable_default_key_bindings = true, + use_dead_keys = false, + mouse_bindings = { + -- Ctrl-click will open the link under the mouse cursor + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'CTRL', + action = wezterm.action.OpenLinkAtMouseCursor, + }, + }, + keys = { + --leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }, + {key="O", mods= "CTRL|SHIFT", action=wezterm.action{EmitEvent="toggle-opacity"}}, + {key = 'R', mods = 'CTRL', action = 'ReloadConfiguration' }, + {key = 'Y', mods = 'CTRL', action = 'ShowDebugOverlay' }, + { + key = "-", + mods = "CTRL", + action = wezterm.action.DecreaseFontSize + }, + { + key = "=", + mods = "CTRL", + action = wezterm.action.IncreaseFontSize + }, + { + key = "0", + mods = "CTRL", + action = wezterm.action.ResetFontSize + }, + { + key = "v", + mods = "CTRL", + action = wezterm.action({ PasteFrom = "Clipboard" }), + }, + --{ + -- key = "c", + -- mods = "CTRL", + -- action = wezterm.action({ CopyTo = "ClipboardAndPrimarySelection" }), + --}, + { + key="c", + mods="CTRL", + action = wezterm.action_callback(function(window, pane) + local has_selection = window:get_selection_text_for_pane(pane) ~= "" + if has_selection then + window:perform_action( + wezterm.action{CopyTo="ClipboardAndPrimarySelection"}, + pane) + window:perform_action("ClearSelection", pane) + else + window:perform_action( + wezterm.action{SendKey={key="c", mods="CTRL"}}, + pane) + end + end) + } + }, + -- Aesthetic Night Colorscheme + --bold_brightens_ansi_colors = true, + -- Padding + window_padding = { + left = 5, + right = 5, + top = 6, + bottom = 4, + }, + -- Cursor style + --default_cursor_style = "BlinkingUnderline", + default_cursor_style = 'BlinkingBar', + cursor_blink_rate = 700, + -- needed to prevent 'easing' from using 40%+ cpu util ... + --animation_fps = 1, + force_reverse_video_cursor = true, + colors = { + cursor_bg = 'white', + compose_cursor = 'orange', + --cursor_border = 'white', + }, + + -- Tab Bar + enable_tab_bar = false, + --hide_tab_bar_if_only_one_tab = true, + --show_tab_index_in_tab_bar = false, + tab_bar_at_bottom = false, + + -- General + -- X11 + --enable_wayland = true, + audible_bell = "Disabled", + + visual_bell = { + fade_in_duration_ms = 5, + fade_out_duration_ms = 5, + target = "CursorColor", + }, + automatically_reload_config = true, + scrollback_lines = 3500, + --inactive_pane_hsb = { saturation = 1.0, brightness = 1.0 }, + --text_background_opacity = 0.3, + window_background_opacity = 0.8, + --window_background_image = '/path/to/wallpaper.jpg', + --window_background_image_hsb = { + -- -- Darken the background image by reducing it to 1/3rd + -- brightness = 0.3, + -- -- You can adjust the hue by scaling its value. + -- -- a multiplier of 1.0 leaves the value unchanged. + -- hue = 1.0, + -- -- You can adjust the saturation also. + -- saturation = 1.0, + --}, + window_close_confirmation = "NeverPrompt", + --color_scheme = 'transparent', +} |
