For Marquee 0.1.4

User guide

Step-by-step tasks for Marquee, from the first install to your own themes. Each heading links to itself, so you can send someone straight to the step they need.

1

Getting started

Install Marquee, let it take the screen, and pick what it shows.

Install

  1. Open the latest release and download Marquee-<version>-x64.msi. It’s the only file you need. The release’s other files (signatures, checksums, a standalone marquee zip and GitHub’s “Source code”) are optional.
  2. Run the MSI. If Windows SmartScreen says it protected your PC, choose More info, then Run anyway.
  3. Approve the administrator prompt. Marquee installs for every user and includes the .NET runtime.

Why SmartScreen appears

The MSI has no Authenticode signature yet, so Windows doesn’t know the publisher and an “unknown publisher” prompt is expected. Updates are a separate matter: Marquee checks a signature of its own before it installs one (see Updates and signatures).

SmartScreen: choose More info, then Run anyway.

The installer adds:

  • the tray app, and Marquee Theme Editor in the Start menu;
  • the marquee command, in any terminal you open afterwards;
  • a logon task that starts the tray each time you sign in.

A newer MSI upgrades in place and keeps your settings and themes. Uninstall from Windows’ Settings → Apps. Your themes and settings in %LOCALAPPDATA%\Marquee stay, in case you reinstall.

The first run and the tray

The tray starts as soon as the install finishes and shows the example-landscape theme. A balloon says “Marquee is showing an example theme”: click Marquee’s tray icon to open its menu. If you can’t see the icon, it’s behind the ^ arrow at the end of the taskbar. Drag it onto the taskbar to keep it in view.

The tray menu: the status line at the top, then Themes and Orientation.

Why the tray runs as administrator

Game FPS and taking the screen from L-Connect both need administrator rights. On an administrator account, the logon task starts the tray with them. Starting Marquee from the Start menu goes through the same task, so you get the same tray. Starting it while it’s already running just opens its menu.

On an account without administrator rights, the tray still shows themes, but game FPS and the L-Connect handover are off, and its menu says why, for example “Game FPS is off: Marquee isn’t running as administrator.”

The menu at a glance

Take the screen from L-Connect

Only one program can drive the screen at a time. Closing L-Connect’s window doesn’t free it, because L-Connect’s background service holds it. When that happens, the tray’s status says L-Connect is using the screen.

  1. Open Marquee’s tray menu.
  2. Choose Take over the screen from L-Connect. Marquee stops L-Connect’s service, opens the screen and starts L-Connect again straight away.
  3. To do this at every start, check Always take over at start. It shows only where L-Connect is installed.

L-Connect then leaves the screen alone and keeps running your fans, pump and RGB. While its service is stopped there’s a pause of a few seconds, in which your fans keep their last speed. The first time L-Connect holds the screen, a balloon offers the takeover once. Clicking it takes the screen that one time.

To give the screen back, choose Pause or Quit in Marquee’s menu. Then, in L-Connect’s tray menu, stop its service and start it again.

Details: the handover settings, and doing it by hand

Pick a theme

The example-showcase-portrait theme on a vertically mounted 8.8-inch screen: a clock, a CPU dial, a segmented GPU ring, a load chart and a memory donut.
example-showcase-portrait on a vertically mounted screen.
  1. In the tray menu, open Themes. Your own themes come first, then the installed examples: example-landscape, example-portrait, example-agents, example-showcase and example-showcase-portrait.
  2. Open Orientation and pick how the screen is mounted. Choose landscape for a horizontal mount and portrait for a vertical one. If the picture is upside down, choose the -flipped version.

The tray remembers both choices in config.yaml. A theme made for the other shape is shown scaled down rather than stretched, so pick one made for your mount: the portrait examples have “portrait” in their names. Open preview shows what’s on the screen in a window.

2

Making a theme in the editor

The editor draws the canvas with the screen’s own renderer, and saves your theme about a second after each change.

