a0edb12cd6
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
52 lines
1.8 KiB
Plaintext
52 lines
1.8 KiB
Plaintext
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
import "Peasant.idl";
|
|
|
|
namespace Microsoft.Terminal.Remoting
|
|
{
|
|
|
|
[default_interface] runtimeclass FindTargetWindowArgs {
|
|
CommandlineArgs Args { get; };
|
|
Int32 ResultTargetWindow;
|
|
String ResultTargetWindowName;
|
|
}
|
|
|
|
[default_interface] runtimeclass ProposeCommandlineResult {
|
|
Windows.Foundation.IReference<UInt64> Id { get; };
|
|
String WindowName { get; };
|
|
Boolean ShouldCreateWindow { get; }; // If you name this `CreateWindow`, the compiler will explode
|
|
}
|
|
|
|
[default_interface] runtimeclass SummonWindowSelectionArgs {
|
|
SummonWindowSelectionArgs();
|
|
SummonWindowSelectionArgs(String windowName);
|
|
String WindowName;
|
|
Boolean OnCurrentDesktop;
|
|
// TODO GH#8888 Other options:
|
|
// * CurrentMonitor
|
|
|
|
Boolean FoundMatch;
|
|
SummonWindowBehavior SummonBehavior;
|
|
Windows.Foundation.IReference<UInt64> WindowID;
|
|
}
|
|
|
|
|
|
[default_interface] runtimeclass Monarch {
|
|
Monarch();
|
|
|
|
UInt64 GetPID();
|
|
UInt64 AddPeasant(IPeasant peasant);
|
|
ProposeCommandlineResult ProposeCommandline(CommandlineArgs args);
|
|
void HandleActivatePeasant(WindowActivatedArgs args);
|
|
void SummonWindow(SummonWindowSelectionArgs args);
|
|
|
|
void SummonAllWindows();
|
|
Windows.Foundation.Collections.IMapView<UInt64, String> GetPeasantNames { get; };
|
|
|
|
event Windows.Foundation.TypedEventHandler<Object, FindTargetWindowArgs> FindTargetWindowRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> ShowTrayIconRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> HideTrayIconRequested;
|
|
};
|
|
}
|