Files
kiosk-prod-screens/sway-config
T
2026-05-27 22:00:48 +02:00

66 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Konfiguracja sway dla kiosku dwuekranowego
# Plik docelowy: /home/kiosk/.config/sway/config
#
# Nazwy wyjść wideo wykryj BEZ uruchomionego sway (działa zawsze jako root):
# for p in /sys/class/drm/card*-*; do echo "$(basename $p | sed 's/card[0-9]*-//'): $(cat $p/status)"; done
#
# lub gdy sway/kiosk JUŻ działa:
# WAYLAND_DISPLAY=wayland-0 XDG_RUNTIME_DIR=/run/kiosk wlr-randr
#
# Wpisz właściwe nazwy poniżej:
set $OUTPUT_LEFT DP-1
set $OUTPUT_RIGHT HDMI-1
# --- Wyjścia wideo ---
output * bg #000000 solid_color
# Opcjonalnie: rotacja per-wyjście (odkomentuj jeśli wymagana)
# output $OUTPUT_LEFT transform 270
# output $OUTPUT_RIGHT transform 270
# Przypisanie workspace do ekranów
workspace 1 output $OUTPUT_LEFT
workspace 2 output $OUTPUT_RIGHT
# --- Przypisanie aplikacji do workspaces ---
# Chromium (prawy ekran — workspace 2)
# --app=URL generuje app_id: "chrome-<hash>-Default" — używamy regex
assign [app_id="~^chrome"] workspace 2
for_window [app_id="~^chrome"] move to workspace 2, fullscreen enable
# Prezentacja LibreOffice Impress (lewy ekran — workspace 1)
# LO zawsze otwiera się na workspace 1 — assign to potwierdza
assign [app_id="soffice"] workspace 1
assign [class="libreoffice-impress"] workspace 1
for_window [app_id="soffice"] fullscreen enable
for_window [class="libreoffice-impress"] fullscreen enable
# Jeśli powyższe nie działają, sprawdź rzeczywistą klasę:
# WAYLAND_DISPLAY=wayland-0 XDG_RUNTIME_DIR=/run/kiosk swaymsg -t get_tree | grep -E 'app_id|class'
# --- Wygląd ---
default_border none
default_floating_border none
hide_edge_borders both
# Ukryj kursor — niewidoczny motyw XCursor (1×1 px, całkowicie przezroczysty)
# Działa niezależnie od pozycji kursora i bez dodatkowych pakietów.
# Plik binarny XCursor tworzony przez printf przy każdym starcie sway.
# Jeśli motyw nie zdąży załadować się przed pierwszym rysowaniem → hide_cursor 1 jako fallback.
seat * hide_cursor 1
seat * xcursor_theme blank 1
exec_always bash -c '
D=/home/kiosk/.icons/blank/cursors
mkdir -p "$D"
# 68-bajtowy XCursor: 1×1 px, hotspot 0,0, ARGB 0x00000000
for n in left_ptr default pointer crosshair text watch wait move size_all fleur; do
printf "\x58\x63\x75\x72\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x02\x00\xfd\xff\x01\x00\x00\x00\x1c\x00\x00\x00\x24\x00\x00\x00\x02\x00\xfd\xff\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00" > "$D/$n"
done
printf "[Icon Theme]\nName=blank\n" > /home/kiosk/.icons/blank/index.theme'
# Wygaszanie ekranów przy uśpieniu (bez -w: ignoruje inhibitory Chromium)
exec swayidle before-sleep "wlopm --off '*'"
# Uruchom skrypt kiosku
exec /home/kiosk/kiosk-manager.sh