terminal/src/cascadia/TerminalSettingsModel
Leon Liang a0edb12cd6
Add Minimize to Tray and Tray Icon (#10368)
A brief summary of the behavior of the tray icon:
- There will only ever be one tray icon representing all windows.
- Left-Click on a Tray Icon brings up the MRU window.
- Right-Click on a Tray Icon brings up a Context Menu:
```
Focus Terminal
----------------
Windows --> Window ID 1 - <unnamed window>
            Named Window
            Named Window Again
 ```
- Focus Terminal will bring up the MRU window.
- Clicking on any of the Window "names" in the submenu will summon the window.

## Settings Changes

Two new global settings are introduced: `alwaysShowTrayIcon` and `minimizeToTray`. Here's a chart explaining the behavior with the two settings.

|                      | `alwaysShowTrayIcon:true`                                          | `alwaysShowTrayIcon:false`                                         |
|----------------------|------------------------------------------------------------------|------------------------------------------------------------------|
| `minimizeToTray:true`  | tray icon is always shown. minimize button will hide the window. | tray icon is always shown. minimize button will hide the window. |
| `minimizeToTray:false` | tray icon is always shown.                                       | tray icon is not shown ever.                                     |

Closes #5727

## References
[Spec for Minimize to Tray](https://github.com/microsoft/terminal/blob/main/doc/specs/%23653%20-%20Quake%20Mode/%23653%20-%20Quake%20Mode.md#minimize-to-tray)
Docs PR - MicrosoftDocs/terminal#352
#10448 - My list of TODOs
2021-08-12 19:54:39 +00:00
..
dll Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
Resources/en-US Add Minimize to Tray and Tray Icon (#10368) 2021-08-12 19:54:39 +00:00
ActionAndArgs.cpp Move Pane to Tab (GH7075) (#10780) 2021-08-12 16:41:17 +00:00
ActionAndArgs.h Allow setting the action on Actions page (#10220) 2021-07-02 15:35:55 -07:00
ActionArgs.cpp Move Pane to Tab (GH7075) (#10780) 2021-08-12 16:41:17 +00:00
ActionArgs.h Move Pane to Tab (GH7075) (#10780) 2021-08-12 16:41:17 +00:00
ActionArgs.idl Move Pane to Tab (GH7075) (#10780) 2021-08-12 16:41:17 +00:00
ActionMap.cpp Fix layering of sc() keybindings with vk() ones (#10917) 2021-08-11 23:09:25 +00:00
ActionMap.h Fix layering of sc() keybindings with vk() ones (#10917) 2021-08-11 23:09:25 +00:00
ActionMap.idl Adding/fixing Alt+Space handling (#10799) 2021-08-10 19:53:07 +00:00
ActionMapSerialization.cpp Use WinRT VirtualKeyModifiers instead of a custom enum (#10603) 2021-07-12 21:24:26 +00:00
AllShortcutActions.h Move Pane to Tab (GH7075) (#10780) 2021-08-12 16:41:17 +00:00
AppearanceConfig.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
AppearanceConfig.h Add a language switcher using PrimaryLanguageOverride (#10309) 2021-06-10 23:24:21 +00:00
AppearanceConfig.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
ApplicationState.cpp Introduce a basic ApplicationState class (#10513) 2021-06-30 02:25:44 +02:00
ApplicationState.h Introduce a basic ApplicationState class (#10513) 2021-06-30 02:25:44 +02:00
ApplicationState.idl Introduce a basic ApplicationState class (#10513) 2021-06-30 02:25:44 +02:00
AzureCloudShellGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
AzureCloudShellGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
CascadiaSettings.cpp Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
CascadiaSettings.h Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
CascadiaSettings.idl Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
CascadiaSettingsSerialization.cpp Reintroduce the Defaults page and the Reset buttons (#10588) 2021-07-09 22:03:41 +00:00
ColorScheme.cpp Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
ColorScheme.h Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
ColorScheme.idl Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
Command.cpp Bugfix: serialize iterable commands (#10373) 2021-06-10 18:25:27 +00:00
Command.h Introduce serialization for actions (#9926) 2021-05-20 18:44:04 +00:00
Command.idl Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
DefaultProfileUtils.cpp Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
DefaultProfileUtils.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
defaults-universal.json Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
defaults.json Add Minimize to Tray and Tray Icon (#10368) 2021-08-12 19:54:39 +00:00
DefaultTerminal.cpp Prevent crashes in Settings UI launch on OS versions before package management extensions (#10238) 2021-05-27 17:53:00 +00:00
DefaultTerminal.h Prevent crashes in Settings UI launch on OS versions before package management extensions (#10238) 2021-05-27 17:53:00 +00:00
DefaultTerminal.idl Implement UI for choosing default terminal inside Settings page (#9907) 2021-04-28 10:43:30 +00:00
EnumMappings.cpp Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
EnumMappings.h Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
EnumMappings.idl Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
FileUtils.cpp Fix WriteUTF8FileAtomic to preserve symlinks (#10908) 2021-08-12 16:47:16 +00:00
FileUtils.h Introduce a basic ApplicationState class (#10513) 2021-06-30 02:25:44 +02:00
FontConfig.cpp Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
FontConfig.h Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
FontConfig.idl Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
GlobalAppSettings.cpp Add Minimize to Tray and Tray Icon (#10368) 2021-08-12 19:54:39 +00:00
GlobalAppSettings.h Add Minimize to Tray and Tray Icon (#10368) 2021-08-12 19:54:39 +00:00
GlobalAppSettings.idl Add Minimize to Tray and Tray Icon (#10368) 2021-08-12 19:54:39 +00:00
HashUtils.h Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
IAppearanceConfig.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
IconPathConverter.cpp Revert "Add the profile, page icons to the page headers (#10046)" (#10124) 2021-05-18 17:35:50 -05:00
IconPathConverter.h Move IconSourceConverter from TerminalApp to TSM 2020-12-11 13:17:22 -08:00
IconPathConverter.idl Move IconSourceConverter from TerminalApp to TSM 2020-12-11 13:17:22 -08:00
IDynamicProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
IInheritable.h Move TerminalSettings from TermApp to TerminalSettingsModel (#9318) 2021-03-15 23:15:25 +00:00
IInheritable.idl.h Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
init.cpp Hook up the WIL fallback error tracer in Terminal (#7864) 2020-10-09 22:20:12 +00:00
JsonUtils.h Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
KeyChordSerialization.cpp Fix: Multimedia Key Hotkey Support (#10801) 2021-07-27 17:11:51 +00:00
KeyChordSerialization.h Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
KeyChordSerialization.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
LegacyProfileGeneratorNamespaces.h From orbit, nuke the Telnet connection and all supporting infra. (#7840) 2020-10-09 18:59:58 +00:00
Microsoft.Terminal.Settings.ModelLib.vcxproj Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
Microsoft.Terminal.Settings.ModelLib.vcxproj.filters Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
packages.config Update C++/WinRT to 2.0.210309.3 (#9437) 2021-03-10 16:04:59 -06:00
pch.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
pch.h Fix crash when unpackaged due to PrimaryLanguageOverride (#10434) 2021-06-16 21:08:14 +00:00
PowershellCoreProfileGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
PowershellCoreProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
Profile.cpp When launching wsl, promote the starting directory to --cd (#9223) 2021-08-02 20:39:11 +00:00
Profile.h Allow creating and editing unfocused appearances in the SUI (#10317) 2021-07-13 23:33:22 +00:00
Profile.idl Allow creating and editing unfocused appearances in the SUI (#10317) 2021-07-13 23:33:22 +00:00
SettingsTypes.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalSettings.cpp Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
TerminalSettings.h Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
TerminalSettings.idl Reintroduce the Defaults page and the Reset buttons (#10588) 2021-07-09 22:03:41 +00:00
TerminalSettingsSerializationHelpers.h Add a setting to flash the pane when BEL is emitted (#9270) 2021-05-24 22:51:03 +00:00
TerminalWarnings.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalWarnings.idl Invalidate nested command with no valid subcommands (#9495) 2021-03-15 16:34:06 +00:00
userDefaults.json Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
WslDistroGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
WslDistroGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00