TrayTrigger · Open-source game launcher for Windows

Launch from the tray.
Let Windows adapt to the game.

Steam, Epic, GOG, Xbox, Battle.net and more in one tray menu. Each game starts with its own HDR, CPU cores, power plan, DLSS and companion apps, with store clients kept out of the way. Quit, and those settings revert.

Free & open source (MIT) No telemetry No account Windows 10 / 11
TrayTrigger's library: games from every launcher in one poster grid, with favorites, categories and launcher badges
TrayTrigger's tray menu: Recent, Favorites and a game category, one right-click away
Every game one right-click awaySee what one launch does ↓
How it works

One click starts it all

The launch is the trigger. Pick a game, and everything you chose for it happens around it.

A walkthrough: the library of games from every launcher; picking a game in the tray menu; its page with the hero banner, play time and Steam rating; the game's details, news and setup; its profile, cores and HDR; the hero banner, poster and icon; the launch popup; and the Activity row showing what changed and that it was put back
01 · Launch

Pick a game from the tray menu, the library or its own hotkey. It starts through its store's client, or directly.

02 · Set up

TrayTrigger notes how Windows is set, then applies the game's profile: power plan, HDR, GPU preference, CPU cores, DLSS Override. Your tools close or start; your script runs.

03 · Play

TrayTrigger stays a tray icon. Suspend a game with Ctrl+Alt+P for a cutscene you can't pause, or close it from the tray.

04 · Put back

When the game exits, every per-game setting goes back and is checked. Closed tools return, the launcher closes if you asked. After a crash, on the next start.

Every launch, on the record

See exactly what a launch did

Each game's Played row in Activity & History lists what the profile changed, what it skipped and why, the cores the game ran on, what your script said it did, and the tools it closed and started. How Activity & History works →

A Played Overwatch row in Activity and History: launched through Battle.net and Battle.net closed after; the Aggressive profile's changes including HDR on; what was skipped; put back: everything; kept on the 8 performance cores; the pre-launch script closed Dropbox and Google Drive; Discord closed and opened again after, MSI Afterburner started and closed after
Too many launchers

Every store in one tray menu

Steam Epic Games GOG Galaxy EA app Ubisoft Connect Xbox / PC Game Pass Battle.net Any executable or shortcut
  • Seven stores, one scan. Steam, GOG, EA, Epic, Ubisoft Connect, Xbox / PC Game Pass and Battle.net games arrive with their real titles and art. Drop any exe or shortcut for the rest.
  • A right-click, or Ctrl+Alt+T. Now Playing, Recent, Favorites and your categories in the tray menu; type a few letters and press Enter. Give any game its own launch hotkey.
  • Clients out of the way. Games still start through their store, so cloud saves and achievements work, but Steam, GOG Galaxy and Epic start in the background, and any launcher can close after the game.
Edit Game's Launch settings for a Steam game: launch through Steam, with Close the launcher after this game exits ticked
Per game: close Steam, EA or Ubisoft Connect when you stop playing.
Game Details

A page for every game

A hero banner, your play time and the Steam rating (for games on Steam) at the top. Below it, what the game is, what TrayTrigger changes for it, and the Settings tab to change it, all in one window.

Game Details for The Witcher 3: a hero banner with the title, Play, play time and the 95% positive Steam rating, then the game's description, the latest news and its details
Overview: the game's details and news, what TrayTrigger changes for it, and its last session.
Per-game setup

Each game gets its own setup

Chosen on the Settings tab of the game's page, applied when it launches, and reverted when it exits.

Ryzen X3D & Intel hybrid

The right cores for each game

Games landing on the wrong CCD, or a Process Lasso rule for every exe?

Set CPU Cores per game: the 3D V-Cache cores on a Ryzen X3D, the performance cores on an Intel hybrid CPU, or Auto to let TrayTrigger pick for your CPU. It uses Windows CPU Sets, not a hard affinity mask, and the game's Played row says where it ran.

Edit Game's CPU Cores setting on Auto, recommending the performance cores on a hybrid CPU with 8 performance and 8 efficiency cores
Shown on an Intel hybrid CPU. On a Ryzen X3D, Auto picks the V-Cache cores.
HDR & OLED

