Commit Graph
116 Commits
Author SHA1 Message Date
Kang 0ce52dd085 feat(docker): add docker-compose configuration for nyaterm service and update documentation references 2026-10-04 08:36:11 +08:00
Kang 5d1df9e237 feat: add web deployment support 2026-10-04 00:56:09 +08:00
sgnay f6cadb1eb2 feat(packaging): support external package managers 2026-09-30 15:16:12 +08:00
Kang fb48336f55 feat(recording): enhance session management with pane ID support
- Added `paneId` to `PendingTabCreation` and updated related functions to handle recording scope IDs for various session types.
- Implemented logic to finish recording scopes when sessions are disconnected or finalized, ensuring proper resource management.
- Updated session creation functions to accept and utilize `recordingScopeId`, improving the integration of recording features across different session types.
- Enhanced tests to validate the new recording scope functionality and ensure isolated pane behavior during session management.
2026-09-29 16:27:35 +08:00
Kang 40efe2fdf5 Merge pull request #675 from llyVictory/feat/tree-directory
feat(file-explorer): 新增可切换的懒加载目录树
2026-09-14 01:28:41 +08:00
lly e0e8c3acbd feat(file-explorer): 新增可切换的懒加载目录树 2026-09-13 18:34:26 +08:00
victorwon2001 e7fbcaa655 feat: 支持终端粗体默认前景色高亮 2026-09-13 00:24:39 +09:00
Terry Yao 4651e75679 fix(terminal): allow text selection and Cmd+C copy when app enables mouse tracking
When an application such as vim (mouse=a) enables mouse tracking, xterm.js
disables its selection service entirely, so users cannot select or copy
terminal text. Add an Interaction setting "mouse_events_require_alt"
(default off) that opts into iTerm2-style behavior: normal drag performs
text selection while Alt+drag forwards mouse events to the application.
The default stays off so existing mouse reporting semantics for TUI users
are unchanged.

