A simple shell application for a light kiosk mode
  • Rust 84.5%
  • Slint 15.5%
Find a file
audioprog 7f6163b774
All checks were successful
test / test (push) Successful in 9m52s
release / release (push) Successful in 6m17s
Set the version to 0.5.0
Cargo.toml still said 0.1.0 while the only tag was v0.4 — the version in
the binary comes from build.rs reading the git tag, so the manifest had
drifted unnoticed. 0.5.0 for the hashed password, the verified update
path and the move to Forgejo, all of which change existing installs.

Cargo.lock carries the crate's own version, and both workflows build
with --locked, so it has to move along or the next release fails before
it compiles anything.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 11:16:57 +00:00
.forgejo/workflows Move CI and updates from GitHub to Forgejo 2026-07-29 10:57:20 +00:00
.vscode first official version 2024-06-05 07:10:06 +02:00
src Move CI and updates from GitHub to Forgejo 2026-07-29 10:57:20 +00:00
ui Harden kiosk shell: hashed password, verified updates, working watchdog 2026-07-29 09:46:02 +00:00
.gitignore Harden kiosk shell: hashed password, verified updates, working watchdog 2026-07-29 09:46:02 +00:00
app.rc first official version 2024-06-05 07:10:06 +02:00
build.rs Fail the build when the icon cannot be embedded 2026-07-29 11:11:24 +00:00
Cargo.lock Set the version to 0.5.0 2026-07-29 11:16:57 +00:00
Cargo.toml Set the version to 0.5.0 2026-07-29 11:16:57 +00:00
icon.ico first official version 2024-06-05 07:10:06 +02:00
LICENSE Initial commit 2024-05-16 10:08:01 +02:00
NOTWENDIGE_AENDERUNGEN.md Move CI and updates from GitHub to Forgejo 2026-07-29 10:57:20 +00:00
README.md Move CI and updates from GitHub to Forgejo 2026-07-29 10:57:20 +00:00

winkioskshell

test

A simple shell application for a light kiosk mode

Configuration

The settings are stored as RON next to the user profile, in %APPDATA%\winkioskshell\. The settings window writes them; the fields are:

Field Meaning
client_application Full path of the application the kiosk starts and keeps in front.
password Argon2 hash of the password that unlocks the kiosk. A plain password written by an older version is hashed on the first successful check. Without a password the kiosk stays locked.
kill_processes Process names the watchdog terminates once a second. Defaults to explorer.exe and msedge.exe; shorten it if the client application embeds a browser you want to keep.

Failures that happen before a window is up — the client application not starting, a rejected update — are appended to winkioskshell.log in the same directory. There is no console to print them to.

Updates

On start the shell asks the forge for the latest release, picks the asset whose name matches its own executable and checks it against the SHA256SUMS asset published with it. Without that file, or on a mismatch, the update is refused and the reason is logged.

Source and repository are FORGE_API in src/release.rs and UPDATE_REPOSITORY in src/win_kiosk_shell.rs.

Building

The crate is Windows only and does not compile for Linux. Builds go through the x86_64-pc-windows-msvc target, which cross-compiles from Linux with cargo-xwin:

cargo xwin build --release --target x86_64-pc-windows-msvc --locked

That is what .forgejo/workflows/ runs; no Windows machine is involved.