From 5faafce31c9918116db5bfe26f8e7d1db74fce9b Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Mon, 13 Jun 2022 12:26:11 -0500 Subject: [PATCH] wezterm configs --- .../wezterm/colors/catppuccin.lua | 226 ++++++++++++++++++ .../wezterm/executable_get-key-ref.sh | 11 + home/private_dot_config/wezterm/keys.lua | 13 + home/private_dot_config/wezterm/wezterm.lua | 30 +++ 4 files changed, 280 insertions(+) create mode 100644 home/private_dot_config/wezterm/colors/catppuccin.lua create mode 100644 home/private_dot_config/wezterm/executable_get-key-ref.sh create mode 100644 home/private_dot_config/wezterm/keys.lua create mode 100644 home/private_dot_config/wezterm/wezterm.lua diff --git a/home/private_dot_config/wezterm/colors/catppuccin.lua b/home/private_dot_config/wezterm/colors/catppuccin.lua new file mode 100644 index 0000000..52cf0a4 --- /dev/null +++ b/home/private_dot_config/wezterm/colors/catppuccin.lua @@ -0,0 +1,226 @@ +local wezterm = require "wezterm"; + +-- color variant hex codes +local colors = { + latte = { + rosewater = "#dc8a78", + flamingo = "#dd7878", + pink = "#ea76cb", + mauve = "#8839ef", + red = "#d20f39", + maroon = "#e64553", + peach = "#fe640b", + yellow = "#df8e1d", + green = "#40a02b", + teal = "#179299", + sky = "#04a5e5", + sapphire = "#209fb5", + blue = "#1e66f5", + lavender = "#7287fd", + text = "#4c4f69", + subtext1 = "#5c5f77", + subtext0 = "#6c6f85", + overlay2 = "#7c7f93", + overlay1 = "#8c8fa1", + overlay0 = "#9ca0b0", + surface2 = "#acb0be", + surface1 = "#bcc0cc", + surface0 = "#ccd0da", + crust = "#dce0e8", + mantle = "#e6e9ef", + base = "#eff1f5" + }, + frappe = { + rosewater = "#f2d5cf", + flamingo = "#eebebe", + pink = "#f4b8e4", + mauve = "#ca9ee6", + red = "#e78284", + maroon = "#ea999c", + peach = "#ef9f76", + yellow = "#e5c890", + green = "#a6d189", + teal = "#81c8be", + sky = "#99d1db", + sapphire = "#85c1dc", + blue = "#8caaee", + lavender = "#babbf1", + text = "#c6d0f5", + subtext1 = "#b5bfe2", + subtext0 = "#a5adce", + overlay2 = "#949cbb", + overlay1 = "#838ba7", + overlay0 = "#737994", + surface2 = "#626880", + surface1 = "#51576d", + surface0 = "#414559", + base = "#303446", + mantle = "#292c3c", + crust = "#232634" + }, + macchiato = { + rosewater = "#f4dbd6", + flamingo = "#f0c6c6", + pink = "#f5bde6", + mauve = "#c6a0f6", + red = "#ed8796", + maroon = "#ee99a0", + peach = "#f5a97f", + yellow = "#eed49f", + green = "#a6da95", + teal = "#8bd5ca", + sky = "#91d7e3", + sapphire = "#7dc4e4", + blue = "#8aadf4", + lavender = "#b7bdf8", + text = "#cad3f5", + subtext1 = "#b8c0e0", + subtext0 = "#a5adcb", + overlay2 = "#939ab7", + overlay1 = "#8087a2", + overlay0 = "#6e738d", + surface2 = "#5b6078", + surface1 = "#494d64", + surface0 = "#363a4f", + base = "#24273a", + mantle = "#1e2030", + crust = "#181926" + }, + mocha = { + rosewater = "#f5e0dc", + flamingo = "#f2cdcd", + pink = "#f5c2e7", + mauve = "#cba6f7", + red = "#f38ba8", + maroon = "#eba0ac", + peach = "#fab387", + yellow = "#f9e2af", + green = "#a6e3a1", + teal = "#94e2d5", + sky = "#89dceb", + sapphire = "#74c7ec", + blue = "#89b4fa", + lavender = "#b4befe", + text = "#cdd6f4", + subtext1 = "#bac2de", + subtext0 = "#a6adc8", + overlay2 = "#9399b2", + overlay1 = "#7f849c", + overlay0 = "#6c7086", + surface2 = "#585b70", + surface1 = "#45475a", + surface0 = "#313244", + base = "#1e1e2e", + mantle = "#181825", + crust = "#11111b" + } +} + +local catppuccin = {} +function catppuccin.select(palette) + return { + foreground = colors[palette].text, + background = colors[palette].base, + cursor_bg = colors[palette].rosewater, + cursor_border = colors[palette].rosewater, + cursor_fg = colors[palette].base, + selection_bg = colors[palette].surface2, + selection_fg = colors[palette].text, + ansi = { + colors[palette].overlay0, + colors[palette].red, + colors[palette].green, + colors[palette].yellow, + colors[palette].blue, + colors[palette].pink, + colors[palette].sky, + colors[palette].overlay2 + }, + brights = { + colors[palette].overlay1, + colors[palette].red, + colors[palette].green, + colors[palette].yellow, + colors[palette].blue, + colors[palette].pink, + colors[palette].sky, + colors[palette].text + }, + tab_bar = { + background = colors[palette].base, + active_tab = { + bg_color = colors[palette].surface2, + fg_color = colors[palette].text + }, + inactive_tab = { + bg_color = colors[palette].base, + fg_color = colors[palette].text + }, + inactive_tab_hover = { + bg_color = colors[palette].surface2, + fg_color = colors[palette].text + }, + new_tab = { + bg_color = colors[palette].base, + fg_color = colors[palette].text + }, + new_tab_hover = { + bg_color = colors[palette].surface2, + fg_color = colors[palette].text, + italic = true + } + }, + visual_bell = colors[palette].surface0, + indexed = { + [16] = colors[palette].peach, + [17] = colors[palette].rosewater + }, + scrollbar_thumb = colors[palette].surface2, + split = colors[palette].crust, + -- nightbuild only + compose_cursor = colors[palette].flamingo + } +end + +-- utility functions for interacting with wezterm API +local function scheme_for_appearance(appearance, options) + if appearance:find("Dark") then + return catppuccin.select(options.sync_flavours.dark) + else + return catppuccin.select(options.sync_flavours.light) + end +end + +function catppuccin.setup(options) + -- default to not syncing with the OS theme + local should_sync = true + if options.sync == false then should_sync = false end + + -- default options + options = { + sync = should_sync, + sync_flavours = options.sync_flavours or { + light = "latte", + dark = "mocha" + }, + flavour = options.flavour or "mocha" + } + + -- if sync is enabled, hook into the window-config-reloaded event + -- snippet from https://wezfurlong.org/wezterm/config/lua/window/get_appearance.html#windowget_appearance + if options.sync then + wezterm.on("window-config-reloaded", function(window, pane) + local overrides = window:get_config_overrides() or {} + local appearance = window:get_appearance() + local scheme = scheme_for_appearance(appearance, options) + if overrides.background ~= scheme.background then + overrides.colors = scheme + window:set_config_overrides(overrides) + end + end) + end + + return catppuccin.select(options.flavour) +end + +return catppuccin diff --git a/home/private_dot_config/wezterm/executable_get-key-ref.sh b/home/private_dot_config/wezterm/executable_get-key-ref.sh new file mode 100644 index 0000000..9a1d407 --- /dev/null +++ b/home/private_dot_config/wezterm/executable_get-key-ref.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +if ! [[ -d wez-ref ]]; then + git clone git@github.com:wez/wezterm.git wez-ref --depth 1 +else + cd wez-ref + git pull + cd .. +fi + +cat wez-ref/docs/config/lua/keyassignment/* >keys-ref.md diff --git a/home/private_dot_config/wezterm/keys.lua b/home/private_dot_config/wezterm/keys.lua new file mode 100644 index 0000000..06c0ac7 --- /dev/null +++ b/home/private_dot_config/wezterm/keys.lua @@ -0,0 +1,13 @@ +local wezterm = require("wezterm") + +return { + { key = "C", mods = "CTRL|SHIFT", action = wezterm.action { CopyTo = "ClipboardAndPrimarySelection" } }, + -- paste from the clipboard + { key = "V", mods = "CTRL|SHIFT", action = wezterm.action { PasteFrom = "Clipboard" } }, + -- paste from the primary selection + { key = "V", mods = "CTRL|SHIFT", action = wezterm.action { PasteFrom = "PrimarySelection" } }, + -- change font size + {key="-", mods="CTRL", action="DecreaseFontSize"}, + {key="=", mods="CTRL", action="IncreaseFontSize"}, + { key = "Space", mods = "CTRL|SHIFT", action = "QuickSelect" }, +} diff --git a/home/private_dot_config/wezterm/wezterm.lua b/home/private_dot_config/wezterm/wezterm.lua new file mode 100644 index 0000000..2a2add8 --- /dev/null +++ b/home/private_dot_config/wezterm/wezterm.lua @@ -0,0 +1,30 @@ +local wezterm = require("wezterm") +local catppuccin = require("colors/catppuccin").setup {} + +-- add wezterm to title for wm usage +wezterm.on("format-window-title", + function() + return " - Wezterm" + end +) + +local padding = 10 + +return { + window_background_opacity = 0.9, + window_padding = { + left = padding, + right = padding, + top = padding, + bottom = padding, + }, + font = wezterm.font("MonoLisa NF"), + adjust_window_size_when_changing_font_size = false, + colors = catppuccin, + use_fancy_tab_bar = false, + hide_tab_bar_if_only_one_tab = true, + tab_bar_at_bottom = true, + disable_default_key_bindings = true, + bold_brightens_ansi_colors = true, + keys = require('keys'), +}