Skip to content

About

Bring the Steam Machine’s 17-LED strip to life with Steam event alerts, game artwork, launch animations, custom effects, live weather, CPU/GPU monitoring, controller battery levels, and real-time screen color sync.

Topics

Resources

Stars

57 stars

Watchers

0 watching

Forks

Repository files navigation

GabeCubeAura

Make your Steam Machine's 17-pixel light bar useful and a little more expressive. Choose a complete lighting experience, preview it on the physical bar, then set one brightness level for every display. Optional sunset dimming uses a city you select manually, while CPU/GPU thermal protection can return complete control to Valve immediately.

Download GabeCubeAura 1.4.0 · Release notes

Try the interactive GabeCubeAura preview before installing

Support GabeCubeAura

If GabeCubeAura makes your Steam Machine a little better, you can support its development on Ko-fi. The plugin and its public releases remain available to everyone.

Support GabeCubeAura on Ko-fi

In development

A look at what's being developed: animated game artwork, useful dashboards for the JSAUX Pixel Matrix Faceplate, and Gabe Assistant. These experimental features are not included in the current public release and may change.

Game artworkWeather & dashboardsGabe Assistant
Animated Stray dashboard on a simulated Steam Machine with a 64 by 54 dot matrix and diffused light bar Animated weather dashboard with current rain, 12 degrees Celsius, and a next-hour forecast row User says Hey Gabe, Gabe replies I'm listening, then confirms a 30-minute timer before returning to the TW3 Dashboard; Steam-blue eyes, warm salt-and-pepper hair, champagne bronze glasses and 40 percent mouth width
Your games, prepared for the 64 × 54 matrix. Time, weather and one useful information row. An animated face, expressive light bar and optional local voice controls.

Automatic power-off: with Auto power mode enabled, putting your Steam Machine to sleep or shutting it down also turns off the Faceplate screen, even if its USB connection remains powered.

Artwork & Pixel Studio · Choose, prepare, preview and reuse

Choose an installed game and browse static or animated SteamGridDB artwork using your own API key. Crop and adjust the image, prepare it in the background, then preview it before applying. Saved artwork is reused when the game starts.

Stray The Witcher 3
Animated Stray artwork without an overlay on the shared dot-matrix model Animated The Witcher 3 artwork with its dashboard overlay on the same dot-matrix model
Detroit: Become Human · Chloe Resident Evil 2
Real animated portrait of Chloe, cropped to show only the android woman without the cover logo, on the same dot-matrix model Resident Evil 2 animated artwork dashboard on the same dot-matrix model
  • Square, portrait and wide sources, including animated grids and heroes.
  • Crop, saturation, artwork brightness, compression and optional loop cleanup.
  • Wide static artwork can pan out and return without jumping back to the start.
  • A saved visual can be used as in-game Artwork or a Dashboard background.

Pixel Studio is integrated into GabeCubeAura. Preparation is explicit; game launches reuse prepared media instead of starting another conversion.

Dashboards & Realistic Weather · Your artwork or the weather, with one clear bottom row

Keep the animated background. Add a discreet clock, a weather icon and temperature, then choose one useful bottom row. Home and in-game content can be selected independently; Weather and Artwork Dashboard backgrounds remain separate choices.

Weather scene Weather Dashboard
Realistic animated rain scene on the shared dot-matrix model The same animated rain scene with a clock, current weather and a next-hour forecast row

The Weather Dashboard example shows rain · 12°C now, then +1H · rain · 13°C · 80% below. Its light bar plays Bluewater: a continuous blue band with brief droplet pulses and spreading echoes. These are illustrative values, not a live forecast. The background keeps its animation beneath the information overlay.

