3.9 KiB
3.9 KiB
next_term ⚡
一个超高颜值、极速响应、功能丰富的现代 Linux 终端模拟器。
基于 Electron + 原生 PTY + xterm.js (WebGL 硬件加速) 架构打造,兼备现代桌面应用的丝滑交互与系统底层的澎湃性能。
✨ 核心特性
- 🎨 极致现代设计:
- 沉浸式无边框磨砂毛玻璃窗口(Acrylic / Frosted Glass)。
- 内置 5 套精品现代主题(Tokyo Night、Catppuccin Mocha、Dracula、One Dark、Cyberpunk),支持全局即时热切换与调色板联动。
- 状态栏与标签页平滑微动效、发光焦点与光标呼吸闪烁。
- ⚡ 高性能 GPU 渲染:
- 挂载
@xterm/addon-webgl硬件加速管线,利用 GPU 直接进行字形栅格化与批处理渲染,轻松保持 60~120 FPS 丝滑帧率。
- 挂载
- 📑 多标签页与多窗格分屏:
- 多标签页(Tabs):无上限新建、关闭与快捷切换,自动提取进程标题。
- 多窗格分屏(Split Panes):支持向右水平分屏(Split Right)与向下垂直分屏(Split Down),每个窗格独立持有 Linux PTY 会话,焦点自由切换。
- 🧭 Command Palette 快速命令面板:
- 按下
Ctrl+Shift+P或F1唤出类似 VS Code / Sublime 的命令搜索面板,支持键盘模糊搜索主题、分屏、快捷操作。
- 按下
- 🔍 终端内搜索:
- 按下
Ctrl+Shift+F唤起悬浮搜索框,支持高亮匹配、上一个/下一个遍历与即时跳转。
- 按下
- ⚙️ 丰富的偏好配置:
- 支持调整字号(11px ~ 24px)、字体族(JetBrains Mono / Fira Code 等)、光标形状(Block / Bar / Underline)、光标闪烁,配置自动本地持久化。
⌨️ 常用快捷键
| 快捷键 | 功能说明 |
|---|---|
Ctrl + Shift + P / F1 |
呼出快速命令面板 (Command Palette) |
Ctrl + Shift + T |
新建标签页 (New Tab) |
Ctrl + Shift + W |
关闭当前窗格 / 标签页 (Close Pane / Tab) |
Ctrl + Shift + E |
向右水平分屏 (Split Right) |
Ctrl + Shift + O |
向下垂直分屏 (Split Down) |
Ctrl + Shift + F |
唤出终端内快速搜索 (Search Buffer) |
Ctrl + Tab / Ctrl + Shift + Tab |
切换到下一个 / 上一个标签页 |
Alt + 1 ~ Alt + 9 |
快速直达第 1 ~ 9 个标签页 |
Ctrl + , |
打开偏好设置 (Preferences) |
🚀 启动与构建
# 启动开发终端
npm start
# 若 Node ABI 变动,重新编译底层 node-pty
npm run rebuild
🛠️ 架构分层
next_term/
├── src/
│ ├── main/
│ │ ├── index.cjs # Electron 主进程,无边框透明窗口与 IPC 路由
│ │ └── pty-manager.cjs # 基于 node-pty 的 Linux 伪终端管理与进程调度
│ ├── preload/
│ │ └── index.cjs # 安全 ContextBridge 预加载隔离脚本
│ └── renderer/
│ ├── index.html # 现代终端 UI DOM 结构
│ ├── css/
│ │ ├── variables.css # 主题调色板与设计 Token
│ │ ├── app.css # 全局视口、标题栏、控制按钮
│ │ ├── tabs.css # 标签栏微动效与样式
│ │ ├── split.css # 窗格分屏容器与焦点高亮
│ │ └── components.css # 状态栏、搜索条、命令面板与设置弹窗
│ └── js/
│ ├── app.js # 前端总控中枢
│ ├── terminal-view.js # xterm + WebGL + FitAddon 实例管理
│ ├── tab-manager.js # 标签页生命周期
│ ├── split-manager.js # 多窗格分屏树与动态尺寸自适应
│ ├── theme-manager.js # 主题系统与 xterm 颜色映射
│ ├── command-palette.js # 快速命令面板交互
│ └── settings.js # 偏好设置及本地存储