Simple .NET app that hides app window (not minimize) and restores them using hotkeys. (using .NETFramework Version v4.7.2).
I really like new Windows Terminal but before I was using ConEmu - It's really nice, easy to use yet powerfull. I really like Quake Style behavior in ConEmu - app lives in tray and app window with my terminals appear only when I press some ShortKey (in my case LAlt + `). By hiding and showing terminals window I could switch between other windows using Alt+Tab, go to other workspaces using Win+Ctrl+LArrow/RArrow
and call my terminals when and where I wanted.
I fell in love with new Windows Terminal, but didn't find any solution to "store app in tray" - hide terminals window, and call it using ShortKeys. I found some applications, but they were too big for my needs. So I wrote this little app, to resolve my problem. And here we are. For now Termial Tray is everything that I wanted. Maybe in the future MS add this Quake Style feature to Windows Terminal, but for now this little tray app is enough for me. And I hope that'll be enough for you too.
- Download source code from this repo.
- Open
WindowsTermialTray.sln
in Visual Studio. - Select
Release
from Solution Configuration (by default it's above the main section). - Right-Click on project
WindowsTerminalTray
in Solution Explorer. - Click
Build
. - Go to folder with solution and then to:
bin\Release
- Run the
WindowsTermialTray.exe
. - (optional) Add
WindowsTermialTray.exe
to your startup folder, to run app at system start. - Enjoy your hidden terminals!
Using command line and MSBuild.exe
- Download source code from this repo.
- Install and locate the MSBuild.exe on your computer. In my case it's in:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin
- Add this path to your Windows PATH.
- Go to folder with source code from this repo, with folder and run this command:
MSBuild.exe .\termial-tray\WindowsTerminalTray.csproj /property:Configuration=Release
- Go to:
termial-tray/bin/Release
. - Run the
WindowsTermialTray.exe
app to start. - (optional) Add
WindowsTermialTray.exe
to your startup folder, to run app at system start:
C:\Users\your_user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
- Enjoy your hidden terminals!
You can show your app on all of your workspaces, do something, hide it, go to oher workspace and pull the same app from system tray.
When Termial Tray starts, it's not starting apps, that you defined in code - it's waiting for Hot Keys. After HotKeys is pressed, Termial Tray look if a process is already running and attaches it to HotKeys (One process, one window, one hotkey). If app is not running - it start an app for you and attach this process to HotKeys. If you close your app, and press HotKeys again, Termial Tray will start new app, and it'll attach to it.
When you run something in app, that is attached to Termial Tray - it'll continue its work when it's hidden.
If you had multiple instances of an app, Termial Tray will store only one, so fe. you could have multiple windows with terminals, and one floating terminal that you can pull anywhere.
Yes of course! But you need to dig into code. Just download this repo, go to TerminalTracyIcon.cs
file and find this section:
_appTrayList.AddRange(new []
{
new TrayApp("WindowsTerminal", "wt.exe", ModifierKeys.Alt, Keys.Oemtilde)
// Add your other tray apps here
// new TrayApp("ProcessName", "exec.exe", ModifierKeys.Ctrl, Keys.Oemtilde)
});
From here you can add other apps, but you need to specify and know:
- Your app ProcessName.
- Your app executable.
- Unique pair of
ModifierKey
andKey
.
When you find out everything - add your app in code with parameters (and comment Windows Terminal if don't want it), and follow steps in installation section, to build .exe
file.
Because I didn't prepared this. For now this little app is for me, but if you like it too - tell me, and I'll continue to contribuiting it!
Nah. I hope that MS add Quake Style behaviour for Windows Terminal, but if not, or some people find Termial Tray useful for other Jobs - I'll start to work on this app, to make it more powerfull and usefull.
Thanks for your opinion! I'm not an expert in .NET and this kind of system apps - I created this to fit my personal needs and added it here for people (if they want to benefit from this solution). But if you're expert, please share your opinion about this project with me - I'll fix and update code to be clean and fast.