The theme editor with a dashboard theme open: the theme's name, undo, Layers and Show on screen in the window bar; Add, Align and the zoom buttons below it; the canvas with the CPU temperature selected; and Properties on the right, showing What it shows.
The editor. The theme’s name at the top left opens the theme menu, Add opens the gallery, and Properties on the right changes the selected item.

Start a theme

  1. Open the editor: Marquee Theme Editor in the Start menu, or Edit theme… in the tray (which opens the theme on show).
  2. Choose New theme…, from the tray or from the editor’s theme menu. The start screen offers Blank, Gaming stats and System monitor, with previews.
  3. Pick one and name your copy. It’s laid out for the screen’s current orientation.

On a portrait screen, the tall previews can push Import theme… below the window’s bottom edge. Drag the edge down to reveal it.

The New theme window for a portrait screen: Blank, Gaming stats and System monitor previews, then Open one of yours and Import theme…
The start screen. Open one of yours opens a theme you already have, and Import theme… adds one from a ZIP.

The installed examples are read-only. To change one, accept the editor’s offer to make a copy, or open it read-only to look around and choose Make a copy to edit later. The window bar shows Saving…, Saved or Not saved. Ctrl+Z undoes and Ctrl+Y redoes.

Add a widget

  1. Click Add. The Add a module window has ready-made widgets on tabs: Numbers, Gauges, Graphs, Time, Pictures, Shapes, My modules and Blank widgets.
  2. Click a module to place it in the middle of the canvas, or drag its picture to where you want it. Picture and video modules ask for a file first, and copy it into the theme.
  3. Drag to move it, and use its handles to resize or rotate it. The arrow keys nudge it by one pixel, or ten with Shift. Hold Alt while dragging to turn off snapping.
The Add a module window on its Gauges tab, with tabs for Numbers, Gauges, Graphs, Time, Pictures, Shapes, My modules and Blank widgets.
The Add a module gallery. Its previews show each module with readings.

A module can hold several widgets, such as a reading and its label, and each can be edited on its own. When items overlap, open Layers in the window bar to select, reorder, hide or lock them.

Show a sensor reading

  1. Select the widget on the canvas.
  2. In Properties, find What it shows. Its list is set to Sensor.
  3. Find the reading. The list gives plain names, such as CPU temperature, with their current readings, in categories: CPU, GPU, Memory, Gaming, Claude Code, Codex, Fans, and Time and date. The categories start closed: click one to open it, or type in Search sensors.
  4. Click the reading. The canvas shows it straight away.
What it shows in Properties: the Sensor list with its search box and the CPU category open, showing each reading's current value, with CPU temperature selected.
What it shows, with the CPU category open. Search finds a reading in a closed category.

Instead of Sensor, the list above offers Number, for a fixed value, and Advanced, for an expression such as max(cpu.load, gpu.load). In a text widget, Insert value puts a reading among your words, so a label can say “CPU” beside a live temperature.

Open more settings in Properties

The top of Properties covers the basics: what the item shows, its colour and its size. The rest are in sections under More styling, such as Text, Fill and border, Effects, Position and Motion. These sections start closed. Click a heading to open it. They stay as you leave them until you close the editor.

Can’t find a setting?

It’s probably in a closed section. Every setting as written in layout.yaml, at the bottom, lists everything the item has. Click empty canvas for Theme settings: the theme’s orientation, the LED ring, and the frame rate under More styling → Motion.

Units and decimals

For example, to show a CPU clock reading of 5225 MHz as 5.23 GHz:

  1. Select a value widget, and choose the clock reading in What it shows.
  2. Under Value format, set Decimals to 2. You can choose 0 to 3; Default (up to 2) leaves it unset.
  3. Type  GHz in Unit suffix. Start with a space if you want one between the number and the unit: the suffix is used exactly as typed.
  4. Set Scale to ÷1000: MHz→GHz, W→kW, MB→GB.
  5. Press Apply.
