simple terminal
直接上配置
Windows 下即使 bash 支持 UTF8,但是如果使用的终端外壳不支持 UTF8,那显示的还是乱码…
wezterm 和 Windows Terminal 一样,是一个 bash 外壳,里面可以集成各种 bash。浪子使用的 Git bash 已经集成了 starship1,所以这次就是换了个外壳。wezterm 界面简洁,无论打开多少 tab 占用内存始终稳定,跨平台能力可在多平台上统一操作(越来越能感受到跨平台的好处了)
下面配置中的主题、字体、默认启动的终端、背景图片、快捷键按需修改或禁用。文件绝对路径 ~/.config/wezterm/wezterm.lua,没有新建就 OK。
local wezterm = require 'wezterm';
return {
-- 主题
color_scheme = "Tokyo Night",
-- 取消 Windows 原生标题栏
window_decorations = "INTEGRATED_BUTTONS|RESIZE",
-- 初始化窗口大小
initial_cols = 110,
initial_rows = 30,
-- 字体大小
font_size = 14.0,
-- 字体
font = wezterm.font_with_fallback({
{ family = "JetBrainsMono NF", weight = "Medium", italic = false },
{ family = "Maple Mono NF CN", weight = "Medium", italic = false },
}),
-- 背景图片
background = {
{
source = {
-- windows 也是 / 分隔符哈
File = 'C:/Users/yourusername/Pictures/xxx.png',
},
hsb = {
hue = 1.0,
saturation = 1.0,
brightness = 0.3,
}
}
},
-- 背景透明度
window_background_opacity = 0.9,
-- 关闭时无需确认
window_close_confirmation = 'NeverPrompt',
-- 默认启动时使用的 Bash
default_prog = {
"D:/path/to/Git/bin/bash.exe"
},
-- 菜单启动项
launch_menu = {
{
label = 'PowerShell',
args = { 'C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe' },
},
{
label = 'CMD',
args = { 'cmd.exe' },
},
},
-- 快捷键
-- 默认快捷键 https://wezfurlong.org/wezterm/config/default-keys.html
keys = {
-- Ctrl + p 显示启动菜单
{ key = 'p', mods = 'CTRL', action = wezterm.action.ShowLauncherArgs { flags = 'FUZZY|TABS|LAUNCH_MENU_ITEMS' } },
-- F11 切换全屏
{ key = 'F11', mods = 'NONE', action = wezterm.action.ToggleFullScreen },
-- Ctrl + Shift + + 字体增大
{ key = '+', mods = 'SHIFT|CTRL', action = wezterm.action.IncreaseFontSize },
-- Ctrl + Shift + - 字体减小
{ key = '_', mods = 'SHIFT|CTRL', action = wezterm.action.DecreaseFontSize },
-- Ctrl + t 打开新标签
{ key = 't', mods = 'CTRL', action = wezterm.action.ShowLauncher },
-- Ctrl + w 关闭标签
{ key = 'w', mods = 'CTRL', action = wezterm.action.CloseCurrentTab{ confirm = false } },
-- Ctrl + Shift + 上箭头 垂直分屏
{ key = "UpArrow", mods = "CTRL|SHIFT", action = wezterm.action({ SplitHorizontal = { domain = "CurrentPaneDomain" } }) },
-- Ctrl + Shift + 下箭头 水平分屏
{ key = "DownArrow", mods = "CTRL|SHIFT", action = wezterm.action({ SplitVertical = { domain = "CurrentPaneDomain" } }) },
-- Ctrl + Shift + - 缩小字体
-- { key = "-", mods = "CTRL|SHIFT", action = wezterm.action.IncreaseFontSize },
-- Ctrl + Shift + = 扩大字体
-- { key = "=", mods = "CTRL|SHIFT", action = wezterm.action.DecreaseFontSize },
-- Ctrl + Shift + 0 重置字体
-- { key = "0", mods = "CTRL|SHIFT", action = wezterm.action.ResetFontSize },
},
-- https://github.com/wezterm/wezterm/discussions/3541
mouse_bindings = {
{
event = { Down = { streak = 1, button = "Right" } },
mods = "NONE",
action = wezterm.action_callback(function(window, pane)
local has_selection = window:get_selection_text_for_pane(pane) ~= ""
if has_selection then
window:perform_action(wezterm.action.CopyTo("ClipboardAndPrimarySelection"), pane)
window:perform_action(wezterm.action.ClearSelection, pane)
else
window:perform_action(wezterm.action({ PasteFrom = "Clipboard" }), pane)
end
end),
},
},
}

说些什么吧!