归于极简 回归原始 少即是多
直接上配置
Windows 下即使 bash 支持 UTF8,但是默认的终端外壳依然不支持 UTF8,那显示的还是乱码…
wezterm 和 Windows 终端一样,是一个 bash 外壳,里面可以集成各种 bash。浪子使用的 Git bash 已经集成了 starship,所以这次就是换了个外壳。wezterm 界面简洁,跨平台可在多个平台上统一操作(跨端能力越来越重要了)。
下面配置中的主题、字体、默认启动的终端、背景图片、快捷键按需修改或禁用。文件绝对路径 ~/.config/wezterm/wezterm.lua
,没有新建就 OK。
LUA
1local wezterm = require 'wezterm';
2
3return {
4 -- 主题
5 color_scheme = "Tokyo Night",
6 -- 取消 Windows 原生标题栏
7 window_decorations = "INTEGRATED_BUTTONS|RESIZE",
8 -- 初始化窗口大小
9 initial_cols = 110,
10 initial_rows = 30,
11 -- 字体大小
12 font_size = 14.0,
13
14 -- 字体
15 font = wezterm.font_with_fallback({
16 { family = "JetBrainsMono NF", weight = "Medium", italic = false },
17 { family = "Maple Mono NF CN", weight = "Medium", italic = false },
18 }),
19
20 -- 背景图片
21 background = {
22 {
23 source = {
24 -- windows 也是 / 分隔符哈
25 File = 'C:/Users/yourusername/Pictures/xxx.png',
26 },
27 hsb = {
28 hue = 1.0,
29 saturation = 1.0,
30 brightness = 0.3,
31 }
32 }
33 },
34
35 -- 背景透明度
36 window_background_opacity = 0.9,
37 -- 关闭时无需确认
38 window_close_confirmation = 'NeverPrompt',
39
40 -- 默认启动时使用的 Bash
41 default_prog = {
42 "D:/path/to/Git/bin/bash.exe"
43 },
44
45 -- 菜单启动项
46 launch_menu = {
47 {
48 label = 'PowerShell',
49 args = { 'C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe' },
50 },
51 {
52 label = 'CMD',
53 args = { 'cmd.exe' },
54 },
55 },
56
57 -- 快捷键
58 -- 默认快捷键 https://wezfurlong.org/wezterm/config/default-keys.html
59 keys = {
60 -- Ctrl + p 显示启动菜单
61 { key = 'p', mods = 'CTRL', action = wezterm.action.ShowLauncherArgs { flags = 'FUZZY|TABS|LAUNCH_MENU_ITEMS' } },
62 -- F11 切换全屏
63 { key = 'F11', mods = 'NONE', action = wezterm.action.ToggleFullScreen },
64 -- Ctrl + Shift + + 字体增大
65 { key = '+', mods = 'SHIFT|CTRL', action = wezterm.action.IncreaseFontSize },
66 -- Ctrl + Shift + - 字体减小
67 { key = '_', mods = 'SHIFT|CTRL', action = wezterm.action.DecreaseFontSize },
68 -- Ctrl + t 打开新标签
69 { key = 't', mods = 'CTRL', action = wezterm.action.ShowLauncher },
70 -- Ctrl + w 关闭标签
71 { key = 'w', mods = 'CTRL', action = wezterm.action.CloseCurrentTab{ confirm = false } },
72 -- Ctrl + Shift + 上箭头 垂直分屏
73 { key = "UpArrow", mods = "CTRL|SHIFT", action = wezterm.action({ SplitHorizontal = { domain = "CurrentPaneDomain" } }) },
74 -- Ctrl + Shift + 下箭头 水平分屏
75 { key = "DownArrow", mods = "CTRL|SHIFT", action = wezterm.action({ SplitVertical = { domain = "CurrentPaneDomain" } }) },
76 -- Ctrl + Shift + - 缩小字体
77 -- { key = "-", mods = "CTRL|SHIFT", action = wezterm.action.IncreaseFontSize },
78 -- Ctrl + Shift + = 扩大字体
79 -- { key = "=", mods = "CTRL|SHIFT", action = wezterm.action.DecreaseFontSize },
80 -- Ctrl + Shift + 0 重置字体
81 -- { key = "0", mods = "CTRL|SHIFT", action = wezterm.action.ResetFontSize },
82 },
83
84 -- https://github.com/wezterm/wezterm/discussions/3541
85 mouse_bindings = {
86 {
87 event = { Down = { streak = 1, button = "Right" } },
88 mods = "NONE",
89 action = wezterm.action_callback(function(window, pane)
90 local has_selection = window:get_selection_text_for_pane(pane) ~= ""
91 if has_selection then
92 window:perform_action(wezterm.action.CopyTo("ClipboardAndPrimarySelection"), pane)
93 window:perform_action(wezterm.action.ClearSelection, pane)
94 else
95 window:perform_action(wezterm.action({ PasteFrom = "Clipboard" }), pane)
96 end
97 end),
98 },
99 },
100}
评论