A big number on the canvas reading 5.23 GHz, and Value format in Properties: Decimals 2, GHz in Unit suffix, Scale set to divide by 1000, and the Raw format it wrote.
The CPU clock’s 5225 MHz, shown as 5.23 GHz. Raw format shows what Apply wrote.
  • Scaling doesn’t change the unit for you, so type the suffix yourself. ÷1000 divides by exactly 1000, which suits readings in MHz, W or MB. For byte counts, such as video memory, use the bytes helper, which picks the unit.
  • Rules still compare the reading in its own unit, so a warning at 5000 MHz stays at 5000, not 5.
  • In a text widget, select the value chip. Choose ÷1000: MHz→GHz, W→kW, MB→GB from its Scale submenu and 2 decimals, then type  GHz after the chip.
  • If the widget already has a format of its own, these choices leave it alone until you press Use these number settings. The Raw format box is there for time, duration and other custom formats.

Colours and opacity

  1. Click a colour swatch in Properties to open the colour picker.
  2. Pick the colour, or type a hex value.
  3. To make it see-through, type 0 to 100 in Opacity, beside the transparency strip, and press Enter. 0% is fully transparent and 100% is solid.
The colour picker open beside a Colour swatch: a colour field, a hue strip, the transparency strip with the Opacity percentage box, a hex box with #FF5A36, and Recent colours.
The colour picker. Opacity applies to this one colour.

A colour that isn’t solid shows its percentage in Properties, for example #FF0000 · 50%. Paints that take gradients also offer Linear and Radial. Text colour, box fill and border are separate settings.

Widget opacity, under More styling → Effects, is a different setting: it fades the whole widget, contents and all. 0% hides the widget.

Change the look with rules

Rules change a widget’s style when its reading crosses a line. For example, to turn the clock reading from Units and decimals red above 5000 MHz:

  1. Select the widget. Under Rules, choose Add rule.
  2. Set when to above and type 5000. The conditions are above, below, equals and stale, which means the reading is missing or out of date.
  3. Under use, choose a named style, or Custom. For Custom, open its Text section and set Colour to red.
The clock reading shown in red on the canvas, and its rule in Properties: when above 5000, use Custom, with the Text section open and Colour set to #FF5A36.
A rule that turns the reading red above 5000 MHz. Try a value, above it, tests the rule.

“Above 5000” means more than 5000. Every matching rule applies, in order, so a later rule wins; drag rules to reorder them. To check a rule without heating your CPU, drag Try a value across the threshold, or pin a test reading in the Test values panel.

Shader and video backgrounds

  1. Open Layers in the window bar.
  2. In its Background section, click Add layer ▾ to open the Backgrounds gallery.
  3. Under Moving, pick a shader: Aurora, Slow waves, Plasma, Starfield, Gradient drift or Nebula. Under Still, pick Colour, Gradient, Picture… or Video….
  4. Select the new layer to change its colours, speed and strength.
The Backgrounds window: Moving previews of Aurora, Gradient drift, Nebula, Plasma, Starfield and Slow waves; Still choices Colour, Gradient, Picture… and Video…; and More backgrounds with Import a shader file…
The Backgrounds gallery. Its moving previews are live.
  • Reacts to ties a moving background to a reading: the Calm to Busy meter shows how it responds. Choose Nothing for a steady one.
  • The cost bar gives a verdict, from Light. The screen keeps up easily. to Too heavy. The screen will skip it. Lower Quality if it’s heavy. The editor draws shaders on the CPU; the screen uses the graphics card, so judge the result there.
  • Video plays MP4, M4V, MOV and WMV through Windows’ own decoder, and animated GIF and WebP. H.264 works out of the box; HEVC, VP9 and AV1 need Microsoft’s extension for that format from the Microsoft Store. A theme can have up to 2 video layers and 4 videos in all, each file up to 200 MB.
  • More backgrounds → Import a shader file… adds a shader of your own.