Session & P1 P1 & P2 Next hour
Artwork dashboard with session duration and P1 battery demonstration Artwork dashboard with P2 battery at the left and P1 at the right Artwork dashboard with plus one hour, weather icon, temperature and precipitation probability
Today Personal timer Last minute
Artwork dashboard with forecast icon, blue morning temperature and orange afternoon temperature separated by a spaced slash Artwork dashboard with the remaining personal timer Artwork dashboard in the final minute of a personal timer
  • Controllers: P1 battery as a percentage or gauge, with optional P2.
  • Performance: available CPU/GPU load values in the information row.
  • Next hour: +1H, forecast icon, temperature and precipitation probability.
  • Today: forecast icon, blue morning temperature / orange afternoon temperature.
  • Playtime: session duration or an active countdown.

Realistic weather scenes cover day/night skies, clouds, rain, snow and storms. A manually selected city supplies current conditions and forecasts through Open-Meteo, with °C or °F and no weather API key. The light bar provides its own one-dimensional interpretation of the conditions.

Performance, controllers & playtime · Readable information and immediate light cues

The Faceplate can show details while the light bar gives a quick visual cue. Content can be selected independently for Home, in-game and individual games.

CPU / GPU Controller battery Playtime countdown
Native CPU GPU renderer on the shared dot-matrix model with slowly changing demonstration readings P1 and P2 battery values on the shared dot-matrix dashboard model Personal countdown on the shared dot-matrix model and diffused light bar

CPU/GPU readings and controller charge depend on available device data; unknown values are not invented. Playtime supports personal countdowns, session information and supported Steam Families limits.

Brightness remains separate from content selection. Faceplate power can be controlled from Decky, with an optional automatic sleep/shutdown policy.

Gabe Assistant · An animated companion with optional local voice controls

Gabe has animated eyes, glasses and eyebrows, with a light-bar mouth. Appearance controls include colours, mouth width, Single colour / Slow Prism and Subtle / Natural / Expressive reactions.

Complete illustrated voice workflow: Hey Gabe, I'm listening, a 30-minute timer request, confirmation, countdown lighting and return to the animated TW3 Dashboard with LEFT 30 MIN

You: “Hey Gabe!” → Gabe: “I'm listening.” → You: “Set a timer for thirty minutes.” → Gabe: “Your 30-minute timer is set.”

The full exchange plays before the loop restarts. The 40% mouth width follows the plugin's setting: only Gabe's speaking beats drive the cyan mouth; the user's turn and quiet pauses leave it off. The countdown then takes over the light bar and the animated TW3 Dashboard returns with LEFT 30 MIN. This silent, subtitled preview illustrates the workflow; it does not record speech recognition or start a real timer. The thirty minutes are not accelerated.

Activation can use a controller shortcut or optional Ok Gabe / Hey Gabe voice controls, with a French/English command glossary. Voice activation is off by default and uses separately installed local speech modules. When enabled, the selected microphone stays open locally while waiting; waiting audio is not saved or uploaded. Disable it to close the microphone.

Voice components are still being prepared for public distribution.

Preview credits & limitations

Game artwork: Stray by LudaX, The Witcher 3 by TUFKAC, Detroit: Become Human by TUFKAC, Resident Evil 2 by Jnill.

All previews use one shared Steam Machine model. Native 64 × 54 frames drive 3,456 individual dots; enclosure proportions, light-bar diffusion and glow are software illustrations, not measured hardware optics. The GIFs do not establish physical compatibility, voice accuracy or transfer timing. Displayed readings are demonstration values. Gabe's GIF is silent and subtitled.

See preview sources for individual credits. Experimental features may change; no public release date is announced here.

Your everyday display

Artwork

Carry the current game's colours onto the light bar. Choose Library Hero, Header, or Capsule artwork and select the best row automatically or manually. The choice is remembered separately for every game.

Local custom artwork is preferred, including SteamGridDB replacements and images assigned to non-Steam shortcuts. In Artwork mode, the quick Decky panel shows the active game image directly above its exact 17-colour sample.

Artwork mode with Deep Rock Galactic artwork

Performance

Use the bar for CPU, GPU, or both. Mixed mode gives each signal eight LEDs, with the centre LED off. Length shows load and colour shows temperature. Responsive, Balanced, and Smooth profiles control how quickly the meter reacts.

