Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
497 changes: 405 additions & 92 deletions README.md

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions haoskiosk/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Changelog

## v1.3.0 - February 2026

- Added more key bindings for opening/closing/rotating tabs and windows
- Add x11vnc server to facilitate remote viewing or debugging of kiosk
- Added 'screenshot' function to REST_API and gesture action commands
- Added `enable_inputs` and `disable_inputs` functions to REST_API to allow
locking down (and unlocking) inputs by disabling keyboard, mouse and
touch functions
- Added `mute_audio`, `unmute_audio` and `toggle_audio` functions to
REST_API to change audio state (`toggle_audio` can also be used in
gesture action commands)
- Converted default gestures in `config.yaml` to use internal
`kiosk.<function>` handlers rather than calling shell functions
- Added short list of built-in keyboard shortcuts
- Revamped `ultrasonic-trigger.py` example and added new functionality to
enable/disable inputs, mute/unmute audio, and rotate through a list of
URLs
- Added INSTRUCTIONS section to README.md (thanks: @cvroque)
- Added more details to README.

## v1.2.0 - January 2026

- Added ability to set HA theme in config.yaml
Expand Down
94 changes: 56 additions & 38 deletions haoskiosk/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
################################################################################
# Add-on: HAOS Kiosk Display (haoskiosk)
# File: Dockerfile
# Version: 1.2.0
# Version: 1.3.0
# Copyright Jeff Kosowsky
# Date: January 2026
# Date: February 2026
################################################################################

ARG BUILD_FROM
Expand All @@ -12,49 +12,66 @@ FROM $BUILD_FROM
ARG BUILD_VERSION
ENV ADDON_VERSION=${BUILD_VERSION}

# Install Luakit and necessary dependencies
#===============================================================================
##### Install X, Browser and all necessary dependencies
RUN apk update && apk add --no-cache \
xorg-server \
xf86-video-modesetting \
xf86-input-libinput \
libinput \
# libinput-tools \
udev \
libinput-udev \
libevdev \
mesa-dri-gallium \
mesa-egl \
mesa-gles \
libdrm \
libxkbcommon \
ttf-dejavu \
util-linux \
xdotool \
xinput \
xrandr \
xset \
unclutter-xfixes \
setxkbmap \
openbox \
onboard \
## Xserver and graphics
xorg-server \
xf86-video-modesetting \
mesa-dri-gallium \
mesa-egl \
mesa-gles \
libdrm \
### X utils
xdotool \
xinput \
xrandr \
xset \
# xev \
libxkbcommon \
setxkbmap \
### Input, udev
xf86-input-libinput \
libinput \
# libinput-tools \
udev \
libinput-udev \
libevdev \
evtest \
### Window, mouse, keyboard management
openbox \
onboard \
unclutter-xfixes \
ttf-dejavu \
### Linux utils
bash \
util-linux \
patch \
scrot \
### Full Timezone info
icu-data-full \
### Python libraries
py3-pip \
py3-xlib \
patch \
bash \
pulseaudio-utils \
# alsa-utils alsa-plugins-pulse \
# gstreamer-tools \
# gst-libav \
# VNC (for debugging) - run: x11vnc -display :0 -forever & \
x11vnc \
### Sound
pulseaudio-utils \
# alsa-utils alsa-plugins-pulse \
### Video
# gstreamer-tools \
# gst-libav \
### VNC (for debugging) - run: x11vnc -display :0 -forever & \
x11vnc \
# Browser
# luakit \
&& apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/v3.21/community luakit=2.3.6-r0 \
&& rm -rf /var/cache/apk/*
&& apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/v3.21/community luakit=2.3.6-r0 \
&& rm -rf /var/cache/apk/*

# Set the display variable
#===============================================================================

##### Set the display variable
ENV DISPLAY=:0

# Copy over 'xorg.conf.default' and lua 'userconf.lua' file
##### Copy over 'xorg.conf.default' and lua 'userconf.lua' file
COPY xorg.conf.default /etc/X11/
COPY userconf.lua /root/.config/luakit/
COPY translations/*.yaml /translations/
Expand All @@ -66,6 +83,7 @@ COPY mouse_touch_inputs.py gesture_commands.json /
COPY rest_server.py /
RUN pip install --no-cache-dir --break-system-packages aiohttp #Required for rest_server.py

#### Patches
# Need to patch 'unique_instance.lua' so that new instance urls overwrite active url rather than add new tab
COPY unique_instance.patch /usr/share/luakit/lib
RUN patch -p2 /usr/share/luakit/lib/unique_instance.lua < /usr/share/luakit/lib/unique_instance.patch
Expand Down
Loading