From 6f18a2f8971e89593536773ed32eaf1141cd98a5 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 16 Jun 2026 02:21:09 +0000 Subject: [PATCH 1/2] fix: detect touch screens dynamically instead of hardcoding Wacom device name The xinput loop now scans all input devices at startup, matches anything with "touch" or "finger" in the name (excluding touchpads/trackpads), and attempts to enable Wacom touch gestures on each match. Non-Wacom devices silently ignore the set-prop call, so the loop is safe on any hardware. https://claude.ai/code/session_01EyjEQLWbTXcZgbMDarf7NU --- ubuntu-based-kiosk-v1.0.2.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ubuntu-based-kiosk-v1.0.2.sh b/ubuntu-based-kiosk-v1.0.2.sh index 95a8355..cef1e63 100644 --- a/ubuntu-based-kiosk-v1.0.2.sh +++ b/ubuntu-based-kiosk-v1.0.2.sh @@ -7345,8 +7345,13 @@ for i in {1..10}; do sleep 1 done -# Enable Wacom touch gesture support so two-finger swipe works after reboot -xinput set-prop "Wacom HID 48E3 Finger touch" "Wacom Enable Touch Gesture" 1 2>/dev/null || true +# Enable multi-touch gesture support for any detected touch screen +# Wacom devices require "Wacom Enable Touch Gesture" to be set (defaults to 0). +# The set-prop call is silently ignored for non-Wacom devices that don't have this property. +# Excludes touchpads — only targets touch screens and finger-touch digitizers. +while IFS= read -r dev; do + xinput set-prop "$dev" "Wacom Enable Touch Gesture" 1 2>/dev/null || true +done < <(xinput list --name-only 2>/dev/null | grep -i "touch\|finger" | grep -iv "touchpad\|trackpad") exec node_modules/electron/dist/electron . \ --no-sandbox --disable-gpu-sandbox --disable-dev-shm-usage \ From 00dd806e9c749d795ad25598846833d34e0937cd Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 16 Jun 2026 02:23:43 +0000 Subject: [PATCH 2/2] chore: bump version to v1.0.3 and rename script file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update all version strings (header, SCRIPT_VERSION, JS VERSION constant) and rename ubuntu-based-kiosk-v1.0.2.sh → ubuntu-based-kiosk-v1.0.3.sh. Update README with v1.0.3 change log and archive v1.0.2 as previous. https://claude.ai/code/session_01EyjEQLWbTXcZgbMDarf7NU --- Readme.md | 16 ++++++++++++---- ...osk-v1.0.2.sh => ubuntu-based-kiosk-v1.0.3.sh | 8 ++++---- 2 files changed, 16 insertions(+), 8 deletions(-) rename ubuntu-based-kiosk-v1.0.2.sh => ubuntu-based-kiosk-v1.0.3.sh (99%) diff --git a/Readme.md b/Readme.md index 45a1d1c..e64c767 100644 --- a/Readme.md +++ b/Readme.md @@ -1,6 +1,6 @@ # Ubuntu Based Kiosk -**Current Version:** 1.0.2 (check script header for latest version) +**Current Version:** 1.0.3 (check script header for latest version) **Built with Claude Sonnet 4.6 AI assistance** **License:** GPL v3 - Keep derivatives open source **Repository:** https://github.com/outis1one/ubuntu-based-kiosk/ @@ -1084,9 +1084,17 @@ See the LICENSE file in the repository for full terms. ## Project Status & Future Plans -**Current Version:** 1.0.2 +**Current Version:** 1.0.3 -**Recent Updates (v1.0.2):** +**Recent Updates (v1.0.3):** +- **Touch screen detection:** startup now auto-detects any touch screen (Wacom, ELAN, eGalax, Goodix, etc.) instead of requiring a hardcoded device name +- **Upgrade reliability:** `start.sh` is now refreshed on every upgrade alongside `main.js` and `preload.js` +- **Upgrade fix:** node_modules no longer wiped during upgrade — preserves the ~120MB Electron binary so upgrades don't fail on slow/unreliable connections +- **Authelia fix:** 10-second timeout on Authelia login fetch prevents white screen when Authelia is slow to respond +- **Authelia config:** clearer YAML merge instructions with before/after examples to prevent duplicate `access_control:` block mistake +- **Upgrade fix:** config backup cleanup now uses `sudo rm` to avoid "Operation not permitted" error + +**Previous (v1.0.2):** - **Authelia Auto-Login addon** (`Addons → 5`) — authenticates with Authelia SSO on every startup; password stored encrypted (AES-256 keyed from machine ID, not plain text); prints full Dockerized Authelia server-side setup after configuration - **Bug fix:** PipeWire config dirs were created as root at step [5.5/27], causing "Permission denied" on fresh installs - **README:** install commands no longer hardcode version numbers — always fetch latest from GitHub @@ -1151,4 +1159,4 @@ Special thanks to the maintainers of all upstream projects that make Ubuntu Base --- *Last Updated: June 15, 2026* -*Version: 1.0.2* +*Version: 1.0.3* diff --git a/ubuntu-based-kiosk-v1.0.2.sh b/ubuntu-based-kiosk-v1.0.3.sh similarity index 99% rename from ubuntu-based-kiosk-v1.0.2.sh rename to ubuntu-based-kiosk-v1.0.3.sh index cef1e63..a94355b 100644 --- a/ubuntu-based-kiosk-v1.0.2.sh +++ b/ubuntu-based-kiosk-v1.0.3.sh @@ -1,9 +1,9 @@ #!/bin/bash ################################################################################ -### Ubuntu Based Kiosk v1.0.2 ### +### Ubuntu Based Kiosk v1.0.3 ### ################################################################################ # -# RELEASE v1.0.2 - Authelia Auto-Login & Bug Fixes +# RELEASE v1.0.3 - Touch Screen Detection & Upgrade Reliability # - Authelia auto-login addon (Addons menu → 5) # Password encrypted with AES-256-CBC keyed from /etc/machine-id # Authenticates via Authelia API on every startup before sites load @@ -68,7 +68,7 @@ set -euo pipefail ### SECTION 1: CONSTANTS & GLOBALS ################################################################################ -SCRIPT_VERSION="1.0.2" +SCRIPT_VERSION="1.0.3" KIOSK_USER="kiosk" BUILD_USER="${SUDO_USER:-$(whoami)}" KIOSK_HOME="/home/${KIOSK_USER}" @@ -4058,7 +4058,7 @@ process.on('uncaughtException',(e)=>{ }); const CONFIG_FILE=path.join(__dirname,'config.json'); -const VERSION='1.0.2'; +const VERSION='1.0.3'; let mainWindow,views=[],hiddenViews=[],tabs=[],currentIndex=0,showingHidden=false; let pinWindow=null,promptWindow=null,pauseWindow=null,htmlKeyboardWindow=null;