2015-01-03 07:20:34 +00:00
|
|
|
|
using System.Collections.Generic;
|
2025-09-29 02:42:19 +00:00
|
|
|
|
using Flow.Launcher.Localization.Attributes;
|
2014-03-23 08:17:41 +00:00
|
|
|
|
|
2020-04-21 09:12:17 +00:00
|
|
|
|
namespace Flow.Launcher.Plugin.Shell
|
2014-03-23 08:17:41 +00:00
|
|
|
|
{
|
2025-09-29 02:42:19 +00:00
|
|
|
|
public class Settings : BaseModel
|
2014-03-23 08:17:41 +00:00
|
|
|
|
{
|
2025-09-29 02:42:19 +00:00
|
|
|
|
private Shell _shell = Shell.Cmd;
|
|
|
|
|
|
public Shell Shell
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _shell;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_shell != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_shell = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-09-27 16:18:33 +00:00
|
|
|
|
|
2025-09-29 02:42:19 +00:00
|
|
|
|
private bool _replaceWinR = false;
|
|
|
|
|
|
public bool ReplaceWinR
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _replaceWinR;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_replaceWinR != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_replaceWinR = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-11-01 16:35:00 +00:00
|
|
|
|
|
2025-09-29 02:42:19 +00:00
|
|
|
|
private bool _closeShellAfterPress = false;
|
|
|
|
|
|
public bool CloseShellAfterPress
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _closeShellAfterPress;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_closeShellAfterPress != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_closeShellAfterPress = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-09-27 16:18:33 +00:00
|
|
|
|
|
2025-09-29 02:42:19 +00:00
|
|
|
|
private bool _leaveShellOpen;
|
|
|
|
|
|
public bool LeaveShellOpen
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _leaveShellOpen;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_leaveShellOpen != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_leaveShellOpen = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-04-12 09:06:44 +00:00
|
|
|
|
|
2025-09-29 02:42:19 +00:00
|
|
|
|
private bool _runAsAdministrator = true;
|
|
|
|
|
|
public bool RunAsAdministrator
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _runAsAdministrator;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_runAsAdministrator != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_runAsAdministrator = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2019-12-09 21:23:34 +00:00
|
|
|
|
|
2025-09-29 02:42:19 +00:00
|
|
|
|
private bool _useWindowsTerminal = false;
|
|
|
|
|
|
public bool UseWindowsTerminal
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _useWindowsTerminal;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_useWindowsTerminal != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_useWindowsTerminal = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-02-05 23:22:41 +00:00
|
|
|
|
|
2025-09-29 02:42:19 +00:00
|
|
|
|
private bool _showOnlyMostUsedCMDs;
|
|
|
|
|
|
public bool ShowOnlyMostUsedCMDs
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _showOnlyMostUsedCMDs;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_showOnlyMostUsedCMDs != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_showOnlyMostUsedCMDs = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-04-12 09:06:44 +00:00
|
|
|
|
|
2025-09-30 01:38:18 +00:00
|
|
|
|
private int _showOnlyMostUsedCMDsNumber = 5;
|
2025-09-29 02:42:19 +00:00
|
|
|
|
public int ShowOnlyMostUsedCMDsNumber
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _showOnlyMostUsedCMDsNumber;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_showOnlyMostUsedCMDsNumber != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_showOnlyMostUsedCMDsNumber = value;
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-04-12 09:06:44 +00:00
|
|
|
|
|
2025-09-27 16:18:33 +00:00
|
|
|
|
public Dictionary<string, int> CommandHistory { get; set; } = [];
|
2015-01-05 14:41:17 +00:00
|
|
|
|
|
2014-03-23 08:17:41 +00:00
|
|
|
|
public void AddCmdHistory(string cmdName)
|
|
|
|
|
|
{
|
2025-09-27 16:18:33 +00:00
|
|
|
|
if (!CommandHistory.TryAdd(cmdName, 1))
|
2014-03-23 08:17:41 +00:00
|
|
|
|
{
|
2021-04-12 07:32:48 +00:00
|
|
|
|
CommandHistory[cmdName] += 1;
|
2014-03-23 08:17:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2016-05-19 08:04:31 +00:00
|
|
|
|
|
2025-09-29 02:42:19 +00:00
|
|
|
|
[EnumLocalize]
|
2016-05-19 08:04:31 +00:00
|
|
|
|
public enum Shell
|
|
|
|
|
|
{
|
2025-09-29 02:42:19 +00:00
|
|
|
|
[EnumLocalizeValue("CMD")]
|
2016-06-23 21:53:30 +00:00
|
|
|
|
Cmd = 0,
|
2025-09-29 02:42:19 +00:00
|
|
|
|
|
|
|
|
|
|
[EnumLocalizeValue("PowerShell")]
|
2016-05-19 08:04:31 +00:00
|
|
|
|
Powershell = 1,
|
2025-09-29 02:42:19 +00:00
|
|
|
|
|
|
|
|
|
|
[EnumLocalizeValue("RunCommand")]
|
2016-05-19 08:04:31 +00:00
|
|
|
|
RunCommand = 2,
|
2025-09-29 02:42:19 +00:00
|
|
|
|
|
|
|
|
|
|
[EnumLocalizeValue("Pwsh")]
|
2023-06-12 13:18:23 +00:00
|
|
|
|
Pwsh = 3,
|
2016-05-19 08:04:31 +00:00
|
|
|
|
}
|
2014-03-23 08:17:41 +00:00
|
|
|
|
}
|