Performance can be selected independently for Home, games, or a specific game. Three ready-made temperature palettes are included, and a native Decky colour picker lets you choose custom Cool, Middle, and Hot colours.

CPU/GPU sensors are sampled every 0.5 seconds in every display mode. Opening Performance settings immediately shows fresh readings without first selecting Performance as the active display. Missing or expired readings are not retained as if they were live.

Animated mirrored CPU and GPU meter with changing load percentages, temperatures and colours

Controller Battery

See controller charge at a glance. Select Controllers as the permanent Home or In-game display to show one to four fixed battery seats. Two and four controllers use mirrored layouts. Three controllers use three left-to-right zones. Dark separators and white charge tips keep every seat readable.

Charging can play a short cue or a continuous blue-and-white animation that stops at 100%. The Automatic colour preset uses battery colours with one controller, then distinct P1 to P4 seat colours from two controllers onward. Manual keeps either colour meaning at every controller count. Choose animation styles, brightness and alert contexts. This Concept Lab capture shows the single-controller battery view, then two mirrored gauges and continuous charging.

One-controller battery view followed by two mirrored controller gauges and continuous charging

Battery and charging data depend on the controller. Unknown levels are never invented; see the controller test notes.

Playtime Countdown

See the time you have left. An active Steam Families limit automatically takes priority when a game starts, or you can start a personal timer. The bar empties from right to left, turns amber below 15 minutes, and turns red below five. During the final eight seconds, three short white flashes repeat until zero.

Animated playtime countdown

Weather

Choose a city, then select Weather as the permanent Home or In-game display. Twenty-two selectable loops cover clear skies, rain, cloud, partly cloudy day and night, snow, and storms. Version 1.2.1 adds 8 night transpositions: two moon scenes, four night-cloud scenes and two moon-through-cloud scenes. They keep the approved daytime choreography while using a deep blue night field, neutral clouds and stepped moon whites. Snow takes hold is the default snow scene; all animations can be previewed without network access. Existing selections are kept.

Weather animations on the Steam Machine light bar

The SteamOS top-bar weather indicator is enabled by default and appears once a city is selected. Choose °C or °F and one of three locally bundled icon styles. This works independently of the LED weather scene and has been confirmed on one Steam Machine; Steam UI updates could change its placement. No temperature colours are mapped to LEDs.

Weather icon and temperature beside the SteamOS clock on a real Steam Machine

Select a city before enabling live weather. If you enter a country, use its full name (for example France), not a two-letter code. GabeCubeAura fetches current conditions from Open-Meteo about every 15 minutes, without an API key or automatic location detection. The same city can drive global sunset dimming even when Weather is not selected as a permanent display.

Light Events

Light events briefly replace the current display, play their animation, then restore the selected permanent display. They can work outside a game. Each category has its own switch, animation selector, and nearby live preview.

Notification

Return beacon is the fresh-install choice. The GIF below shows Wide echo, another selectable notification style.

Wide echo notification

Screenshot

An icy shutter closes, followed by two flashes with expanding echoes.

Expanding echo screenshot animation

Achievement

Constellation round trip is the fresh-install choice. The GIF below shows it.

Constellation achievement animation

Recording

Two red traces mark recording start and stop. While recording, the centre LED stays pure red over a compatible permanent display. Its two neighbours are black by default to keep the marker distinct through the physical diffuser. The marker never modifies a playtime countdown or another event animation.

Recording start, centre marker, and stop

Game Launches

GabeCubeAura can play a one-shot launch sequence when a new Steam AppID starts. Game launches is independent from Artwork display: it has its own Hero/Header/Capsule source and colour cache, extracts either two or three dominant colours locally, offers ten patterns, and uses a visible timer adjustable from 3 to 45 seconds. Short alerts pause that timer and the sequence resumes after the alert.

