From df180120aa1202af63afa68dd23bb84529bcb980 Mon Sep 17 00:00:00 2001 From: nearxos Date: Mon, 23 Feb 2026 22:49:58 +0200 Subject: [PATCH] Update TODO and README files to reflect enhancements in kiosk functionality and provisioning scripts Revise the TODO list to mark completed tasks related to taskbar icon changes, dark theme fixes, and script optimizations for kiosk mode. Update the README files to clarify the structure of the cloud-init fileserver, including new touch-friendly Chromium flags and the addition of a no-select extension for kiosk use. Remove the obsolete touchscreen quirks file to streamline the project. These changes improve documentation clarity and reflect the latest enhancements in the provisioning process. --- TODO.MD | 15 ++++++++--- emmc-provisioning/README.md | 25 +++++++++---------- .../cloud-init/fileserver/README.md | 10 ++++---- .../fileserver/touchscreen-touch-only.quirks | 11 -------- emmc-provisioning/scripts/bump-revision.sh | 10 ++++---- .../scripts/pre-commit-revision.sh | 10 ++++---- 6 files changed, 38 insertions(+), 43 deletions(-) delete mode 100644 emmc-provisioning/cloud-init/fileserver/touchscreen-touch-only.quirks diff --git a/TODO.MD b/TODO.MD index b597f71..07bd78c 100644 --- a/TODO.MD +++ b/TODO.MD @@ -1,5 +1,12 @@ - -- change icon on taskbar. -- fix dark theme. -- check for duplicates commands in all scripts and cloud init during deployment. +- [x] change icon on taskbar (PiXtrix icon theme + icon cache rebuild). +- [x] fix dark theme (Adwaita-dark, gtk-3.0/settings.ini, gsettings at login). +- [x] check for duplicates commands in all scripts and cloud init during deployment. +- [x] fix rotation race (kanshi config pre-created in step 11, restart in login/oneshot scripts). +- [x] fix five-tap overlay for Wayland (layer-shell, gir1.2-gtklayershell-0.1). +- [x] add VNC (wayvnc) to provisioning (step 06). +- [x] add touch-friendly Chromium flags (start-chromium.sh). +- [x] add no-select extension to prevent text selection in kiosk (chromium-kiosk-no-select/). +- [x] fix curl timeout in report_status (first-boot.sh). +- [ ] test text selection fix on different websites. +- [ ] verify five-tap overlay works on device after full provision. diff --git a/emmc-provisioning/README.md b/emmc-provisioning/README.md index 39c77f5..eb3727f 100644 --- a/emmc-provisioning/README.md +++ b/emmc-provisioning/README.md @@ -25,24 +25,23 @@ emmc-provisioning/ ├── scripts/ Deployment and one-off scripts │ ├── deploy-to-proxmox.sh Deploy to Proxmox host + LXC │ ├── sync-portal-files-to-lxc.sh Sync cloud-init/first-boot assets to file server (LXC) -│ ├── setup-network-boot-on-lxc.sh Configure PXE/dnsmasq for network boot -│ ├── install-usbboot-on-host.sh Build and install rpiboot on the host +│ ├── deploy-dashboard-to-lxc.sh Deploy dashboard to LXC │ └── ... (other deploy/monitor scripts) ├── dashboard/ Flask web UI (runs in LXC or standalone) │ ├── app.py │ └── README.md ├── cloud-init/ First-boot and file-server assets -│ ├── first-boot.sh Main first-boot script (run by cloud-init) -│ ├── first-boot.md Documentation for first-boot.sh -│ ├── start-chromium.sh Chromium kiosk launcher (→ file server) -│ ├── user-data-remote-gnss.example Example cloud-init user-data (curl first-boot.sh) -│ ├── config-files/ LightDM, Maliit, one-shots (.desktop + scripts) -│ │ ├── chromium-kiosk.desktop -│ │ ├── 01-set-rotation-once.desktop -│ │ ├── 02-set-wallpaper-once.desktop -│ │ └── ... -│ ├── files-from-guard/ Plymouth, splash assets; README of required files -│ └── fix-reterminal-display.sh One-time fix script (splash, rotation, wallpaper) +│ ├── first-boot.sh Main first-boot script (two-phase provisioning) +│ ├── first-boot.conf Active config (not committed with secrets) +│ ├── first-boot.conf.example Reference config +│ ├── user-data-remote-gnss.example Example cloud-init user-data +│ └── fileserver/ Assets served by the portal file server +│ ├── README.md Layout reference +│ ├── steps/ Step scripts (01–13) sourced by first-boot.sh +│ ├── chromium-kiosk-no-select/ Chromium extension (disable text selection) +│ ├── start-chromium.sh Chromium kiosk launcher +│ ├── five-tap-close-chromium.py 5-tap overlay (Wayland layer-shell) +│ └── ... Desktop files, config, theme, splash ├── lxc/ LXC config snippets (dnsmasq, nftables) └── network-client/ For network-booted devices ├── provisioning-client.sh Register + poll, then Deploy or Backup diff --git a/emmc-provisioning/cloud-init/fileserver/README.md b/emmc-provisioning/cloud-init/fileserver/README.md index 349a62d..df40505 100644 --- a/emmc-provisioning/cloud-init/fileserver/README.md +++ b/emmc-provisioning/cloud-init/fileserver/README.md @@ -15,15 +15,15 @@ Sync to the LXC with: | Path | Purpose | |------|---------| | `steps/01-hostname.sh` … `steps/13-reboot.sh` | Step scripts sourced by `first-boot.sh` | -| `start-chromium.sh` | Chromium kiosk launcher | -| `five-tap-close-chromium.py` | 5-tap overlay to close Chromium | +| `start-chromium.sh` | Chromium kiosk launcher (touch-friendly flags) | +| `five-tap-close-chromium.py` | 5-tap overlay to close Chromium (Wayland layer-shell) | | `chromium-kiosk.desktop` | Autostart for Chromium kiosk | | `chromium-kiosk-launcher.desktop` | Desktop icon to restart Chromium | | `five-tap-close-chromium.desktop` | Autostart for the 5-tap overlay | -| `set-rotation-at-login.sh` / `.desktop` | Per-login kanshi rotation from cmdline | -| `01-set-rotation-once.sh` / `.desktop` | One-shot: first-login rotation + dark theme | +| `chromium-kiosk-no-select/` | Chromium extension: disables text selection for kiosk | +| `set-rotation-at-login.sh` / `.desktop` | Per-login kanshi rotation + kanshi restart | +| `01-set-rotation-once.sh` / `.desktop` | One-shot: first-login rotation + dark theme + kanshi restart | | `02-set-wallpaper-once.sh` / `.desktop` | One-shot: wallpaper via swaybg | -| `fix-reterminal-display.sh` | Utility: re-apply DSI driver fix | | `99-default-session.conf` | LightDM → rpd-labwc session | | `99-wallpaper.conf` | LightDM greeter wallpaper | | `maliit-keyboard.desktop` | Maliit on-screen keyboard autostart | diff --git a/emmc-provisioning/cloud-init/fileserver/touchscreen-touch-only.quirks b/emmc-provisioning/cloud-init/fileserver/touchscreen-touch-only.quirks deleted file mode 100644 index c964c39..0000000 --- a/emmc-provisioning/cloud-init/fileserver/touchscreen-touch-only.quirks +++ /dev/null @@ -1,11 +0,0 @@ -# libinput local overrides: make touchscreen touch-only (no pointer emulation). -# Prevents touch-drag from being interpreted as mouse selection in Chromium. -# Match reTerminal DM Goodix touchscreen; disables INPUT_PROP_POINTER so -# libinput sends only touch events — scrolling works, text selection does not. -# -# Install to: /etc/libinput/local-overrides.quirks -# Then: udevadm trigger (or reboot). See device-quirks.html in libinput doc. - -[Touchscreen touch-only for kiosk] -MatchName=*Goodix*TouchScreen* -AttrInputProp=-INPUT_PROP_POINTER diff --git a/emmc-provisioning/scripts/bump-revision.sh b/emmc-provisioning/scripts/bump-revision.sh index 5976e34..2f6a727 100644 --- a/emmc-provisioning/scripts/bump-revision.sh +++ b/emmc-provisioning/scripts/bump-revision.sh @@ -28,11 +28,11 @@ TRACKED=( emmc-provisioning/dashboard/templates/portal_files.html emmc-provisioning/cloud-init/first-boot.sh emmc-provisioning/cloud-init/first-boot.conf - emmc-provisioning/cloud-init/start-chromium.sh - emmc-provisioning/cloud-init/01-set-rotation-once.sh - emmc-provisioning/cloud-init/02-set-wallpaper-once.sh - emmc-provisioning/cloud-init/set-rotation-at-login.sh - emmc-provisioning/cloud-init/fix-reterminal-display.sh + emmc-provisioning/cloud-init/fileserver/start-chromium.sh + emmc-provisioning/cloud-init/fileserver/01-set-rotation-once.sh + emmc-provisioning/cloud-init/fileserver/02-set-wallpaper-once.sh + emmc-provisioning/cloud-init/fileserver/set-rotation-at-login.sh + emmc-provisioning/cloud-init/fileserver/five-tap-close-chromium.py emmc-provisioning/scripts/deploy-to-proxmox.sh emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh emmc-provisioning/scripts/sync-portal-files-to-lxc.sh diff --git a/emmc-provisioning/scripts/pre-commit-revision.sh b/emmc-provisioning/scripts/pre-commit-revision.sh index a7f5a14..66368a3 100644 --- a/emmc-provisioning/scripts/pre-commit-revision.sh +++ b/emmc-provisioning/scripts/pre-commit-revision.sh @@ -25,11 +25,11 @@ git add emmc-provisioning/scripts/bump-revision.sh \ emmc-provisioning/dashboard/templates/portal_files.html \ emmc-provisioning/cloud-init/first-boot.sh \ emmc-provisioning/cloud-init/first-boot.conf \ - emmc-provisioning/cloud-init/start-chromium.sh \ - emmc-provisioning/cloud-init/01-set-rotation-once.sh \ - emmc-provisioning/cloud-init/02-set-wallpaper-once.sh \ - emmc-provisioning/cloud-init/set-rotation-at-login.sh \ - emmc-provisioning/cloud-init/fix-reterminal-display.sh \ + emmc-provisioning/cloud-init/fileserver/start-chromium.sh \ + emmc-provisioning/cloud-init/fileserver/01-set-rotation-once.sh \ + emmc-provisioning/cloud-init/fileserver/02-set-wallpaper-once.sh \ + emmc-provisioning/cloud-init/fileserver/set-rotation-at-login.sh \ + emmc-provisioning/cloud-init/fileserver/five-tap-close-chromium.py \ emmc-provisioning/scripts/deploy-to-proxmox.sh \ emmc-provisioning/scripts/deploy-dashboard-to-lxc.sh \ emmc-provisioning/scripts/sync-portal-files-to-lxc.sh \