Screen lock and screensaver
FAQ › EUZOS Desktop › Screen lock · Nederlands
What is it?
Screen security on EUZOS Desktop has three parts, all own code:
- Screen off: after a time without input the picture turns black (by default 10 min on battery and 30 min when plugged in; you choose 1 min to 1 h or Never), but never while something keeps the screen awake (a video).
- Screensaver: an animation (EUZOS logo, Aurora, Stars, Clock) after a time without input (by default 5 min on battery and 10 min when plugged in; 1 min to 1 h or Never).
- Lock screen: with Require sign-in again, the screensaver and screen off end in a lock screen; you unlock with your password or with the EUZOS app. Windows key + L locks at once.
The session keeps running while locked: windows, downloads, Chromium and the network carry on; only the picture and the input belong to the lock.
With a second screen (HDMI) all three cover every screen: the screensaver runs on the monitor too, the monitor shows only the sign-in background while locked, and it turns black with screen off. Nothing of your desktop stays visible there, also not on a monitor you plug in while the PC is locked.
This page also holds the full reference of the screen console command.
How do I…?
How do I lock the PC right now?
Press Windows key + L (PS/2 and USB keyboards), or choose Lock in the power menu on the bar. Turn off screen in the same menu also locks when Require sign-in again is on. From the console: screen lock lock.
How do I unlock?
On the lock screen (logo, time and date, a circle with your initials in your profile colour, your name, "Locked · <e-mail address>"):
- With password: type the password of the logged-in user and press Unlock (Enter). Online the PC checks it at the profile server; without a connection (or in an offline session) it checks it against the offline vault of this PC, which counts as an attempt as with offline sign-in.
- With the EUZOS app: scan the QR code and confirm. Only the same account unlocks; another account gives "Confirmed with a different account. Use your own account." and a new code.
- Sign out and switch user: signs the session out and shows the login screen, for another user.
On a tablet without a keyboard the on-screen keyboard appears when you tap the password field.
How do I set when the screensaver starts and the screen turns off?
Settings › Screen lock. On a laptop there are two sets, On battery and When plugged in (the set that applies now has a Now label); a desktop PC without a battery has one set. Each set has:
- Screensaver after: 1, 2, 5, 10, 15 or 30 min, 1 h or Never;
- Turn screen off after: the same choices, also Never.
Defaults: on battery the screensaver after 5 min and the screen off after 10 min; plugged in after 10 and 30 min. When you plug in or unplug, the other set applies at once. If the screensaver time is longer than the screen-off time, the screen simply turns off.
Below that: the Animation (four tiles with a sample; Preview shows it full screen without locking) and Require sign-in again, which decides whether the lock screen follows the screensaver and screen off. These settings belong to your profile and follow you to every PC.
Can I switch the screensaver and screen off off entirely?
Yes: choose Never for both (per power source). Locking stays possible: Windows key + L or Lock in the power menu always lock at once (the card says so at the bottom). Only an organisation policy can forbid Never (see below).
Why does the screen not turn off during a video?
The screen stays on while something keeps it awake (screen::lock::awake):
- a Linux app that plays sound (Chromium with a video with sound);
- a Wayland app with an idle inhibitor (
zwp_idle_inhibit_manager_v1; Chromium asks for it while a video plays, also without sound); - an EUZOS app that calls
screen::lock::keep_awake(ms).
Test it with screen lock wake <seconds>.
Why does "screen off" only make the picture black?
There is no backlight or DPMS driver yet (the UEFI GOP framebuffer has no DPMS; ACPI _BCM and the brightness keys are only logged). "Off" means the framebuffer gets nothing more. A key, mouse movement or touch turns it back on; that first input does nothing else. Backlight control is planned.
Can my organisation enforce screen settings?
Yes, through a signed line in the profile: beleid-scherm=max=<min>,vergrendelen. max limits the screensaver wait and the screen-off time on battery and plugged in (at least 1 min; Never then counts as the maximum); vergrendelen makes signing in again mandatory. Settings shows it: the longer choices and Never are faded and cannot be chosen, the rows say "Set by your organisation: at most … min", the lock switch says "Set by your organisation", and the policy is repeated below the card. The PC only accepts it with a valid signature and cannot write it back. An admin page to set it is planned.
How do I see the console without signing out?
Ctrl+Alt+F1 or Ctrl+Alt+T (on the ARM64 serial console Ctrl+T; over SSH screen console / screen back). The graphical screen stays in memory; the same keys bring it back. The console does not open while the PC is locked (SSH keeps working with its own login). In a production build showing the console needs an admin policy (see Console).
Details
- When (
kernel/src/screen/lock.rs::work, every round of the shell loop): the time since the last key, movement or touch (lock::input_seen) goes toeuzos_ui::screen_lock::target, which picks screensaver or screen off with the wait times of the power source now (crate::battery,on_net). A switch between mains and battery counts immediately (the log saysscreen security: now on battery). If the screensaver wait is longer than screen off, the screen goes off directly; after the screensaver the screen goes off at the normal screen-off time. - Drawing: the screensaver and the lock screen have their own buffer; the desktop and the windows carry on in theirs. Per frame only the changed rectangles go to the framebuffer. No toasts or panels lie over the screensaver or the lock (only the on-screen keyboard on the lock).
- Animations (
screen_lock::Animation, drawn byscreen_lock::Game):
| Animation | Code | Frames/s |
|---|---|---|
| EUZOS logo | logo | 15 |
| Aurora | aurora | 6 |
| Stars | stars (legacy sterren) | 15 |
| Clock | clock (legacy klok) | 10 |
The codes are English since 27-10-2026; the legacy Dutch codes are still read from the profile and accepted on the console (Animation::off_code).
- Unlock with password: thread
unlock,profile::unlock_check. Online it does a password login request (the same check as at login); only the same account unlocks, and the extra session that request creates is logged out immediately. "Too often" from the server is shown. Offline:offline::check. The password lives in aSecretthat wipes itself. - Unlock with the app: a new login attempt (
profile::wait_for_phone), refreshed like on the login screen; the profile from the server is not used and its session is logged out (lock::app_profile). - Defaults (
screen_lock::Preference::default,euzos_profile::SCREEN_DEFAULTS): on battery screensaver 5 min and screen off 10 min, plugged in 10 and 30 min; the logo; lock on.
Reference
Console commands
screen (legacy alias scherm). Subcommands marked test build only exist in builds without the production feature.
| Command | Arguments | What it does |
|---|---|---|
screen | (no or unknown argument) | prints the usage |
screen login | — (legacy inlog) | the login screen with a new login code |
screen desktop | [business|private] [<language code>] (legacy zakelijk, prive, privé) | the desktop with a sample profile, without logging in (refused when someone is logged in) |
screen off | — (legacy uit) | back to the console; a logged-in profile is signed out |
screen console | — | show the console without signing out (also Ctrl+Alt+F1/T) |
screen back | — (legacy terug) | the graphical screen again |
screen welcome | — (legacy welkom) | show the welcome panel with the recent apps again (desktop only) |
screen theme | — (legacy thema) | show the theme, the choice and the hour (automatic: light from 7 to 19 h) |
screen theme | dark|light|automatic|auto (codes donker, licht, automatisch also accepted) | choose the theme (desktop only; the login screen always follows automatic) |
screen lock | — (legacy slot) | state (normal, screensaver, locked, screen off), seconds without input, the power source now (battery/mains) with its screensaver and screen-off times (or never), animation, lock on/off, awake, policy max |
screen lock lock | — (legacy vergrendel) | lock now |
screen lock screensaver | [logo|aurora|stars|clock] (legacy sterren, klok) | start the screensaver now (desktop only); without argument the user's animation |
screen lock wake | <seconds> (legacy wakker) | keep the screen awake for that long |
screen photo | — (legacy foto) | screenshot of the composed screen as PNG in memory (at most 1280 wide) |
screen photo part | <N> (legacy deel) | part N of that PNG as b64 … lines (36 KiB per part) |
screen app | <app name> | test build: open an app (euzos_ui::welcome::of_name): browser, terminal, email, files, hardware, mcp, ssh, settings, profile; the profile words (bestanden, instellingen, profiel) are hidden aliases |
screen tap | <x> <y> (legacy tik) | test build: a tap at pixel (x, y) |
screen wheel | <steps> (legacy wiel) | test build: the mouse wheel (positive = down) |
screen finger | tap <x> <y> | long <x> <y> [ms] | swipe <x0> <y0> <x1> <y1> [ms] | pinch <x> <y> <from> <to> [ms] (legacy vinger; tik, lang, veeg, knijp) | test build: simulated touchscreen reports |
screen type | <text…> (legacy typ) | test build: type text |
Notes:
- An unknown animation word falls back to the user's animation.
screen loginandscreen backare allowed without a session in a production build;screen consoleis an admin command.- Camera/microphone test windows (
camera test) are on Camera.
Functions and modules
| Function / module | Role |
|---|---|
kernel::screen::command | the screen dispatcher |
kernel::screen::{start_up, login_show, off, hide, back, on_desktop} | login screen at boot, show it, console, back |
kernel::screen::lock::{work, input_seen, keep_awake, awake, active, locked, command} | when, input, awake, state, screen lock |
kernel::screen::lock::app_profile | QR unlock with the EUZOS app |
kernel::screen::theme::command | screen theme |
kernel::screen::welcome::command | screen welcome |
kernel::profile::unlock_check | password check for the lock (online or offline) |
kernel::offline::check | check against the offline vault |
kernel::input::LOCK | Windows key + L |
kernel::boot_screen::screen_txt | read SCREEN.TXT |
euzos_ui::screen_lock::{target, off_after_s, screensaver_after_s, lock, Animation, Game, LockScreen, Preference, Timeouts, Policy, WAIT_TIMES, NEVER} | rules, animations, lock screen |
euzos_ui::apps::screen | Settings › Screen lock card |
euzos_profile::ScreenPolicy | the signed beleid-scherm |
euzos_ui::power::{DESKTOP, LOGIN, LOGIN_PRODUCTION} | power menu lines (Lock, Turn off screen, Sign out, Restart / Restart, Shut down, Console) |
Config files
| File | Key | Values | Meaning |
|---|---|---|---|
\EOS\FW\SCREEN.TXT (legacy SCHERM.TXT) | first word (lines with # and empty lines skipped) | console; login, inlog, graphical, grafisch or empty = default | console: no boot screen and no login screen |
Profile settings (stored on the profile server; the older keys are Dutch on the wire, the wait times per power source are English keys since 28-10-2026; the animation values are English since 27-10-2026, the profile server accepts both):
| Key | Values | Default |
|---|---|---|
screensaver-battery | 1, 2, 5, 10, 15, 30, 60 (minutes), never | 5 |
screensaver-mains | same | 10 |
screen-off-battery | same | 10 |
screen-off-mains | same | 30 |
screensaver (legacy) | aan, uit | — (without the new keys: aan uses screensaver-wachttijd for both power sources, uit means never) |
screensaver-wachttijd (legacy) | 1, 2, 5, 10, 15, 30 (minutes) | 5 |
screensaver-animatie | logo, aurora, stars, clock (legacy sterren, klok still read) | logo |
vergrendelen | aan, uit | aan |
beleid-scherm (signed only, not writable by the PC) | max=<min>, vergrendelen | none |
API endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /api/pc/inloggen (English /api/pc/login) | password check when unlocking online |
| GET | /api/sessie/<S>?pc=<G> (English /api/session/{id}) | QR unlock with the EUZOS app |
| POST | /api/profiel/instellingen (English /api/profile/settings) | write back the wait times, animation and lock settings |
A dedicated /api/pc/unlock endpoint is planned (it would avoid the short extra session).
See also
- docs/SCREEN-SECURITY.md
- docs/DESKTOP-DESIGN.md (5. Booting and the terminal, 7. The power button)
- docs/OFFLINE-LOGIN.md
- docs/WAYLAND.md
- FAQ: Login, Desktop and apps, Input, Console
EUZOS