Also copy the live selection explicitly on plain Cmd+C: when the app has
enabled keyboard reporting modes (e.g. kitty keyboard), xterm consumes
the key event and the browser's native copy event never fires.
2026-09-11 09:27:24 +08:00
Kang b148948623 refactor(terminal): change default behavior for reconnecting to previous working directory
- Updated the default setting for reconnecting to the previous working directory from true to false across various components and settings.
- Adjusted related tests to reflect the new default behavior.
2026-09-03 20:01:03 +08:00
lly 8878f0a71e feat(terminal): restore last working directory on SSH reconnect 2026-09-02 16:33:58 +08:00
lly 5c379d61b8 feat(editor): support Ctrl+wheel font zoom in builtin file editor 2026-09-01 19:10:32 +08:00
Kang 877a970e03 feat(interaction): implement terminal right-click action settings (#530)
- Introduced a new setting for terminal right-click actions, allowing users to choose between "none", "menu", and "paste" options.
- Updated the InteractionTab component to include a tabbed interface for selecting the right-click action.
- Refactored the TerminalContextMenu to handle the new right-click action logic, ensuring appropriate behavior based on user selection.
- Added tests for the terminal right-click action functionality to validate expected behaviors and interactions.
- Migrated legacy right-click paste settings to the new terminal right-click action configuration.
2026-08-30 21:44:01 +08:00
Kang ff0fad925c refactor(security): replace screen lock with separate startup and idle lock settings
- Updated security settings to introduce distinct options for enabling startup and idle locks, replacing the previous combined screen lock setting.
- Modified relevant components and contexts to accommodate the new settings structure.
- Implemented migration logic to transition from the legacy screen lock to the new settings, ensuring backward compatibility.
- Enhanced user interface to reflect the changes in security options.
2026-08-27 11:50:54 +08:00
Kang 7b09cfc152 feat(editor): implement file editor open mode resolution and internal editor display settings
- Added new functions `resolveFileEditorOpenTarget` and `resolveInternalEditorDisplay` to determine the appropriate editor mode based on user settings.
- Introduced a test suite for the file editor open mode to validate the new resolution logic.
- Updated the `FileExplorer` component to utilize the new editor resolution functions, enhancing file handling capabilities.
- Modified the `TransferTab` and context providers to include `internal_editor_display` settings, defaulting to "workspace".
- Enhanced type definitions to support the new editor settings and ensure type safety across components.
2026-08-24 01:14:10 +08:00
Kang 16247d0581 feat(floating-panels): implement floating panel functionality and state management (#448)
- Introduced a new `FloatingPanel` component to support left and right floating panels, enhancing the user interface for better panel management.
- Added state management for floating panels in the `App` component, allowing users to open, close, and move panels between sides.
- Implemented logic to handle panel open modes, enabling users to switch between docked and floating modes seamlessly.
- Updated the `ActivityBar` and `AppLayout` components to integrate floating panel features, including context menu options for toggling panel modes.
- Enhanced tests to cover new floating panel functionalities and ensure robust behavior across different scenarios.
2026-08-24 00:27:05 +08:00
Kang f54597f049 feat(activity-bar): enhance activity bar management with reset and visibility features
- Introduced new components for managing activity bar overlays, including `ActivityBarResetDialog` and `AppOverlayDialogs`.
- Added functionality to hide and show activity bar items, improving user control over the interface.
- Implemented reset layout functionality for the activity bar, allowing users to restore default settings.
- Updated the `ActivityBar` component to support hidden items and context menu interactions for better usability.
- Refactored related hooks and context providers to manage activity bar state effectively.
- Enhanced tests to cover new features and ensure robust functionality.
2026-08-23 23:22:35 +08:00
Kang 06c0991c71 feat(serial-send): add option to clear input after sending command 2026-08-19 00:34:06 +08:00
Kang 4fa8b2b212 refactor: improve child window loading experience and enhance file handling
- Removed the `signalChildWindowReady` function and replaced it with a loading shell in `ChildWindowRouter` to provide a better user experience during loading.
- Updated `FolderDialog` to prevent multiple submissions when pressing Enter and clicking Save simultaneously.
- Enhanced file handling in `FileDocumentEditor` and related components by adding `contentHash` and `mtimeNanos` properties for better file state management.
- Added tests for new functionality in `FolderDialog` and `FileDocumentEditor` to ensure reliability.
- Introduced `AlternateScreenStateTracker` and `Dec2026FrameGate` for improved terminal handling and performance metrics.
2026-08-16 14:45:10 +08:00
litcc a3393fb998 perf(window): optimize child startup and macOS title bar alignment 2026-08-14 16:09:07 +08:00
lly 5ac405652a feat(file-editor): 实现文件文档编辑与安全关闭流程 2026-08-13 18:11:54 +08:00
Kang dd75244dcd feat: implement asset sorting and persistence in AssetView
- Enhanced AssetView to support sorting by various asset attributes including name, address, and connection time.
- Added functionality to persist asset sort state across renders.
- Updated tests to verify sorting behavior and state restoration.
- Refactored rendering logic to accommodate new sorting features.
2026-08-13 15:03:16 +08:00
Kang d83419d58b feat(quickCommands): implement drag-and-drop functionality for quick command categories (#370)
- Added support for moving quick command categories within the UI, allowing users to reorder categories through drag-and-drop.
- Introduced new interfaces and utility functions to manage category movement and sorting.
- Enhanced the QuickCommands component to handle new category creation and validation.
- Updated related tests to ensure correct behavior of the new features.
2026-08-12 16:33:40 +08:00
Kang a86ab40dc9 feat(recording): enhance recording functionality and settings management (#221, #371)
- Introduced a new recording state management system, replacing the previous session tracking with a more robust structure using `RecordingStatus`.
- Updated the UI components to reflect the new recording statuses, including the `RecordingPanel` and `AppPanelContent`.
- Added new settings for recording configurations in the `TerminalTab`, allowing users to specify recording paths, modes, and other preferences.
- Implemented hooks for managing recording states and auto-start options in the `NewSessionPage`.
- Enhanced session input handling to support recording origins and sensitivities, improving security and usability.
- Refactored related components to streamline the recording process and improve overall code clarity.
2026-08-09 13:32:44 +08:00
Kang 6da2293b2f refactor(saved-connections): remove last opened connection ID and simplify expanded groups logic
- Removed the `saved_connections_last_opened_connection_id` from the application settings and related components to streamline state management.
- Introduced a new utility function `areStringSetsEqual` to compare sets of strings, enhancing the logic for managing expanded groups in the Saved Connections component.
- Updated the state initialization for expanded groups to use a new Set, improving clarity and performance.
2026-08-09 10:40:52 +08:00
kaka ee4515f65a feat(saved-connections): add expand/collapse all folders buttons with persisted expand state 2026-08-08 23:46:45 +08:00
Kang 7c90c71ce8 feat(quick-commands): enhance category management and validation (#283)
- Introduced a new utility function to check for duplicate sibling category names, improving category renaming validation.
- Updated the RenameQuickCommandCategoryDialog to utilize the new validation logic.
- Added comprehensive tests for quick command category functionalities, including tree building and name validation.
- Enhanced the QuickCommands component to manage category states more effectively, including expanded category IDs and improved deletion logic.
- Updated UI configurations to support new category width settings.
2026-08-05 13:23:06 +08:00
Kang c9f18c78e4 feat(ui): add Notes panel toggle to settings and update default configurations
- Introduced a new toggle for the Notes panel in the UI settings, allowing users to show or hide the panel.
- Updated default application settings to include the show_notes_panel option, ensuring it defaults to true.
- Enhanced the Header component to reflect the new Notes panel option in the menu.
- Modified type definitions and backend configurations to support the new feature.
2026-08-04 19:10:25 +08:00
Kang b339760082 feat(note-editor): implement note editor functionality with autosave and toolbar (#366)
- Added a new NoteEditor component for creating and editing notes with autosave capabilities.
- Integrated a toolbar with various editing options including formatting and inserting elements.
- Implemented a NotesPanel for managing notes and folders, including search and context menu features.
- Enhanced user experience with real-time updates and error handling during note operations.
- Introduced new styles for the note editor and toolbar to align with the application’s design.
2026-08-04 01:29:15 +08:00
Kang 6b0611ce3b feat(asset-monitoring): integrate asset monitoring features into the application (#359)
- Added asset monitoring capabilities, including caching and patching of asset data during live sessions.
- Implemented UI components for displaying asset information and managing connections.
- Enhanced the application state management to handle asset monitoring updates effectively.
- Introduced new utility functions for formatting and displaying asset-related metrics.
- Added tests to validate the new asset monitoring functionalities and ensure reliability.
2026-08-03 22:26:00 +08:00
233 d4491fe9c0 fix(window): avoid child window loading flash 2026-07-26 09:45:00 +08:00
Kang 324146eedb feat(header-status): implement header status visibility and confirmation dialog (#332)
- Introduced a new `HeaderStatusHideConfirmDialog` component for confirming the action of hiding the header status.
- Updated the `Header` component to manage the visibility of the header status and handle confirmation for hiding it.
- Enhanced the `GeneralTab` settings to allow users to toggle header status visibility, integrating it with the application state.
- Added support for a new header status mode "datetime" and updated related types and settings.
- Ensured default settings for header status visibility are set to true in the application context.
2026-07-23 13:21:25 +08:00
Kang 9843bf62e9 feat(quick-commands): implement category selection state management
- Added state management for the selected category in QuickCommands, allowing for dynamic updates based on user interactions.
- Introduced a new state variable `quickCommandsLoaded` to track when commands are loaded and ensure UI updates are synchronized.
- Updated the default app settings to include `quick_cmd_selected_category`, defaulting to "all".
- Enhanced the UI context to manage category selection more effectively, improving user experience in navigating quick commands.
2026-07-23 11:50:48 +08:00
Kang b0c7dc3dfb feat(terminal): implement customizable timestamp format for terminal settings
- Replaced the boolean `show_timestamp_milliseconds` with a string `timestamp_format` in terminal settings, allowing users to define their preferred timestamp format.
- Updated the `TerminalTab`, `TerminalGutter`, and `XTerminal` components to utilize the new timestamp format setting.
- Added normalization logic to ensure the timestamp format adheres to a maximum length and defaults to "[HH:mm:ss]" when empty.
- Implemented migration logic to convert legacy timestamp settings to the new format structure.
- Enhanced tests to verify the correct behavior of timestamp format handling and migration.
2026-07-20 23:04:25 +08:00
Kang 8668896eae feat(terminal): add SSH keep-alive mode settings and functionality (#252)
- Introduced a new setting for SSH keep-alive mode in the TerminalTab component, allowing users to select between "compatible", "strict", and "disabled" modes.
- Updated the application state to include the keep-alive mode and its default value.
- Enhanced the SSH client configuration to apply keep-alive settings based on the selected mode, improving connection stability.
- Added tests to ensure correct behavior of keep-alive settings and their impact on SSH connection management.
2026-07-19 19:19:43 +08:00
Kang 53e801be3f feat(theme): implement theme designer dialog and enhance theme management (#280)
- Introduced a new `ThemeDesignerDialog` component for customizing themes, allowing users to create, edit, and delete custom themes.
- Updated the `AppearanceTab` to integrate the theme designer, providing a button to open the dialog and manage themes.
- Enhanced theme application logic in `main.tsx` to support loading themes from local storage, including a snapshot mechanism for better theme persistence.
- Refactored theme context to manage custom themes and ensure proper resolution of available themes.
- Added utility functions for theme validation and manipulation, improving the overall theme management experience.
2026-07-18 16:18:44 +08:00
Kang 0747c18090 Merge https://github.com/nyakang/nyaterm 2026-07-17 13:49:31 +08:00
Kang 9777e0ed3d feat(ascendNpuMonitor): add Ascend NPU monitoring panel and settings (#268)
- Introduced a new Ascend NPU monitoring panel to display real-time statistics and processes for Ascend NPUs.
- Added settings to enable/disable the Ascend NPU monitor and configure its polling interval.
- Integrated the Ascend brand icon for visual representation in the UI.
- Updated the application context and UI configuration to support the new monitoring feature.
- Implemented backend commands to fetch NPU overview data, enhancing the monitoring capabilities.
2026-07-17 13:48:43 +08:00
Kang 34cb0d778d Merge pull request #274 from sgnay/fix-ime-dup
fix(terminal): resolve duplicate input issues with Fcitx IME on Linux
2026-07-15 23:25:03 +08:00
Kang 92dfd6cf64 refactor: rename mac_ime_compatibility to ime_compatibility across the codebase
- Updated variable names and settings to reflect the new terminology for IME compatibility.
- Adjusted related translations in English, Korean, and Chinese locales.
- Introduced a new compatibility patch for handling IME input across macOS and Linux.
- Removed the deprecated mac_ime_compatibility implementation to streamline the codebase.
2026-07-15 23:15:17 +08:00
Kang 24fd36da59 feat(header): add remote stats support and header status mode
- Introduced remote stats functionality in the Header component, allowing for real-time monitoring of resource usage.
- Added a new `HeaderStatusMode` type to manage different display modes for header status.
- Updated App and Context to include `remoteStatsEnabled` and `remoteStats` properties for better state management.
- Enhanced UI configuration to support header status mode settings, defaulting to "session".
- Implemented network summary information in the remote stats structure for improved data representation.
2026-07-14 16:41:49 +08:00
Kang f0fa0357a7 feat(security-auth): enhance SecurityAuthPanel and OtpManagementTab with activeSessionId prop
- Updated SecurityAuthPanel to accept an activeSessionId prop, allowing for session-specific functionality.
- Modified OtpManagementTab to include the activeSessionId prop, enabling OTP code sending to the terminal.
- Refactored NetworkPanel to utilize appSettings for managing active tabs, improving user experience.
- Introduced default values for network and security auth panel active tabs in AppContext and ChildAppProvider.
- Enhanced UI configuration to support new active tab settings, ensuring persistence across sessions.
2026-07-11 19:58:45 +08:00
Kang a07379577b feat(saved-connections): implement restoration of last opened connection and group expansion
- Added functionality to restore the last opened connection and automatically expand its associated groups when the component mounts.
- Introduced a new state reference for tracking the last opened connection ID.
- Updated UI configuration to include a setting for the last opened connection ID, ensuring persistence across sessions.
- Enhanced type definitions to accommodate the new configuration property.
2026-07-11 15:30:06 +08:00
Kang e96b66f684 feat(appearance): update font handling and defaults
- Refactored font family definitions in `index.css` and `AppearanceTab.tsx` to utilize new default font constants.
- Introduced `defaultFonts.ts` to centralize font family management for terminal and UI fonts.
- Enhanced `AppContext.tsx` and `ChildAppProvider.tsx` to use the new font constants for improved maintainability.
- Updated `fonts.rs` to align with the new default font configurations for cross-platform consistency.
2026-07-09 16:46:32 +08:00
Kang 94adf5a5f8 Merge pull request #245 from AndersonBY/feat/window-transparency-controls
feat(appearance): add window transparency controls
2026-07-08 22:37:37 +08:00
Anderson bcd26a4330 feat(appearance): add window transparency controls 2026-07-08 18:12:04 +08:00
Kang 46318ac69f feat(interaction): add terminal zoom functionality and settings
- Introduced a new setting for enabling/disabling terminal zoom in the InteractionTab component.
- Updated the Header component to conditionally handle zoom actions based on the new setting.
- Enhanced the useTerminalZoom hook to respect the terminal zoom enabled state.
- Defaulted terminal zoom to enabled in App and ChildAppProvider contexts.
- Added necessary type definitions for terminal zoom in global types and Rust settings.
2026-07-08 01:02:03 +08:00
Kang d8e9b25790 Merge pull request #227 from qiudaomao/main
fix: improve terminal copy to clipboard
2026-07-06 15:44:24 +08:00
Kang 8fb04f2140 feat(file-explorer): add toggle for showing hidden files in the file explorer
- Implemented a button in the FileExplorerToolbar to toggle the visibility of hidden files.
- Updated the FileExplorer component to filter displayed files based on the new setting.
- Added state management for the visibility of hidden files, ensuring user preferences are respected.
- Enhanced UI to reflect the current state of hidden files visibility.
2026-07-06 15:34:29 +08:00
qiudaomao 3ec91c73b8 fix: improve terminal copy to clipboard
add an security option to allows user decide if terminal app can use
OSC 52 write to clipboard
2026-07-06 13:07:44 +08:00
Kang 47d063769c feat(gpu): add GPU monitoring panel and settings
- Introduced a new `GpuMonitor` component for monitoring GPU status and processes.
- Updated `AppPanelContent` to include the GPU monitor option.
- Added settings for enabling/disabling the GPU monitor and configuring its refresh interval in the `TerminalTab`.
- Enhanced the application context to manage GPU monitor settings and default values.
- Implemented backend support for fetching GPU overview data via a new Tauri command.
- Updated UI configuration to include GPU monitor visibility and interval settings.
2026-07-05 23:20:07 +08:00