diff options
| author | delta <darkussdelta@gmail.com> | 2025-07-04 00:38:29 +0200 |
|---|---|---|
| committer | delta <darkussdelta@gmail.com> | 2025-07-04 00:38:29 +0200 |
| commit | b3530d7c4a102935fa26498a160ee1dc6c1e9c03 (patch) | |
| tree | d7751206a694bc5de2d6b34b0c077cfcd1855798 /.config/wezterm | |
| parent | df75ec5ed5e3848c497f0439acb43ec9246ad3e7 (diff) | |
:3
Diffstat (limited to '.config/wezterm')
| -rw-r--r-- | .config/wezterm/.nvim.lua | 2 | ||||
| -rw-r--r-- | .config/wezterm/appearance.lua | 89 | ||||
| -rw-r--r-- | .config/wezterm/colors.lua | 78 | ||||
| -rw-r--r-- | .config/wezterm/inspect.lua | 512 | ||||
| -rw-r--r-- | .config/wezterm/keys.lua | 68 | ||||
| -rw-r--r-- | .config/wezterm/stylua.toml | 5 | ||||
| -rw-r--r-- | .config/wezterm/wezterm.lua | 155 |
7 files changed, 485 insertions, 424 deletions
diff --git a/.config/wezterm/.nvim.lua b/.config/wezterm/.nvim.lua new file mode 100644 index 0000000..9c7049d --- /dev/null +++ b/.config/wezterm/.nvim.lua @@ -0,0 +1,2 @@ +vim.env.GIT_DIR = vim.fn.expand("~/.dots") +vim.env.GIT_WORK_TREE = vim.fn.expand("~") diff --git a/.config/wezterm/appearance.lua b/.config/wezterm/appearance.lua index 2376174..f786e85 100644 --- a/.config/wezterm/appearance.lua +++ b/.config/wezterm/appearance.lua @@ -1,62 +1,51 @@ -local wezterm = require "wezterm" +local wezterm = require("wezterm") local function basename(s) - return string.gsub(s, '(.*[/\\])(.*)', '%2') + return string.gsub(s, "(.*[/\\])(.*)", "%2") end local function home_or_path(path) - local realpath = path:sub(14, -1) -- file://lambda - local home = os.getenv("HOME") - return realpath == home and "~" or realpath + local realpath = tostring(path):sub(14, -1) -- file://lambda + local home = os.getenv("HOME") + return realpath == home and "~" or realpath end wezterm.on("format-tab-title", function(tab) - local tab_format = { - { Text = " " }, - { Text = tostring(tab.tab_index + 1) }, - { Text = " " }, - { Text = basename(home_or_path(tab.active_pane.current_working_dir)) }, - { Text = " " }, - "ResetAttributes", - } - - if tab.is_active then - table.insert(tab_format, 1, { Background = { Color = C.black } }) - end - - return wezterm.format(tab_format) + local tab_format = { + { Text = " " }, + { Text = tostring(tab.tab_index + 1) }, + { Text = " " }, + { Text = basename(home_or_path(tab.active_pane.current_working_dir)) }, + { Text = " " }, + "ResetAttributes", + } + + return wezterm.format(tab_format) end) return { - -- tabs - show_new_tab_button_in_tab_bar = false, - use_fancy_tab_bar = false, - tab_bar_at_bottom = true, - hide_tab_bar_if_only_one_tab = true, - - -- font - font = wezterm.font { - family = "FiraCode Nerd Font Mono", - harfbuzz_features = { "ss02", "ss03", "ss04", "ss08" } - }, - font_size = 10, - adjust_window_size_when_changing_font_size = false, - - -- cursor - default_cursor_style = "BlinkingUnderline", - cursor_blink_rate = 500, - animation_fps = 1, - - -- window - window_padding = { - left = 10, - right = 10, - top = 10, - bottom = 10 - }, - - -- colors - colors = R "colors", - bold_brightens_ansi_colors = false, - + -- tabs + show_new_tab_button_in_tab_bar = false, + use_fancy_tab_bar = false, + tab_bar_at_bottom = true, + hide_tab_bar_if_only_one_tab = true, + + -- font + font = wezterm.font({ + -- family = "FiraCode Nerd Font Mono", + family = "Iosevka Comfy", + -- harfbuzz_features = { "ss02", "ss03", "ss04", "ss08" } + }), + font_size = 10.5, + adjust_window_size_when_changing_font_size = false, + allow_square_glyphs_to_overflow_width = "Never", + + -- cursor + default_cursor_style = "BlinkingUnderline", + cursor_blink_rate = 500, + animation_fps = 1, + + -- colors + colors = R("colors"), + bold_brightens_ansi_colors = false, } diff --git a/.config/wezterm/colors.lua b/.config/wezterm/colors.lua index 58ae639..e290a12 100644 --- a/.config/wezterm/colors.lua +++ b/.config/wezterm/colors.lua @@ -1,48 +1,48 @@ return { - foreground = C.fg, - background = C.bg, + foreground = C.fg(), + background = C.bg(), - cursor_bg = C.fg, - cursor_fg = C.bg, - cursor_border = C.bg, + cursor_bg = C.fg(), + cursor_fg = C.bg(), + cursor_border = C.bg(), - selection_bg = C.bright.black, - selection_fg = C.fg, + selection_bg = C.bg.high, + selection_fg = C.fg(), - visual_bell = C.white, + visual_bell = C.fg(), - ansi = { - C.black, - C.red, - C.green, - C.yellow, - C.blue, - C.pink, - C.cyan, - C.white, - }, - brights = { - C.bright.black, - C.bright.red, - C.bright.green, - C.bright.yellow, - C.bright.blue, - C.bright.pink, - C.bright.cyan, - C.bright.white, - }, + ansi = { + C.bg.lowest, + C.red(), + C.green(), + C.yellow(), + C.blue(), + C.pink(), + C.cyan(), + C.fg(), + }, + brights = { + C.bg.low, + C.red.bright, + C.green.bright, + C.yellow.bright, + C.blue.bright, + C.pink.bright, + C.cyan.bright, + C.fg.high, + }, - tab_bar = { - background = C.bg, + tab_bar = { + background = C.bg(), - active_tab = { - bg_color = C.bg, - fg_color = C.fg - }, + active_tab = { + bg_color = C.bg.high, + fg_color = C.fg(), + }, - inactive_tab = { - bg_color = C.bg, - fg_color = C.fg_dark - }, - } + inactive_tab = { + bg_color = C.bg(), + fg_color = C.fg.low, + }, + }, } diff --git a/.config/wezterm/inspect.lua b/.config/wezterm/inspect.lua index ce90145..f744939 100644 --- a/.config/wezterm/inspect.lua +++ b/.config/wezterm/inspect.lua @@ -1,25 +1,18 @@ -local _tl_compat; if (tonumber((_VERSION or ''):match('[%d.]*$')) or 0) < 5.3 then local p, m = pcall(require, 'compat53.module'); if p then _tl_compat = m end end; local math = _tl_compat and _tl_compat.math or math; local string = _tl_compat and _tl_compat.string or string; local table = _tl_compat and _tl_compat.table or table -local inspect = {Options = {}, } - - - - - - - - - - - - - - - - - -inspect._VERSION = 'inspect.lua 3.1.0' -inspect._URL = 'http://github.com/kikito/inspect.lua' -inspect._DESCRIPTION = 'human-readable representations of tables' +local _tl_compat +if (tonumber((_VERSION or ""):match("[%d.]*$")) or 0) < 5.3 then + local p, m = pcall(require, "compat53.module") + if p then + _tl_compat = m + end +end +local math = _tl_compat and _tl_compat.math or math +local string = _tl_compat and _tl_compat.string or string +local table = _tl_compat and _tl_compat.table or table +local inspect = { Options = {} } + +inspect._VERSION = "inspect.lua 3.1.0" +inspect._URL = "http://github.com/kikito/inspect.lua" +inspect._DESCRIPTION = "human-readable representations of tables" inspect._LICENSE = [[ MIT LICENSE @@ -44,8 +37,16 @@ inspect._LICENSE = [[ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ]] -inspect.KEY = setmetatable({}, { __tostring = function() return 'inspect.KEY' end }) -inspect.METATABLE = setmetatable({}, { __tostring = function() return 'inspect.METATABLE' end }) +inspect.KEY = setmetatable({}, { + __tostring = function() + return "inspect.KEY" + end, +}) +inspect.METATABLE = setmetatable({}, { + __tostring = function() + return "inspect.METATABLE" + end, +}) local tostring = tostring local rep = string.rep @@ -56,317 +57,310 @@ local fmt = string.format local _rawget if rawget then - _rawget = rawget + _rawget = rawget else - _rawget = function(t, k) return t[k] end + _rawget = function(t, k) + return t[k] + end end local function rawpairs(t) - return next, t, nil + return next, t, nil end - - local function smartQuote(str) - if match(str, '"') and not match(str, "'") then - return "'" .. str .. "'" - end - return '"' .. gsub(str, '"', '\\"') .. '"' + if match(str, '"') and not match(str, "'") then + return "'" .. str .. "'" + end + return '"' .. gsub(str, '"', '\\"') .. '"' end - local shortControlCharEscapes = { - ["\a"] = "\\a", ["\b"] = "\\b", ["\f"] = "\\f", ["\n"] = "\\n", - ["\r"] = "\\r", ["\t"] = "\\t", ["\v"] = "\\v", ["\127"] = "\\127", + ["\a"] = "\\a", + ["\b"] = "\\b", + ["\f"] = "\\f", + ["\n"] = "\\n", + ["\r"] = "\\r", + ["\t"] = "\\t", + ["\v"] = "\\v", + ["\127"] = "\\127", } local longControlCharEscapes = { ["\127"] = "\127" } for i = 0, 31 do - local ch = char(i) - if not shortControlCharEscapes[ch] then - shortControlCharEscapes[ch] = "\\" .. i - longControlCharEscapes[ch] = fmt("\\%03d", i) - end + local ch = char(i) + if not shortControlCharEscapes[ch] then + shortControlCharEscapes[ch] = "\\" .. i + longControlCharEscapes[ch] = fmt("\\%03d", i) + end end local function escape(str) - return (gsub(gsub(gsub(str, "\\", "\\\\"), - "(%c)%f[0-9]", longControlCharEscapes), - "%c", shortControlCharEscapes)) + return (gsub(gsub(gsub(str, "\\", "\\\\"), "(%c)%f[0-9]", longControlCharEscapes), "%c", shortControlCharEscapes)) end local luaKeywords = { - ['and'] = true, - ['break'] = true, - ['do'] = true, - ['else'] = true, - ['elseif'] = true, - ['end'] = true, - ['false'] = true, - ['for'] = true, - ['function'] = true, - ['goto'] = true, - ['if'] = true, - ['in'] = true, - ['local'] = true, - ['nil'] = true, - ['not'] = true, - ['or'] = true, - ['repeat'] = true, - ['return'] = true, - ['then'] = true, - ['true'] = true, - ['until'] = true, - ['while'] = true, + ["and"] = true, + ["break"] = true, + ["do"] = true, + ["else"] = true, + ["elseif"] = true, + ["end"] = true, + ["false"] = true, + ["for"] = true, + ["function"] = true, + ["goto"] = true, + ["if"] = true, + ["in"] = true, + ["local"] = true, + ["nil"] = true, + ["not"] = true, + ["or"] = true, + ["repeat"] = true, + ["return"] = true, + ["then"] = true, + ["true"] = true, + ["until"] = true, + ["while"] = true, } local function isIdentifier(str) - return type(str) == "string" and - not not str:match("^[_%a][_%a%d]*$") and - not luaKeywords[str] + return type(str) == "string" and not not str:match("^[_%a][_%a%d]*$") and not luaKeywords[str] end local flr = math.floor local function isSequenceKey(k, sequenceLength) - return type(k) == "number" and - flr(k) == k and - 1 <= (k) and - k <= sequenceLength + return type(k) == "number" and flr(k) == k and 1 <= k and k <= sequenceLength end local defaultTypeOrders = { - ['number'] = 1, ['boolean'] = 2, ['string'] = 3, ['table'] = 4, - ['function'] = 5, ['userdata'] = 6, ['thread'] = 7, + ["number"] = 1, + ["boolean"] = 2, + ["string"] = 3, + ["table"] = 4, + ["function"] = 5, + ["userdata"] = 6, + ["thread"] = 7, } local function sortKeys(a, b) - local ta, tb = type(a), type(b) - + local ta, tb = type(a), type(b) - if ta == tb and (ta == 'string' or ta == 'number') then - return (a) < (b) - end + if ta == tb and (ta == "string" or ta == "number") then + return a < b + end - local dta = defaultTypeOrders[ta] or 100 - local dtb = defaultTypeOrders[tb] or 100 + local dta = defaultTypeOrders[ta] or 100 + local dtb = defaultTypeOrders[tb] or 100 - - return dta == dtb and ta < tb or dta < dtb + return dta == dtb and ta < tb or dta < dtb end local function getKeys(t) - - local seqLen = 1 - while _rawget(t, seqLen) ~= nil do - seqLen = seqLen + 1 - end - seqLen = seqLen - 1 - - local keys, keysLen = {}, 0 - for k in rawpairs(t) do - if not isSequenceKey(k, seqLen) then - keysLen = keysLen + 1 - keys[keysLen] = k - end - end - table.sort(keys, sortKeys) - return keys, keysLen, seqLen + local seqLen = 1 + while _rawget(t, seqLen) ~= nil do + seqLen = seqLen + 1 + end + seqLen = seqLen - 1 + + local keys, keysLen = {}, 0 + for k in rawpairs(t) do + if not isSequenceKey(k, seqLen) then + keysLen = keysLen + 1 + keys[keysLen] = k + end + end + table.sort(keys, sortKeys) + return keys, keysLen, seqLen end local function countCycles(x, cycles) - if type(x) == "table" then - if cycles[x] then - cycles[x] = cycles[x] + 1 - else - cycles[x] = 1 - for k, v in rawpairs(x) do - countCycles(k, cycles) - countCycles(v, cycles) - end - countCycles(getmetatable(x), cycles) - end - end + if type(x) == "table" then + if cycles[x] then + cycles[x] = cycles[x] + 1 + else + cycles[x] = 1 + for k, v in rawpairs(x) do + countCycles(k, cycles) + countCycles(v, cycles) + end + countCycles(getmetatable(x), cycles) + end + end end local function makePath(path, a, b) - local newPath = {} - local len = #path - for i = 1, len do newPath[i] = path[i] end + local newPath = {} + local len = #path + for i = 1, len do + newPath[i] = path[i] + end - newPath[len + 1] = a - newPath[len + 2] = b + newPath[len + 1] = a + newPath[len + 2] = b - return newPath + return newPath end - -local function processRecursive(process, - item, - path, - visited) - if item == nil then return nil end - if visited[item] then return visited[item] end - - local processed = process(item, path) - if type(processed) == "table" then - local processedCopy = {} - visited[item] = processedCopy - local processedKey - - for k, v in rawpairs(processed) do - processedKey = processRecursive(process, k, makePath(path, k, inspect.KEY), visited) - if processedKey ~= nil then - processedCopy[processedKey] = processRecursive(process, v, makePath(path, processedKey), visited) - end - end - - local mt = processRecursive(process, getmetatable(processed), makePath(path, inspect.METATABLE), visited) - if type(mt) ~= 'table' then mt = nil end - setmetatable(processedCopy, mt) - processed = processedCopy - end - return processed +local function processRecursive(process, item, path, visited) + if item == nil then + return nil + end + if visited[item] then + return visited[item] + end + + local processed = process(item, path) + if type(processed) == "table" then + local processedCopy = {} + visited[item] = processedCopy + local processedKey + + for k, v in rawpairs(processed) do + processedKey = processRecursive(process, k, makePath(path, k, inspect.KEY), visited) + if processedKey ~= nil then + processedCopy[processedKey] = processRecursive(process, v, makePath(path, processedKey), visited) + end + end + + local mt = processRecursive(process, getmetatable(processed), makePath(path, inspect.METATABLE), visited) + if type(mt) ~= "table" then + mt = nil + end + setmetatable(processedCopy, mt) + processed = processedCopy + end + return processed end local function puts(buf, str) - buf.n = buf.n + 1 - buf[buf.n] = str + buf.n = buf.n + 1 + buf[buf.n] = str end - - local Inspector = {} - - - - - - - - - local Inspector_mt = { __index = Inspector } local function tabify(inspector) - puts(inspector.buf, inspector.newline .. rep(inspector.indent, inspector.level)) + puts(inspector.buf, inspector.newline .. rep(inspector.indent, inspector.level)) end function Inspector:getId(v) - local id = self.ids[v] - local ids = self.ids - if not id then - local tv = type(v) - id = (ids[tv] or 0) + 1 - ids[v], ids[tv] = id, id - end - return tostring(id) + local id = self.ids[v] + local ids = self.ids + if not id then + local tv = type(v) + id = (ids[tv] or 0) + 1 + ids[v], ids[tv] = id, id + end + return tostring(id) end function Inspector:putValue(v) - local buf = self.buf - local tv = type(v) - if tv == 'string' then - puts(buf, smartQuote(escape(v))) - elseif tv == 'number' or tv == 'boolean' or tv == 'nil' or - tv == 'cdata' or tv == 'ctype' then - puts(buf, tostring(v)) - elseif tv == 'table' and not self.ids[v] then - local t = v - - if t == inspect.KEY or t == inspect.METATABLE then - puts(buf, tostring(t)) - elseif self.level >= self.depth then - puts(buf, '{...}') - else - if self.cycles[t] > 1 then puts(buf, fmt('<%d>', self:getId(t))) end - - local keys, keysLen, seqLen = getKeys(t) - - puts(buf, '{') - self.level = self.level + 1 - - for i = 1, seqLen + keysLen do - if i > 1 then puts(buf, ',') end - if i <= seqLen then - puts(buf, ' ') - self:putValue(t[i]) - else - local k = keys[i - seqLen] - tabify(self) - if isIdentifier(k) then - puts(buf, k) - else - puts(buf, "[") - self:putValue(k) - puts(buf, "]") - end - puts(buf, ' = ') - self:putValue(t[k]) - end - end - - local mt = getmetatable(t) - if type(mt) == 'table' then - if seqLen + keysLen > 0 then puts(buf, ',') end - tabify(self) - puts(buf, '<metatable> = ') - self:putValue(mt) - end - - self.level = self.level - 1 - - if keysLen > 0 or type(mt) == 'table' then - tabify(self) - elseif seqLen > 0 then - puts(buf, ' ') - end - - puts(buf, '}') - end - - else - puts(buf, fmt('<%s %d>', tv, self:getId(v))) - end + local buf = self.buf + local tv = type(v) + if tv == "string" then + puts(buf, smartQuote(escape(v))) + elseif tv == "number" or tv == "boolean" or tv == "nil" or tv == "cdata" or tv == "ctype" then + puts(buf, tostring(v)) + elseif tv == "table" and not self.ids[v] then + local t = v + + if t == inspect.KEY or t == inspect.METATABLE then + puts(buf, tostring(t)) + elseif self.level >= self.depth then + puts(buf, "{...}") + else + if self.cycles[t] > 1 then + puts(buf, fmt("<%d>", self:getId(t))) + end + + local keys, keysLen, seqLen = getKeys(t) + + puts(buf, "{") + self.level = self.level + 1 + + for i = 1, seqLen + keysLen do + if i > 1 then + puts(buf, ",") + end + if i <= seqLen then + puts(buf, " ") + self:putValue(t[i]) + else + local k = keys[i - seqLen] + tabify(self) + if isIdentifier(k) then + puts(buf, k) + else + puts(buf, "[") + self:putValue(k) + puts(buf, "]") + end + puts(buf, " = ") + self:putValue(t[k]) + end + end + + local mt = getmetatable(t) + if type(mt) == "table" then + if seqLen + keysLen > 0 then + puts(buf, ",") + end + tabify(self) + puts(buf, "<metatable> = ") + self:putValue(mt) + end + + self.level = self.level - 1 + + if keysLen > 0 or type(mt) == "table" then + tabify(self) + elseif seqLen > 0 then + puts(buf, " ") + end + + puts(buf, "}") + end + else + puts(buf, fmt("<%s %d>", tv, self:getId(v))) + end end - - - function inspect.inspect(root, options) - options = options or {} + options = options or {} - local depth = options.depth or (math.huge) - local newline = options.newline or '\n' - local indent = options.indent or ' ' - local process = options.process + local depth = options.depth or math.huge + local newline = options.newline or "\n" + local indent = options.indent or " " + local process = options.process - if process then - root = processRecursive(process, root, {}, {}) - end + if process then + root = processRecursive(process, root, {}, {}) + end - local cycles = {} - countCycles(root, cycles) + local cycles = {} + countCycles(root, cycles) - local inspector = setmetatable({ - buf = { n = 0 }, - ids = {}, - cycles = cycles, - depth = depth, - level = 0, - newline = newline, - indent = indent, - }, Inspector_mt) + local inspector = setmetatable({ + buf = { n = 0 }, + ids = {}, + cycles = cycles, + depth = depth, + level = 0, + newline = newline, + indent = indent, + }, Inspector_mt) - inspector:putValue(root) + inspector:putValue(root) - return table.concat(inspector.buf) + return table.concat(inspector.buf) end setmetatable(inspect, { - __call = function(_, root, options) - return inspect.inspect(root, options) - end, + __call = function(_, root, options) + return inspect.inspect(root, options) + end, }) return inspect - diff --git a/.config/wezterm/keys.lua b/.config/wezterm/keys.lua index 0bba603..c92054b 100644 --- a/.config/wezterm/keys.lua +++ b/.config/wezterm/keys.lua @@ -1,40 +1,50 @@ -local wezterm = require "wezterm" +local wezterm = require("wezterm") local act = wezterm.action local act_callback = wezterm.action_callback local function kb(mods, key, action) - return { mods = mods, key = key, action = action } + return { mods = mods, key = key, action = action } end return { - disable_default_key_bindings = true, - keys = { - -- tabs - kb("SHIFT|CTRL", "t", act.SpawnTab "CurrentPaneDomain"), - kb("SHIFT|CTRL", "q", act.CloseCurrentTab { confirm = false }), - kb("SHIFT|CTRL", "LeftArrow", act.ActivateTabRelative(-1)), - kb("SHIFT|CTRL", "RightArrow", act.ActivateTabRelative(1)), + disable_default_key_bindings = true, + keys = { + -- tabs + kb("SHIFT|CTRL", "t", act.SpawnTab("CurrentPaneDomain")), + kb("SHIFT|CTRL", "q", act.CloseCurrentTab({ confirm = false })), + kb("SHIFT|CTRL", "LeftArrow", act.ActivateTabRelative(-1)), + kb("SHIFT|CTRL", "RightArrow", act.ActivateTabRelative(1)), - -- panes - kb("SHIFT|ALT", "w", act.SplitVertical { domain = "CurrentPaneDomain" }), - kb("SHIFT|ALT", "d", act.SplitHorizontal { domain = "CurrentPaneDomain" }), - kb("SHIFT|ALT", "q", act.CloseCurrentPane { confirm = false }), - kb("SHIFT|ALT", "UpArrow", act.ActivatePaneDirection "Up"), - kb("SHIFT|ALT", "DownArrow", act.ActivatePaneDirection "Down"), - kb("SHIFT|ALT", "LeftArrow", act.ActivatePaneDirection "Left"), - kb("SHIFT|ALT", "RightArrow", act.ActivatePaneDirection "Right"), + -- panes + kb("SHIFT|ALT", "w", act.SplitVertical({ domain = "CurrentPaneDomain" })), + kb("SHIFT|ALT", "d", act.SplitHorizontal({ domain = "CurrentPaneDomain" })), + kb("SHIFT|ALT", "q", act.CloseCurrentPane({ confirm = false })), + kb("SHIFT|ALT", "UpArrow", act.ActivatePaneDirection("Up")), + kb("SHIFT|ALT", "DownArrow", act.ActivatePaneDirection("Down")), + kb("SHIFT|ALT", "LeftArrow", act.ActivatePaneDirection("Left")), + kb("SHIFT|ALT", "RightArrow", act.ActivatePaneDirection("Right")), + + kb("", "PageUp", act.ScrollByLine(-1)), + kb("SHIFT", "PageUp", act.ScrollByLine(-5)), + kb("", "PageDown", act.ScrollByLine(1)), + kb("SHIFT", "PageDown", act.ScrollByLine(5)), - -- general - kb("CTRL", "c", act_callback(function(w, p) - local has_selection = w:get_selection_text_for_pane(p) ~= "" + -- general + kb( + "CTRL", + "c", + act_callback(function(w, p) + local has_selection = w:get_selection_text_for_pane(p) ~= "" - if has_selection then - w:perform_action(act.CopyTo "Clipboard", p) - else - w:perform_action(act.SendKey { mods = "CTRL", key = "c" }, p) - end - end)), - kb("CTRL", "v", act.PasteFrom "Clipboard"), - kb("CTRL", "f", act.Search "CurrentSelectionOrEmptyString") - } + if has_selection then + w:perform_action(act.CopyTo("Clipboard"), p) + else + w:perform_action(act.SendKey({ mods = "CTRL", key = "c" }), p) + end + end) + ), + kb("CTRL", "v", act.PasteFrom("Clipboard")), + kb("CTRL", "f", act.Search("CurrentSelectionOrEmptyString")), + kb("SHIFT|CTRL", "l", act.ShowDebugOverlay), + }, } diff --git a/.config/wezterm/stylua.toml b/.config/wezterm/stylua.toml new file mode 100644 index 0000000..5cc0b69 --- /dev/null +++ b/.config/wezterm/stylua.toml @@ -0,0 +1,5 @@ +call_parentheses = "None" +indent_type = "Spaces" + +[sort_requires] +enabled = true diff --git a/.config/wezterm/wezterm.lua b/.config/wezterm/wezterm.lua index 0cd46b6..86014f6 100644 --- a/.config/wezterm/wezterm.lua +++ b/.config/wezterm/wezterm.lua @@ -1,61 +1,122 @@ -local wezterm = require "wezterm" +local wezterm = require("wezterm") function R(name) - local m = require(name) - return m + local m = require(name) + return m +end + +-- C = { +-- bg_dark = "#161b22", +-- bg = "#1b2026", +-- +-- fg_dark = "#77828c", +-- fg = "#d9dfe4", +-- +-- black = "#1f242b", +-- red = "#df625d", +-- yellow = "#fdc267", +-- green = "#91d89a", +-- blue = "#8ec6ff", +-- pink = "#f2b9c1", +-- cyan = "#77e2e3", +-- white = "#d9dfe4", +-- +-- bright = { +-- red = "#f1726b", +-- black = "#242930", +-- yellow = "#ffd79d", +-- green = "#a1e9aa", +-- blue = "#add6ff", +-- pink = "#ffcbd2", +-- cyan = "#88f3f3", +-- white = "#d9dfe4", +-- }, +-- } + +function palette(colors) + return setmetatable(colors, { + __call = function(self) + return self[1] + end, + }) end C = { - fg = "#dfe2e7", - bg = "#222831", - fg_dark = "#8893a5", - bg_dark = "#1e232b", - - black = "#252c36", - red = "#de615c", - green = "#91d89a", - yellow = "#ffc469", - blue = "#8fc7ff", - pink = "#f2b9c1", - cyan = "#9cfdff", - white = "#dfe2e7", - - bright = { - black = "#2c3440", - red = "#e8908d", - green = "#b2e4b8", - yellow = "#ffd696", - blue = "#b1d8ff", - pink = "#f6ced4", - cyan = "#bafeff", - white = "#e9ebee", - } -} + fg = palette { + low = "#999fa7", + "#b8bec7", + high = "#d8dfe7", + }, + + bg = palette { + lowest = "#070c11", + low = "#0c1116", + "#12161c", + high = "#171c22", + highest = "#1d2228", + }, + + border = palette { + "#323b46", + variant = "#262f39", + }, + + red = palette { + "#ff928a", + bright = "#ffb2a9", + }, + orange = palette { + "#ff9f6f", + bright = "#ffc08e", + }, + yellow = palette { + "#ecb256", + bright = "#ffd278", + }, + green = palette { + "#8bd294", + bright = "#abf3b3", + }, + cyan = palette { + "#6dd3c2", + bright = "#8ef4e2", + }, + blue = palette { + "#8bc3fc", + bright = "#abe4ff", + }, + purple = palette { + "#c4b1f6", + bright = "#e4d1ff", + }, + pink = palette { + "#e5acb4", + bright = "#ffccd4" + }, + transparent = "#00000000", +} function M(...) - local mt = {} - for _,t in ipairs {...} do - for k,v in pairs(t) do - mt[k] = v - end - end - return mt + local mt = {} + for _, t in ipairs({ ... }) do + for k, v in pairs(t) do + mt[k] = v + end + end + return mt end wezterm.on("bell", function() - wezterm.background_child_process { - "notify-send", - "bell" - } + wezterm.background_child_process({ + "notify-send", + "bell", + }) end) -return M( - { - window_close_confirmation = "NeverPrompt", - check_for_updates = false - }, - R "appearance", - R "keys" -) +return M({ + window_close_confirmation = "NeverPrompt", + check_for_updates = false, + warn_about_missing_glyphs = false, +}, R("appearance"), R("keys")) -- return {} |
