mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 16:53:00 +00:00
chezmoi: reorganise repo
This commit is contained in:
parent
b391e03c87
commit
67a78879db
278 changed files with 102 additions and 182 deletions
70
home/dot_config/wezterm/appearance.lua
Normal file
70
home/dot_config/wezterm/appearance.lua
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
local wezterm = require("wezterm")
|
||||
local os_type = require("utils").detected_os
|
||||
local color = require("color")
|
||||
|
||||
-- https://wezterm.org/config/lua/wezterm.gui/get_appearance.html
|
||||
-- wezterm.gui is not available to the mux server, so take care to
|
||||
-- do something reasonable when this config is evaluated by the mux
|
||||
local function get_appearance()
|
||||
if wezterm.gui then
|
||||
return wezterm.gui.get_appearance()
|
||||
end
|
||||
return "Dark"
|
||||
end
|
||||
|
||||
local function scheme_for_appearance(appearance)
|
||||
if appearance:find("Dark") then
|
||||
print("Dark")
|
||||
return "Catppuccin Mocha"
|
||||
else
|
||||
print("Light")
|
||||
return "Catppuccin Latte"
|
||||
-- return "rose-pine-dawn"
|
||||
end
|
||||
end
|
||||
|
||||
return function(config)
|
||||
config.max_fps = 120
|
||||
config.font = wezterm.font({
|
||||
family = "Maple Mono NF CN",
|
||||
})
|
||||
config.color_scheme = scheme_for_appearance(get_appearance())
|
||||
config.font_size = 12.0
|
||||
config.front_end = "WebGpu"
|
||||
config.webgpu_power_preference = "HighPerformance"
|
||||
if os_type.is_win then
|
||||
config.window_background_opacity = 0.7 -- Not working under WebGpu
|
||||
config.win32_system_backdrop = "Mica"
|
||||
end
|
||||
config.window_padding = {
|
||||
left = 0,
|
||||
right = 0,
|
||||
top = 0,
|
||||
bottom = 0,
|
||||
}
|
||||
-- Cursor
|
||||
config.animation_fps = 120
|
||||
if not os_type.is_win then -- This is sooooooo slow on Windows
|
||||
config.cursor_blink_ease_in = "EaseOut"
|
||||
config.cursor_blink_ease_out = "EaseOut"
|
||||
config.default_cursor_style = "BlinkingBlock"
|
||||
config.cursor_blink_rate = 650
|
||||
end
|
||||
-- Visual Bell
|
||||
config.visual_bell = {
|
||||
fade_in_function = "EaseIn",
|
||||
fade_in_duration_ms = 250,
|
||||
fade_out_function = "EaseOut",
|
||||
fade_out_duration_ms = 250,
|
||||
target = "CursorColor",
|
||||
}
|
||||
-- Command Palette
|
||||
config.window_frame = {
|
||||
font = wezterm.font("PingFang SC"),
|
||||
}
|
||||
config.window_decorations = "RESIZE"
|
||||
config.command_palette_fg_color = color.lavender
|
||||
config.command_palette_bg_color = color.base
|
||||
-- UnixLong / Emacs / AppleSymbols / WindowsLong / WindowsSymbols
|
||||
config.ui_key_cap_rendering = "AppleSymbols"
|
||||
end
|
||||
30
home/dot_config/wezterm/color.lua
Normal file
30
home/dot_config/wezterm/color.lua
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
local 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",
|
||||
}
|
||||
|
||||
return mocha
|
||||
15
home/dot_config/wezterm/dot_gitignore
Normal file
15
home/dot_config/wezterm/dot_gitignore
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# $DOTFILES/tools/wezterm/
|
||||
# Date: 2025-01-06
|
||||
# Author: js0ny
|
||||
|
||||
# Location:
|
||||
# $XDG_CONFIG_HOME/wezterm/wezterm.lua (works Windows)
|
||||
# Linking: Link the whole directory
|
||||
# ln -sf $DOTFILES/tools/wezterm $XDG_CONFIG_HOME/wezterm
|
||||
# New-Item -ItemType SymbolicLink -Target $DOTFILES\tools\wezterm -Path $Env:XDG_CONFIG_HOME\wezterm
|
||||
|
||||
# In windows, many cache & logs are stored in %APPDATA%\wezterm
|
||||
|
||||
*.json
|
||||
check_update
|
||||
plugins
|
||||
44
home/dot_config/wezterm/keymaps/colemak.lua
Normal file
44
home/dot_config/wezterm/keymaps/colemak.lua
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
local M = {}
|
||||
local wezterm = require("wezterm")
|
||||
local act = wezterm.action
|
||||
|
||||
M.leader = {
|
||||
{
|
||||
key = "n",
|
||||
mods = "LEADER",
|
||||
action = act.ActivatePaneDirection("Down"),
|
||||
},
|
||||
{
|
||||
key = "e",
|
||||
mods = "LEADER",
|
||||
action = act.ActivatePaneDirection("Up"),
|
||||
},
|
||||
{
|
||||
key = "i",
|
||||
mods = "LEADER",
|
||||
action = act.ActivatePaneDirection("Right"),
|
||||
},
|
||||
{
|
||||
key = "N",
|
||||
mods = "LEADER",
|
||||
action = act.AdjustPaneSize({ "Down", 5 }),
|
||||
},
|
||||
{
|
||||
key = "E",
|
||||
mods = "LEADER",
|
||||
action = act.AdjustPaneSize({ "Up", 5 }),
|
||||
},
|
||||
{
|
||||
key = "I",
|
||||
mods = "LEADER",
|
||||
action = act.AdjustPaneSize({ "Right", 5 }),
|
||||
},
|
||||
}
|
||||
|
||||
local leader_common = require("keymaps.leaders").common
|
||||
|
||||
for _, v in ipairs(leader_common) do
|
||||
table.insert(M.leader, v)
|
||||
end
|
||||
|
||||
return M
|
||||
183
home/dot_config/wezterm/keymaps/init.lua
Normal file
183
home/dot_config/wezterm/keymaps/init.lua
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
-- vim: foldmethod=marker foldmarker=#region,#endregion
|
||||
-- Reference to: https://github.com/KevinSilvester/wezterm-config/blob/master/config/bindings.lua
|
||||
local wezterm = require("wezterm")
|
||||
local action = wezterm.action
|
||||
local act = wezterm.action
|
||||
local os_type = require("utils").detected_os
|
||||
|
||||
local SUPER
|
||||
|
||||
if os_type.is_mac then
|
||||
SUPER = "SUPER"
|
||||
else
|
||||
SUPER = "ALT"
|
||||
end
|
||||
|
||||
local layout = require("keymaps.colemak")
|
||||
|
||||
-- #region Key Tables
|
||||
local key_tables = {
|
||||
copy_mode = {
|
||||
-- #region Built-in CopyMode
|
||||
-- This keymaps seems cannot be merged.
|
||||
{ key = "Tab", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
|
||||
{ key = "Tab", mods = "SHIFT", action = act.CopyMode("MoveBackwardWord") },
|
||||
{ key = "Enter", mods = "NONE", action = act.CopyMode("MoveToStartOfNextLine") },
|
||||
{ key = "Escape", mods = "NONE", action = act.Multiple({ "ScrollToBottom", { CopyMode = "Close" } }) },
|
||||
{ key = "Space", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
|
||||
{ key = "$", mods = "NONE", action = act.CopyMode("MoveToEndOfLineContent") },
|
||||
{ key = "$", mods = "SHIFT", action = act.CopyMode("MoveToEndOfLineContent") },
|
||||
{ key = ",", mods = "NONE", action = act.CopyMode("JumpReverse") },
|
||||
{ key = "0", mods = "NONE", action = act.CopyMode("MoveToStartOfLine") },
|
||||
{ key = ";", mods = "NONE", action = act.CopyMode("JumpAgain") },
|
||||
{ key = "F", mods = "NONE", action = act.CopyMode({ JumpBackward = { prev_char = false } }) },
|
||||
{ key = "F", mods = "SHIFT", action = act.CopyMode({ JumpBackward = { prev_char = false } }) },
|
||||
{ key = "G", mods = "NONE", action = act.CopyMode("MoveToScrollbackBottom") },
|
||||
{ key = "G", mods = "SHIFT", action = act.CopyMode("MoveToScrollbackBottom") },
|
||||
{ key = "H", mods = "NONE", action = act.CopyMode("MoveToViewportTop") },
|
||||
{ key = "H", mods = "SHIFT", action = act.CopyMode("MoveToViewportTop") },
|
||||
{ key = "L", mods = "NONE", action = act.CopyMode("MoveToViewportBottom") },
|
||||
{ key = "L", mods = "SHIFT", action = act.CopyMode("MoveToViewportBottom") },
|
||||
{ key = "M", mods = "NONE", action = act.CopyMode("MoveToViewportMiddle") },
|
||||
{ key = "M", mods = "SHIFT", action = act.CopyMode("MoveToViewportMiddle") },
|
||||
{ key = "O", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
|
||||
{ key = "O", mods = "SHIFT", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
|
||||
{ key = "T", mods = "NONE", action = act.CopyMode({ JumpBackward = { prev_char = true } }) },
|
||||
{ key = "T", mods = "SHIFT", action = act.CopyMode({ JumpBackward = { prev_char = true } }) },
|
||||
{ key = "V", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Line" }) },
|
||||
{ key = "V", mods = "SHIFT", action = act.CopyMode({ SetSelectionMode = "Line" }) },
|
||||
{ key = "^", mods = "NONE", action = act.CopyMode("MoveToStartOfLineContent") },
|
||||
{ key = "^", mods = "SHIFT", action = act.CopyMode("MoveToStartOfLineContent") },
|
||||
{ key = "b", mods = "NONE", action = act.CopyMode("MoveBackwardWord") },
|
||||
{ key = "b", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
|
||||
{ key = "b", mods = "CTRL", action = act.CopyMode("PageUp") },
|
||||
{ key = "c", mods = "CTRL", action = act.Multiple({ "ScrollToBottom", { CopyMode = "Close" } }) },
|
||||
{ key = "d", mods = "CTRL", action = act.CopyMode({ MoveByPage = 0.5 }) },
|
||||
{ key = "e", mods = "NONE", action = act.CopyMode("MoveForwardWordEnd") },
|
||||
{ key = "f", mods = "NONE", action = act.CopyMode({ JumpForward = { prev_char = false } }) },
|
||||
{ key = "f", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
|
||||
{ key = "f", mods = "CTRL", action = act.CopyMode("PageDown") },
|
||||
{ key = "g", mods = "NONE", action = act.CopyMode("MoveToScrollbackTop") },
|
||||
{ key = "g", mods = "CTRL", action = act.Multiple({ "ScrollToBottom", { CopyMode = "Close" } }) },
|
||||
{ key = "h", mods = "NONE", action = act.CopyMode("MoveLeft") },
|
||||
{ key = "j", mods = "NONE", action = act.CopyMode("MoveDown") },
|
||||
{ key = "k", mods = "NONE", action = act.CopyMode("MoveUp") },
|
||||
{ key = "l", mods = "NONE", action = act.CopyMode("MoveRight") },
|
||||
{ key = "m", mods = "ALT", action = act.CopyMode("MoveToStartOfLineContent") },
|
||||
{ key = "o", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEnd") },
|
||||
{ key = "q", mods = "NONE", action = act.Multiple({ "ScrollToBottom", { CopyMode = "Close" } }) },
|
||||
{ key = "t", mods = "NONE", action = act.CopyMode({ JumpForward = { prev_char = true } }) },
|
||||
{ key = "u", mods = "CTRL", action = act.CopyMode({ MoveByPage = -0.5 }) },
|
||||
{ key = "v", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
|
||||
{ key = "v", mods = "CTRL", action = act.CopyMode({ SetSelectionMode = "Block" }) },
|
||||
{ key = "w", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
|
||||
{
|
||||
key = "y",
|
||||
mods = "NONE",
|
||||
action = act.Multiple({
|
||||
{ CopyTo = "ClipboardAndPrimarySelection" },
|
||||
{ Multiple = { "ScrollToBottom", { CopyMode = "Close" } } },
|
||||
}),
|
||||
},
|
||||
{ key = "PageUp", mods = "NONE", action = act.CopyMode("PageUp") },
|
||||
{ key = "PageDown", mods = "NONE", action = act.CopyMode("PageDown") },
|
||||
{ key = "End", mods = "NONE", action = act.CopyMode("MoveToEndOfLineContent") },
|
||||
{ key = "Home", mods = "NONE", action = act.CopyMode("MoveToStartOfLine") },
|
||||
{ key = "LeftArrow", mods = "NONE", action = act.CopyMode("MoveLeft") },
|
||||
{ key = "LeftArrow", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
|
||||
{ key = "RightArrow", mods = "NONE", action = act.CopyMode("MoveRight") },
|
||||
{ key = "RightArrow", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
|
||||
{ key = "UpArrow", mods = "NONE", action = act.CopyMode("MoveUp") },
|
||||
{ key = "DownArrow", mods = "NONE", action = act.CopyMode("MoveDown") },
|
||||
-- #endregion
|
||||
-- #region Customized CopyMode
|
||||
{ key = "n", mods = "NONE", action = act.CopyMode("MoveDown") },
|
||||
{ key = "e", mods = "NONE", action = act.CopyMode("MoveUp") },
|
||||
{ key = "i", mods = "NONE", action = act.CopyMode("MoveRight") },
|
||||
{ key = "j", mods = "NONE", action = act.CopyMode("MoveForwardWordEnd") },
|
||||
-- #endregion
|
||||
},
|
||||
resize_pane = {
|
||||
{ key = "h", mods = "NONE", action = act.AdjustPaneSize({ "Left", 1 }) },
|
||||
{ key = "n", mods = "NONE", action = act.AdjustPaneSize({ "Down", 1 }) },
|
||||
{ key = "e", mods = "NONE", action = act.AdjustPaneSize({ "Up", 1 }) },
|
||||
{ key = "i", mods = "NONE", action = act.AdjustPaneSize({ "Right", 1 }) },
|
||||
{ key = "q", mods = "NONE", action = "PopKeyTable" },
|
||||
},
|
||||
}
|
||||
-- #endregion
|
||||
|
||||
local leader_keys = layout.leader
|
||||
|
||||
|
||||
-- #region Ctrl Keymaps
|
||||
local ctrl_keys = {
|
||||
{
|
||||
key = "W",
|
||||
mods = "CTRL",
|
||||
action = act.CloseCurrentPane({ confirm = true }),
|
||||
},
|
||||
{ -- ^C to copy if selection is active, otherwise send signal
|
||||
-- https://wezfurlong.org/wezterm/config/lua/keyassignment/ClearSelection.html?h=selection
|
||||
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(act.CopyTo("ClipboardAndPrimarySelection"), pane)
|
||||
|
||||
window:perform_action(act.ClearSelection, pane)
|
||||
else
|
||||
window:perform_action(act.SendKey({ key = "c", mods = "CTRL" }), pane)
|
||||
end
|
||||
end),
|
||||
},
|
||||
}
|
||||
-- #endregion
|
||||
|
||||
-- #region SUPER Keymaps
|
||||
local super_keys = {
|
||||
{ key = "LeftArrow", mods = SUPER, action = act.SendString("\u{1b}OH") },
|
||||
{ key = "RightArrow", mods = SUPER, action = act.SendString("\u{1b}OF") },
|
||||
{ key = "Backspace", mods = SUPER, action = act.SendString("\u{15}") },
|
||||
{ key = "0", mods = SUPER, action = act.ActivateTab(-1) },
|
||||
{ key = "t", mods = SUPER, action = act.SpawnTab("DefaultDomain") },
|
||||
{ key = "w", mods = SUPER, action = act.CloseCurrentTab({ confirm = false }) },
|
||||
}
|
||||
for i = 1, 9 do
|
||||
table.insert(super_keys, { key = tostring(i), mods = SUPER, action = act.ActivateTab(i - 1) })
|
||||
end
|
||||
-- #endregion
|
||||
|
||||
-- Concat all keymaps
|
||||
local keys = {}
|
||||
|
||||
for _, keymap in ipairs(leader_keys) do
|
||||
table.insert(keys, keymap)
|
||||
end
|
||||
|
||||
for _, keymap in ipairs(ctrl_keys) do
|
||||
table.insert(keys, keymap)
|
||||
end
|
||||
|
||||
for _, keymap in ipairs(super_keys) do
|
||||
table.insert(keys, keymap)
|
||||
end
|
||||
|
||||
return function(config)
|
||||
config.leader = { key = "q", mods = "CTRL" }
|
||||
config.keys = keys
|
||||
config.key_tables = key_tables
|
||||
config.mouse_bindings = {
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Left" } },
|
||||
mods = "CTRL",
|
||||
action = act.OpenLinkAtMouseCursor,
|
||||
},
|
||||
{
|
||||
event = { Up = { streak = 1, button = "Left" } },
|
||||
mods = "SUPER",
|
||||
action = act.OpenLinkAtMouseCursor,
|
||||
},
|
||||
}
|
||||
end
|
||||
67
home/dot_config/wezterm/keymaps/leaders.lua
Normal file
67
home/dot_config/wezterm/keymaps/leaders.lua
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
local M = {}
|
||||
local wezterm = require("wezterm")
|
||||
local act = wezterm.action
|
||||
|
||||
-- #region Leader Keymaps
|
||||
M.common = {
|
||||
{
|
||||
key = "q",
|
||||
mods = "LEADER",
|
||||
action = act.SendKey({ key = "q", mods = "CTRL" }),
|
||||
},
|
||||
-- Windows Management
|
||||
{ -- leader keys
|
||||
key = "|",
|
||||
mods = "LEADER|SHIFT",
|
||||
action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }),
|
||||
},
|
||||
{
|
||||
key = "-",
|
||||
mods = "LEADER",
|
||||
action = act.SplitVertical({ domain = "CurrentPaneDomain" }),
|
||||
},
|
||||
{
|
||||
key = "h",
|
||||
mods = "LEADER",
|
||||
action = act.ActivatePaneDirection("Left"),
|
||||
},
|
||||
{
|
||||
key = "H",
|
||||
mods = "LEADER",
|
||||
action = act.AdjustPaneSize({ "Left", 5 }),
|
||||
},
|
||||
{
|
||||
key = "/",
|
||||
mods = "LEADER",
|
||||
action = act.Search({ Regex = "" }),
|
||||
},
|
||||
{
|
||||
key = "?",
|
||||
mods = "LEADER|SHIFT",
|
||||
action = act.Search({ CaseSensitiveString = "" }),
|
||||
},
|
||||
{
|
||||
key = ";",
|
||||
mods = "LEADER",
|
||||
action = act.ShowLauncher,
|
||||
},
|
||||
{
|
||||
key = ":",
|
||||
mods = "LEADER|SHIFT",
|
||||
action = act.ActivateCommandPalette,
|
||||
},
|
||||
{
|
||||
key = "r",
|
||||
mods = "LEADER",
|
||||
action = act.ActivateKeyTable({
|
||||
name = "resize_pane",
|
||||
one_shot = false,
|
||||
timeout_milliseconds = 2000,
|
||||
}),
|
||||
},
|
||||
}
|
||||
-- #endregion
|
||||
|
||||
|
||||
|
||||
return M
|
||||
45
home/dot_config/wezterm/keymaps/qwerty.lua
Normal file
45
home/dot_config/wezterm/keymaps/qwerty.lua
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
local M = {}
|
||||
local wezterm = require("wezterm")
|
||||
local act = wezterm.action
|
||||
|
||||
M.qwerty = {
|
||||
|
||||
{
|
||||
key = "j",
|
||||
mods = "LEADER",
|
||||
action = act.ActivatePaneDirection("Down"),
|
||||
},
|
||||
{
|
||||
key = "k",
|
||||
mods = "LEADER",
|
||||
action = act.ActivatePaneDirection("Up"),
|
||||
},
|
||||
{
|
||||
key = "l",
|
||||
mods = "LEADER",
|
||||
action = act.ActivatePaneDirection("Right"),
|
||||
},
|
||||
{
|
||||
key = "J",
|
||||
mods = "LEADER",
|
||||
action = act.AdjustPaneSize({ "Down", 5 }),
|
||||
},
|
||||
{
|
||||
key = "K",
|
||||
mods = "LEADER",
|
||||
action = act.AdjustPaneSize({ "Up", 5 }),
|
||||
},
|
||||
{
|
||||
key = "L",
|
||||
mods = "LEADER",
|
||||
action = act.AdjustPaneSize({ "Right", 5 }),
|
||||
},
|
||||
}
|
||||
|
||||
local leader_common = require("keymaps.leaders").common
|
||||
|
||||
for _, v in ipairs(leader_common) do
|
||||
table.insert(M.leader, v)
|
||||
end
|
||||
|
||||
return M
|
||||
63
home/dot_config/wezterm/launcher.lua
Normal file
63
home/dot_config/wezterm/launcher.lua
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
local os_type = require("utils").detected_os
|
||||
|
||||
return function(config)
|
||||
if os_type.is_win then
|
||||
config.default_prog = { "pwsh.exe", "-NoLogo", "-NoProfileLoadTime" }
|
||||
config.launch_menu = {
|
||||
{
|
||||
label = "Local - PowerShell",
|
||||
args = { "pwsh.exe", "-NoLogo", "-NoProfileLoadTime" },
|
||||
},
|
||||
{
|
||||
label = "Local - PowerShell Administator",
|
||||
args = { "sudo.exe", "pwsh.exe", "-NoLogo", "-NoProfileLoadTime" },
|
||||
},
|
||||
{
|
||||
label = "WSL1 - Arch",
|
||||
args = { "wsl.exe", "-d", "Arch" },
|
||||
},
|
||||
{
|
||||
label = "WSL2 - kali-linux",
|
||||
args = { "wsl.exe", "-d", "kali-linux" },
|
||||
},
|
||||
{
|
||||
label = "Local - NuShell",
|
||||
args = { "nu" },
|
||||
},
|
||||
{
|
||||
label = "Local - Windows PowerShell",
|
||||
args = { "powershell.exe" },
|
||||
},
|
||||
{
|
||||
label = "Local - Command Prompt",
|
||||
args = { "cmd.exe" },
|
||||
},
|
||||
{
|
||||
label = "WSL1 - Arch Zsh",
|
||||
args = { "wsl.exe", "-d", "Arch", "zsh" },
|
||||
},
|
||||
}
|
||||
elseif os_type.is_mac then
|
||||
config.default_prog = { "/opt/homebrew/bin/fish", "-l" }
|
||||
else
|
||||
config.default_prog = { "fish" }
|
||||
config.launch_menu = {
|
||||
{
|
||||
label = "Local - Fish",
|
||||
args = { "fish", "-l" },
|
||||
},
|
||||
{
|
||||
label = "Local - Zsh",
|
||||
args = { "zsh", "-l" },
|
||||
},
|
||||
{
|
||||
label = "Local - PowerShell",
|
||||
args = { "pwsh", "-NoLogo", "-NoProfileLoadTime", "-Login" },
|
||||
},
|
||||
{
|
||||
label = "Local - NuShell",
|
||||
args = { "nu", "-l" },
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
8
home/dot_config/wezterm/misc.lua
Normal file
8
home/dot_config/wezterm/misc.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
return function(config)
|
||||
-- Environment
|
||||
config.set_environment_variables = {
|
||||
TERM = "xterm-256color",
|
||||
-- TERM_PROGRAM = "wezterm", -- wezterm already sets this
|
||||
}
|
||||
config.enable_wayland = false
|
||||
end
|
||||
125
home/dot_config/wezterm/tab.lua
Normal file
125
home/dot_config/wezterm/tab.lua
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
local wezterm = require("wezterm")
|
||||
local nf = wezterm.nerdfonts
|
||||
local color = require("color")
|
||||
|
||||
local tabline = wezterm.plugin.require("https://github.com/michaelbrusegard/tabline.wez")
|
||||
tabline.setup({
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = "Catppuccin Mocha",
|
||||
tabs_enabled = true,
|
||||
theme_overrides = {
|
||||
tab = {
|
||||
inactive = { bg = color.crust , fg = color.text },
|
||||
active = { fg = color.lavender, bg = color.base },
|
||||
inactive_hover = { fg = color.pink, bg = color.surface0 },
|
||||
},
|
||||
normal_mode = {
|
||||
a = { fg = color.mantle, bg = color.lavender }, -- bg: Lavender (Mocha)
|
||||
b = { fg = color.lavender, bg = color.surface0 }, -- fg: Lavender (Mocha)
|
||||
c = { bg = color.base, fg = color.text },
|
||||
},
|
||||
copy_mode = {
|
||||
c = { bg = color.base, fg = color.text },
|
||||
},
|
||||
search_mode = {
|
||||
c = { bg = color.base, fg = color.text },
|
||||
},
|
||||
window_mode = {
|
||||
c = { bg = color.base, fg = color.text },
|
||||
},
|
||||
},
|
||||
section_separators = {
|
||||
left = nf.ple_flame_thick,
|
||||
right = nf.ple_flame_thick_mirrored,
|
||||
},
|
||||
component_separators = {
|
||||
left = nf.ple_flame_thick,
|
||||
right = nf.ple_flame_thick_mirrored,
|
||||
},
|
||||
tab_separators = {
|
||||
left = nf.ple_ice_waveform,
|
||||
right = nf.ple_ice_waveform_mirrored,
|
||||
},
|
||||
},
|
||||
sections = {
|
||||
tabline_a = {
|
||||
{
|
||||
"mode",
|
||||
icon = nf.md_alpha_w_box_outline,
|
||||
-- icons_only = true,
|
||||
fmt = function(str)
|
||||
return str:sub(1, 1)
|
||||
end,
|
||||
},
|
||||
},
|
||||
tabline_b = { "window" },
|
||||
tabline_c = { "" },
|
||||
tab_active = {
|
||||
"index",
|
||||
{ "parent", padding = 0 },
|
||||
"/",
|
||||
{ "cwd", padding = { left = 0, right = 1 } },
|
||||
{ "zoomed", padding = 0 },
|
||||
},
|
||||
tab_inactive = {
|
||||
"index",
|
||||
{
|
||||
"process",
|
||||
padding = { left = 0, right = 1 },
|
||||
process_to_icon = {
|
||||
["dotnet"] = { nf.dev_dotnet },
|
||||
["dotnet.exe"] = { nf.dev_dotnet },
|
||||
["emacs"] = { nf.custom_emacs },
|
||||
["pwsh"] = { nf.md_powershell },
|
||||
["pwsh.exe"] = { nf.md_powershell },
|
||||
["powershell.exe"] = { nf.md_powershell },
|
||||
["python3.13"] = { nf.md_language_python },
|
||||
["less"] = { nf.fa_pager },
|
||||
["nu"] = { nf.seti_shell },
|
||||
["nu.exe"] = { nf.seti_shell },
|
||||
},
|
||||
},
|
||||
},
|
||||
tabline_x = {},
|
||||
tabline_y = { "ram" },
|
||||
tabline_z = { "datetime" },
|
||||
},
|
||||
extensions = {},
|
||||
})
|
||||
|
||||
return function(config)
|
||||
config.hide_tab_bar_if_only_one_tab = true
|
||||
config.tab_bar_at_bottom = false
|
||||
-- If set to false, the tab bar will be terminal-like
|
||||
config.use_fancy_tab_bar = false
|
||||
config.colors = {
|
||||
tab_bar = {
|
||||
background = color.base,
|
||||
active_tab = {
|
||||
-- bg_color = color.pink,
|
||||
bg_color = color.lavender,
|
||||
fg_color = color.overlay0,
|
||||
italic = true,
|
||||
},
|
||||
inactive_tab = {
|
||||
bg_color = color.base,
|
||||
fg_color = color.text,
|
||||
},
|
||||
inactive_tab_hover = {
|
||||
bg_color = color.mauve,
|
||||
fg_color = color.surface2,
|
||||
italic = true,
|
||||
},
|
||||
new_tab = {
|
||||
bg_color = color.base,
|
||||
fg_color = color.text,
|
||||
},
|
||||
new_tab_hover = {
|
||||
bg_color = color.surface0,
|
||||
fg_color = color.pink,
|
||||
italic = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
37
home/dot_config/wezterm/utils.lua
Normal file
37
home/dot_config/wezterm/utils.lua
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
local wezterm = require("wezterm")
|
||||
|
||||
local function is_found(str, pattern)
|
||||
return string.find(str, pattern) ~= nil
|
||||
end
|
||||
|
||||
local M = {}
|
||||
|
||||
local function platform()
|
||||
local is_win = is_found(wezterm.target_triple, "windows")
|
||||
local is_linux = is_found(wezterm.target_triple, "linux")
|
||||
local is_mac = is_found(wezterm.target_triple, "apple")
|
||||
local os
|
||||
|
||||
if is_win then
|
||||
os = "windows"
|
||||
elseif is_linux then
|
||||
os = "linux"
|
||||
elseif is_mac then
|
||||
os = "mac"
|
||||
else
|
||||
error("Unknown platform")
|
||||
end
|
||||
|
||||
return {
|
||||
os = os,
|
||||
is_win = is_win,
|
||||
is_linux = is_linux,
|
||||
is_mac = is_mac,
|
||||
}
|
||||
end
|
||||
|
||||
local _platform = platform()
|
||||
|
||||
M.detected_os = _platform
|
||||
|
||||
return M
|
||||
17
home/dot_config/wezterm/wezterm.lua
Normal file
17
home/dot_config/wezterm/wezterm.lua
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
-- vim: foldmethod=marker foldmarker=#region,#endregion
|
||||
-- $DOTFILES/tools/wezterm/wezterm.lua
|
||||
-- Date: 2024-12-22
|
||||
-- Author: js0ny
|
||||
|
||||
local wezterm = require("wezterm")
|
||||
local color = require("color")
|
||||
|
||||
local config = wezterm.config_builder()
|
||||
|
||||
require("tab")(config)
|
||||
require("appearance")(config)
|
||||
require("keymaps")(config)
|
||||
require("launcher")(config)
|
||||
require("misc")(config)
|
||||
|
||||
return config
|
||||
Loading…
Add table
Add a link
Reference in a new issue