Repository navigation
v0.2.0
Added
- Settings modal (
Ctrl+,) with live-applied options: theme, font family/size, line height, cursor style and blink, scrollback, UI font size, window opacity, shell override + args, copy-on-select, confirm-close, sidebar collapse + width - Six built-in themes: mTerminal, Tokyo Night, Catppuccin, Solarized Dark, Gruvbox, Light mTerminal — applied to both UI (CSS vars on
:root) and xterm.js - Clipboard integration via
tauri-plugin-clipboard-manager: copy-on-select option and explicit copy/paste paths - Grid view for tab groups: selecting a group renders all its tabs side-by-side in an auto-sized grid (
Math.ceil(sqrt(n))cols) - Drag-and-drop tab reordering within and across groups (
reorderTabinuseWorkspace) - Sidebar collapse toggle (
Ctrl+B) and resizable sidebar width - Quit confirmation dialog when closing the window with multiple tabs open (
onCloseRequestedintercept) - "Move to → ungrouped" entry in tab context menu
- Custom shell binary + args per spawn (
pty_spawnaccepts optionalshellandargs) - SSH host manager: stored in
hosts.json, optional groups with collapsible sections and accent colors, key / password / agent auth, agent-forwarding compatible (IdentityAgent=$SSH_AUTH_SOCK) - Encrypted vault for SSH passwords: Argon2id KDF (64 MiB / t=3 / p=4) + XChaCha20-Poly1305 AEAD, file at
$XDG_CONFIG_HOME/mterminal/vault.bin, master-password unlock modal - Remote workspace UI with separate "remote sessions" section in sidebar, host list, group management, and connection banner injected into the terminal stream
- SSH key picker and tool-availability check (ssh, sshpass) via
list_ssh_keys/tool_availabilitycommands - App icons in multiple sizes (32, 128, 128@2x, 512, 1024) plus
.icofor cross-platform bundling - GitHub Actions release workflow + AUR
PKGBUILD-binpackaging core:window:allow-destroycapability so the confirm-quit dialog can force-close after user confirmation
Changed
- PTY data/exit events migrated from named global events (
pty://data/<id>,pty://exit/<id>) to per-spawntauri::ipc::Channel<PtyEvent>— fewer listeners, no string event names, structured payload useWorkspacestorage key bumped frommterminal:workspace:v1to:v2; legacy key auto-migrated and removed on first loadTabmodel gainedkind: "local" | "remote"andremoteHostIdto support SSH sessions alongside local PTYs- Tab/group context menus restructured: move-to entries grouped together, group deletion no longer hidden when only one group remains
- Bumped Tauri (2.1 → 2.11), portable-pty (0.8 → 0.9), tauri-plugin-os (2.0 → 2.3), once_cell (1.20 → 1.21)
- Removed prototype mockup files (
terminal/project/*.{html,jsx},terminal/README.md) — superseded by the implemented UI
Fixed
- Resize / safe-area calculation:
--safe-bottomCSS var now tracksouterHeight - screen.availHeightso the terminal isn't clipped behind compositor decorations on certain Wayland setups - Settings effect split from PTY-mount effect in
TerminalTab— font/theme/cursor changes now mutateterm.optionsin place instead of remounting and killing the running shell
Full Changelog: v0.1.0...v0.2.0
Full Changelog: v0.1.0...v0.2.0