* Continuation options and code cosmetics in async methods.
* ConfigureAwait in FluentTerminal.App.ViewModels project adjusted.
* async/await in FluentTerminal.SystemTray project.
- Clarified Dispose logic for ConPTY Terminal and Process
- Disposing a ConPTY Process now kills it and its children
- ConPTY Terminal now cleans up everything in its Dispose
- Wired up missing Dispose calls in various finalizers
- Removed CTRL_CLOSE_EVENT handling. This event never seems to actually happen.
Fixes https://github.com/jumptrading/FluentTerminal/issues/94
* Separating "SSH Info" and "Quick Launch", and updating translations.
* Adding "Quick Launch" to menu.
* Auto-complete, initial version.
* Builds, but not finished.
* Improved, but there are still some bugs...
* Minor changes.
* Refactroing request/response identifiers.
* Improving command history.
* Minor refactoring.
* Deleting history by using "Del" key.
* Handling mosh special case in quick commands.
* SSH command handled as any other command in the path.
* New resource strings.
* Fixing quick command links.
* Fixing after-merging bugs.
* Improving filtering.
* Finishing filtering.
* Changing placeholder text.
* Minor refactoring.
* Updating resources.
* Renaming NewRemoteTab back to NewSshTab.
The full path to ssh.exe and mosh.exe was being stored in SSH profiles.
The path to mosh.exe includes FluentTerminal's version number causing
SSH profiles to break after an upgrade.
Instead, a token indicating SSH or Mosh is stored in the profile
instead. This is resolved just before the shell is started.
This change also meant that the infrastructure for the
"GetMoshSshExecutable" system tray request is no longer required, so
this has been removed.
* Implementing SSH (changes from ap/ssh branch).
* Implemented opening links in the last active window.
* Using settings to determine where to open link (tab or window).
* Adding FluentTerminal.App_TemporaryKey.pfx back to repo, to solve bug with keys.
* App activation on mosh schema launching; mosh protocol parsing. (#35)
* SSH handling changed to improve links.
* Creating shortcuts from SSH dialog.
* Trivial Mosh checkbox label fix
It's "Mosh" not "MOSH".
* Obtain mosh key from ssh connection (#40)
* Prepopulate SSH username with Windows username (#50)
* Undoing Max's mosh authentication changes.
* Adding the new mosh wrapper.
* Request user name from tray process (#51)
* Mosh implemented, but still doesn't work (cannot find mosh.exe).
* Add New Remote Shell menu; Rename New Tab into New Local Shell (#52)
* Mosh works like charm.
* Mosh wrapper improved to print an error.
* Changing mosh wrapper to always exit with 0 (to ensure that the tab gets closed).
* Changing mosh wrapper again to return error codes.
* Slightly optimizing getting the username.
* Saving links improved.
* Fixed an issue in mosh wrapper, related to mosh to hostname.
* mosh-client.exe updated with 32 bit version for x86 platform (#59)
* Set line endings for remote shell connection;
Left focus on SSH info dialog if input validation error occured;
Update DataContext object on each key entered into target host text box control.
* Simplifying SSH dialog.
* Fixing some leftovers after merging.
* Fixing some after-merge issues.
* Avoiding some unintentional upstream changes.
* Fix review findings
Make the shell process's exit code available to the main app so that
actions can be taken depending on whether the shell command was
successful or not.
Later work will build on this so that failed commands will result in
tabs being left open when the shell command fails. This will help when
troubleshooting incorrectly configured profiles, SSH connection issues
etc.
Exit codes are passed up for both WinPty and ConPty based terminals.
* Better CLI parsing, command
Added the option to run a command via the CLI.
Also added a better argument parsing solution.
You can now do `flute.exe new [PATH] [COMMAND]`
Before, you could only do `flute.exe new [PATH]`
You would also need to adjust your settings, say your default profile is using powershell with custom arguments, those arguments would have to end with ";", because the `[COMMAND]` would be appended to the arguments.
* parse arguments with commandlineparser nuget
* Run commands with no underlying shell process
* Create RunVerb, cleanup terminal creation
* Fix window close bug
* Use working directory of caller if none specified
* Restore profile arguments in WinPty
* Encapsulate xterm.js implementation in XtermTerminalView
* fix TerminalTheme Equals()
* Fix new output indicator
* Ut8 and some fixes
* fix test
* fixed infinite loop on shell exit
* Added new command wrapper, abstracts static and dynamic commands
- All uses of the `Command` are replaced with either `AppCommand`, for a command that is static to the scope of the application, or a reference to an ICommand (specifically, an `EnumCommand<AppCommand>()` instance), which provides the abstract wrapper.
- Functionality seems intact.
- Next step is to have the MainViewModel add the per-shell commands via SettingsService.CreateShellKeyboardShortcuts(), and have the SettingsService.ParseCommandString() function parse the command strings passed around properly.
- Finally, add the keyboard chord input to each shell's settings page.
* First kick at adding a new terminal keyboard command.
- It isn't presented anywhere, but references to keybindings should be using the ICommand key as their identifier for recognizing anything, and when xterm passes back a keyboard command event, the SettingsService is asked to convert the string into an ICommand.
* Renaming ICommand to Command.
It's not longer an interface, so this makes more sense.
* Renaming back to Command, and new class is AbstractCommand.
Going to simplify the PR diff considerably.
* Shortcuts for default shells work. Need to get the shell profile edit UI elements working.
* Added keyboard shortcut UI elements to shell profile pages.
* New and deleted shell profiles propagate to all terminal views.
* A bit of cleanup.
* Camel-casing command text to fix Ctrl+C and copy behaviour.
* Fixed failing test.
The new on disk store uses a .ToString(), not the Enum description, since the command isn't an Enum, it's a class now in general, and those semantics make more sense.
* Adding default value for null keybindings in shell profiles.
* Merge branch 'shell_commands' of https://github.com/Riebart/FluentTerminal into pr/85
Improved default value for keybinding property
* Renamed KeyBinding collection to KeyBindings
* Use strings as Command parameter of KeyBinding
* Added missing Commands to keyBindings of default shellProfiles
* fix build and unit tests after merge with master
* improve UI
* Split OnShellProfileCollectionChanged event
* create "About" page in settings
* add content to About page
* Get latest version from GitHub
* Add NotificationService to servies
* Enable actions on notifications
* Get latest version asynchroniously
* Handle when latest version is not found and clean code
* Remove old UpdateService
* Remove old NotificationService
* Add icon for about tab
* Update About page styling
* Make About menu item a footer menu item
* Update About page layout
Based on suggestions by @felixse
* Instatiate temporary navigation item only once
This seems to solve display issues when opening the "About" page multiple times where the main navigation list is being rerendered for no apparent reason.
* Revert unintended changes
* Added shortcut to about page in hamburger menu
* Move About page properties to the AboutPageViewModel
* Make "loading..." and "Not found" italic to indicate non-default behaviour
* move update check back to systemtray
* Made IUpdateService async