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
129 lines
5.4 KiB
XML
129 lines
5.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup Label="Globals">
|
|
<ProjectGuid>{43ce4ce5-0010-4b99-9569-672670d26e26}</ProjectGuid>
|
|
<Keyword>Win32Proj</Keyword>
|
|
<ProjectName>Microsoft.Terminal.Remoting.Lib</ProjectName>
|
|
<RootNamespace>Microsoft.Terminal.Remoting</RootNamespace>
|
|
<TargetName>Microsoft.Terminal.Remoting.Lib</TargetName>
|
|
<WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
|
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
<SubSystem>Console</SubSystem>
|
|
<OpenConsoleUniversalApp>true</OpenConsoleUniversalApp>
|
|
</PropertyGroup>
|
|
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
|
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.pre.props" />
|
|
|
|
<!-- ========================= Headers ======================== -->
|
|
<ItemGroup>
|
|
<ClInclude Include="Monarch.h">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="FindTargetWindowArgs.h">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="ProposeCommandlineResult.h">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="SummonWindowSelectionArgs.h">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="RenameRequestArgs.h">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="WindowActivatedArgs.h">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="pch.h" />
|
|
<ClInclude Include="MonarchFactory.h" />
|
|
<ClInclude Include="Peasant.h">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="WindowManager.h">
|
|
<DependentUpon>WindowManager.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="CommandlineArgs.h">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClInclude>
|
|
</ItemGroup>
|
|
<!-- ========================= Cpp Files ======================== -->
|
|
<ItemGroup>
|
|
<ClCompile Include="Monarch.cpp">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="FindTargetWindowArgs.cpp">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="ProposeCommandlineResult.cpp">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="SummonWindowSelectionArgs.cpp">
|
|
<DependentUpon>Monarch.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="RenameRequestArgs.cpp">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="WindowActivatedArgs.cpp">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="pch.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
<ClCompile Include="Peasant.cpp">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="WindowManager.cpp">
|
|
<DependentUpon>WindowManager.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="CommandlineArgs.cpp">
|
|
<DependentUpon>Peasant.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
|
<ClCompile Include="init.cpp" />
|
|
</ItemGroup>
|
|
<!-- ========================= idl Files ======================== -->
|
|
<ItemGroup>
|
|
<Midl Include="Monarch.idl" />
|
|
<Midl Include="Peasant.idl" />
|
|
<Midl Include="WindowManager.idl" />
|
|
</ItemGroup>
|
|
<!-- ========================= Misc Files ======================== -->
|
|
<ItemGroup>
|
|
<PRIResource Include="Resources\en-US\Resources.resw" />
|
|
<OCResourceDirectory Include="Resources" />
|
|
<None Include="packages.config" />
|
|
</ItemGroup>
|
|
<!-- ========================= Project References ======================== -->
|
|
<ItemGroup>
|
|
<!--
|
|
the packaging project won't recurse through our dependencies, you have to
|
|
make sure that if you add a cppwinrt dependency to any of these projects,
|
|
you also update all the consumers
|
|
-->
|
|
<ProjectReference Include="$(OpenConsoleDir)src\types\lib\types.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\WinRTUtils\WinRTUtils.vcxproj">
|
|
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
|
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
</ProjectReference>
|
|
<!-- For whatever reason, we can't include the TerminalControl and
|
|
TerminalSettings projects' winmds via project references. So we'll have to
|
|
manually include the winmds as References below -->
|
|
</ItemGroup>
|
|
<!-- ====================== Compiler & Linker Flags ===================== -->
|
|
<ItemDefinitionGroup>
|
|
<ClCompile>
|
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>WindowsApp.lib;user32.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
<Reference>
|
|
<Private>false</Private>
|
|
</Reference>
|
|
</ItemDefinitionGroup>
|
|
<!-- ========================= Globals ======================== -->
|
|
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
|
|
|
|
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
|
|
</Project>
|