The first animation shows three separate AppIDs and the two- or three-colour palette extracted from each Library Hero. The second stays on Balatro and shows three of the ten available launch patterns at a deliberately slower pace. These are browser illustrations generated from the Concept Lab, not proof of physical LED colour fidelity.

Local artwork palette extraction for Deep Rock Galactic, The Witcher 3, and Balatro

Balatro launch animation using a two-colour palette with Crescendo, Color wipe, and Scanner

Customization+

Build a permanent Home or in-game display from one, two, or three exact opaque colours. Use the colour picker, Hex or RGB values, brightness from 34 to 255, animation speed from 1 to 100, direction, and a live 17-LED preview. The 65 available effect names are grouped by dynamism: Calm & ambient, Flowing, and Energetic. Alpha is intentionally absent because the LED hardware and GabeCubeAura settings use RGB, not transparency.

Steam's native Patrol, Breathe, Rainbow, and Solid presets remain in Steam. Select GabeCubeAura Off to use them; GabeCubeAura does not present approximate lookalikes as if they were Valve's effects.

The animation below uses one restrained two-colour palette and a slower Crescendo loop. It is captured from the browser simulator, so diffuser appearance may differ slightly from the physical Steam Machine.

Customization+ running a slow Crescendo with a restrained two-colour blue palette

Real Time Screen Sync

Screen Sync maps the running game's picture onto the light bar in real time. Panorama maps 17 horizontal screen zones to the 17 LEDs. Ambient calculates one calmer colour for the whole image. Processing stays on the Steam Machine, captured frames remain in memory, and no image is saved or sent over the network.

Screen Sync following the game on the physical Steam Machine light bar

The capture runs when Screen Sync is the effective display for a running game, while Steam's screensaver is active and opted in, or during the 15-second manual preview. It requests a 34 by 18 pixel Gamescope PipeWire stream at 10 frames per second, detects stable cinematic black bars, reduces bright HUD influence, smooths scene changes and stops using a frame when it becomes stale. If recording or another Gamescope capture consumer is detected, the saved Customization+ effect takes over without competing for the stream. Every game AppID transition also terminates the former GStreamer process and starts a fresh Gamescope capture session when Screen Sync is still requested; this avoids carrying a stale PipeWire client into the next PAUSED preroll. The read-only capture stays warm while Steam temporarily owns the LEDs. If the Gamescope or PipeWire session actually disappears, GabeCubeAura closes the old pipeline first, waits for the session to settle and only then rediscovers it.

Screen Sync has its own settings page for Panorama or Ambient style, brightness, reactivity, colour intensity, black threshold and black-bar handling. It can be selected as the in-game default, saved per Steam AppID, or enabled independently for Steam's screensaver without changing either route.

All existing routing still applies. Choose separate permanent displays for Home and games, then let temporary launch, playtime and Steam moments take the stage before the selected display returns.

Audio Sync

Audio Sync turns the mixed system sound into light locally, without recording or saving audio. Choose from ten patterns, including Hi-Fi Crest, Slow Prism, Spectrum and Stereo Field, then combine any pattern with a built-in palette, custom colours, live Screen Sync colours or the running game's Artwork.

Home and in-game can use different patterns, palettes and custom colours. The recommended Immersive setup uses Slow Prism with Sapphire at Home and Screen Sync in games. Its first-run preview plays a short source-independent Slow Prism and Screen Sync demonstration, so it remains visible without live audio or a running game. Steam downloads, alerts, Game launches and the screensaver keep their existing priority.

Audio Sync using Slow Prism with the Screen Sync palette on the Steam Machine light bar

Display Routing

Choose one permanent display for Home and another for games: GabeCubeAura Off, Blackout, Customization+, Artwork (games only), Performance, Screen Sync (games only), Audio Sync, Weather, or Controllers. A per-game override can replace the in-game default. Game launches, Playtime, Light events, and Controller alerts are separate temporary layers, so they work without forcing a particular permanent display. Choosing GabeCubeAura Off reproduces the former Signals-only behaviour: GabeCubeAura yields the bar between temporary signals. Blackout instead keeps ownership and holds all 17 LEDs off.