HDR on for this game, off when you quit

HDR left on after a game, and a washed-out desktop?

Set HDR On for the games that do it well and Off for the ones that render it badly, or let the profile decide. Windows' HDR switches when the game launches and switches back when it exits. A display already in HDR is left alone.

Edit Game's HDR setting: On for this game, turned on at launch and back off at exit, whatever its profile
Profiles & DLSS Override

Power, GPU and DLSS, set per game

Optimized uses your high-performance power plan and GPU, keeps an NVIDIA GPU at full clocks and stops Windows throttling the game, with opt-in HDR, Do Not Disturb and a frame cap just under your refresh rate. Aggressive adds scheduling priority, timer resolution and more. Each profile lists exactly what it will change.

NVIDIA DLSS Override runs a game on your driver's newer DLSS files without touching the game folder.

Edit Game's Performance Profile set to Aggressive, listing what it changes: the Ultimate Plan power plan, the high-performance GPU, NVIDIA Prefer Maximum Performance, and exempting the game from power throttling, with 5 more
Sim racing, flight & companion apps

Your apps start with the game, and close after

  • Tools that start with your games. SimHub, CrewChief, TrackIR or Afterburner start when a game launches and close after the last one exits. One that was already running is left alone.
  • Tools closed for your games. Discord, OneDrive or a browser close just before the game and open again after it, unless you opened it yourself in the meantime.
  • On the record. The game's Played row lists which tools were closed, started, or left as they were.
Tools page: filters for Start with Games and Close with Games, and tools such as Discord, DLSS Swapper and MSI Afterburner
Your own scripts

Missing a feature? Write it.

If PowerShell can do it, TrayTrigger can do it around any game. Your script runs just before the game starts and again after it exits, with the game's name, exe and minutes played handed to it, and what it did shows up on that game's row in Activity & History.

  • Start from a ready-made one. The TrayTrigger-Scripts catalogue switches your display's refresh rate for one game and back, changes an Afterburner profile, records with OBS, or backs up a save folder when you quit. Or press New script... in Edit Game for a template.
  • One script, many games. Per-game Script Arguments hand each game its own values: a save folder, a profile number, a refresh rate.
  • Tested before you trust it. Test Run shows exactly what the script saw and printed. Make the game wait for it, give it a timeout, or cancel the launch if it fails.
  • In its own words. A line starting TT: goes on the game's Played row and in the launch popup, so you see "saves backed up", not an exit code.
  • Yours, and in plain sight. Nothing runs until you attach a script. Scripts run as you, or as Administrator through Windows' own prompt when you choose it.
Backup-Saves.ps1 · the whole script
param($Phase, $GameName, $GameExe, $GameId, $Playtime,
      [Parameter(ValueFromRemainingArguments)] $ScriptArgs)

# Back up this game's saves every time you quit.
# Script Arguments in Edit Game: the game's save folder.
if ($Phase -eq 'postexit') {
    $name = $GameName -replace '[\\/:*?"<>|]', ''
    $zip  = "D:\SaveBackups\$name $(Get-Date -f yyyy-MM-dd_HHmm).zip"
    New-Item -ItemType Directory -Force D:\SaveBackups | Out-Null
    Compress-Archive -Path $ScriptArgs[0] -DestinationPath $zip
    Write-Output "TT: saves backed up after $Playtime min"
}
Stutter Check & Performance Tweaks

Find the stutter before you blame the game

Separate from per-game setup: these are system-wide, and stay until you undo them.

  • Stutter Check. The checks every "my game stutters" thread asks for, in one click: overlays, a browser holding video memory, a monitor below its fastest refresh rate, memory below its rated speed, games on a hard drive, and more. It reports; it changes nothing by itself.
  • Tweaks you can see and undo. Each row shows its real Windows state and what the setting does. Undo one, or use Put Back Preset; bulk changes can create a System Restore point first.
  • Hardware Specs. Live CPU, RAM and GPU load, VRAM, displays and drives, with warnings like a GPU running on fewer PCIe lanes than it supports.
