This continues the previous changes to allow the shell to be configured
after importing the ssh_config file. This allows temporary editing of
the shell preference for imported remotes as well as adding a keywork to
allow it to be set in the ssh_config file.
* wip
* integrate original sidebar content
* ResizableSidebar component
* trigger toggleCollapse
* remove debugging code
* minor refactor. disable text select on mousemove
* replace icons with fontawesome icons. fix alignment issues
* fix session view width when tabs overflow
* prevent index and icon from shifting when resizing
* snap effect
* minor refactor
* apply collapsed mode to sidebar contents
* change default width to 240px
* backend implementation
* fix wrong subcmd
* save collapsed state
* retore sidebar state on reload/launch
* use collapse data form db on first load. use previously saved width on expand.
* persist width as well collapse state
* various fixes and improvements
* bind methods
* refactor
* more refactor
* fix minor bug
* fix merge issues
* various fixes
* refactor
* fixes
* fix issues
* fix all issues
* resolve undefind tempWidth
* fix toggleCollapsed
* use Promise in stopResizing method
* use tempCollapsed to for real time toggling between logos
* minor method name change
* refactor
* remove debugging code
* fix conflict
* fix setting collapsed state via CLI
* minor refactor
* remove debugging code
* create setTempWidthAndTempCollapsed method
* handle invalid width set via cli
* refactor: setbycli not actually needed
* remove unused code
* add status-indicator-visible
* save
* save
* Prevent the status indicator flickering for quick returns
* flx regression
* reduce delay, reset spinnerVisible when there's no more running commands
* clean up code reuse
* move code around
* slight optimizations to prevent rendering before spinner is visible
* rename var
* revert shouldSync change as it broke the sync
* set animation startTime to sync spinners for status indicators
* catch animationstart (hover interaction) to restart startTime.
* use const
---------
Co-authored-by: Evan Simkowitz <esimkowitz@users.noreply.github.com>
* save
* not working yet but close
* logic is working, just need to do styling
* save work
* save
* save work
* ta da!
* fix line height
* format files
* remove running commands on hangup. also don't allow numrunning to be less than 0
* remove < 0 check (safer without for concurrency)
* working on cmd restart logic
* button to restart command
* bind Cmd-R to restart selected command, and Cmd-Shift-R to restart last command. Browser Refresh is now Option-R. also fix 'clear' command to not delete running commands (like archive). some small changes to keyboard utility code to always set 'alt' and 'meta' appropriately. use 'cmd' and 'option' for crossplatform bindings
* focus restarted line
* update termopts, use current winsize to set termopts for new command
* add cmd.restartts to track restart time
* display restarted time in line w/ tooltip with original time
* add restartts to line:show
* first pass of copy file
* first pass fixing up function
* first pass fixing key press
* fixed up key press parsing
* reverted cmdrunner.go
* fixed cmdrunner.go again :p
* fixed cmdrunner again lol
* Add job status indicators to tabs within a workspace (#232)
Adds job status indicators that will show any updates to running commands while you are focused away from a tab. These will show up as status icons in the tab view.
These indicators will reset for a given tab when you focus back to it.
I've updated the inner formatting of the tab to use flexboxes, allowing the title to display more text when there are no icons to display.
Also includes some miscellaneous for-loop pattern improvements in model.ts and removing of unused variables, etc.
* first pass fixing key press
* added key util check file
* addressed rebase artifacts
* fixed more rebase artifacts
* fixed keybindings
* removed log
* fixed a ton of rebase artifacts
* fixed a ton of rebase artifacts
* added cmd maps to altKey if not on macos
* fixed platform check code and fixed some small bugs
* save work
* refactor end-icon and actions-icon into separate components
* reverting change part 1
* fix
* separate out workspace and tab formatting more
* save work
* Got it working!
* fix scrollbar but hide it so that the formatting doesn't jump when hovering
* revert some changes, replace some svgs with fontawesome
* remove listitem
* remove log
* create proof of concept ssh library integration
This is a first attempt to integrate the golang crypto/ssh library for
handling remote connections. As it stands, this features is limited to
identity files without passphrases. It needs to be expanded to include
key+passphrase and password verifications as well.
* add password and keyboard-interactive ssh auth
This adds several new ssh auth methods. In addition to the PublicKey
method used previously, this adds password authentication,
keyboard-interactive authentication, and PublicKey+Passphrase
authentication.
Furthermore, it refactores the ssh connection code into its own wavesrv
file rather than storing int in waveshell's shexec file.
* clean up old mshell launch methods
In the debugging the addition of the ssh library, i had several versions
of the MShellProc Launch function. Since this seems mostly stable, I
have removed the old version and the experimental version in favor of
the combined version.
* allow switching between new and old ssh for dev
It is inconvenient to create milestones without being able to merge into
the main branch. But due to the experimental nature of the ssh changes,
it is not desired to use these changes in the main branch yet. This
change disables the new ssh launcher by default. It can be used by
changing the UseSshLibrary constant to true in remote.go. With this, it
becomes possible to merge these changes into the main branch without
them being used in production.
* fix: allow retry after ssh auth failure
Previously, the error status was not set when an ssh connection failed.
Because of this, an ssh connection failure would lock the failed remote
until waveterm was rebooted. This fix properly sets the error status so
this cannot happen.
* better osrelease parsing (ignore garbage at end of string)
* add defaultshelltype to telemetry input
* track reinit errors by shelltype to see if zsh integration is working
Readonly variables cannot be reset and attempting to do so causes errors
on my machine. The `keymaps` and `widgets` variables caused problems, so
they have been added to the list of variables to ignore.
* Tweak the color of the output status indicator, adjust the placement of the tab end-icons a bit
* adjust the margins a bit more
* a few more slight adjustments to even out the spacing
* save work
* fix nullref, some smaller tweaks to the front icon
* made the tab slightly smaller so that the ratios made more sense
* remove unnecessary width
* format fix
Adds job status indicators that will show any updates to running commands while you are focused away from a tab. These will show up as status icons in the tab view.
These indicators will reset for a given tab when you focus back to it.
I've updated the inner formatting of the tab to use flexboxes, allowing the title to display more text when there are no icons to display.
Also includes some miscellaneous for-loop pattern improvements in model.ts and removing of unused variables, etc.
---------
Co-authored-by: sawka <mike.sawka@gmail.com>