归于极简 回归原始 少即是多

直接上配置

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}
点击展开查看更多

版权声明

作者: 浮生一梦

链接: /posts/2025/02/wezterm/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键