Nine one-step presets configure a complete setup: Lights out, Essential, Focus, Moderate, Atmosphere, Signals, Immersive, Immersive+ and Festive. Returning to Custom restores the setup saved before the first preset was selected. Lights out excludes even Valve's download animation. Essential still lets Valve show confirmed downloads. Atmosphere uses Weather at Home and falls back to its Slow Prism display until a current weather frame is available.

Light bar brightness is global and independent from these routes. Day brightness applies whenever GabeCubeAura owns the bar; optional Night brightness follows local sunset and sunrise for a manually selected city. Changing a preset, Home display or in-game display never changes either value.

StripMine is developed by the same author as GabeCubeAura. With StripMine v0.1.1-alpha.7 or newer, open Settings > Advanced > Plugin compatibility and reveal the TW3-SteamRGB and StripMine controls. Choose which plugin owns the bar for Artwork, Performance, Weather, Controller displays, Game launches, Screen Sync, Audio Sync, Customization+ and Light Events while the mine is active. GabeCubeAura and StripMine acknowledge every transfer before writing, then restore the previous owner automatically. No manual Retry bar action is required. Playtime countdowns remain GabeCubeAura priorities; unknown applications still trigger the normal ownership guard.

TW3 SteamRGB can use the bar as a live The Witcher 3 HUD. While its fresh ownership claim is active, GabeCubeAura yields only its permanent display. Steam system activity, GabeCubeAura previews, alerts, Game launches and playtime countdowns remain above the game HUD. The former experimental Witcher Lab is not bundled with GabeCubeAura 1.4.0.

How priorities work

GabeCubeAura follows a strict order:

  1. Thermal protection stops every GabeCubeAura write and returns complete control to Valve when the CPU or GPU reaches 94°C.
  2. Disabled returns complete control to Steam.
  3. Steam hard system priority blocks every GabeCubeAura write during startup, downloads and repeated native LED activity.
  4. The final five minutes of a countdown cancel and outrank Game launches.
  5. Recording start and stop cues surround a Customization+ fallback with a persistent red centre marker.
  6. Short alerts pause a Game launch's visible timer; the launch resumes after the alert.
  7. Game launches temporarily replace regular countdowns; those countdowns return afterwards.
  8. Screen Sync, Audio Sync, Artwork, Performance, Weather, Controllers or Customization+ provides the selected permanent display.
  9. A single native transition is allowed to settle before GabeCubeAura restores its expected display. Repeated native writes keep control with Steam.

Install

Updates inside GabeCubeAura

GabeCubeAura includes a dedicated Updates page. Automatic checks can run every 15 minutes, 1, 3, 6, 12 or 24 hours, and can show one Decky notification for each new version on the selected channel. It never installs an update without confirmation.

Before installation, the plugin verifies HTTPS, the release metadata, archive size, SHA256 checksum, ZIP paths and package version. Decky then restarts briefly. Settings and artwork caches remain outside the replaced plugin directory. If the new backend does not confirm a healthy startup within 45 seconds, the previous plugin version is restored automatically.

The Stable channel is the default, checks every 24 hours and ignores GitHub prereleases. No private authorization or token is configured on a fresh installation. The optional Beta channel accepts published beta releases as well as later stable releases. Both use the same verification and confirmation flow. Changing the selector to Beta starts a fresh release check immediately for published prereleases. Returning to Stable explicitly offers the current stable package even when its version number is lower than an installed beta.

Decky Loader

  1. Install Decky Loader.
  2. Download GabeCubeAura-v1.4.0.zip from the v1.4.0 release. Do not extract it.
  3. Open Decky > Settings > General and enable Developer mode only if the Developer section is not already visible.
  4. Open Decky > Settings > Developer. Under Third-Party Plugins, choose Install Plugin from ZIP File, select Browse, then select the downloaded archive.
  5. Restart Decky Loader if the installed plugin does not appear immediately.

