chore: rename software to hatty
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# next_term ⚡
|
# hatty ⚡
|
||||||
|
|
||||||
> 一个超高颜值、极速响应、功能丰富的现代 Linux 终端模拟器。
|
> 一个超高颜值、极速响应、功能丰富的现代 Linux 终端模拟器。
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ npm run rebuild
|
|||||||
## 🛠️ 架构分层
|
## 🛠️ 架构分层
|
||||||
|
|
||||||
```
|
```
|
||||||
next_term/
|
hatty/
|
||||||
├── src/
|
├── src/
|
||||||
│ ├── main/
|
│ ├── main/
|
||||||
│ │ ├── index.cjs # Electron 主进程,无边框透明窗口与 IPC 路由
|
│ │ ├── index.cjs # Electron 主进程,无边框透明窗口与 IPC 路由
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "next_term",
|
"name": "hatty",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "",
|
"description": "hatty - 一个超高颜值、极速响应的现代 Linux 终端",
|
||||||
"main": "src/main/index.cjs",
|
"main": "src/main/index.cjs",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "electron .",
|
"start": "electron .",
|
||||||
|
|||||||
@@ -3,11 +3,14 @@ const path = require('path');
|
|||||||
const os = require('os');
|
const os = require('os');
|
||||||
const { PtyManager } = require('./pty-manager.cjs');
|
const { PtyManager } = require('./pty-manager.cjs');
|
||||||
|
|
||||||
|
app.setName('hatty');
|
||||||
|
|
||||||
let mainWindow = null;
|
let mainWindow = null;
|
||||||
let ptyManager = null;
|
let ptyManager = null;
|
||||||
|
|
||||||
function createWindow() {
|
function createWindow() {
|
||||||
mainWindow = new BrowserWindow({
|
mainWindow = new BrowserWindow({
|
||||||
|
title: 'hatty',
|
||||||
width: 1060,
|
width: 1060,
|
||||||
height: 680,
|
height: 680,
|
||||||
minWidth: 600,
|
minWidth: 600,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' data:; style-src 'self' 'unsafe-inline';">
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' data:; style-src 'self' 'unsafe-inline';">
|
||||||
<title>next_term - 现代 Linux 高性能终端</title>
|
<title>hatty - 现代 Linux 高性能终端</title>
|
||||||
|
|
||||||
<!-- 引入 xterm 基础样式与各功能模块样式 -->
|
<!-- 引入 xterm 基础样式与各功能模块样式 -->
|
||||||
<link rel="stylesheet" href="../../node_modules/@xterm/xterm/css/xterm.css">
|
<link rel="stylesheet" href="../../node_modules/@xterm/xterm/css/xterm.css">
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<polyline points="4 17 10 11 4 5"></polyline>
|
<polyline points="4 17 10 11 4 5"></polyline>
|
||||||
<line x1="12" y1="19" x2="20" y2="19"></line>
|
<line x1="12" y1="19" x2="20" y2="19"></line>
|
||||||
</svg>
|
</svg>
|
||||||
<span>next_term</span>
|
<span>hatty</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 标签页栏 -->
|
<!-- 标签页栏 -->
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export class SettingsModal {
|
|||||||
theme: themeManager.currentThemeKey,
|
theme: themeManager.currentThemeKey,
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
const saved = JSON.parse(localStorage.getItem('next_term:settings') || '{}');
|
const saved = JSON.parse(localStorage.getItem('hatty:settings') || localStorage.getItem('next_term:settings') || '{}');
|
||||||
return { ...defaults, ...saved };
|
return { ...defaults, ...saved };
|
||||||
} catch {
|
} catch {
|
||||||
return defaults;
|
return defaults;
|
||||||
@@ -28,7 +28,7 @@ export class SettingsModal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
saveSettings() {
|
saveSettings() {
|
||||||
localStorage.setItem('next_term:settings', JSON.stringify(this.settings));
|
localStorage.setItem('hatty:settings', JSON.stringify(this.settings));
|
||||||
this.applyAll();
|
this.applyAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export class TerminalView {
|
|||||||
initTerminal() {
|
initTerminal() {
|
||||||
const currentTheme = themeManager.getCurrentTheme();
|
const currentTheme = themeManager.getCurrentTheme();
|
||||||
|
|
||||||
const config = JSON.parse(localStorage.getItem('next_term:settings') || '{}');
|
const config = JSON.parse(localStorage.getItem('hatty:settings') || localStorage.getItem('next_term:settings') || '{}');
|
||||||
const fontSize = config.fontSize || 14;
|
const fontSize = config.fontSize || 14;
|
||||||
const fontFamily = config.fontFamily || "'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace";
|
const fontFamily = config.fontFamily || "'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace";
|
||||||
const cursorStyle = config.cursorStyle || 'block';
|
const cursorStyle = config.cursorStyle || 'block';
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ export const THEMES = {
|
|||||||
|
|
||||||
class ThemeManager {
|
class ThemeManager {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.currentThemeKey = localStorage.getItem('next_term:theme') || 'tokyo-night';
|
this.currentThemeKey = localStorage.getItem('hatty:theme') || localStorage.getItem('next_term:theme') || 'tokyo-night';
|
||||||
this.listeners = new Set();
|
this.listeners = new Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ class ThemeManager {
|
|||||||
applyTheme(themeKey) {
|
applyTheme(themeKey) {
|
||||||
if (!THEMES[themeKey]) themeKey = 'tokyo-night';
|
if (!THEMES[themeKey]) themeKey = 'tokyo-night';
|
||||||
this.currentThemeKey = themeKey;
|
this.currentThemeKey = themeKey;
|
||||||
localStorage.setItem('next_term:theme', themeKey);
|
localStorage.setItem('hatty:theme', themeKey);
|
||||||
|
|
||||||
const theme = THEMES[themeKey];
|
const theme = THEMES[themeKey];
|
||||||
document.documentElement.setAttribute('data-theme', theme.themeName);
|
document.documentElement.setAttribute('data-theme', theme.themeName);
|
||||||
|
|||||||
Reference in New Issue
Block a user