* fix: register physical Tab key on iPadOS/iOS hardware keyboards (#14)
The native module only registered Shift+Tab but not bare Tab, so iOS
intercepted it for UI focus navigation. Register an unmodified Tab
UIKeyCommand with wantsPriorityOverSystemBehavior and handle both
Tab and Shift+Tab in the same JS branch.
FixesTermix-SSH/Support#557
* fix: pass jumpHosts, forceKeyboardInteractive, and overrideCredentialUsername to terminal connection (#15)
These fields were defined on SSHHost but omitted from the terminal
hostConfig passthrough. Without jumpHosts the backend cannot route
through jump servers; without forceKeyboardInteractive hosts that
require keyboard-interactive auth fail silently; without
overrideCredentialUsername shared credentials use the wrong username.
FixesTermix-SSH/Support#422FixesTermix-SSH/Support#638
* fix: improve mobile terminal scroll recovery (#17)
* Add mobile remote desktop sessions (#18)
* feat: add mobile remote desktop sessions
* feat: add remote desktop input controls
* feat: polish remote desktop controls
* feat: add mobile terminal font selection (#19)
* feat: add mobile shift tab hotkey (#20)
* feat: initial UI redesign
* feat: revamp server login system
* chore: update app icon/background color
* fix: remove unused fields in the settings tab
* feat: improve the user pin system and update all settings modals to use new ui
* fix: active server not updating unless app restarts
* feat: add version in settings
* feat: improve host page UI (updated host form and added credential management)
* fix: preserve composed iOS terminal input
* ci: restore mobile checks
* feat: rewrite of connection system for all types
* fix: preserve mobile jump hosts (#30)
* fix: guard android user ca trust (#29)
* fix: capture ios hardware tab key (#27)
* fix: reset terminal input after special keys (#28)
* fix: open oidc in system browser (#26)
* fix: preserve websocket auth context (#25)
* fix: keep none-auth terminal prompts alive (#23)
* fix: allow local network SSL in Android app (#21)
* feat: allow oidc passkeys
* feat: bundeled xterm into app and added docker loading screen
* feat: add 2fa, api key, and active sessions to settings and addressed multiple bug fixes and inconsistencies with termix web
* chore: update repo images and readme
* chore: update readme to split table for screenshots
* chore: rename ios to apple in build workflow
* fix: android build failure
* feat: add snippet management and fix several bugs
* fix: web login and oidc incorrect logic
* chore: run linter
---------
Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
iOS WebView does not generate wheel events from touch gestures, so
xterm's built-in scroll was limited to the native viewport scroll which
moves only one line at a time. Add a touchmove listener that maps
vertical swipe distance to terminal.scrollLines() for responsive
scrolling, and enable -webkit-overflow-scrolling: touch on the viewport.
FixesTermix-SSH/Support#551
* feat: SSH session persistence across app background/foreground (#8)
* fix: ipad keyboard issue + paste key not wokring and disabled auto correct
* fix: ipad keyboard issues
* fix: ipad styling issues, emoji/voice dictation support, android keyboard issues
* fix: ipad styling issues
* feat: add debuging to fix ipad keyboard margins
* fix: handle physical keyboard special keys in terminal (#6)
* feat: add iPadOS build workflow without EAS dependency (#4)
* fix: handle physical keyboard special keys in terminal
Tab, Escape, and arrow keys from physical keyboards were filtered out
by the key.length === 1 check. Add explicit handling like Enter/Backspace.
* feat: add iOS native Shift+Tab support via UIKeyCommand
Add Expo native module that uses UIKeyCommand + method swizzling
to intercept Shift+Tab on iOS hardware keyboards and forward
the backtab escape sequence (\x1b[Z]) to the active terminal.
---------
Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
* feat: improve ipad ui logic and improve external keyboard handling
* feat: fix arrow keys and modifier keys on hardware keybords
* fix: fix arrow keys and modifier keys on hardware keybords
* feat: add voice over support and improved terminal background conneciton
* feat: add missing files
* feat: add host key verification support
* fix: dictation issues + android IME multi character input issues on android
* fix: none auth hosts
* chore: clean
* chore: update readme
* feat: add SSH session persistence for background/foreground transitions
Adapt the mobile client to the server-side session persistence protocol
(Termix PR #594). When the app goes to background and the WebSocket dies,
the server keeps the SSH session alive. On foreground return, the client
sends attachSession instead of connectToHost, reattaching to the existing
session with buffered output replay.
- Track server sessionId from sessionCreated messages
- Send attachSession on reconnect when a sessionId exists
- Handle sessionExpired with automatic fallback to fresh connectToHost
- Handle sessionTakenOver for multi-device scenarios
- Send explicit disconnect on destroy to clean up server sessions
- Skip terminal clear and post-connection setup on reattach
---------
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
* fix: clear terminal after reconnecting and fix letter duplcation
* chore: increment ver
* fix: use new 2.0.0 api routes and filter non ssh hosts
* chore: increment ver
---------
Co-authored-by: ZacharyZcR <PayasoNorahC@protonmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
* feat: SSH session persistence across app background/foreground (#8)
* fix: ipad keyboard issue + paste key not wokring and disabled auto correct
* fix: ipad keyboard issues
* fix: ipad styling issues, emoji/voice dictation support, android keyboard issues
* fix: ipad styling issues
* feat: add debuging to fix ipad keyboard margins
* fix: handle physical keyboard special keys in terminal (#6)
* feat: add iPadOS build workflow without EAS dependency (#4)
* fix: handle physical keyboard special keys in terminal
Tab, Escape, and arrow keys from physical keyboards were filtered out
by the key.length === 1 check. Add explicit handling like Enter/Backspace.
* feat: add iOS native Shift+Tab support via UIKeyCommand
Add Expo native module that uses UIKeyCommand + method swizzling
to intercept Shift+Tab on iOS hardware keyboards and forward
the backtab escape sequence (\x1b[Z]) to the active terminal.
---------
Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
* feat: improve ipad ui logic and improve external keyboard handling
* feat: fix arrow keys and modifier keys on hardware keybords
* fix: fix arrow keys and modifier keys on hardware keybords
* feat: add voice over support and improved terminal background conneciton
* feat: add missing files
* feat: add host key verification support
* fix: dictation issues + android IME multi character input issues on android
* fix: none auth hosts
* chore: clean
* chore: update readme
* feat: add SSH session persistence for background/foreground transitions
Adapt the mobile client to the server-side session persistence protocol
(Termix PR #594). When the app goes to background and the WebSocket dies,
the server keeps the SSH session alive. On foreground return, the client
sends attachSession instead of connectToHost, reattaching to the existing
session with buffered output replay.
- Track server sessionId from sessionCreated messages
- Send attachSession on reconnect when a sessionId exists
- Handle sessionExpired with automatic fallback to fresh connectToHost
- Handle sessionTakenOver for multi-device scenarios
- Send explicit disconnect on destroy to clean up server sessions
- Skip terminal clear and post-connection setup on reattach
---------
Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>
* fix: clear terminal after reconnecting and fix letter duplcation
* chore: increment ver
---------
Co-authored-by: ZacharyZcR <PayasoNorahC@protonmail.com>
Co-authored-by: swing <bestswngs@gmail.com>