每天看着暗红色的终端喜新厌旧了,感觉流离用的fish命令提示功能,还有在别人博客上经常看到的暗蓝色的都好酷,正如本文的分类,家要有家的样子,遂重新配置我的终端!
为什么选wezterm呢?因为它用rust实现,用lua写配置文件——因为喜欢
配置
需要在~下创建一个配置文件.wezterm.lua,windows在%USERPROFILE%下
嗯,用lua做配置文件,也就意味着配置参数里可以塞很多复杂的逻辑,极其灵活,赞
贴一下我的:
local wezterm = require 'wezterm'
local config = {}
-- 基础设置
config.enable_tab_bar = true
config.hide_tab_bar_if_only_one_tab = true
config.use_fancy_tab_bar = true -- false 为简洁样式
config.tab_bar_at_bottom = false -- true 将标签栏放底部
config.tab_max_width = 25
-- 启动设置 (Windows)
config.default_prog = { 'wsl.exe', '-d', 'Ubuntu', '--cd', '/home/auceptin_fang','--', 'fish' }
-- 字体设置
config.font = wezterm.font_with_fallback({
'Cascadia Code', -- Windows 自带
'Consolas', -- Windows 自带
'Courier New', -- Windows 自带
'Microsoft YaHei UI',
'SimSun',
})
config.font_size = 14.0
config.line_height = 1.2 -- 行高倍数
config.cell_width = 1.0 -- 字符宽度倍数
-- 字体特性(连字等)
config.harfbuzz_features = { 'calt=1', 'clig=1', 'liga=1' }
-- 性能配置
config.front_end = "WebGpu"
config.max_fps = 60
config.animation_fps = 60
config.enable_kitty_graphics = false
-- 配色方案
config.color_scheme = "Tokyo Night"
-- config.color_scheme = 'Batman'
-- config.color_scheme = "Catppuccin Mocha"
-- config.color_scheme = "Dracula"
-- config.color_scheme = "Nord"
-- config.color_scheme = "Gruvbox Dark"
-- config.color_scheme = "One Dark"
-- config.color_scheme = "Solarized Dark"
--[[ 自定义颜色
config.colors = {
foreground = '#c0caf5',
background = '#1a1b26',
cursor_bg = '#c0caf5',
cursor_border = '#c0caf5',
cursor_fg = '#1a1b26',
selection_bg = '#33467C',
selection_fg = '#c0caf5',
}
]]
-- 背景透明度
config.window_background_opacity = 0.94
-- 如果要使用背景图片,取消注释下面几行:
-- config.window_background_image = 'C:/'
-- config.window_background_image_hsb = {
-- brightness = 0.3, -- 建议 0.3-0.5
-- hue = 1.0,
-- saturation = 1.0,
-- }
-- 如果要透明效果,设置 0.85-0.95:
-- config.window_background_opacity = 0.92
-- 光标设置
config.default_cursor_style = 'BlinkingBlock' -- 闪烁
config.cursor_blink_rate = 500
config.cursor_blink_ease_in = 'Ease' -- 淡入效果:'Constant', 'Linear', 'Ease', 'EaseIn', 'EaseOut', 'EaseInOut'
config.cursor_blink_ease_out = 'Constant' -- 淡出效果
-- 窗口设置
config.window_decorations = "RESIZE"
config.window_padding = {
left = 10,
right = 10,
top = 0,
bottom = 10,
}
config.initial_cols = 120
config.initial_rows = 30
config.window_close_confirmation = 'NeverPrompt'
-- 滚动设置
config.scrollback_lines = 10000
config.enable_scroll_bar = true
-- 快捷键
config.keys = {
-- 字体大小调整
{ key = '+', mods = 'CTRL', action = wezterm.action.IncreaseFontSize },
{ key = '-', mods = 'CTRL', action = wezterm.action.DecreaseFontSize },
{ key = '0', mods = 'CTRL', action = wezterm.action.ResetFontSize },
-- 重载配置
{ key = 'L', mods = 'CTRL|SHIFT', action = wezterm.action.ReloadConfiguration },
-- 标签页管理
{ key = 't', mods = 'CTRL|SHIFT', action = wezterm.action.SpawnTab 'CurrentPaneDomain' },
{ key = 'w', mods = 'CTRL|SHIFT', action = wezterm.action.CloseCurrentTab{ confirm = true } },
{ key = 'Tab', mods = 'CTRL', action = wezterm.action.ActivateTabRelative(1) },
{ key = 'Tab', mods = 'CTRL|SHIFT', action = wezterm.action.ActivateTabRelative(-1) },
-- 分屏管理
{ key = 'd', mods = 'CTRL|SHIFT', action = wezterm.action.SplitHorizontal{ domain = 'CurrentPaneDomain' } },
{ key = 'D', mods = 'CTRL|SHIFT', action = wezterm.action.SplitVertical{ domain = 'CurrentPaneDomain' } },
{ key = 'h', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Left' },
{ key = 'l', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Right' },
{ key = 'k', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Up' },
{ key = 'j', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Down' },
{ key = 'x', mods = 'CTRL|SHIFT', action = wezterm.action.CloseCurrentPane{ confirm = false } },
-- 复制粘贴,备用
{ key = 'c', mods = 'ALT', action = wezterm.action.CopyTo 'Clipboard' },
{ key = 'v', mods = 'CTRL|SHIFT', action = wezterm.action.PasteFrom 'Clipboard' },
-- 搜索
{ key = 'f', mods = 'CTRL|SHIFT', action = wezterm.action.Search 'CurrentSelectionOrEmptyString' },
-- 清屏
{ key = 'k', mods = 'CTRL|ALT', action = wezterm.action.ClearScrollback 'ScrollbackAndViewport' },
-- 新建标签
{ key = 'N', mods = 'CTRL|SHIFT', action = wezterm.action.ShowLauncherArgs { flags = 'FUZZY|LAUNCH_MENU_ITEMS' } },
-- 快速跳转到标签页
{ key = '1', mods = 'ALT', action = wezterm.action.ActivateTab(0) },
{ key = '2', mods = 'ALT', action = wezterm.action.ActivateTab(1) },
{ key = '3', mods = 'ALT', action = wezterm.action.ActivateTab(2) },
{ key = '4', mods = 'ALT', action = wezterm.action.ActivateTab(3) },
{ key = '5', mods = 'ALT', action = wezterm.action.ActivateTab(4) },
}
-- 鼠标绑定
config.mouse_bindings = {
-- 右键粘贴
{
event = { Down = { streak = 1, button = 'Right' } },
mods = 'NONE',
action = wezterm.action.PasteFrom 'Clipboard',
},
-- Ctrl+左键打开链接
{
event = { Up = { streak = 1, button = 'Left' } },
mods = 'CTRL',
action = wezterm.action.OpenLinkAtMouseCursor,
},
{
event = { Up = { streak = 1, button = 'Left' } },
mods = 'CTRL',
action = wezterm.action.OpenLinkAtMouseCursor,
},
-- 双击选中整行并复制
{
event = { Up = { streak = 2, button = 'Left' } },
mods = 'NONE',
action = wezterm.action.CompleteSelection 'ClipboardAndPrimarySelection',
},
}
-- 超链接规则
config.hyperlink_rules = wezterm.default_hyperlink_rules()
-- 添加自定义规则
table.insert(config.hyperlink_rules, {
regex = [[\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b]],
format = 'mailto:$0',
})
-- 标签栏样式
wezterm.on('format-tab-title', function(tab, tabs, panes, config, hover, max_width)
local title = tab.active_pane.title
if tab.is_active then
return {
{ Text = ' ' .. title .. ' ' },
}
end
return ' ' .. title .. ' '
end)
-- Windows 特定设置
-- 启动菜单 - 可以快速切换不同的 Shell
config.launch_menu = {
{
label = 'WSL Ubuntu (Fish)',
args = { 'wsl.exe', '-d', 'Ubuntu', '--cd', '/home/auceptin_fang', '--', 'fish' },
},
{
label = 'WSL Ubuntu',
args = { 'wsl.exe', '-d', 'Ubuntu', '--cd', '/home/auceptin_fang' },
},
{
label = 'Windows PowerShell',
args = { 'powershell.exe' },
},
{
label = 'Command Prompt',
args = { 'cmd.exe' },
},
}
return config
对的,顺便还安装了fish,右箭头自动命令补全真舒服吧!
效果
试一下——看起来舒服多了╰(°▽°)╯:

顺便把fish加到pwn镜像的dockerfile里