mirror of
https://github.com/blahai/nyx.git
synced 2025-01-19 03:20:20 +00:00
78 lines
1.7 KiB
Lua
78 lines
1.7 KiB
Lua
|
local wezterm = require("wezterm")
|
||
|
local act = wezterm.action
|
||
|
|
||
|
local utils = require("utils")
|
||
|
|
||
|
local M = {}
|
||
|
|
||
|
local openUrl = act.QuickSelectArgs({
|
||
|
label = "open url",
|
||
|
patterns = { "https?://\\S+" },
|
||
|
action = wezterm.action_callback(function(window, pane)
|
||
|
local url = window:get_selection_text_for_pane(pane)
|
||
|
wezterm.open_with(url)
|
||
|
end),
|
||
|
})
|
||
|
|
||
|
local changeCtpFlavor = act.InputSelector({
|
||
|
title = "Change Catppuccin flavor",
|
||
|
choices = {
|
||
|
{ label = "Evergarden" },
|
||
|
{ label = "Espresso" },
|
||
|
{ label = "Mocha" },
|
||
|
{ label = "Macchiato" },
|
||
|
{ label = "Frappe" },
|
||
|
{ label = "Latte" },
|
||
|
},
|
||
|
action = wezterm.action_callback(function(window, _, _, label)
|
||
|
if label then
|
||
|
window:set_config_overrides({ color_scheme = "Catppuccin " .. label })
|
||
|
end
|
||
|
end),
|
||
|
})
|
||
|
|
||
|
local getNewName = act.PromptInputLine({
|
||
|
description = "Enter new name for tab",
|
||
|
action = wezterm.action_callback(function(window, pane, line)
|
||
|
if line then
|
||
|
window:active_tab():set_title(line)
|
||
|
end
|
||
|
end),
|
||
|
})
|
||
|
|
||
|
local keys = {}
|
||
|
local map = function(key, mods, action)
|
||
|
if type(mods) == "string" then
|
||
|
table.insert(keys, { key = key, mods = mods, action = action })
|
||
|
elseif type(mods) == "table" then
|
||
|
for _, mod in pairs(mods) do
|
||
|
table.insert(keys, { key = key, mods = mod, action = action })
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
map("Enter", "ALT", act.ToggleFullScreen)
|
||
|
|
||
|
map("e", "CTRL|SHIFT", getNewName)
|
||
|
map("o", { "LEADER", "SUPER" }, openUrl)
|
||
|
map("t", "ALT", changeCtpFlavor)
|
||
|
|
||
|
local mods
|
||
|
if utils.is_windows() then
|
||
|
mods = "ALT"
|
||
|
else
|
||
|
mods = "SUPER"
|
||
|
end
|
||
|
|
||
|
M.apply = function(c)
|
||
|
c.leader = {
|
||
|
key = " ",
|
||
|
mods = mods,
|
||
|
timeout_milliseconds = math.maxinteger,
|
||
|
}
|
||
|
c.keys = keys
|
||
|
-- c.disable_default_key_bindings = true
|
||
|
end
|
||
|
|
||
|
return M
|