Options¶
Everything below is under gewis.servicePc, defined in
nix/modules/service-pc/.
Session¶
| Option | Default | Meaning |
|---|---|---|
enable |
false |
Turn the whole thing on |
user |
"gewis" |
Unprivileged user the session and its applications run as. The module creates it |
uid |
null |
Fixed uid, also used as the primary group's gid. Pin it where state outlives reinstalls |
workspaces |
1 |
Number of static workspaces |
multiMonitor |
false |
This host has more than one screen; enables per-monitor placement |
justPerfection |
false |
Load the Just Perfection extension |
Touch¶
| Option | Default | Meaning |
|---|---|---|
touch.enable |
false |
This host is a touchscreen with no keyboard or mouse |
touch.onScreenKeyboard |
true |
GNOME's on-screen keyboard |
See Touchscreens and workspaces.
Browser¶
The browser is always Firefox. The policy file below is Firefox's and the
launcher sets MOZ_ENABLE_WAYLAND.
| Option | Default | Meaning |
|---|---|---|
browser.enable |
false |
Run Firefox |
browser.url |
null |
URL to open. Exactly one of this or urlFile |
browser.urlFile |
null |
File read at launch, for when the URL is itself a secret |
browser.kiosk |
false |
Fullscreen once the window appears, by sending F11 until it takes |
browser.waitForUrl |
true |
Poll the URL before starting, so a fast-booting PC does not land on an error page |
browser.waitTimeout |
120 |
Seconds to poll before starting anyway; 0 waits forever |
kiosk waits for Firefox's window, raises it, and sends F11 through ydotool,
repeating the press until GNOME reports the window as fullscreen. Firefox keeps
only a fullscreen state it entered itself, and F11 is a toggle, so each press is
checked.
When it does not go fullscreen¶
kiosk runs as an ExecStartPost of the service-pc-browser user unit, so
everything it says is in that unit's journal. It is a user unit, so ask for it
by that name rather than with --user, which would look at root's own manager:
The helper always logs why it gave up, and the four messages mean different things:
org.gnome.Shell.Extensions.Windows never answered— the window-calls extension is not running, so nothing here can work. It is pulled in automatically bykioskand byworkspace/monitor, but GNOME disables an extension that does not declare support for the running shell version. Check withgnome-extensions list --enabledin the session, and look forJS ERRORin the shell's own log:sudo journalctl -b _COMM=gnome-shell.no window with wm_class 'firefox' … saw: …— the extension answered, but nothing it listed matched. Thesaw:list is the set of classes Mutter actually reports; if Firefox is in there under another name, that name is what the helper should be matching on.ydotool failed on attempt N: …— the keystroke never left the tool, and the message is ydotool's own. Almost alwaysydotooldnot running or its socket not readable; see the NFC page, which uses the same daemon.… is still not fullscreen after N F11 presses— the keystrokes went out and the window still is not fullscreen. The line after it dumps what GNOME reports for that window, so compare itswidth/heightagainst the monitor.
Applications¶
apps is an attribute set; the name is the attribute key.
| Option | Default | Meaning |
|---|---|---|
apps.<name>.package |
required | Package providing the application |
apps.<name>.exec |
null |
Command to run; defaults to the package's meta.mainProgram |
apps.<name>.wmClass |
<name> |
Window class the placement helper matches on |
Placement¶
Both the browser and each app take these:
| Option | Default | Meaning |
|---|---|---|
workspace |
null |
One-based workspace to move the window to |
monitor |
null |
One-based logical monitor to move it to, and maximise it there |
A window is placed on one or the other, never both, and monitor requires
multiMonitor. Leaving both null lets GNOME put the window wherever it likes.
A window that is placed is also maximised, so it fills the screen it landed on.
NFC reader¶
| Option | Default | Meaning |
|---|---|---|
nfcReader.enable |
false |
Run the background NFC reader |
nfcReader.vendorId |
"072f" |
USB vendor ID, from lsusb |
nfcReader.productId |
"2200" |
USB product ID, from lsusb |
See NFC reader.
Remote access¶
| Option | Default | Meaning |
|---|---|---|
remote.enable |
false |
Remote control of the live session over RDP |
remote.port |
3389 |
Port the RDP server listens on |
remote.username |
null |
Username clients authenticate with; defaults to user |
remote.passwordFile |
required when enabled | File holding the password, readable by user |
remote.openFirewall |
false |
Open the port on every interface |
remote.firewallInterfaces |
[ ] |
Interfaces to open the port on |
See Remote access.