Manual installation

Extract the archive into ~/homebrew/plugins/ so the result is a ~/homebrew/plugins/GabeCubeAura/ directory, then restart plugin_loader.

GabeCubeAura requests Decky's root flag only because the Steam Machine exposes its light bar through root-owned valve-leds sysfs files.

First setup

  1. Open GabeCubeAura in Decky's quick-access menu and select Open guided setup.
  2. Choose Moderate, Atmosphere, Signals or Immersive. Each choice previews its representative animation on the physical light bar.
  3. Set Day brightness, then optionally choose a city and configure automatic Night brightness from its exact sunset and sunrise times.
  4. Review the preset, brightness and location, then apply the setup. A visible scroll cue points to the final buttons above Steam's controller footer.

Live Light events are enabled on a fresh installation. Controller alerts have their own switch and work independently of Light events. Skip guided setup applies the recommended Immersive preset and 9/255 Day brightness. Existing users do not see onboarding again, and their saved settings are kept.

Configuration

Artwork

  • Library Hero, Header, or vertical Capsule
  • Automatic, centre, lower, or manual sample row
  • Red line over the image showing the selected manual row
  • Saved source and position for each game
  • Local SteamGridDB and non-Steam custom artwork support

Steam's Library Logo is not sampled because it is a transparent foreground layer rather than a complete image.

Performance

  • CPU, GPU, or mixed CPU + GPU
  • Both meters left to right, or mirrored toward the centre
  • Responsive, Balanced, or Smooth filtering
  • Selectable as the Home, In-game, or per-game display
  • Three built-in temperature palettes
  • Custom Cool, Middle, and Hot colours through Decky's colour picker
  • Live CPU/GPU load and temperature in the quick panel

Cool temperature and Hot temperature are thresholds. The selected colour palette is blended continuously between them.

Playtime

  • Automatic Steam Families remaining-time signal
  • Personal timer from five to 240 minutes
  • Five starting colours
  • Timer-duration scale or fixed one, two, three, or four-hour full bar
  • Final eight-second alert

Steam Families only appears while a game is running. Closing or switching games clears the old parental countdown immediately.

Controllers

  • Permanent battery gauge selected through Home/In-game display routing
  • Brief alert contexts: Off, On Home, In game, or Home + in game
  • Connection and low-battery alerts can each be disabled; charging has its own Off / Brief / Continuous on Home / Continuous everywhere choice
  • Adjustable low-battery threshold from 5% to 30%
  • Three selectable styles for each signal, including the multiplayer view
  • Fixed layouts for one to four controllers, with automatic mirroring for two and four and left-to-right seats for three
  • Automatic colour preset: battery colours for one controller, then four editable player-seat colours from two controllers onward
  • Manual colour preset: keep either Battery level or Player seats at every controller count
  • Local previews can simulate one to four controllers without changing the detected Steam controller roster

The gauge is the permanent display where selected; it does not combine colours from another display. A Steam Families countdown still wins. Unknown or coarse battery data is not displayed as an exact percentage.

Weather

  • Location selected manually by city or postal code; no automatic geolocation
  • Selectable through Home/in-game routing, with 22 17-LED animations
  • Independent optional SteamOS top-bar icon and °C/°F temperature
  • Weather brightness and faint-pixel cutoff for the physical diffuser
  • Weather previews work without a city or network connection

Light bar brightness and optical calibration

The physical diffuser can make a lit LED bleed into a neighbouring dark space. Extra dark LEDs compensates by lighting fewer physical pixels than the logical preview. It affects Countdown and Performance, never Artwork. The default is two.

The official Steam Machine's physical LED order is reversed by default while the Decky preview remains left to right.

The global Light bar brightness section applies the selected Day brightness to every Home and in-game route. The recommended starting value is the tested 9 / 255. Optional sunset dimming applies a percentage of that value, for example 35% gives 3 / 255. The city is shared with Weather, but Weather does not need to be selected as a display. Important alerts temporarily return to Day brightness.