Details: writing your own moving background

Zoom the canvas

ToPress
Zoom in or out around the pointerCtrl + mouse wheel
Zoom inCtrl++
Zoom outCtrl+−
Fit the whole canvasCtrl+0
Scroll sidewaysShift + mouse wheel

The Fit, 100% and 200% buttons do the same from the toolbar, and the status bar shows the zoom. At 100%, one theme pixel is one pixel of your monitor. Zooming changes only your view, never the theme.

Show it on the screen

Click Show on screen, at the right of the window bar. Marquee sets your theme in config.yaml, the running tray switches to it, and from then on the screen follows each save. If the status bar says Tray not running, you can keep designing, but start Marquee from the Start menu to drive the screen.

3

Sharing themes

A theme travels as one ZIP: its layout and the files it uses.

Export a theme

  1. In the editor, click the theme’s name at the top left of the window bar. This opens the theme menu. Its tooltip says “Open another theme”, but the menu also holds this theme’s own actions.
  2. Choose Export theme…, near the bottom.
  3. Choose where to save <theme>.zip.
The theme menu open under the theme's name at the top left: New theme…, your themes, the examples, New from an example, then Clean up unused files…, Export theme… and Revert to opened version…
The theme menu: click the name at the top left. Export theme… is near the bottom.

The ZIP holds the layout as it is in the editor, including changes not saved yet, and every file in the theme folder that the layout names. Export never changes or tidies your theme. Fonts installed on your PC aren’t bundled; a font file inside the theme folder is. Hidden files, ZIPs, backups, temporary files and links are left out.

Import a theme

Only import ZIPs you trust

An imported theme’s shaders and videos run as soon as it opens in the editor’s preview.

Choose the ZIP itself; don’t unzip it first. There are three ways in:

  • The editor: choose New theme…, then Import theme… on the start screen (see Start a theme if you can’t see it).
  • The tray: choose Import theme… in its menu.
  • A terminal (a normal one, not run as administrator):
    marquee theme import .\shared-theme.zip
    Add --name my-copy to install it under another name, or --replace to replace a theme with the same name.

Marquee checks the ZIP before installing anything. A ZIP with errors shows what’s wrong and installs nothing. Only layout.yaml and the images, videos, fonts and shaders it uses are installed, and the report lists anything skipped. If you already have a theme with that name, choose Rename, Replace or Cancel.

An import from the editor or the tray opens the theme in the editor. It doesn’t change what’s on the screen: pick it from Themes in the tray, or use Show on screen.

Details: export from the command line, exit codes, and interrupted imports

4

Sensors

Where Marquee’s hardware readings come from, and how to choose.

LibreHardwareMonitor or HWiNFO

LibreHardwareMonitorHWiNFO
Settingsensors: lhm (the default)sensors: hwinfo
What you runNothing: it’s built into Marquee.HWiNFO, with Shared Memory Support on.
CPU temperatures and motherboard sensorsNeed the tray running as administrator and the PawnIO driver, which you install separately.From HWiNFO, with no driver of Marquee’s.
Good to knowSome AMD cards, such as the Radeon RX 7800 XT, give only load and memory here.Reads those cards’ temperature, clock and power.

To switch:

  1. Choose Edit settings in the tray menu. It opens config.yaml.
  2. Set sensors: hwinfo, or sensors: lhm to go back.
  3. Save the file. Marquee picks up the change by itself.

Set up HWiNFO

  1. Install HWiNFO and start it. Sensors-only mode is enough.
  2. Open HWiNFO’s Settings, turn on Shared Memory Support and click OK.
  3. Keep HWiNFO’s Sensors window open. Minimise it rather than closing it: HWiNFO shares readings only while its sensors are running. Marquee marks a hardware reading stale (—) after five seconds without an update.
  4. Set sensors: hwinfo in config.yaml, as above.
