Licence and activation
Activating LMX, offline codes, device seats and what happens offline.
LMX checks its licence at launch and nowhere else. There is no background timer, so nothing will ever interrupt a running show to re-check.
The Licence menu shows who this copy is licensed to, and holds everything below.
Activating
Online
- First launch shows Activate LMX with an Activate with browser button.
- Your browser opens a one-time sign-in link carrying this machine’s device code.
- Sign in, or create an account.
- The site issues a licence for this device and hands it straight back to LMX.
Offline
For a machine with no internet at all:
- Licence → Enter Offline Activation Code… shows a short device code, e.g.
RX78-EE9M-KG92-6M8. - On any device that does have internet, sign in at lmxlighting.com/offline-key and enter that device code.
- Copy the long licence code it gives you.
- Paste it into the offline dialog on the LMX machine and click Activate.
An offline-activated machine never stores an account token - deliberately, so a genuinely air-gapped desk never needs to phone home. It also means it cannot re-check itself silently later; it keeps using the offline code until someone signs in on that machine directly.
What is on disk
File (under ~/.lmx/) | Holds |
|---|---|
device_id.json | This machine’s permanent random ID, and its licence history |
license.json | The current signed licence code |
auth.json | Account token and profile (absent on offline-activated machines) |
The device ID is 8 random bytes generated on first run - not a hardware fingerprint. It never changes on its own. Deleting it makes the machine look brand new to the server, and the licence issued to the old ID no longer matches.
Running offline
A machine runs on its last confirmed licence for a while before LMX insists on reconfirming. Defaults:
| Setting | Default |
|---|---|
| Machines allowed | 1 |
| Offline limit | 30 days |
| Warning window | 10 days before the limit |
| Swap cooldown | 7 days |
- Days 0–19 - launches silently.
- Days 20–29 - a dismissible heads-up: “LMX hasn’t confirmed your licence online in N days.” The app opens normally.
- Day 30+ - the cached licence can no longer be trusted, and you get the activation flow.
A server that cannot be reached is treated as unreachable, not invalid: LMX falls back to the signed code on disk and evaluates it offline. A network hiccup never locks anyone out.
The one-time grace pass
The first licence problem of any kind - offline limit lapsed, licence expired, account rejected, corrupt licence file, machine limit reached - still lets the app launch, with a Continue anyway option. Any subsequent problem while that flag is set is a hard block, offering only Enter offline code, Try online now, or quit.
The flag clears the next time the licence is confirmed successfully, so it is “one free pass since things were last good”, not one per lifetime.
Grace is only offered to a device that has actually held a verified licence at some point. A brand-new install gets a hard block instead.
Moving to another machine
There is no separate transfer step - it happens through the machine limit. Activating a second machine while at the limit offers to swap: the least-recently-used device is deactivated and the new one licensed in the same step.
The old machine is not notified live. It keeps running on its cached licence until either its offline window runs out or it is relaunched and its own startup check finds the slot has moved.
To free a slot deliberately:
- Licence → Deactivate This Device… clears this machine’s local sign-in. It does not force an immediate re-activation: the stored licence is untouched and the app keeps running under its offline window until the next restart.
- lmxlighting.com/licences lists every active device with a Deactivate button. This is the authoritative one - it is what frees the machine-limit slot.
Swap cooldown: freeing a slot and then registering a genuinely new device starts a 7-day cooldown, during which another new device is turned away with the date it will be allowed. Re-activating a machine the account has seen before is unaffected. It exists to stop one licence being bounced around many machines.
Expiry
Every licence carries an expiry field; current beta licences have none set, so they do not expire. Where an expiry is set, it is baked into the signed code - so an offline machine can tell an expired licence with no internet at all - and is treated as a definite answer rather than “we could not confirm it”.