* Dispatcher reviewed and improved.
* Minor refactoring.
* XtermTerminalView initialization simplified.
* Additionally simplifying XtermTerminalView initialization.
* Replacing SemaphoreSlim with lighter TaskCompletionSource.
* Some async/await simplification.
* Resize locking mechanism in XtermTerminalView simplified.
* Resize handling improved.
* Trivial change in a code comment.
* After merge fixes, and some minor changes.
* Added icon to "Recent >" menu item.
* Refactored app menu implementation, and implemented keyboard accelerators. Still doesn't work though.
* Few things fixed, but still doesn't work.
* Clicking menu items works.
* Fixing an issue with resources.
* New menu binding implemented. Still doesn't work though.
* Menu displayed properly, except for "Settings".
* Menu works, but it doesn't refresh.
* Works. But needs to be polished.
* All known issues with the new app menu solved.
* Significantly simplifying app menu binding.
* Removing some obsolete classes.
* Menu binding mechanism additionally optimized for performances.
* Removing unused translations.
* Further refactoring app menu binding, in order to make it more general.
* Renaming menu items in order to make them usable for both new tab and new window commands.
* Changing menu item keyboard accelerators based on new tab / window settings.
* Menu item keyboard accelerators are dynamically changing with chainging terminals in new tabs/windows option.
* New tab / window settings honored for top level menu items.
* New window mechanism simplified. Terminal-launching code refactored to be more readable. A bug with "SSH Info" fixed.
* Merging the latest changed.
* Fixing some after-merge issues.
* Minor refactoring.
* Minor refactoring.
* Default profile menu item now contains the profile name. Still doesn't update though.
* Default profile name in the menu item now updates.
* Updating resources from POEditor.
* New tab/window cascading menues implemented.
* Reverting translations back to the correct (the latest) version.
* Undoing translation changes from the last commit. I've made these by mistake.
* Configurable tab/window cascading menu.
* "Application menu type" settings value added.
* Minor spelling fix.
* Fixing some after-merge issues.
* Added icon to "Recent >" menu item.
* Refactored app menu implementation, and implemented keyboard accelerators. Still doesn't work though.
* Few things fixed, but still doesn't work.
* Clicking menu items works.
* Fixing an issue with resources.
* New menu binding implemented. Still doesn't work though.
* Menu displayed properly, except for "Settings".
* Menu works, but it doesn't refresh.
* Works. But needs to be polished.
* All known issues with the new app menu solved.
* Significantly simplifying app menu binding.
* Removing some obsolete classes.
* Menu binding mechanism additionally optimized for performances.
* Removing unused translations.
* Further refactoring app menu binding, in order to make it more general.
* Renaming menu items in order to make them usable for both new tab and new window commands.
* Changing menu item keyboard accelerators based on new tab / window settings.
* Menu item keyboard accelerators are dynamically changing with chainging terminals in new tabs/windows option.
* New tab / window settings honored for top level menu items.
* New window mechanism simplified. Terminal-launching code refactored to be more readable. A bug with "SSH Info" fixed.
* Merging the latest changed.
* Fixing some after-merge issues.
* Minor refactoring.
* Minor refactoring.
* Default profile menu item now contains the profile name. Still doesn't update though.
* Default profile name in the menu item now updates.
* Reverting translations back to the correct (the latest) version.
* Undoing translation changes from the last commit. I've made these by mistake.
* Added icon to "Recent >" menu item.
* Refactored app menu implementation, and implemented keyboard accelerators. Still doesn't work though.
* Few things fixed, but still doesn't work.
* Clicking menu items works.
* Fixing an issue with resources.
* New menu binding implemented. Still doesn't work though.
* Menu displayed properly, except for "Settings".
* Menu works, but it doesn't refresh.
* Works. But needs to be polished.
* All known issues with the new app menu solved.
* Significantly simplifying app menu binding.
* Removing some obsolete classes.
* Menu binding mechanism additionally optimized for performances.
* Removing unused translations.
* Further refactoring app menu binding, in order to make it more general.
* New window mechanism simplified. Terminal-launching code refactored to be more readable. A bug with "SSH Info" fixed.
* Merging the latest changed.
* Refactoring CommandHistoryService to prepare "Recent" menu item feature.
* "Recent" menu implemented, but still not bound to commands.
* "Recent" menu implemented.
* Mosh executables changed.
* New mosh from dialog.
* CommandHistoryService implemented.
* Backward compatibility for command history implemented.
* Implemented mosh backwards compatibility for saved profiles. But the app doesn't work!
* Saved profiles are backwards compatible, and the app works.
* Adding readme file for new mosh.
* Add a background image property in theme
* Add the browse command to theme settings page
The goal was to create a command that permit to browse user pictures.
The user can now select is picture by browsing file or to simply copy the
link of the image in the textbox.
* Try to show the image that we download
* Change the save image method in file service
We call the method `ImportImageFile` so that we can show a picker dialog
and directly import the image in the roaming folder.
We make some check to avoid the application crash, still need to test
* Reorganize the UI for image import
* Add background brush converter
Now that we have a background image we need to set the background according
to the theme color or the selected image.
To do this we need to use the `ThemeViewModel` and the new converter to
select the right brush to use (`ImageBrush` or ` AcrylicBrush`)
* Use the File object insted of a image path
* Add background style to content and toolbar
* Create the ImageFile object
* Use the ImageFile object so that we can serialize the theme
* Remove commented code
* Remove the base64 string of the image file
* Disable if it's a preinstalled theme
* Add new event when background image changed
* Make the RemoveImportedImage method async
* Subscribe to background image event and change background in code behind
* Add the delete background image command
* Remove unused converters that we created
* Save background image in temporary folder
* Remove the temporary images and save the last one
* Implement the cancel and delete background
* Show the background image in terminal
* Split the image file methods in another interface
* Change the name of image saving method
* Prepare the object and methods to export encoded image
* Add import method to deserialize correctly the theme
* Remove the private from the set accessor
* Implememnt the import method
* Implement the conversion base64 image to real image
* Create the background image and import it
* Fix some actions bug
* Get the new image file name after import
* Fix some bugs when the image is deleted
* Move the background image in terminal view
* Translate the background image text
* Add the delete background command
* Fix the background image deletion if we click on cancel
* Add background opacity property to terminal view model
* Need to create a theme changed event
If we don't notify the view that the selected theme has changed with
another theme that has the same background but a different background image
we'll never see this image appear.
In fact the background change is triggered by the background color change.
* Remove the background from the theme settings page
* Fix error of last edited image
* Fix image background aspect ratio
* Implement delayed saving.
* Delayed command history saving improved.
* Fixing a bug with SSH profiles in "quick command" dialog.
* Opening auto-suggest list on down arrow implemented.
* Minor change.
* Removing an obsolete settings option.
* 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.
* Simplifying view models, step 1: Extracting common terminal configuration into TerminalInfoViewModel.cs.
* Simplifying a bit.
* SSH view models simplfication.
* Refactoring duplicated code.
* Refactoring duplicated code.
* Renaming a resource file.
* Cleanup.
* Fixing an issue with TemplateSelectors.
* QuickSshDialog created.
* Minor fix.
* Wiring up QuickSshDialog.
* Minor fix.
* Fixed an issue with shared resources.
* Single-text-box dialog works.
* Improving "Quick SSH" look.
* Improving data validation workflow to avoid double validations.
* Refactoring view models and templates to avoid duplicated code.
* Minor fix.
* Fixing a bug with mosh.
* Cleanup.
* Cleanup.
* Moving profile view models in a separate folder (namespace).
* Few comment lines (short description) added to profile view models.
* Removing IDisposable from view-models because event-caused memory leaks will be solved differently.
* Implemented quick-ssh shortcuts.
* Fixing quick SSH command validation.
* Minor change.
* Minor change.
* Combining "SSH Info" and "Quick SSH" into a single dialog.
* Quick SSH profiles.
* Fixing a minor bug with custom links.
* Fixing remote profiles look and feel.
* Minor improvements.
* Fixing a minor bug.
* Minor changes based on Felix' comments.
* Saving executed commands history implemented.
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.
* Minor improvements to remote SSH profiles. Username prefilled, and line ending defaults to LF.
* Implementing "Set Default" on SSH Profiles.
* Simplifying profile view models.
* Fixing null themes issue.
* Changing line ending of a sinfle file to CRLF.
* Changing file to LF, to avoid false differences.
* Converting a file to LF in order to avoid false differences.
* Fixining a bug with shortcuts.
* Added missing resource strings for new SSH bindings
Without these the settings page has no labels for these bindings.
* Rationalise default SSH keybindings
The logic is:
- Adhoc SSH tabs and windows are based around the Y key
- SSH profile tabs and windows are based around the U key (next to Y and
easier to reach than Z)
* Reorder command enum
Group commands together in a more logical order. In particular, this
makes command keybindings appear in a more logical order on the relevant
Settings page.
Note: this does not break existing keybinding configuration.
The keyboard shortcuts for local and SSH profiles will now result in the
new terminal being started in a window if "Open new terminals as" is set
to "Windows".
The diff is longer than strictly necessary because Visual Studio fixed
inconsistent line endings.
* 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.
* Fix finding SSH when executing as 32-bit process on a 64-bit operational system
* Display a suitable error message when no OpenSSH client installed
and the user tries to open an SSH connection
* Creating a control for the overlay
* using Interactivity
* trying to bind by reference
* fix bindings
* remove unused packages
* Move getter/setter to show method
* Convert to AutoProperty
* Make text copied notification configurable
* cache settings, removed unused file
* Appveyor builds (#6)
* SSH implemented.
* Implementing SSH by using the existing app infrastructure.
* Refactored to new command instead of a profile
* Update .gitignore