d08271e734
Adds support for two new actions: * `globalSummon`, which can be used to activate a window using a _global_ (READ: OS-level) hotkey. - accepts an optional `name` argument. When provided, this will attempt to summon with the given name. When omitted, we'll try to summon the most recent window. * `quakeMode` which is `globalSummon` for the `_quake` window. These actions are stored in the actions array, but are read by the `WindowsTerminal` level and bound to the OS in `IslandWindow`. The monarch registers for these keybindings with the OS. When one is pressed, the monarch will recieve a `WM_HOTKEY` message. It'll use that to look up the corresponding action args. It'll use those to try and summon the right window. ## References * #8888: Quake mode megathread * #9274: Spec (**guys seriously i just need one more ✔️**) * #9785: The start of granting "\_quake" super powers ## PR Checklist * [x] Closes #653 - I'm gonna say this closes it for now, though we have _many_ follow-ups in #8888 * [x] I work here * [x] Tests added/passed ## Validation Steps Performed * Validated that it works with `win` keys * Validated that it works without `win` keys * Validated that it hot-reloads * Validated that it moves to the new monarch * Validated that you can bind both `globalSummon` and `quakeMode` at the same time and do different things * Validated that you can bind `globalSummon` with a name and it creates that name if it doesn't already exist
19 lines
614 B
Plaintext
19 lines
614 B
Plaintext
import "Peasant.idl";
|
|
import "Monarch.idl";
|
|
|
|
|
|
namespace Microsoft.Terminal.Remoting
|
|
{
|
|
[default_interface] runtimeclass WindowManager
|
|
{
|
|
WindowManager();
|
|
void ProposeCommandline(CommandlineArgs args);
|
|
Boolean ShouldCreateWindow { get; };
|
|
IPeasant CurrentWindow();
|
|
Boolean IsMonarch { get; };
|
|
void SummonWindow(SummonWindowSelectionArgs args);
|
|
event Windows.Foundation.TypedEventHandler<Object, FindTargetWindowArgs> FindTargetWindowRequested;
|
|
event Windows.Foundation.TypedEventHandler<Object, Object> BecameMonarch;
|
|
};
|
|
}
|