Compare commits

..
36 changed files with 3217 additions and 8922 deletions

No files matched your search

+1 -1
View File
@@ -20,4 +20,4 @@ jobs:
uses: warrenbuckley/Setup-MSBuild@v1
- name: MSBuild
run: msbuild FluentTerminal.sln -t:build -p:Configuration=Debug -p:Platform=x64 -m -restore
run: msbuild FluentTerminal.sln -t:build -p:Configuration=Debug -p:Platform=x64 -p:AppxPackage=false -m -restore
@@ -12,9 +12,9 @@
<ItemGroup>
<PackageReference Include="AutoFixture" Version="4.11.0" />
<PackageReference Include="FluentAssertions" Version="5.10.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
<PackageReference Include="Moq" Version="4.14.0" />
<PackageReference Include="FluentAssertions" Version="5.10.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
@@ -9,7 +9,7 @@
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="MvvmLightLibs" Version="5.4.1.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="PListNet" Version="3.2.0" />
<PackageReference Include="PListNet" Version="3.0.0" />
<PackageReference Include="RestSharp" Version="106.10.1" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
@@ -63,8 +63,7 @@ namespace FluentTerminal.App.Services.Implementation
TerminalOptions = GetTerminalOptions(),
Themes = new List<TerminalTheme>(),
Profiles = new List<ShellProfile>(),
SshProfiles = new List<SshProfile>(),
DefaultSettings = GetDefaultSettings(),
SshProfiles = new List<SshProfile>()
};
foreach (var theme in GetThemes().Where(x => !x.PreInstalled))
@@ -85,15 +84,6 @@ namespace FluentTerminal.App.Services.Implementation
return JsonConvert.SerializeObject(config, PreserveDictionaryKeyCaseContractResolver.SerializerSettings);
}
private Dictionary<string, string> GetDefaultSettings()
{
return new Dictionary<string, string>
{
[DefaultShellProfileKey] = GetDefaultShellProfileId().ToString(),
[CurrentThemeKey] = GetCurrentThemeId().ToString(),
};
}
public void ImportSettings(string serializedSettings)
{
var config = new
@@ -103,8 +93,7 @@ namespace FluentTerminal.App.Services.Implementation
Themes = new List<TerminalTheme>(),
Profiles = new List<ShellProfile>(),
SshProfiles = new List<SshProfile>(),
TerminalOptions = GetTerminalOptions(),
DefaultSettings = new Dictionary<string, string>(),
TerminalOptions = GetTerminalOptions()
};
JsonConvert.PopulateObject(serializedSettings, config);
@@ -154,16 +143,6 @@ namespace FluentTerminal.App.Services.Implementation
}
SaveTerminalOptions(config.TerminalOptions);
if (config.DefaultSettings.ContainsKey(DefaultShellProfileKey))
{
SaveDefaultShellProfileId(new Guid(config.DefaultSettings[DefaultShellProfileKey]));
}
if (config.DefaultSettings.ContainsKey(CurrentThemeKey))
{
SaveCurrentThemeId(new Guid(config.DefaultSettings[CurrentThemeKey]));
}
}
public void DeleteShellProfile(Guid id)
@@ -79,6 +79,7 @@
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<!-- Row -->
@@ -123,6 +124,16 @@
Margin="0,8,0,0"
Content="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseConPty}"
IsChecked="{x:Bind ViewModel.UseConPty, Mode=TwoWay}" />
<!-- Row -->
<CheckBox
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,8,0,0"
Content="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseBuffer}"
IsChecked="{x:Bind ViewModel.UseBuffer, Mode=TwoWay}" />
</Grid>
</controls:Expander>
@@ -129,6 +129,7 @@
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<!-- Row -->
@@ -208,6 +209,16 @@
Margin="0,8,0,0"
Content="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseConPty}"
IsChecked="{x:Bind ViewModel.UseConPty, Mode=TwoWay}" />
<!-- Row -->
<CheckBox
Grid.Row="4"
Grid.Column="0"
Grid.ColumnSpan="4"
Margin="0,8,0,0"
Content="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseBuffer}"
IsChecked="{x:Bind ViewModel.UseBuffer, Mode=TwoWay}" />
</Grid>
</controls:Expander>
+2 -14
View File
@@ -350,7 +350,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Autofac">
<Version>5.1.3</Version>
<Version>5.1.2</Version>
</PackageReference>
<PackageReference Include="CommandLineParser">
<Version>2.7.82</Version>
@@ -374,7 +374,7 @@
<Version>12.0.3</Version>
</PackageReference>
<PackageReference Include="Win2D.uwp">
<Version>1.23.0</Version>
<Version>1.24.0</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
@@ -436,18 +436,6 @@
<ItemGroup>
<PRIResource Include="Strings\zh-Hans\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\fa\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\hu\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\tr\Resources.resw" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\hr\Resources.resw" />
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
@@ -16,12 +16,9 @@ namespace FluentTerminal.App.Services
["de"] = "Deutsch",
["en"] = "English",
["es"] = "Español",
["fa"] = "فارسی",
["fr"] = "Français",
["he"] = "עברית",
["hi"] = "हिन्दुस्तानी",
["hr"] = "Hrvatski",
["hu"] = "magyar",
["id"] = "Bahasa Indonesia",
["it"] = "Italiano",
["ja"] = "日本語",
@@ -31,10 +28,9 @@ namespace FluentTerminal.App.Services
["pt-BR"] = "Português-Brasil",
["ro"] = "Română",
["ru"] = "Pусский",
["tr"] = "Türkçe",
["uk"] = "Українська",
["zh-Hans"] = "简体中文",
["zh-Hant"] = "繁體中文"
["zh-Hans"] = "繁體中文",
["zh-Hant"] = "简体中文"
};
public IEnumerable<string> Languages => _languages.Values;
File diff suppressed because it is too large. Load diff
+100 -101
View File
@@ -123,7 +123,7 @@
Fuzzy</comment>
</data>
<data name="Background.Content" xml:space="preserve">
<value>Arrière-plan</value>
<value>Fond</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabTheme.Blue" xml:space="preserve">
@@ -177,11 +177,11 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="IndicatorOutput.Header" xml:space="preserve">
<value>Afficher l&apos;indicateur de nouvelle sortie sur les onglets inactifs</value>
<value>Afficher l&apos;indicateur de nouvelle sortie sur les onglets en arrière-plan</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="NeedRelaunch.Text" xml:space="preserve">
<value>Relancez l&apos;application pour appliquer ce réglage</value>
<value>Redémarrage de l&apos;application requis pour appliquer le réglage</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="NewTab.Text" xml:space="preserve">
@@ -202,7 +202,7 @@ Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="OpenNewTerminalAs.Text" xml:space="preserve">
<value>Ouvrir les nouveaux terminaux en tant que</value>
<value>Ouvrir de nouveaux terminaux en tant que</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabTheme.Orange" xml:space="preserve">
@@ -246,7 +246,7 @@ Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabsPostion.Text" xml:space="preserve">
<value>Disposition des onglets</value>
<value>Afficher les onglets sur</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TabTheme.Teal" xml:space="preserve">
@@ -255,11 +255,11 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="TP_Bottom.Content" xml:space="preserve">
<value>En bas</value>
<value>Bas</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="TP_Top.Content" xml:space="preserve">
<value>En haut</value>
<value>Haut</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="Underline.Content" xml:space="preserve">
@@ -267,11 +267,11 @@ Fuzzy</comment>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="UnderlineTab.Header" xml:space="preserve">
<value>Souligner l&apos;onglet actif</value>
<value>Souligner l&apos;onglet sélectionné</value>
<comment>GeneralSettings.xaml</comment>
</data>
<data name="Setting_About.Content" xml:space="preserve">
<value>À propos</value>
<value>A propos</value>
<comment>SettingsPage.xaml</comment>
</data>
<data name="Setting_General.Content" xml:space="preserve">
@@ -287,7 +287,7 @@ Fuzzy</comment>
<comment>SettingsPage.xaml</comment>
</data>
<data name="Setting_Profiles.Content" xml:space="preserve">
<value>Profils</value>
<value>Profiles</value>
<comment>SettingsPage.xaml</comment>
</data>
<data name="Setting_Terminal.Content" xml:space="preserve">
@@ -308,15 +308,15 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="BackgroundOpacity.Header" xml:space="preserve">
<value>Opacité de l&apos;arrière-plan</value>
<value>Opacité du fond</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="BlinkingCursor.Header" xml:space="preserve">
<value>Curseur clignotant</value>
<value>Clignotement du curseur</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="BoldText.Header" xml:space="preserve">
<value>Texte gras</value>
<value>Texte en gras</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="CancelAppBarButton.Label" xml:space="preserve">
@@ -324,7 +324,7 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="CheckingUpdates.Text" xml:space="preserve">
<value>Vérification des mises à jour...</value>
<value>Vérification des mises à jour ...</value>
<comment>About.xaml</comment>
</data>
<data name="CheckUpdates.Label" xml:space="preserve">
@@ -332,7 +332,7 @@ Fuzzy</comment>
<comment>About.xaml</comment>
</data>
<data name="ClickColorEdit.Text" xml:space="preserve">
<value>Cliquez sur une couleur pour l&apos;éditer</value>
<value>Cliquez sur une couleur pour éditer</value>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="CloneAppBarButton.Label" xml:space="preserve">
@@ -348,11 +348,11 @@ Fuzzy</comment>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="CopyOnSelect.Header" xml:space="preserve">
<value>Copie automatique</value>
<value>Copier sur sélectionner</value>
<comment>MouseSettings.xaml</comment>
</data>
<data name="CreateProfile.Text" xml:space="preserve">
<value>Créer un profil</value>
<value>Créer un nouveau</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="CurrentVersion.Text" xml:space="preserve">
@@ -385,7 +385,7 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="EditAppBarButton.Label" xml:space="preserve">
<value>Éditer</value>
<value>Editer</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ExportAppBarButton.Label" xml:space="preserve">
@@ -393,7 +393,7 @@ Fuzzy</comment>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="FontFamily.Header" xml:space="preserve">
<value>Famille de police</value>
<value>Famille de polices</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="FontSize.Header" xml:space="preserve">
@@ -421,15 +421,15 @@ Fuzzy</comment>
<comment>About.xaml</comment>
</data>
<data name="LineEndingMode.Header" xml:space="preserve">
<value>Conversion de fin de ligne</value>
<value>Mode de traduction de fin de ligne</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="LineEndingModeOnPaste.Text" xml:space="preserve">
<value>Conversion de fin des lignes collées:</value>
<value>Mode de traduction de fin de ligne sur coller:</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="MiddleButtonAction.Text" xml:space="preserve">
<value>Action du bouton central</value>
<value>Action du bouton du milieu</value>
<comment>MouseSettings.xaml</comment>
</data>
<data name="Mouse.Text" xml:space="preserve">
@@ -450,11 +450,11 @@ Fuzzy</comment>
<comment>MouseSettings.xaml</comment>
</data>
<data name="NewTheme.Text" xml:space="preserve">
<value>Créer un thème</value>
<value>Créer un nouveau</value>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="Padding.Header" xml:space="preserve">
<value>Bords</value>
<value>Padding</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ProfileName.Header" xml:space="preserve">
@@ -462,7 +462,7 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="Profiles.Text" xml:space="preserve">
<value>Profils</value>
<value>Profiles</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ProfileTheme.Header" xml:space="preserve">
@@ -478,7 +478,7 @@ Fuzzy</comment>
<comment>MouseSettings.xaml</comment>
</data>
<data name="SaveAppBarButton.Label" xml:space="preserve">
<value>Sauvegarder</value>
<value>Sauvgarder</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ScrollbackLimit.Header" xml:space="preserve">
@@ -486,15 +486,15 @@ Fuzzy</comment>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollBarAuto.Content" xml:space="preserve">
<value>Masquer automatiquement</value>
<value>Masquage automatique</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollBarHidden.Content" xml:space="preserve">
<value>Masquée</value>
<value>Masqué</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollbarStyle.Text" xml:space="preserve">
<value>Barre de défilement</value>
<value>Style de barre de défilement</value>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="ScrollBarVisible.Content" xml:space="preserve">
@@ -502,7 +502,7 @@ Fuzzy</comment>
<comment>TerminalSettings.xaml</comment>
</data>
<data name="SetActiveAppBarButton.Label" xml:space="preserve">
<value>Définir comme actif</value>
<value>Définir actif</value>
<comment>ThemeSettings.xaml</comment>
</data>
<data name="SetDefaultAppBarButton.Label" xml:space="preserve">
@@ -510,11 +510,11 @@ Fuzzy</comment>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ShellLocation.Header" xml:space="preserve">
<value>Emplacement de l&apos;exécutable du shell</value>
<value>Emplacement exécutable du shell</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="TabColor.Header" xml:space="preserve">
<value>Couleur de l&apos;onglet</value>
<value>Couleur d&apos;onglet</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="Terminal.Text" xml:space="preserve">
@@ -549,51 +549,51 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="WorkingDir.Header" xml:space="preserve">
<value>Dossier de départ</value>
<value>Directeur de travail</value>
<comment>ShellProfileSettings.xaml</comment>
</data>
<data name="ConfirmCloseTab" xml:space="preserve">
<value>Êtes-vous sûr(e) de vouloir fermer &quot;{0}&quot; onglets ?</value>
<value>Êtes-vous sûr de vouloir fermer &quot;{0}&quot; onglets?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmCloseWindow" xml:space="preserve">
<value>Voulez-vous fermer cette fenêtre ?</value>
<value>Are you sure you want to close this window?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmDeleteKeybindings" xml:space="preserve">
<value>Voulez-vous supprimer ce raccourci ?</value>
<value>Are you sure you want to delete this keybinding?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmDeleteTheme" xml:space="preserve">
<value>Voulez-vous supprimer ce thème ?</value>
<value>Êtes-vous sûr de vouloir supprimer ce thème?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmDiscardChanges" xml:space="preserve">
<value>Voulez-vous annuler toutes les modifications ?</value>
<value>Êtes-vous sûr de vouloir annuler toutes les modifications?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreGeneralSettings" xml:space="preserve">
<value>Voulez-vous restaurer les paramètres généraux ?</value>
<value>Êtes-vous sûr de vouloir restaurer les paramètres généraux?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreKeybindings" xml:space="preserve">
<value>Voulez-vous restaurer les raccourcis clavier par défaut ?</value>
<value>Êtes-vous sûr de vouloir restaurer les raccourcis clavier par défaut?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreMouseSettings" xml:space="preserve">
<value>Voulez-vous restaurer les paramètres de la souris ?</value>
<value>Êtes-vous sûr de vouloir restaurer les paramètres de la souris?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreProfile" xml:space="preserve">
<value>Voulez-vous restaurer ce profil ?</value>
<value>Êtes-vous sûr de vouloir restaurer ce profil?</value>
<comment>ViewModel</comment>
</data>
<data name="ConfirmRestoreTerminalOptions" xml:space="preserve">
<value>Voulez-vous restaurer les options du terminal par défaut ?</value>
<value>Êtes-vous sûr de vouloir restaurer les options du terminal par défaut?</value>
<comment>ViewModel</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Désactivé par Stratégie de Goupe.</value>
<value>Désactivé par politique.</value>
<comment>ViewModel</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
@@ -601,7 +601,7 @@ Fuzzy</comment>
<comment>ViewModel</comment>
</data>
<data name="EditTitleString" xml:space="preserve">
<value>Éditer le titre</value>
<value>Editer le titre</value>
<comment>ViewModel</comment>
</data>
<data name="Error" xml:space="preserve">
@@ -613,7 +613,7 @@ Fuzzy</comment>
<comment>ViewModel</comment>
</data>
<data name="ImportThemeFailed" xml:space="preserve">
<value>L&apos;importation du thème a échoué</value>
<value>L&apos;importation du thème a échouer</value>
<comment>ViewModel</comment>
</data>
<data name="NoSuitableParserFound" xml:space="preserve">
@@ -628,7 +628,7 @@ Fuzzy</comment>
<value>Annuler</value>
</data>
<data name="KeybindingDialogTitle.Text" xml:space="preserve">
<value>Entrez votre raccourci maintenant</value>
<value>Entrez votre raccourcis maintenant</value>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
@@ -638,7 +638,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="TextCopied" xml:space="preserve">
<value>Texte copié</value>
<value>Texte copier</value>
<comment>ViewModel</comment>
</data>
<data name="AddAppBarButton.Label" xml:space="preserve">
@@ -670,7 +670,7 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="KeyBindingsViewEdit.Content" xml:space="preserve">
<value>Éditer</value>
<value>Editer</value>
<comment>KeyBindingsView.xaml</comment>
</data>
<data name="Command.NewTab" xml:space="preserve">
@@ -699,12 +699,12 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="Command.Search" xml:space="preserve">
<value>Recherche</value>
<value>Chercher</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.SelectAll" xml:space="preserve">
<value>Sélectionner tout</value>
<value>Selectionner tout</value>
<comment>Command
Fuzzy</comment>
</data>
@@ -759,12 +759,12 @@ Fuzzy</comment>
Fuzzy</comment>
</data>
<data name="Command.ToggleFullScreen" xml:space="preserve">
<value>Plein écran</value>
<value>Basculer en plein écran</value>
<comment>Command
Fuzzy</comment>
</data>
<data name="Command.ToggleWindow" xml:space="preserve">
<value>Afficher/Masquer la fenêtre</value>
<value>Basculer la fenêtre</value>
<comment>Command
Fuzzy</comment>
</data>
@@ -773,11 +773,11 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewSshTab" xml:space="preserve">
<value>Nouvel onglet SSH</value>
<value>Nouvel SSH onglet</value>
<comment>Fuzzy</comment>
</data>
<data name="SshInfoDialog.Title" xml:space="preserve">
<value>Informations SSH</value>
<value>SSH Informations</value>
</data>
<data name="UserTextBox.PlaceholderText" xml:space="preserve">
<value>utilisateur</value>
@@ -797,7 +797,7 @@ Fuzzy</comment>
<value>Naviguer</value>
</data>
<data name="UseMoshCheckBox.Content" xml:space="preserve">
<value>Utiliser Mosh</value>
<value>Utilisez Mosh</value>
</data>
<data name="AdvancedExpander.Header" xml:space="preserve">
<value>Avancé</value>
@@ -825,7 +825,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="SshConnectionInfoValidationResult.UsernameEmpty" xml:space="preserve">
<value>Le nom d&apos;utilisateur ne peut être vide.</value>
<value>Le nom d&apos;utilisateur ne peut pas être vide.</value>
</data>
<data name="SshConnectionInfoValidationResult.HostEmpty" xml:space="preserve">
<value>L&apos;hôte ne peut être vide.</value>
@@ -849,7 +849,7 @@ Fuzzy</comment>
<value>Non</value>
</data>
<data name="Language.Header" xml:space="preserve">
<value>Langage</value>
<value>Language</value>
</data>
<data name="None.Text" xml:space="preserve">
<value>Aucun</value>
@@ -861,7 +861,7 @@ Fuzzy</comment>
<value>Sortie avec erreur</value>
</data>
<data name="ConfirmDeleteProfile" xml:space="preserve">
<value>Voulez-vous supprimer ce profil ?</value>
<value>Êtes-vous sûr de vouloir supprimer ce profil?</value>
</data>
<data name="Command.NewSshWindow" xml:space="preserve">
<value>Nouvelle fenêtre SSH</value>
@@ -875,7 +875,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="UseConPty" xml:space="preserve">
<value>Utiliser ConPty</value>
<value>Utilisez ConPty</value>
<comment>Fuzzy</comment>
</data>
<data name="Username.Header" xml:space="preserve">
@@ -887,7 +887,7 @@ Fuzzy</comment>
<comment>Fuzzy</comment>
</data>
<data name="MoshPortTo.Header" xml:space="preserve">
<value>au port</value>
<value>au portt</value>
<comment>Fuzzy</comment>
</data>
<data name="MoshPortRange.Text" xml:space="preserve">
@@ -906,28 +906,28 @@ Fuzzy</comment>
<value>Le fichier d&apos;identification n&apos;existe pas</value>
</data>
<data name="AutoFallbackToWindowsUsername.Header" xml:space="preserve">
<value>Utiliser le nom d&apos;utilisateur Windows pour les connexions SSH qui n&apos;en spécifient aucun</value>
<value>Utilisez le nom d&apos;utilisateur Windows lors de l&apos;ouverture d&apos;URL SSH qui don&apos;t spécifier un</value>
</data>
<data name="UseMoshByDefault.Header" xml:space="preserve">
<value>Mosh par défaut pour les connexions SSH</value>
</data>
<data name="RTrimCopiedLines.Header" xml:space="preserve">
<value>Rogner les lignes copiées</value>
<value>Couper les lignes copiées</value>
</data>
<data name="QuickSshDefault.Header" xml:space="preserve">
<value>Utiliser SSH rapide par défaut</value>
</data>
<data name="InvalidCommand" xml:space="preserve">
<value>Commande invalide.</value>
<value>Commande non valide.</value>
</data>
<data name="LocationCantBeEmpty" xml:space="preserve">
<value>L&apos;emplacement ne peut pas être vide.</value>
</data>
<data name="MuteTerminalBeeps.Header" xml:space="preserve">
<value>Désactiver les bips du terminal</value>
<value>Mutter les bips du terminal</value>
</data>
<data name="CommandTextBox.PlaceholderText" xml:space="preserve">
<value>Entrez une commande (ex: &apos;ssh username@host&apos;)</value>
<value>Entrez une commande (e.g. &apos;ssh username@host&apos;)</value>
</data>
<data name="CommandLine.Header" xml:space="preserve">
<value>Commande</value>
@@ -936,17 +936,17 @@ Fuzzy</comment>
<value>Commande non supportée:</value>
</data>
<data name="CommandArgumentsMandatory" xml:space="preserve">
<value>Les arguments de la commande sont manquants.</value>
<value>Les arguments de commande sont manquants.</value>
</data>
<data name="QuickCommandDialog.Title" xml:space="preserve">
<value>Lancement rapide</value>
<value>Démarrage rapide</value>
<comment>Fuzzy</comment>
</data>
<data name="Command.NewCustomCommandTab" xml:space="preserve">
<value>Lancement rapide (onglet)</value>
<value>Nouvel onglet de lancement rapide</value>
</data>
<data name="Command.NewCustomCommandWindow" xml:space="preserve">
<value>Lancement rapide (fenêtre)</value>
<value>Nouvelle fenêtre de lancement rapide</value>
</data>
<data name="NewQuickTab.Text" xml:space="preserve">
<value>Nouvel onglet rapide</value>
@@ -958,7 +958,7 @@ Fuzzy</comment>
<value>Lien invalide.</value>
</data>
<data name="DropTabHere" xml:space="preserve">
<value>Déposez l&apos;onglet ici</value>
<value>Drop tab here</value>
</data>
<data name="CloseLeft.Text" xml:space="preserve">
<value>Fermer les onglets à gauche</value>
@@ -970,7 +970,7 @@ Fuzzy</comment>
<value>Fermer les onglets à droite</value>
</data>
<data name="Command.DuplicateTab" xml:space="preserve">
<value>Dupliquer l&apos;onglet</value>
<value>Onglet dupliquer</value>
<comment>Fuzzy</comment>
</data>
<data name="Duplicate.Text" xml:space="preserve">
@@ -989,16 +989,16 @@ Fuzzy</comment>
<value>Fermer le panneau de recherche</value>
</data>
<data name="FindNext.ToolTipService.ToolTip" xml:space="preserve">
<value>Résultat suivant</value>
<value>Trouver le suivant</value>
</data>
<data name="FindPrevious.ToolTipService.ToolTip" xml:space="preserve">
<value>Résultat précédent</value>
<value>Trouver le précédent</value>
</data>
<data name="SearchTextBox.PlaceholderText" xml:space="preserve">
<value>Entrez le terme de recherche</value>
</data>
<data name="Search.Text" xml:space="preserve">
<value>Recherche</value>
<value>Chercher</value>
</data>
<data name="PrintableOutputOnly.Content" xml:space="preserve">
<value>Sortie imprimable seulement</value>
@@ -1010,80 +1010,79 @@ Fuzzy</comment>
<value>Caractères séparateurs de mots</value>
</data>
<data name="Recent.Text" xml:space="preserve">
<value>Récents</value>
<value>Récent</value>
</data>
<data name="NewTab_Description" xml:space="preserve">
<value>Ouvre le profil par défaut dans un nouvel onglet.</value>
<value>Ouvrir le profile par défaut dans un nouvel onglet.</value>
</data>
<data name="NewSshTab_Description" xml:space="preserve">
<value>Ouvre une session SSH ou Mosh dans un nouvel onglet.</value>
<value>Ouvrir une session SSH ou Msh dans un nouvel onglet.</value>
</data>
<data name="NewQuickTab_Description" xml:space="preserve">
<value>Ouvre le dialogue &quot;Lancement rapide&quot; et démarre une session dans un nouvel onglet.</value>
<value>Ouvrir le dialogue &quot;Lancement rapide&quot; et commencer une session dans un nouvel onglet.</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>Ouvre les paramètres.</value>
<value>Ouvrir les paramètres.</value>
</data>
<data name="About_Description" xml:space="preserve">
<value>Informations sur l&apos;application.</value>
</data>
<data name="Recent_Description" xml:space="preserve">
<value>Sessions récentes.</value>
<value>Session récentes.</value>
</data>
<data name="MenuItem_DefaultProfile_Description" xml:space="preserve">
<value>Démarre une nouvelle session de terminal du profil par défaut.</value>
<value>Commencer une nouvelle session du profil par défaut.</value>
</data>
<data name="MenuItem_Remote_Text" xml:space="preserve">
<value>Connexion à distance...</value>
<value>Connexion distante...</value>
</data>
<data name="MenuItem_Remote_Description" xml:space="preserve">
<value>Ouvre un dialogue permettant de lancer une nouvelle session SSH ou Mosh.</value>
<value>Ouvrir un dialogue pour une nouvelle session SSH ou Mosh.</value>
</data>
<data name="MenuItem_QuickLaunch_Text" xml:space="preserve">
<value>Lancement rapide...</value>
</data>
<data name="MenuItem_QuickLaunch_Description" xml:space="preserve">
<value>Ouvrir un dialogue &quot;Lancement rapide&quot; pour une nouvelle session de terminal.</value>
<value>Ouvrir un dialogue &quot;Lancement rapide&quot; pour un nouvelle session.</value>
</data>
<data name="MenuItem_NewWindow_Text" xml:space="preserve">
<value>Nouvelle fenêtre</value>
<value>Nouvelle fenêtre.</value>
</data>
<data name="MenuItem_NewTab_Text" xml:space="preserve">
<value>Nouvel onglet</value>
<comment>@William Why adding dots everywhere? These are not sentences</comment>
<value>Nouvel onglet.</value>
</data>
<data name="MenuItem_NewTab_Description" xml:space="preserve">
<value>Lance une session dans un nouvel onglet.</value>
<value>Lancer une session dans un nouvel onglet.</value>
</data>
<data name="MenuItem_NewWindow_Description" xml:space="preserve">
<value>Lance une session dans une nouvelle fenêtre.</value>
<value>Lancer une session dans une nouvelle fenêtre.</value>
</data>
<data name="AppMenuType.Text" xml:space="preserve">
<value>Style du menu d&apos;application</value>
<value>Application menu type</value>
</data>
<data name="AppMenuType_Flat.Content" xml:space="preserve">
<value>Plat, honorant le paramètre &quot;Ouvrir les nouveaux terminaux en tant que&quot;</value>
<value>Plat, honorant le paramètre &quot;Ouvrir de nouveaux terminaux comme&quot;</value>
</data>
<data name="AppMenuType_Cascading.Content" xml:space="preserve">
<value>&quot;Nouvel onglet&quot; / &quot;Nouvelle fenêtre&quot; en cascade.</value>
</data>
<data name="Quit.Text" xml:space="preserve">
<value>Quitter</value>
<value>Quitter.</value>
</data>
<data name="Quit.Description" xml:space="preserve">
<value>Quitter Fluent Terminal</value>
</data>
<data name="EnabledByPolicy" xml:space="preserve">
<value>Autorisé par Stratégie de Goupe.</value>
<value>Autorisé par la politique.</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Image d&apos;arrière-plan</value>
<value>Image de fond</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Arrière-plan transparent</value>
<value>Utilise un fond acrylique.</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Voulez-vous supprimer cet arrière-plan ?</value>
<value>Êtes vous sûr de vouloir supprimer cette image de fond ?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Couleurs</value>
@@ -1101,18 +1100,18 @@ Fuzzy</comment>
<value>Mot entier</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Sensible à la casse</value>
<value>Sensible à la casse.</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copier la sélection ou coller</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Utiliser le buffer intelligent</value>
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Redémarrer</value>
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Session déconnectée.</value>
<value>Session disconnected.</value>
</data>
</root>
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+7 -4
View File
@@ -255,7 +255,8 @@
</data>
<data name="UnderlineTab.Header" xml:space="preserve">
<value>Sottolinea la scheda attiva</value>
<comment>GeneralSettings.xaml</comment>
<comment>GeneralSettings.xaml
Fuzzy</comment>
</data>
<data name="Setting_About.Content" xml:space="preserve">
<value>Informazioni su</value>
@@ -577,7 +578,8 @@ Fuzzy</comment>
</data>
<data name="DisabledByPolicy" xml:space="preserve">
<value>Disattivato da policy</value>
<comment>ViewModel</comment>
<comment>ViewModel
Fuzzy</comment>
</data>
<data name="DisabledByUser" xml:space="preserve">
<value>Disattivato dall&apos;utente. Riattiva Fluent Terminal nella scheda Avvio del Task Manager</value>
@@ -861,6 +863,7 @@ Fuzzy</comment>
</data>
<data name="QuickSshDefault.Header" xml:space="preserve">
<value>Usa Quick SSH come impostazione predefinita</value>
<comment>Fuzzy</comment>
</data>
<data name="InvalidCommand" xml:space="preserve">
<value>Comando non valido</value>
@@ -1056,9 +1059,9 @@ Fuzzy</comment>
<value>Usa smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Riavvia</value>
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Sessione terminata.</value>
<value>Session disconnected.</value>
</data>
</root>
+12 -12
View File
@@ -1014,42 +1014,42 @@
<value>Activat de politică.</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>Imagine de fundal</value>
<value>Background image</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>Folosiți fundal acrilic</value>
<value>Use acrylic background</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>Sigur doriți să ștergeți această imagine de fundal?</value>
<value>Are you sure you want to delete this background image?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>Culori</value>
<value>Colors</value>
</data>
<data name="BrightColors.Text" xml:space="preserve">
<value>Culori deschise</value>
<value>Bright colors</value>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copiere link</value>
<value>Copy link</value>
</data>
<data name="SearchWithRegex.ToolTipService.ToolTip" xml:space="preserve">
<value>Regex</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>Întregul cuvânt</value>
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>Potrivire litere</value>
<value>Case sensitive</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>Copiați selecția sau lipiți</value>
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Folosiți tampon inteligent</value>
<value>Use smart buffer</value>
</data>
<data name="RestartSession.Content" xml:space="preserve">
<value>Repornire</value>
<value>Restart</value>
</data>
<data name="SessionDisconnected.Text" xml:space="preserve">
<value>Sesiunea a fost deconectată.</value>
<value>Session disconnected.</value>
</data>
</root>
File diff suppressed because it is too large. Load diff
@@ -971,13 +971,13 @@ Fuzzy</comment>
<value>最近</value>
</data>
<data name="NewTab_Description" xml:space="preserve">
<value>在新标签打开默认配置。</value>
<value>Opens default profile in a new tab.</value>
</data>
<data name="NewSshTab_Description" xml:space="preserve">
<value>从新标签页打开SSH或Mosh会话</value>
</data>
<data name="NewQuickTab_Description" xml:space="preserve">
<value>打开“快速启动”对话框并在新标签中开启会话。</value>
<value>Opens &quot;Quick Launch&quot; dialog and starts session in a new tab.</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>打开设置页面</value>
@@ -989,19 +989,19 @@ Fuzzy</comment>
<value>最近打开的会话</value>
</data>
<data name="MenuItem_DefaultProfile_Description" xml:space="preserve">
<value>基于默认配置开启新的终端会话。</value>
<value>Starts new terminal session based on the default profile.</value>
</data>
<data name="MenuItem_Remote_Text" xml:space="preserve">
<value>远程连接</value>
</data>
<data name="MenuItem_Remote_Description" xml:space="preserve">
<value>打开对话框开启新的 SSH 或 Mosh 终端会话。</value>
<value>Opens a dialog for launching a new SSH or Mosh terminal session.</value>
</data>
<data name="MenuItem_QuickLaunch_Text" xml:space="preserve">
<value>快捷启动</value>
</data>
<data name="MenuItem_QuickLaunch_Description" xml:space="preserve">
<value>打开“快速启动”对话框并开启终端会话。</value>
<value>Opens a &quot;Quick Launch&quot; dialog for starting a new terminal session.</value>
</data>
<data name="MenuItem_NewWindow_Text" xml:space="preserve">
<value>新建窗口</value>
@@ -1016,13 +1016,13 @@ Fuzzy</comment>
<value>从新窗口启动会话</value>
</data>
<data name="AppMenuType.Text" xml:space="preserve">
<value>应用菜单类型</value>
<value>Application menu type</value>
</data>
<data name="AppMenuType_Flat.Content" xml:space="preserve">
<value>扁平,荣耀的“打开新的终端”设置</value>
<value>Flat, honoring &quot;Open new terminals as&quot; setting</value>
</data>
<data name="AppMenuType_Cascading.Content" xml:space="preserve">
<value>“新标签”/“新窗口”级联菜单</value>
<value>&quot;New Tab&quot; / &quot;New Window&quot; cascading</value>
</data>
<data name="Quit.Text" xml:space="preserve">
<value>退出</value>
@@ -1031,16 +1031,16 @@ Fuzzy</comment>
<value>退出关于</value>
</data>
<data name="EnabledByPolicy" xml:space="preserve">
<value>根据策略启用。</value>
<value>Enabled by policy.</value>
</data>
<data name="BackgroundImage.Content" xml:space="preserve">
<value>背景图片</value>
</data>
<data name="AcrylicBackground.Header" xml:space="preserve">
<value>使用亚克力背景</value>
<value>Use acrylic background</value>
</data>
<data name="ConfirmDeleteBackgroundImage" xml:space="preserve">
<value>你确定你想要删除这个背景图片吗?</value>
<value>Are you sure you want to delete this background image?</value>
</data>
<data name="Colors.Text" xml:space="preserve">
<value>颜色</value>
@@ -1055,13 +1055,13 @@ Fuzzy</comment>
<value>正则表达式</value>
</data>
<data name="SearchWholeWord.ToolTipService.ToolTip" xml:space="preserve">
<value>全字匹配</value>
<value>Whole word</value>
</data>
<data name="SearchCaseSensitive.ToolTipService.ToolTip" xml:space="preserve">
<value>大小写敏感</value>
</data>
<data name="MouseCopySelectionOrPaste.Content" xml:space="preserve">
<value>复制或者粘贴选中的文本</value>
<value>Copy selection or paste</value>
</data>
<data name="UseBuffer" xml:space="preserve">
<value>Use smart buffer</value>
File diff suppressed because it is too large. Load diff
@@ -249,6 +249,13 @@
IsEnabled="{x:Bind InEditMode, Mode=OneWay}"
IsOn="{x:Bind ProfileVm.UseConPty, Mode=TwoWay}" />
<ToggleSwitch
x:Uid="UseBuffer"
Margin="{StaticResource ItemMargin}"
Header="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseBuffer}"
IsEnabled="{x:Bind InEditMode, Mode=OneWay}"
IsOn="{x:Bind ProfileVm.UseBuffer, Mode=TwoWay}" />
<StackPanel Margin="{StaticResource ItemMargin}">
<TextBlock
x:Uid="EnvironmentVariables"
@@ -343,6 +350,18 @@
FontWeight="Light" />
</controls:HeaderedContentControl>
<controls:HeaderedContentControl
Margin="{StaticResource ItemMargin}"
HorizontalContentAlignment="Stretch"
Header="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseBuffer}">
<ContentControl
Margin="0,6,0,0"
Content="{x:Bind ProfileVm.UseBuffer, Mode=OneWay}"
ContentTemplateSelector="{StaticResource UseConPtyTemplateSelector}"
FontSize="18"
FontWeight="Light" />
</controls:HeaderedContentControl>
<controls:HeaderedContentControl
Margin="{StaticResource ItemMargin}"
HorizontalContentAlignment="Stretch"
@@ -291,6 +291,12 @@
IsEnabled="{x:Bind InEditMode, Mode=OneWay}"
IsOn="{x:Bind ProfileVm.UseConPty, Mode=TwoWay}" />
<ToggleSwitch
Margin="{StaticResource ItemMargin}"
Header="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseBuffer}"
IsEnabled="{x:Bind InEditMode, Mode=OneWay}"
IsOn="{x:Bind ProfileVm.UseBuffer, Mode=TwoWay}" />
<StackPanel Margin="{StaticResource ItemMargin}">
<TextBlock
x:Uid="EnvironmentVariables"
@@ -462,6 +468,19 @@
FontWeight="Light" />
</controls:HeaderedContentControl>
<controls:HeaderedContentControl
Margin="{StaticResource ItemMargin}"
HorizontalContentAlignment="Stretch"
DataContext="{Binding ProfileVm}"
Header="{x:Bind Converter={StaticResource I18NConverter}, ConverterParameter=UseBuffer}">
<ContentControl
Margin="0,6,0,0"
Content="{Binding UseBuffer, Mode=OneWay}"
ContentTemplateSelector="{StaticResource UseConPtyTemplateSelector}"
FontSize="18"
FontWeight="Light" />
</controls:HeaderedContentControl>
<controls:HeaderedContentControl
Margin="{StaticResource ItemMargin}"
HorizontalContentAlignment="Stretch"
+1 -1
View File
@@ -35,7 +35,7 @@
Width="16"
Height="16"
Margin="6,0,0,0">
<SymbolIcon Symbol="Find" />
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xF78B;" />
</Viewbox>
<TextBox
Name="SearchTextBox"
@@ -118,7 +118,6 @@ namespace FluentTerminal.App.Views
public event EventHandler<object> OnOutput;
public event EventHandler<string> OnPaste;
public event EventHandler<string> OnSessionRestart;
public XtermTerminalView()
{
@@ -226,23 +225,10 @@ namespace FluentTerminal.App.Views
return Task.CompletedTask;
}
private const string OpenSSH = "OpenSSH";
public async Task ReconnectAsync()
{
if (ViewModel.ShellProfile.Location.Contains(OpenSSH))
{
OnSessionRestart?.Invoke(this, OpenSSH);
await Task.Delay(500).ConfigureAwait(false);
Terminal_OutputReceived(this, System.Text.Encoding.UTF8.GetBytes("\n\x1b[2EReconnecting current session...\n\x1b[E"));
}
else
{
// Fill full screen with new output to not allow erasing of available output on start of new shell
Terminal_OutputReceived(this, System.Text.Encoding.UTF8.GetBytes(new String('\n', _requestedSize.Rows + 1)));
}
// Fill full screen with new output to not allow erasing of available output on start of new shell
Terminal_OutputReceived(this, System.Text.Encoding.UTF8.GetBytes(new String('\n', _requestedSize.Rows + 1)));
if (true == await StartShellProcessAsync(_requestedSize).ConfigureAwait(false))
{
File diff suppressed because it is too large. Load diff
+9 -9
View File
@@ -5,22 +5,22 @@
"main": "src/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "xcopy /y /s node_modules\\xterm\\css\\xterm.css dist\\ && xcopy /y /s src\\style.css dist\\ && xcopy /y /s src\\index.html dist\\ && npx webpack --config webpack.config.js"
"build": "xcopy /y /s node_modules\\xterm\\css\\xterm.css dist\\ && xcopy /y /s src\\style.css dist\\ && xcopy /y /s src\\index.html dist\\ && cd node_modules/xterm && yarn && yarn package && cd ../.. && npx webpack --config webpack.config.js"
},
"author": "FS Apps",
"license": "GPL-3.0",
"devDependencies": {
"ts-loader": "^6.2.2",
"typescript": "^3.8.3",
"webpack": "^4.42.1",
"webpack-cli": "^3.3.11"
"ts-loader": "^6.0.2",
"typescript": "^3.5.1",
"webpack": "^4.29.6",
"webpack-cli": "^3.2.3"
},
"dependencies": {
"xterm": "^4.5.0",
"xterm": "felixse/xterm.js#fix-edge-selection-color",
"xterm-addon-fit": "^0.3.0",
"xterm-addon-search": "^0.6.0",
"xterm-addon-serialize": "^0.2.0",
"xterm-addon-search": "^0.5.0",
"xterm-addon-serialize": "^0.1.2",
"xterm-addon-unicode11": "^0.1.1",
"xterm-addon-web-links": "^0.3.0"
"xterm-addon-web-links": "^0.2.1"
}
}
-40
View File
@@ -30,7 +30,6 @@ let serializeAddon: SerializeAddon;
let webLinksAddon: WebLinksAddon;
let unicode11Addon: Unicode11Addon;
let altGrPressed = false;
let filterOutOpenSSHOutput = false;
const terminalContainer = document.getElementById('terminal-container');
@@ -103,46 +102,7 @@ window.createTerminal = (options, theme, keyBindings) => {
window.term = term;
function stringToUint8Array(param: string) {
var str = unescape(encodeURIComponent(param));
var charList = str.split('');
var output = [];
for (var i = 0; i < charList.length; i++) {
output.push(charList[i].charCodeAt(0));
}
return new Uint8Array(output);
}
function uint8ArrayToString(param: Uint8Array) {
var encodedString = String.fromCharCode.apply(null, param);
return decodeURIComponent(escape(encodedString));
}
window.terminalBridge.onsessionrestart = ((param: string) => {
if (filterOutOpenSSHOutput == false) {
filterOutOpenSSHOutput = true;
}
});
window.terminalBridge.onoutput = (data => {
if (filterOutOpenSSHOutput == true) {
var str = uint8ArrayToString(data);
var sessionStarted = str.search(/(\x1b\[H\x1b\[\?25h)|(\x1b\[2;1H\x1b\]0;OpenSSH SSH client)/u);
if (sessionStarted != -1) {
filterOutOpenSSHOutput = false;
}
// Filter out new line characters following by cursor movement CSIs X and C
str = replaceAll(/\n\x1b\[\d*X\x1b\[\d*C/u, "", str);
// Filter out J (clear screen) CSIs and H (set cursor position) CSIs
str = replaceAll(/\x1b\[\d*J/u, "", str);
// Filter out H (set cursor position) CSIs
str = replaceAll(/\x1b\[\d*;?\d*H/u, "", str);
data = stringToUint8Array(str);
}
term.writeUtf8(data);
});
File diff suppressed because it is too large. Load diff
@@ -59,7 +59,6 @@
<TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
<DefaultLanguage>en-US</DefaultLanguage>
<AppxPackageSigningEnabled>True</AppxPackageSigningEnabled>
<PackageCertificateKeyFile>FluentTerminal.App_StoreKey.pfx</PackageCertificateKeyFile>
<EntryPointProjectUniqueName>$(SolutionDir)FluentTerminal.App\FluentTerminal.App.csproj</EntryPointProjectUniqueName>
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
@@ -67,7 +66,8 @@
<AppxBundlePlatforms>x64</AppxBundlePlatforms>
<HoursBetweenUpdateChecks>0</HoursBetweenUpdateChecks>
<AppxPackageSigningTimestampDigestAlgorithm>SHA256</AppxPackageSigningTimestampDigestAlgorithm>
<PackageCertificateThumbprint>8A5DE5B20B663BD6A99B44C5BA278289521F419F</PackageCertificateThumbprint>
<PackageCertificateThumbprint>9E39FAC27F1AEA1BAC9BCF60FF29B32B354E0E93</PackageCertificateThumbprint>
<AppxPackageSigningTimestampServerUrl>http://timestamp.comodoca.com</AppxPackageSigningTimestampServerUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<AppxBundle>Always</AppxBundle>
+1 -1
View File
@@ -8,7 +8,7 @@
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap desktop">
<Identity Name="53621FSApps.FluentTerminal" Publisher="CN=BDC72197-B634-438A-B863-16DCB7D90C85" Version="0.7.1.0" />
<Identity Name="53621FSApps.FluentTerminal" Publisher="CN=Felix Seidl, O=Felix Seidl, STREET=Kapellenstr. 4, L=Nürnberg, S=Bayern, PostalCode=90478, C=DE" Version="0.7.0.0" />
<Properties>
<DisplayName>Fluent Terminal</DisplayName>
+1 -1
View File
@@ -1,3 +1,3 @@
<default>
<qualifier name="Language" value="ar;ar-IQ;az;de;en;es;fa;fr;he;hi;hr;hu;id;it;ja;ko;nl;pl;pt-BR;ro;ru;tr;uk;zh-Hans;zh-Hant" />
<qualifier name="Language" value="ar;ar-IQ;az;de;en;es;fr;he;hi;id;it;ja;ko;nl;pl;pt-BR;ro;ru;uk;zh-Hans;zh-Hant" />
</default>
@@ -24,6 +24,5 @@ namespace FluentTerminal.RuntimeComponent.Interfaces
event EventHandler<object> OnOutput;
event EventHandler<string> OnPaste;
event EventHandler<string> OnSessionRestart;
}
}
@@ -17,7 +17,6 @@ namespace FluentTerminal.RuntimeComponent.WebAllowedObjects
_terminalEventListener = terminalEventListener;
_terminalEventListener.OnOutput += OnOutput;
_terminalEventListener.OnPaste += OnPaste;
_terminalEventListener.OnSessionRestart += OnSessionRestart;
}
private void OnPaste(object sender, string e)
@@ -30,14 +29,8 @@ namespace FluentTerminal.RuntimeComponent.WebAllowedObjects
Task.Factory.StartNew(() => Output?.Invoke(this, e));
}
private void OnSessionRestart(object sender, string e)
{
Task.Factory.StartNew(() => SessionRestart?.Invoke(this, e));
}
public event EventHandler<object> Output;
public event EventHandler<string> Paste;
public event EventHandler<string> SessionRestart;
public void InputReceived(string message)
{
@@ -203,7 +203,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Autofac">
<Version>5.1.3</Version>
<Version>5.1.2</Version>
</PackageReference>
<PackageReference Include="GlobalHotKey">
<Version>1.1.0</Version>
@@ -22,6 +22,7 @@ namespace FluentTerminal.SystemTray.Services.ConPty
public void Close()
{
_terminal?.ConsoleOutStream?.Close();
_reader?.Dispose();
ConnectionClosed?.Invoke(this, _terminal.ExitCode);
@@ -34,7 +35,7 @@ namespace FluentTerminal.SystemTray.Services.ConPty
public void Start(CreateTerminalRequest request, TerminalsManager terminalsManager)
{
_enableBuffer = false; // request.Profile.UseBuffer;
_enableBuffer = request.Profile.UseBuffer;
_reader?.Dispose();
_reader = null;
@@ -42,19 +42,10 @@ namespace FluentTerminal.SystemTray.Services.ConPty
ResizePseudoConsole(Handle, new COORD { X = (short)width, Y = (short)height });
}
private bool alreadyDisposed = false;
public void Dispose()
{
if (alreadyDisposed)
{
return;
}
ClosePseudoConsole(Handle);
GC.SuppressFinalize(this);
alreadyDisposed = true;
}
}
}
@@ -176,11 +176,9 @@ namespace FluentTerminal.SystemTray.Services.ConPty
if (disposeManaged)
{
ConsoleOutStream.Dispose();
// Dispose pseudo console before _consoleInputWriter to avoid
// hanging on call of ClosePseudoConsole
_pseudoConsole?.Dispose();
_consoleInputWriter?.Dispose();
_process?.Dispose();
_pseudoConsole?.Dispose();
_outputPipe?.Dispose();
_inputPipe?.Dispose();
}
@@ -22,7 +22,7 @@ namespace FluentTerminal.SystemTray.Services.WinPty
public void Start(CreateTerminalRequest request, TerminalsManager terminalsManager)
{
_enableBuffer = false; // request.Profile.UseBuffer;
_enableBuffer = request.Profile.UseBuffer;
Id = request.Id;
_terminalsManager = terminalsManager;
+2 -6
View File
@@ -24,14 +24,12 @@ function DownloadLanguageFile($language, $directory)
}
DownloadLanguageFile "en"
DownloadLanguageFile "zh-TW" "zh-Hant"
DownloadLanguageFile "zh-Hans"
DownloadLanguageFile "zh-CN" "zh-Hant"
DownloadLanguageFile "de"
DownloadLanguageFile "es"
DownloadLanguageFile "fr"
DownloadLanguageFile "he"
DownloadLanguageFile "hi"
DownloadLanguageFile "hr"
DownloadLanguageFile "pt-BR"
DownloadLanguageFile "ru"
DownloadLanguageFile "ro"
@@ -45,6 +43,4 @@ DownloadLanguageFile "ko"
DownloadLanguageFile "az"
DownloadLanguageFile "ar"
DownloadLanguageFile "id"
DownloadLanguageFile "fa"
DownloadLanguageFile "tr"
DownloadLanguageFile "hu"
DownloadLanguageFile "zh-Hans"