Stutter Check: 16 checks, 1 needs a look, 15 fine; two overlay apps running, NVIDIA App overlay and RivaTuner, with a Here's how button
Make it yours

A theme is more than colors

TrayTrigger's theming engine lets a theme change how the whole app looks and feels, and you can build your own in a few clicks.

  • Colors, corners, font and size. A theme sets its colors, the shape and roundness of tags, buttons, cards and posters (fifteen corner shapes, from Rounded to Leaf, Blade and Speech bubble), and its own font and text size.
  • Edit with a live preview. Edit theme... slides a preview out beside the editor, so you see posters, dialogs and buttons change as you go. Randomize rolls a new starting point, and Undo takes it back.
  • Bring your own. A theme is a plain file. Import Theme... adds one made elsewhere, with its background picture.
  • Text size and font for everyone. In Settings > Appearance, make all the text larger or smaller and pick any font installed on your PC.
The theme editor open on the Abyssal theme: main colors, a Corners card with a different shape for tags, controls, cards and posters, a font and text size card, and a live preview of game cards beside it
The Abyssal theme in the editor: its own corner shapes, font and text size, with the live preview open.
No surprises

What it changes, and what it doesn't

What goes back

Per-game settings go back when the game exits, and are checked. After a crash, on the next start.

System tweaks and whatever your scripts do stay until you undo them. Bulk changes can make a restore point first.

How it touches a game

CPU cores are set with Windows CPU Sets, not a hard affinity mask. Nothing is injected into a game and no driver is installed.

Suspend refuses games with a kernel anti-cheat. TrayTrigger runs as you; a few machine-wide tweaks ask for UAC.

Your privacy

No telemetry, no account. It goes online for game info and art, for update checks you can turn off, and for services you add your own key to.

MIT licensed. Read the source and SECURITY.md.

Quick start

From download to play in three steps

01 · Install

Run the installer, or unzip the portable build anywhere. Windows 10/11, 64-bit; no .NET install needed.

02 · Scan

Press Scan for Games in the library. Drop an exe or shortcut for anything it doesn't find.

03 · Play

Right-click the tray icon and pick a game. Leave its profile Off to just launch, and add a profile when you want one.

Free, no sign-up. Update checks are built in and can be turned off. All releases

FAQ

Can it get me banned?

TrayTrigger doesn't inject anything into a game or install a driver. It changes Windows settings around the game and sets its CPU cores and priority through the same Windows APIs Task Manager uses. Suspend, which pauses a game's process, refuses games with a kernel anti-cheat, because a game that stops answering its anti-cheat can be disconnected. No outside tool can promise what an anti-cheat will decide, so leave a competitive game's profile Off if you're unsure.

Does it need administrator access?

Not to run. A few tweaks write machine-wide settings and show a UAC prompt when you enable them. TrayTrigger never runs elevated by default.

Does it phone home?

No telemetry. Outbound calls are Steam's public API (metadata and artwork for games you add), SteamGridDB and RAWG (only if you enter your own key), NVIDIA's driver service (only when you press Check for Newer Driver on an NVIDIA GPU), and GitHub Releases (update checks, which you can turn off).

Is the download signed?

No. Releases are not code-signed, so Windows SmartScreen may warn the first time you run the installer. Releases are built by GitHub Actions from the public source and published with a SHA-256 checksum file. Verify a download with Get-FileHash in PowerShell and compare it to SHA256SUMS.txt on the release page, then choose More info and Run anyway. See the code signing section for details.

TrayTrigger doesn't do something I want. Now what?

If it's something to do before or after a game, a script can do it: TrayTrigger runs a PowerShell script of yours at launch and at exit, with the game's details handed in, and shows what it did on the game's row in Activity & History. Start with the TrayTrigger-Scripts catalogue, or New script... in Edit Game. For anything else, ask in Discussions.

Can I move TrayTrigger to a new PC?

Yes. Settings › Diagnostics & Storage › Backup & Restore saves your library, settings, tools, scripts and artwork to one .zip. Restore it on the new PC and TrayTrigger finds your games again through their launchers. Game saves aren't part of a backup.