mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
Merge branch 'main' into refactor/frontend
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -7,18 +7,23 @@ The integrated terminal provides a full-featured terminal emulator within Automa
|
||||
Configure the terminal via environment variables in `apps/server/.env`:
|
||||
|
||||
### Disable Terminal Completely
|
||||
|
||||
```
|
||||
TERMINAL_ENABLED=false
|
||||
```
|
||||
|
||||
Set to `false` to completely disable the terminal feature.
|
||||
|
||||
### Password Protection
|
||||
|
||||
```
|
||||
TERMINAL_PASSWORD=yourpassword
|
||||
```
|
||||
|
||||
By default, the terminal is **not password protected**. Add this variable to require a password.
|
||||
|
||||
When password protection is enabled:
|
||||
|
||||
- Enter the password in **Settings > Terminal** to unlock
|
||||
- The terminal remains unlocked for the session
|
||||
- You can toggle password requirement on/off in settings after unlocking
|
||||
@@ -27,11 +32,11 @@ When password protection is enabled:
|
||||
|
||||
When the terminal is focused, the following shortcuts are available:
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Alt+D` | Split terminal right (horizontal split) |
|
||||
| `Alt+S` | Split terminal down (vertical split) |
|
||||
| `Alt+W` | Close current terminal |
|
||||
| Shortcut | Action |
|
||||
| -------- | --------------------------------------- |
|
||||
| `Alt+D` | Split terminal right (horizontal split) |
|
||||
| `Alt+S` | Split terminal down (vertical split) |
|
||||
| `Alt+W` | Close current terminal |
|
||||
|
||||
Global shortcut (works anywhere in the app):
|
||||
| Shortcut | Action |
|
||||
@@ -41,22 +46,27 @@ Global shortcut (works anywhere in the app):
|
||||
## Features
|
||||
|
||||
### Multiple Terminals
|
||||
|
||||
- Create multiple terminal tabs using the `+` button
|
||||
- Split terminals horizontally or vertically within a tab
|
||||
- Drag terminals to rearrange them
|
||||
|
||||
### Theming
|
||||
|
||||
The terminal automatically matches your app theme. Supported themes include:
|
||||
|
||||
- Light / Dark / System
|
||||
- Retro, Dracula, Nord, Monokai
|
||||
- Tokyo Night, Solarized, Gruvbox
|
||||
- Catppuccin, One Dark, Synthwave, Red
|
||||
|
||||
### Font Size
|
||||
|
||||
- Use the zoom controls (`+`/`-` buttons) in each terminal panel
|
||||
- Or use `Cmd/Ctrl + Scroll` to zoom
|
||||
|
||||
### Scrollback
|
||||
|
||||
- The terminal maintains a scrollback buffer of recent output
|
||||
- Scroll up to view previous output
|
||||
- Output is preserved when reconnecting
|
||||
@@ -65,7 +75,7 @@ The terminal automatically matches your app theme. Supported themes include:
|
||||
|
||||
The terminal uses a client-server architecture:
|
||||
|
||||
1. **Frontend** (`apps/app`): xterm.js terminal emulator with WebGL rendering
|
||||
1. **Frontend** (`apps/ui`): xterm.js terminal emulator with WebGL rendering
|
||||
2. **Backend** (`apps/server`): node-pty for PTY (pseudo-terminal) sessions
|
||||
|
||||
Communication happens over WebSocket for real-time bidirectional data flow.
|
||||
@@ -73,6 +83,7 @@ Communication happens over WebSocket for real-time bidirectional data flow.
|
||||
### Shell Detection
|
||||
|
||||
The server automatically detects the best shell:
|
||||
|
||||
- **WSL**: User's shell or `/bin/bash`
|
||||
- **macOS**: User's shell, zsh, or bash
|
||||
- **Linux**: User's shell, bash, or sh
|
||||
@@ -81,13 +92,16 @@ The server automatically detects the best shell:
|
||||
## Troubleshooting
|
||||
|
||||
### Terminal not connecting
|
||||
|
||||
1. Ensure the server is running (`npm run dev:server`)
|
||||
2. Check that port 3008 is available
|
||||
3. Verify the terminal is unlocked
|
||||
|
||||
### Slow performance with heavy output
|
||||
|
||||
The terminal throttles output at ~60fps to prevent UI lockup. Very fast output (like `cat` on large files) will be batched.
|
||||
|
||||
### Shortcuts not working
|
||||
|
||||
- Ensure the terminal is focused (click inside it)
|
||||
- Some system shortcuts may conflict (especially Alt+Shift combinations on Windows)
|
||||
|
||||
Reference in New Issue
Block a user