← All posts
Nov 01, 2026BUILD LOGConsole Mode16 min

Console Mode 1.7: your PC becomes a console from the first second

Console Mode started with a very specific goal: sit down on the couch, pick up a controller, and use my PC like a living-room console. No getting up to change audio devices, switch monitors, find a missing window, or undo a bunch of settings after playing.

With version 1.6, I got much closer to that goal. The PC could already switch displays, adjust audio and resolution, launch Steam or Playnite, and restore the desktop when the session ended. The session menu also began making it possible to take care of everyday tasks with a controller instead of interrupting everything to reach for a mouse.

But the more the experience evolved, the more obvious one question became:

If the whole point is to use a PC like a console, why are there still so many moments when it reminds me that it is a desktop?

That is the question driving Console Mode 1.7, the next major update.

This release is not just a collection of new features. It is an attempt to make the entire journey feel consistent: from the moment the PC wakes up to the moment a game closes and Windows needs to return to exactly how it was.

Version 1.7 is still being prepared for release. I wanted to use this build log to walk through what is changing, the decisions behind those changes, and why some of the most important improvements are the ones users should barely notice.

Feedback changed the kind of problem I was trying to solve

When I started building Console Mode, my focus was mostly technical: choose the TV, move the audio output, turn off the other monitors, open a launcher, and restore everything at the end.

Those problems still matter, but they are not the whole experience.

Once you start thinking about real-world use, different kinds of friction become visible. What happens if an application opens a secondary window? What if you want to switch apps without going back to the keyboard? What if the ideal resolution for one game is different from another? What if Windows renames the displays halfway through a session? What happens if the app shuts down before it can restore the original setup?

That is where feedback — from people using the app and from issues uncovered during testing — stops being just a list of feature requests.

It starts revealing which product problem is worth solving next.

To me, 1.7 represents that shift. Instead of adding isolated settings, I tried to bring the entire experience closer to one idea: the PC should behave like a console from the very first second.

One interface. For real this time.

One of the biggest decisions was to stop splitting the app between the old Desktop interface and the Console interface.

Keeping two interfaces seemed convenient at first. One was familiar to people sitting in front of a monitor; the other was designed for a TV.

But as the feature set grew, that meant two different ways of finding settings, learning navigation, and maintaining a consistent product.

In 1.7, the Console interface becomes the only interface in the app.

It is still designed around the controller, but it now works properly with mouse and keyboard too. You can click the tabs, navigate using Page Up and Page Down, confirm with Enter, and go back with Esc.

Everything that previously lived only in the Desktop UI now belongs in the System tab: the FPS counter, diagnostics, version information, and more. Instead of one giant wall of controls, the tab is organized into categories, each showing a description of the focused setting.

It may look like a UI cleanup, but there is a bigger product decision behind it.

I do not want people to learn two versions of the same app depending on how far away they are sitting from the screen.

The Home screen needed to feel like the beginning of a gaming session

I also redesigned Home to feel more like a living-room console.

Launchers now appear in a horizontal row at the top. Moving between them chooses which application will launch. The selected one gets a check mark and a green highlight bar, making the active choice immediately clear.

Right below that sits Play now, in a pill-shaped control. On the same line, you can see the key settings for the session: display, audio, resolution, and HDR.

Steam, Playnite, and Xbox tiles show their official logos from the installed applications. Custom applications use the actual icon of their executable instead of a generic symbol.

I also switched to the Inter typeface. That is not just an aesthetic preference: typography on a TV needs to remain readable from several feet away, across different sizes and display scales.

The new default background is called Aurora, with soft green and blue glows, while Steam library cover backgrounds are still available.

The Session tab now represents the physical display setup more accurately too. Monitors appear in their actual relative positions and proportions. A portrait monitor looks like a portrait monitor. Displays that will be turned off appear with dashed outlines.

It was one of those details that reminded me that an interface should not just show configuration data. It should help people recognize their own setup.

Designing for a TV is easy. Designing for every TV setup is harder.

An interface can look perfect on the monitor it was designed on and completely fall apart when someone opens it on a 4K TV at 150% scaling.

Text that used to be readable becomes oversized. A button moves outside the visible area. A menu exceeds the available space. Cards that looked comfortable on a desktop suddenly collide.

That is why 1.7 puts more work into consistent scaling at 125%, 150%, and 200%, including 4K TVs.

Both the main UI and the session menu need to preserve their proportions instead of clipping content or multiplying every dimension without regard for the layout.

It sounds like a visual detail, but it is a major difference between an interface that looks console-like and one that can actually be used like a console.

Lists now fade at the edges and show a thin scrollbar as well. These are small signals with an important job when navigating with a D-pad: there is more content beyond what is currently visible.

Even the startup sequence has its own personality

I wanted the experience to start before the user even picks a game.

When Console Mode launches, the screen begins in darkness. The power light pulses, a green display draws itself into view, >_ is typed out, and the name appears with a sound.

I wanted to bring back a little of that feeling of turning on a game console rather than simply opening another Windows window.

There is also a surprise: roughly one out of every eight launches, the app may play an opening inspired by the Xbox 360 or PS4.

Not everyone wants that every time, so System → App lets you lock in a preferred style, choose None, or turn off only the sound.

The interface sounds have changed too. The new sounds have a glass-and-crystal character and play when navigating by controller or keyboard. Mouse clicks stay silent.

The first-run tour was redesigned as well. It introduces the tabs, launchers, displays, quick settings, and shortcuts. Each stop advances automatically after enough reading time, but you can move forward with A or skip with B.

The goal is to teach just enough for someone to feel comfortable during their first session.

Not every application is a well-known game launcher

One limitation that bothered me was treating Steam, Playnite, and Xbox as if they were the only possible ways people might want to play.

In 1.7, each custom application can become its own tile on Home, with the name and icon from its .exe file.

That opens the door to emulators, alternative launchers, and other tools that people use in their own setups.

But adding executable shortcuts was only the easy part.

Some programs are launchers in a very literal sense: they open another process and exit. If Console Mode watches only the original executable, it may conclude that the session is over even though the actual game or app is still running.

Version 1.7 accounts for these cases, bringing the real application's window to the TV and ending the session when that application closes.

I also fixed a related Playnite issue: launching a game should no longer end the session just because Playnite hides its own window, as it can with the Selene theme.

These problems look minor until they happen in a real session. Ultimately, I do not care whether the user starts a launcher, a shortcut, or an executable: Console Mode needs to recognize when the real gaming experience begins and ends.

The controller can now drive the PC outside console mode

In 1.6, the session menu was especially useful while a game was running.

In 1.7, it no longer depends on that.

As long as Console Mode is running — even if it is only sitting in the system tray — the controller shortcut can open the session menu outside console mode.

From there, you can access open windows, volume, displays, audio, HDR, the ControlFS file explorer, the JoyChromium browser, mouse-pointer visibility, and controller-driven mouse control.

I also added a controller shortcut for Windows' Task View (Win + Tab), set to Select + X by default. The D-pad selects a window, A opens it, and B closes Task View. It works with Xbox and PlayStation controllers, both inside and outside a console session.

This ties directly into why I started the project.

A PC is still a PC. Sometimes you need to switch windows, open a file, or follow a link. I am not trying to pretend those things do not exist.

I am trying to make sure they do not force you to get up from the couch.

JoyChromium: closing the gap between games and the web

JoyChromium also gets a dedicated spot in the session menu, right below ControlFS.

It is the browser I am building to make web browsing on a TV possible with a controller, instead of relying entirely on traditional mouse and keyboard interactions.

In 1.7, JoyChromium can open full-screen over the game. If it is not installed, Console Mode offers a one-click download and installation, checking the file's SHA-256 before proceeding.

I like this kind of integration because Console Mode does not have to build every tool in the ecosystem into a single executable.

Each tool can focus on a specific problem while remaining accessible without disrupting the overall experience.

I also wrote about the technical challenges behind the browser in JoyChromium: why browsing the web with a controller is harder than it looks.

Per-game profiles: one set of preferences does not fit every game

This is a feature I have wanted to build for a while.

When setting up a session, we usually choose a configuration that works for several games. But not every game benefits from the same resolution, FPS cap, HDR setting, or audio output.

In 1.7, each Steam game can have its own resolution, HDR, FPS limit, and audio profile.

The flow is simple: while the game is running, open the session menu and choose Game profile → Save current settings.

The next time that title launches in console mode, Console Mode applies its profile automatically and reverts those changes when the game closes.

This also covers Steam games launched through Playnite or the Xbox app.

The challenge is not simply saving a set of preferences. It is treating each change as temporary and reversible.

Someone may want one resolution in a game and a different one on the Windows desktop. They may use headphones for one title and TV speakers for another. The app needs to know when to apply each preference and, more importantly, when to stop applying it.

Press the controller button and wake straight into console mode

This might be the feature that best captures what 1.7 is trying to achieve.

Console Mode can now check whether an Xbox wireless adapter, Bluetooth connection, or wired controller is capable of waking the PC, and help enable wake functionality where the hardware supports it.

Combined with Enter when a controller connects, the idea is to reach this flow:

Press the controller's center button.

The PC wakes up.

Console Mode enters the console experience.

No manually turning on the machine, grabbing the mouse, starting a launcher, and reconfiguring the TV.

Of course, waking a PC depends on the controller, adapter, power settings, and hardware support. It is not something every controller connection can do on every computer.

But when the setup supports it, the difference is substantial.

The PC starts feeling less like a machine you need to prepare for gaming and more like a console that is ready when you want it.

The invisible work: putting Windows back exactly how it was

The new interface may be the most visible part of 1.7, but some of the hardest work is still something users ideally never see.

Restoring the computer after a session.

When Console Mode changes displays, audio, resolution, FPS limits, HDR, and other settings, it takes on an important responsibility: it should not leave the user stranded with a temporary setup.

Version 1.7 pushes this further.

If the app exits unexpectedly or the PC shuts down halfway through a session, the next launch attempts to restore displays, audio, RTSS, desktop icon positions, and the mouse pointer.

Desktop icons are now preserved when a session ends normally too. The pointer moves out of the way when the game appears on the TV and returns to its original position afterward.

Another fix addresses cases where Windows renames displays during a session. That can cause resolution changes to be sent to the wrong screen or cause the wrong monitors to be restored. Version 1.7 works to associate settings with the correct TV and restore the intended monitors.

I also adjusted the audio option “Whichever appears when connected”: when no new output appears, Console Mode can use the TV output that was already connected.

This kind of work rarely makes for exciting screenshots.

But to me, reliability is one of the most important parts of a good console experience.

If software changes your entire environment so you can play, it needs to know how to give that environment back.

The small refinements matter too

Beyond the main features, 1.7 includes plenty of changes that may sound minor in isolation but add up to a better experience.

Controller battery level appears in the UI, with notifications at 15% and 5%, for Xbox wireless controllers, DualSense, and DualShock 4.

Notifications slide in from the edge of the screen and include a small bar showing how much time remains.

The title bar now feels integrated with the main interface. Lists in both System and Session keep focus on the same row after choosing an option or going back with B.

I also addressed cases where a slightly off-center analog stick could cause a menu to scroll by itself, text getting clipped in quick settings and the tour, and custom apps showing the wrong window — so a tooltip does not get stretched across the TV instead of the actual app.

Diagnostics now have a Copy report button, making it easier to file a GitHub issue without including personal data.

Update notifications now appear in Portuguese, and my other apps — ControlFS, Tako Launcher, and JoyChromium — have their own cards in the interface.

None of these changes alone defines a major release.

Together, though, they help people stop thinking about the interface and simply use it.

I also had to decide what to remove

A larger release does not have to keep everything that ever existed.

The old Desktop interface is gone, with its settings moved into the System tab. I would rather build one experience that works consistently than maintain two parallel workflows forever.

I am also removing network-based Google TV / Android TV control for now.

I want to revisit that feature in a future release, and existing settings will be preserved.

It might sound strange to remove a feature from a growing product. But more features do not automatically mean a better product.

Sometimes it is more important to reduce complexity and make the core experience dependable.

What 1.7 means to me

If 1.6 was the release where Console Mode began to feel genuinely controller-first, 1.7 is where I am trying to extend that philosophy to the entire PC.

It is no longer just about opening Steam Big Picture on the TV.

It is about using one interface, seeing your displays represented clearly, launching your own applications, switching windows, browsing files and the web, applying preferences per game, waking the machine with a controller, and trusting everything to go back to normal afterward.

It also reflects a way of developing that has become increasingly important to me: notice where the friction is, turn that into a product problem, understand the root cause, and only then decide what to build.

I cannot eliminate every quirk of Windows, every controller, or every unique hardware setup.

But I can keep working so that those quirks matter less to someone who just wants to sit on the couch and play.

I never wanted Console Mode to make Windows look like a console in a screenshot. I wanted the PC to behave like a console in practice.

Version 1.7 is another big step toward that goal.

When is it coming?

Version 1.7 is still in preparation and has not been released as I write this post.

When it is available, the installer and release notes will be on the Console Mode releases page.

The project remains open source on GitHub. If you use Console Mode, reports of bugs, suggestions, and unusual real-world setups genuinely help shape what should come next.

You can send feedback here.

Because the next interesting problem often shows up when someone uses the project in a way I had never imagined.