HWiNFO’s settings, with Shared Memory Support turned on.

HWiNFO’s own settings can start it with Windows, minimised, so the readings are there whenever the tray is. If Marquee can’t find the readings, its tray menu says: “HWiNFO’s shared memory isn’t available. Start HWiNFO (sensors-only mode is enough) and turn on Settings → Shared Memory Support.”

The key list

In the editor you pick readings by name. In YAML and expressions, each reading has a key, such as cpu.temp, gpu.load, fps.1pct_low or claude.five_hour.pct. The sensor key reference lists every key, with its unit and source:

  • Hardware: CPU, GPU, memory, fans and voltages.
  • FPS: the game in front, from the bundled PresentMon.
  • Claude Code and Codex: usage limits, reset times and sessions.
  • Custom: values your own scripts send with marquee push.

To see what this PC reports right now, run this in a terminal:

marquee sensors

marquee sensors --raw also lists the readings that the hardware source has but Marquee doesn’t map to a key.

5

Troubleshooting

Start with the tray: its status line and the lines under it say what’s wrong. Open logs has the detail.

The screen is busy

“L-Connect is using the screen”
Choose Take over the screen from L-Connect (see above).
There’s no takeover item in the menu
The tray isn’t running as administrator, and its menu says so. Quit it, then sign out and back in, or run marquee task start in an administrator terminal. If someone turned the logon task off or changed it, run marquee task install there first. For a one-off, marquee claim-screen in an administrator terminal hands the screen over once.
The takeover failed
A balloon and a menu line say why. Marquee never stops another service that depends on L-Connect’s: if one is running, L-Connect keeps the screen.
“Waiting for the screen”
Another program has it, such as a marquee run in a terminal or another user’s tray. Pause or close that one. If the screen was unplugged, Marquee finds it again when it’s back.

Readings are missing

A reading that’s missing or out of date shows as —.

No CPU temperature or motherboard sensors (LibreHardwareMonitor)
Install the PawnIO driver, and make sure the tray runs as administrator. Or switch to HWiNFO.
No GPU temperature, clock or power on an AMD card
Some cards don’t give them to LibreHardwareMonitor. Use HWiNFO.
Everything went stale with HWiNFO
HWiNFO’s Sensors window was closed, or Shared Memory Support is off.
No game FPS
FPS needs the tray running as administrator. The menu shows “Game FPS is off: Marquee isn’t running as administrator.” if it isn’t. FPS is measured for the app in front, so the desktop shows none.
No Claude Code limits
Marquee needs a native claude.exe install, or the desktop app’s bundled copy, signed in to a claude.ai subscription. An npm-only install isn’t enough. Check the account with /status in a terminal Claude session.
The editor shows readings, but the screen doesn’t
When the tray isn’t running, the editor fills in Sample values; the Test values panel says where each reading comes from. Run marquee sensors to see what the PC really reports.

Details: each key’s source and notes

How updates and signature checks work

  1. Once a day, the tray asks GitHub whether there’s a newer release. That single request is the only automatic one Marquee makes itself. It sends no account and no cookies.
  2. A newer version shows as a balloon and as Install Marquee <version>… in the menu. Nothing downloads until you click one.
  3. The tray downloads the installer and its signature into a folder only administrators can change. It checks the signature against the public key built into Marquee, and runs the installer only if it matches.
  4. The screen goes dark while the installer runs, and the new version starts. If the update doesn’t install, the screen comes back, a balloon gives the installer’s exit code and log, and the offer stays in the menu to try again.

A missing or wrong signature means nothing is installed, and the log says why. A tray without administrator rights can’t install updates: its offer, Download Marquee <version>…, opens the release page instead. Check for updates checks at any time. updates: off in config.yaml stops the daily check.

Details: updates Details: how releases are signed

Still stuck?

Open an issue on GitHub or email support@madjagstudios.com. A few lines from the log, from Open logs in the tray, help a lot.