Both sliders preview immediately on the physical bar. A red warning appears when Day brightness or the computed Night output falls below 8/255, because such a low value can strongly affect the lighting experience.

GabeCubeAura changes the hardware brightness_scale only while it owns the bar, then restores Steam's exact saved value before handing control back. If a driver does not expose brightness_scale, the panel clearly reports the RGB attenuation fallback. Thermal protection always returns complete control to Valve.

Configuration backup and reset

Open Advanced / debug > Show debug details and choose Export configuration JSON. GabeCubeAura writes a readable snapshot of global settings, saved per-game profiles, and the current game's resolved choices to /home/deck/Documents/GabeCubeAura-configuration.json on a standard SteamOS setup. The panel always shows the exact path used. Exporting again replaces only that file, and controller device IDs are never included.

In the same Debug section, Import configuration JSON opens a file picker and asks for confirmation before replacing saved global settings and per-game profiles. Unsupported or invalid files leave the existing configuration untouched. Reset to defaults asks for confirmation, clears per-game profiles, and restores the shipped defaults. Neither action deletes the exported JSON or the artwork cache; both stop a running personal timer.

Safety and privacy

  • No cloud telemetry. Weather city search and Open-Meteo requests occur only when you use the optional Weather feature. Private Lab authorization is optional, and fresh installations start disconnected without a token.
  • No SteamOS read-only filesystem modification
  • Local read-only discovery of Steam and custom-grid artwork
  • Serialized and rate-limited hardware writes
  • Redundant-frame suppression to reduce unnecessary LED writes
  • A userspace guard that yields when Steam or another process changes the bar
  • A CPU/GPU thermal interlock that yields completely to Valve at 94°C and only resumes after both coherent readings stay below 90°C for 30 seconds

GabeCubeAura only restores a previous frame when the hardware still matches its own last verified write. Missing or incoherent sensor data during a thermal alert keeps GabeCubeAura disabled. Fixed red remains available as an ordinary user colour; colour alone is never treated as a thermal warning.

Requirements and known limits

  • Designed for the official Steam Machine 17-pixel valve-leds light bar
  • Requires Decky Loader on SteamOS
  • Screen Sync requires the SteamOS Gamescope PipeWire source, pw-dump and gst-launch-1.0. GabeCubeAura reports missing components and does not install system packages automatically.
  • CPU and GPU sensors depend on paths exposed by the hardware and SteamOS build
  • Steam notifications and recording use private SteamClient callbacks that may change between Steam builds
  • Achievement animations follow Steam's achievement notification
  • Screenshot animations follow a newly written screenshot file
  • Controller battery reporting relies on the private SteamInputManager service and varies by controller. There is no verified compatibility list for every controller and connection type yet.
  • No Internet artwork fallback, FPS, network, storage, Moonlight, or Sunshine provider yet

Build and test

corepack pnpm install --frozen-lockfile
corepack pnpm test
corepack pnpm typecheck
corepack pnpm build
corepack pnpm package

The installable archives are written to out/GabeCubeAura-v1.4.0.zip and out/GabeCubeAura.zip. Their identical SHA256 values are written to out/SHA256SUMS.

See the Screen Sync implementation notes for the implementation status, safety model and physical test checklist.

See ARCHITECTURE.md for provider, arbitration, guard, and hardware-rendering details. Release history is available in CHANGELOG.md.

Uninstall and license

Use Decky's plugin settings to uninstall GabeCubeAura. Settings remain in Decky's normal plugin settings directory and can be removed separately if desired.

GabeCubeAura is released under the BSD 3-Clause License.

About

Bring the Steam Machine’s 17-LED strip to life with Steam event alerts, game artwork, launch animations, custom effects, live weather, CPU/GPU monitoring, controller battery levels, and real-time screen color sync.

Topics

Resources

Stars

57 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages