Skip to content

[BUG] Kwin wayland mode KDE flaky non latin character support with lack of virtual-keyboard-unstable-v1 protocol #385

@fl0wfr

Description

@fl0wfr

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Hello,

I tried to enable PIXELFLUX_WAYLAND which works flawlessly, but I noticed that the keyboard layout is messed up (I set it to fr-fr-azerty).
For example, if I type "é" in a shell, I get the error "e9: unknown command", same for other special characters on the keyboard, always returning a letter followed by a number.
If I set PIXELFLUX_WAYLAND to false, no issue.

Thanks for your help.

Expected Behavior

No response

Steps To Reproduce

Simply create the container with the params provided, run konsole and type some special characters (for example characters with accentuation).

Environment

- OS: Rocky Linux 10
- How docker service was installed: From official Docker repository

CPU architecture

x86-64

Docker creation

services:
  webtop:
    image: lscr.io/linuxserver/webtop:fedora-kde
    container_name: webtop
    hostname: webtop
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - TITLE=Webtop
      - DRINODE=/dev/dri/renderD128
      - DRI_NODE=/dev/dri/renderD128
      - PIXELFLUX_WAYLAND=true
      - DISABLE_IPV6=true
      - DISABLE_DRI3=true
      - LC_ALL=fr_FR.UTF-8
      - KEYBOARD=fr-fr-azerty
      - DOCKER_MODS=linuxserver/mods:universal-package-install
      - SHELL=/bin/bash
    volumes:
      - /docker/webtop:/config
    ports:
      - 3000:3000
      - 3001:3001
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
    group_add:
      - "998"
    shm_size: "1gb"
    restart: unless-stopped
    security_opt:
      - seccomp:unconfined

Container logs

[mod-init] Running Docker Modification Logic
[mod-init] Adding linuxserver/mods:universal-package-install to container
[mod-init] Downloading linuxserver/mods:universal-package-install from lscr.io
[mod-init] Installing linuxserver/mods:universal-package-install
[mod-init] linuxserver/mods:universal-package-install applied to container
[migrations] started
[migrations] no migrations found
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
[ls.io-init] Generating labwc rc.xml from template
which: no nvidia-smi in (/command:/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
**** adding /dev/dri/renderD128 to video group nginx with id 998 ****
**** Adding firefox to OS package install list ****
**** Adding keepassxc to OS package install list ****
**** Adding spectacle to OS package install list ****
**** Adding unifont-fonts to OS package install list ****
**** Adding unzip to OS package install list ****
[pkg-install-init] **** Installing all mod packages ****
Mise à jour et chargement des dépôts :
 RPM Fusion for Fedora 43 - Nonfree - U 100% |  10.7 KiB/s |  28.6 KiB |  00m03s
 RPM Fusion for Fedora 43 - Free - Upda 100% |  38.6 KiB/s |  89.5 KiB |  00m02s
 RPM Fusion for Fedora 43 - Nonfree     100% |  32.8 KiB/s | 100.2 KiB |  00m03s
 RPM Fusion for Fedora 43 - Free        100% |  86.0 KiB/s | 193.9 KiB |  00m02s
 Fedora 43 - x86_64 - Updates           100% |   9.2 MiB/s |  19.2 MiB |  00m02s
 Fedora 43 openh264 (From Cisco) - x86_ 100% |   3.3 KiB/s |   5.8 KiB |  00m02s
 Fedora 43 - x86_64                     100% |   9.9 MiB/s |  35.4 MiB |  00m04s
Dépôts chargés.
Le paquet "firefox-146.0-3.fc43.x86_64" est déjà installé.
La taille totale des paquets entrants est de 26 MiB. Un téléchargement de 26 MiB est nécessaire.
Paquet                   Architecture Version                     Dépôt      Taille
Après cette opération, 118 MiB supplémentaires seront utilisés (+118 MiB, -0 B).
Installation de :
 keepassxc               x86_64       2.7.11-1.fc43               updates  30.6 MiB
 spectacle               x86_64       1:6.5.4-1.fc43              updates   6.6 MiB
 unifont-fonts           noarch       16.0.01-6.fc43              fedora   16.4 MiB
 unzip                   x86_64       6.0-67.fc43                 fedora  386.3 KiB
Installation des dépendances :
 accounts-qml-module-qt6 x86_64       0.7^20231216.05e79eb-6.fc43 fedora  278.0 KiB
 botan2                  x86_64       2.19.5-15.fc43              fedora    5.9 MiB
 kf6-bluez-qt            x86_64       6.21.0-1.fc43               updates   1.3 MiB
 kf6-purpose             x86_64       6.21.0-1.fc43               updates   2.1 MiB
 libargon2               x86_64       20190702-8.fc43             fedora   49.0 KiB
 libgfortran             x86_64       15.2.1-5.fc43               updates   3.4 MiB
 minizip-ng-compat       x86_64       4.0.10-2.fc43               fedora  162.5 KiB
 openblas                x86_64       0.3.29-2.fc43               fedora  111.7 KiB
 openblas-serial         x86_64       0.3.29-2.fc43               fedora   41.5 MiB
 opencv-core             x86_64       4.11.0-11.fc43              fedora    4.0 MiB
 opencv-imgproc          x86_64       4.11.0-11.fc43              fedora    5.2 MiB
 pcsc-lite-libs          x86_64       2.3.3-2.fc43                fedora   59.9 KiB
 tbb                     x86_64       2022.2.0-2.fc43             fedora  413.6 KiB
Résumé de la transaction :
 Installation :     17 paquets
[ 1/17] unzip-0:6.0-67.fc43.x86_64      100% |   1.8 MiB/s | 183.7 KiB |  00m00s
[ 2/17] unifont-fonts-0:16.0.01-6.fc43. 100% |  11.5 MiB/s |   1.9 MiB |  00m00s
[ 3/17] spectacle-1:6.5.4-1.fc43.x86_64 100% |  16.5 MiB/s |   2.3 MiB |  00m00s
[ 4/17] libargon2-0:20190702-8.fc43.x86 100% |   1.7 MiB/s |  28.1 KiB |  00m00s
[ 5/17] minizip-ng-compat-0:4.0.10-2.fc 100% |   3.1 MiB/s |  67.1 KiB |  00m00s
[ 6/17] botan2-0:2.19.5-15.fc43.x86_64  100% |  17.5 MiB/s |   2.0 MiB |  00m00s
[ 7/17] pcsc-lite-libs-0:2.3.3-2.fc43.x 100% |   1.1 MiB/s |  31.7 KiB |  00m00s
[ 8/17] opencv-core-0:4.11.0-11.fc43.x8 100% |  18.1 MiB/s |   1.4 MiB |  00m00s
[ 9/17] keepassxc-0:2.7.11-1.fc43.x86_6 100% |  21.7 MiB/s |   9.0 MiB |  00m00s
[10/17] opencv-imgproc-0:4.11.0-11.fc43 100% |  14.6 MiB/s |   1.7 MiB |  00m00s
[11/17] tbb-0:2022.2.0-2.fc43.x86_64    100% |   3.7 MiB/s | 159.0 KiB |  00m00s
[12/17] openblas-0:0.3.29-2.fc43.x86_64 100% |   1.3 MiB/s |  42.3 KiB |  00m00s
[13/17] libgfortran-0:15.2.1-5.fc43.x86 100% |   8.9 MiB/s | 973.0 KiB |  00m00s
[14/17] accounts-qml-module-qt6-0:0.7^2 100% |   8.6 MiB/s |  87.9 KiB |  00m00s
[15/17] kf6-purpose-0:6.21.0-1.fc43.x86 100% |  11.1 MiB/s | 713.0 KiB |  00m00s
[16/17] kf6-bluez-qt-0:6.21.0-1.fc43.x8 100% |  13.5 MiB/s | 359.8 KiB |  00m00s
[17/17] openblas-serial-0:0.3.29-2.fc43 100% |  22.7 MiB/s |   5.1 MiB |  00m00s
--------------------------------------------------------------------------------
[17/17] Total                           100% |  44.2 MiB/s |  25.9 MiB |  00m01s
Exécution de la transaction
[ 1/19] Vérifier les fichiers des paqu 100% | 229.0   B/s |  17.0   B |  00m00s
[ 2/19] Préparer la transaction        100% |  85.0   B/s |  17.0   B |  00m00s
[ 3/19] Installation de kf6-bluez-qt-0: 100% | 128.1 MiB/s |   1.3 MiB |  00m00s
[ 4/19] Installation de accounts-qml-mo 100% |  68.2 MiB/s | 279.3 KiB |  00m00s
[ 5/19] Installation de kf6-purpose-0:6 100% |  81.2 MiB/s |   2.2 MiB |  00m00s
[ 6/19] Installation de openblas-0:0.3. 100% | 110.8 MiB/s | 113.5 KiB |  00m00s
[ 7/19] Installation de libgfortran-0:1 100% | 479.3 MiB/s |   3.4 MiB |  00m00s
[ 8/19] Installation de openblas-serial 100% | 768.8 MiB/s |  41.5 MiB |  00m00s
[ 9/19] Installation de tbb-0:2022.2.0- 100% | 101.7 MiB/s | 416.6 KiB |  00m00s
[10/19] Installation de opencv-core-0:4 100% | 364.3 MiB/s |   4.0 MiB |  00m00s
[11/19] Installation de opencv-imgproc- 100% | 431.7 MiB/s |   5.2 MiB |  00m00s
[12/19] Installation de pcsc-lite-libs- 100% |  20.0 MiB/s |  61.3 KiB |  00m00s
[13/19] Installation de minizip-ng-comp 100% |  79.7 MiB/s | 163.3 KiB |  00m00s
[14/19] Installation de libargon2-0:201 100% |  48.8 MiB/s |  50.0 KiB |  00m00s
[15/19] Installation de botan2-0:2.19.5 100% | 235.3 MiB/s |   5.9 MiB |  00m00s
[16/19] Installation de keepassxc-0:2.7 100% | 456.4 MiB/s |  30.6 MiB |  00m00s
[17/19] Installation de spectacle-1:6.5 100% | 219.1 MiB/s |   6.6 MiB |  00m00s
[18/19] Installation de unzip-0:6.0-67. 100% |  27.2 MiB/s | 389.8 KiB |  00m00s
[19/19] Installation de unifont-fonts-0 100% |  17.3 MiB/s |  16.4 MiB |  00m01s
�
Terminé !
[custom-init] No custom files found, skipping...
[svc-de] Wayland mode: Waiting for socket at /config/.XDG/wayland-1...
[svc-de] /config/.XDG/wayland-1 found launching de
[ls.io-init] done.
kbuildsycoca6 running...
17
18
INFO:selkies.__main__:Starting mode 'websockets'...
INFO:selkies.__main__:Starting Selkies in 'websockets' mode.
INFO:data_websocket:pcmflux library found. Audio capture is available.
INFO:data_websocket:pixelflux library found. Striped encoding modes available.
[Wayland] Initializing GL Renderer using device: /dev/dri/renderD128
MESA-LOADER: failed to open nvidia-drm: /usr/lib64/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/gbm, suffix _gbm)
MESA-LOADER: failed to open nvidia-drm: /usr/lib64/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/gbm, suffix _gbm)
[Wayland] Warning: Failed to bind EGL to Wayland Display (Optional): EglExtensionNotSupported(["EGL_WL_bind_wayland_display"])
[Wayland] Socket listening on: "wayland-1"
INFO:root:Expected C js_config_t size (from ctypes): 1354 bytes
INFO:main:Upload directory ensured: /config/Desktop
INFO:main:Legacy Mode ENABLED (SELKIES_MASTER_TOKEN is not set).
INFO:main:Starting Selkies (WebSocket Mode) with settings: {'_setting_definitions': [{'name': 'audio_enabled', 'type': 'bool', 'default': True, 'help': 'Enable server-to-client audio streaming.'}, {'name': 'microphone_enabled', 'type': 'bool', 'default': True, 'help': 'Enable client-to-server microphone forwarding.'}, {'name': 'gamepad_enabled', 'type': 'bool', 'default': True, 'help': 'Enable gamepad support.'}, {'name': 'clipboard_enabled', 'type': 'bool', 'default': True, 'help': 'Enable clipboard synchronization.'}, {'name': 'command_enabled', 'type': 'bool', 'default': True, 'help': 'Enable parsing of command websocket messages.'}, {'name': 'file_transfers', 'type': 'list', 'default': 'upload,download', 'meta': {'allowed': ['upload', 'download']}, 'help': 'Allowed file transfer directions (comma-separated: "upload,download"). Set to "" or "none" to disable.'}, {'name': 'framerate', 'type': 'range', 'default': '8-120', 'meta': {'default_value': 60}, 'help': 'Allowed framerate range (e.g., "8-165") or a fixed value (e.g., "60").'}, {'name': 'audio_bitrate', 'type': 'enum', 'default': '320000', 'meta': {'allowed': ['64000', '128000', '265000', '320000']}, 'help': 'The default audio bitrate.'}, {'name': 'is_manual_resolution_mode', 'type': 'bool', 'default': False, 'help': 'Lock the resolution to the manual width/height values.'}, {'name': 'manual_width', 'type': 'int', 'default': 0, 'help': 'Lock width to a fixed value. Setting this forces manual resolution mode.'}, {'name': 'manual_height', 'type': 'int', 'default': 0, 'help': 'Lock height to a fixed value. Setting this forces manual resolution mode.'}, {'name': 'scaling_dpi', 'type': 'enum', 'default': '96', 'meta': {'allowed': ['96', '120', '144', '168', '192', '216', '240', '264', '288']}, 'help': 'The default DPI for UI scaling.'}, {'name': 'enable_binary_clipboard', 'type': 'bool', 'default': False, 'help': 'Allow binary data (e.g., images) on the clipboard.'}, {'name': 'use_browser_cursors', 'type': 'bool', 'default': False, 'help': 'Use browser CSS cursors instead of rendering to canvas.'}, {'name': 'use_css_scaling', 'type': 'bool', 'default': False, 'help': 'HiDPI when false, if true a lower resolution is sent from the client and the canvas is stretched.'}, {'name': 'ui_title', 'type': 'str', 'default': 'Selkies', 'help': 'Title in top left corner of sidebar.'}, {'name': 'ui_show_logo', 'type': 'bool', 'default': True, 'help': 'Show the Selkies logo in the sidebar.'}, {'name': 'ui_show_core_buttons', 'type': 'bool', 'default': True, 'help': 'Show the core components buttons display, audio, microphone, and gamepad.'}, {'name': 'ui_show_sidebar', 'type': 'bool', 'default': True, 'help': 'Show the main sidebar UI.'}, {'name': 'ui_sidebar_show_video_settings', 'type': 'bool', 'default': True, 'help': 'Show the video settings section in the sidebar.'}, {'name': 'ui_sidebar_show_screen_settings', 'type': 'bool', 'default': True, 'help': 'Show the screen settings section in the sidebar.'}, {'name': 'ui_sidebar_show_audio_settings', 'type': 'bool', 'default': True, 'help': 'Show the audio settings section in the sidebar.'}, {'name': 'ui_sidebar_show_stats', 'type': 'bool', 'default': True, 'help': 'Show the stats section in the sidebar.'}, {'name': 'ui_sidebar_show_clipboard', 'type': 'bool', 'default': True, 'help': 'Show the clipboard section in the sidebar.'}, {'name': 'ui_sidebar_show_files', 'type': 'bool', 'default': True, 'help': 'Show the file transfer section in the sidebar.'}, {'name': 'ui_sidebar_show_apps', 'type': 'bool', 'default': True, 'help': 'Show the applications section in the sidebar.'}, {'name': 'ui_sidebar_show_sharing', 'type': 'bool', 'default': True, 'help': 'Show the sharing section in the sidebar.'}, {'name': 'ui_sidebar_show_gamepads', 'type': 'bool', 'default': True, 'help': 'Show the gamepads section in the sidebar.'}, {'name': 'ui_sidebar_show_fullscreen', 'type': 'bool', 'default': True, 'help': 'Show the fullscreen button in the sidebar.'}, {'name': 'ui_sidebar_show_gaming_mode', 'type': 'bool', 'default': True, 'help': 'Show the gaming mode button in the sidebar.'}, {'name': 'ui_sidebar_show_trackpad', 'type': 'bool', 'default': True, 'help': 'Show the virtual trackpad button in the sidebar.'}, {'name': 'ui_sidebar_show_keyboard_button', 'type': 'bool', 'default': True, 'help': 'Show the on-screen keyboard button in the display area.'}, {'name': 'ui_sidebar_show_soft_buttons', 'type': 'bool', 'default': True, 'help': 'Show the soft buttons section in the sidebar.'}, {'name': 'enable_sharing', 'type': 'bool', 'default': True, 'help': 'Master toggle for all sharing features.'}, {'name': 'enable_collab', 'type': 'bool', 'default': True, 'help': 'Enable collaborative (read-write) sharing link.'}, {'name': 'enable_shared', 'type': 'bool', 'default': True, 'help': 'Enable view-only sharing links.'}, {'name': 'enable_player2', 'type': 'bool', 'default': True, 'help': 'Enable sharing link for gamepad player 2.'}, {'name': 'enable_player3', 'type': 'bool', 'default': True, 'help': 'Enable sharing link for gamepad player 3.'}, {'name': 'enable_player4', 'type': 'bool', 'default': True, 'help': 'Enable sharing link for gamepad player 4.'}, {'name': 'debug', 'type': 'bool', 'default': False, 'help': 'Enable debug logging.'}, {'name': 'mode', 'type': 'str', 'default': 'websockets', 'help': "Specify the mode: 'webrtc' or 'websockets'; defaults to websockets"}, {'name': 'enable_dual_mode', 'type': 'bool', 'default': False, 'help': 'Enable switching Streaming modes from UI'}, {'name': 'encoder', 'type': 'enum', 'default': 'x264enc', 'meta': {'allowed': ['x264enc', 'x264enc-striped', 'jpeg']}, 'help': 'The default video encoder.'}, {'name': 'h264_crf', 'type': 'range', 'default': '5-50', 'meta': {'default_value': 25}, 'help': 'Allowed H.264 CRF range (e.g., "5-50") or a fixed value.'}, {'name': 'jpeg_quality', 'type': 'range', 'default': '1-100', 'meta': {'default_value': 40}, 'help': 'Allowed JPEG quality range (e.g., "1-100") or a fixed value.'}, {'name': 'h264_fullcolor', 'type': 'bool', 'default': False, 'help': 'Enable H.264 full color range for pixelflux encoders.'}, {'name': 'h264_streaming_mode', 'type': 'bool', 'default': False, 'help': 'Enable H.264 streaming mode for pixelflux encoders.'}, {'name': 'use_cpu', 'type': 'bool', 'default': False, 'help': 'Force CPU-based encoding for pixelflux.'}, {'name': 'use_paint_over_quality', 'type': 'bool', 'default': True, 'help': 'Enable high-quality paint-over for static scenes.'}, {'name': 'paint_over_jpeg_quality', 'type': 'range', 'default': '1-100', 'meta': {'default_value': 90}, 'help': 'Allowed JPEG paint-over quality range or a fixed value.'}, {'name': 'h264_paintover_crf', 'type': 'range', 'default': '5-50', 'meta': {'default_value': 18}, 'help': 'Allowed H.264 paint-over CRF range or a fixed value.'}, {'name': 'h264_paintover_burst_frames', 'type': 'range', 'default': '1-30', 'meta': {'default_value': 5}, 'help': 'Allowed H.264 paint-over burst frames range or a fixed value.'}, {'name': 'second_screen', 'type': 'bool', 'default': True, 'help': 'Enable support for a second monitor/display.'}, {'name': 'port', 'type': 'int', 'default': 8081, 'env_var': 'CUSTOM_WS_PORT', 'help': 'Port for the data websocket server.'}, {'name': 'control_port', 'type': 'int', 'default': 8083, 'help': 'Port for the internal control plane API.'}, {'name': 'master_token', 'type': 'str', 'default': '', 'help': 'Master token to enable secure mode and protect the control plane API.'}, {'name': 'dri_node', 'type': 'str', 'default': '', 'env_var': 'DRI_NODE', 'help': 'Path to the DRI render node for VA-API.'}, {'name': 'audio_device_name', 'type': 'str', 'default': 'output.monitor', 'help': 'Audio device name for pcmflux capture.'}, {'name': 'watermark_path', 'type': 'str', 'default': '', 'env_var': 'WATERMARK_PNG', 'help': 'Absolute path to the watermark PNG file.'}, {'name': 'watermark_location', 'type': 'int', 'default': -1, 'env_var': 'WATERMARK_LOCATION', 'help': 'Watermark location enum (0-6).'}, {'name': 'wayland_socket_index', 'type': 'int', 'default': 0, 'help': 'Index for the Wayland command socket (e.g. 0 for wayland-0).'}], 'audio_enabled': (True, False), 'microphone_enabled': (True, False), 'gamepad_enabled': (False, False), 'clipboard_enabled': (True, False), 'command_enabled': (True, False), 'file_transfers': ['upload', 'download'], 'framerate': (8, 120), 'audio_bitrate': '320000', 'is_manual_resolution_mode': (False, False), 'manual_width': 0, 'manual_height': 0, 'scaling_dpi': '96', 'enable_binary_clipboard': (False, False), 'use_browser_cursors': (False, False), 'use_css_scaling': (False, False), 'ui_title': 'Selkies', 'ui_show_logo': (True, False), 'ui_show_core_buttons': (True, False), 'ui_show_sidebar': (True, False), 'ui_sidebar_show_video_settings': (True, False), 'ui_sidebar_show_screen_settings': (True, False), 'ui_sidebar_show_audio_settings': (True, False), 'ui_sidebar_show_stats': (True, False), 'ui_sidebar_show_clipboard': (True, False), 'ui_sidebar_show_files': (True, False), 'ui_sidebar_show_apps': (True, False), 'ui_sidebar_show_sharing': (True, False), 'ui_sidebar_show_gamepads': (False, False), 'ui_sidebar_show_fullscreen': (True, False), 'ui_sidebar_show_gaming_mode': (True, False), 'ui_sidebar_show_trackpad': (True, False), 'ui_sidebar_show_keyboard_button': (True, False), 'ui_sidebar_show_soft_buttons': (True, False), 'enable_sharing': (True, False), 'enable_collab': (True, False), 'enable_shared': (True, False), 'enable_player2': (False, False), 'enable_player3': (False, False), 'enable_player4': (True, False), 'debug': (False, False), 'mode': 'websockets', 'enable_dual_mode': (False, False), 'encoder': 'x264enc', 'h264_crf': (5, 50), 'jpeg_quality': (1, 100), 'h264_fullcolor': (False, False), 'h264_streaming_mode': (False, False), 'use_cpu': (False, False), 'use_paint_over_quality': (True, False), 'paint_over_jpeg_quality': (1, 100), 'h264_paintover_crf': (5, 50), 'h264_paintover_burst_frames': (1, 30), 'second_screen': (True, False), 'port': 8082, 'control_port': 8083, 'master_token': '', 'dri_node': '/dev/dri/renderD128', 'audio_device_name': 'output.monitor', 'watermark_path': '', 'watermark_location': -1, 'wayland_socket_index': 0}
INFO:main:Initial Encoder: x264enc, Framerate: 60
INFO:main:SelkiesStreamingApp initialized: encoder=x264enc, display=1024x768
INFO:webrtc_input:kwin_wayland detected: enabling Hex-Input fallback for Unicode.
INFO:webrtc_input:Wayland input injection initialized.
INFO:webrtc_input:Built Wayland scancode map with 492 keys.
INFO:main:All main components initialized. Running server...
INFO:webrtc_input:Initializing 4 persistent gamepad instances...
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js0): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js0.sock, EVDEV socket: /tmp/selkies_event1000.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 0 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js0.sock, EVDEV: /tmp/selkies_event1000.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js1): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js1.sock, EVDEV socket: /tmp/selkies_event1001.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 1 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js1.sock, EVDEV: /tmp/selkies_event1001.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js2): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js2.sock, EVDEV socket: /tmp/selkies_event1002.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 2 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js2.sock, EVDEV: /tmp/selkies_event1002.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js3): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js3.sock, EVDEV socket: /tmp/selkies_event1003.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 3 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js3.sock, EVDEV: /tmp/selkies_event1003.sock).
INFO:webrtc_input:Clipboard monitor running (binary mode: False)
INFO:webrtc_input:Wayland mode: Cursor monitor disabled (handled by compositor callback).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js0.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js1.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js2.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js3.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1000.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1001.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1002.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1003.sock
INFO:data_websocket:Data WebSocket Server listening on port 8082
No desktop processes found to terminate.
[svc-de] Wayland mode: Waiting for socket at /config/.XDG/wayland-1...
[svc-de] /config/.XDG/wayland-1 found launching de
kbuildsycoca6 running...
INFO:data_websocket:Legacy client ('127.0.0.1', 60412) connected. Role: controller, Slot: None
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 60412)
INFO:data_websocket:Attempting to establish PulseAudio connection...
INFO:data_websocket:PulseAudio connection established.
INFO:data_websocket:Registering new client for display: primary
INFO:data_websocket:Applying and sanitizing client settings for 'primary' (initial=True)
INFO:data_websocket:DPI changed from None to 96. Applying system-level change.
INFO:data_websocket:Initial setup or dimensional change detected for 'primary'. Performing full display reconfiguration.
INFO:data_websocket:Starting display reconfiguration...
INFO:data_websocket:Calculating new extended desktop layout from ALL clients...
INFO:data_websocket:Aligned total width from 2290 to 2296 for xrandr.
INFO:data_websocket:Layout calculated: Total Size=2296x1304. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 2290, 'h': 1304}}
INFO:data_websocket:Starting separate capture instances for each ACTIVE display region...
INFO:data_websocket:Client 'primary' is active. Starting its capture.
INFO:data_websocket:Preparing to start capture for display='primary': Res=2290x1304, Offset=0x0
INFO:main:Parsed DRI node '/dev/dri/renderD128' to index 0.
INFO:data_websocket:Registered Wayland cursor callback for 'primary'
[Wayland] Configuring Output: 2290x1304 @ 60.00 FPS (Scale 1.00)
INFO:data_websocket:Video chunk sender started for display 'primary'.
INFO:data_websocket:SUCCESS: Capture started for 'primary'.
INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 2290, "height": 1304}
INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"]}
INFO:data_websocket:Display reconfiguration finished successfully.
INFO:data_websocket:Reconfiguration process complete (state unlocked).
INFO:data_websocket:Initial client settings message processed by ws_handler.
INFO:data_websocket:Initial setup: Primary client connected, audio not active, attempting start.
INFO:data_websocket:Starting pcmflux audio pipeline...
INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2
[pcmflux] Attempting to connect to PulseAudio device: output.monitor...
INFO:data_websocket:pcmflux audio capture started successfully.
[Wayland] Encode Node Index: 0 | Driver: ../../../bus/pci/drivers/i915
[Wayland] Initializing Unified VAAPI Encoder...
INFO:data_websocket:pcmflux audio chunk broadcasting task started.
[pcmflux] SUCCESS: Connected to PulseAudio.
[pcmflux] SUCCESS: Opus encoder created.
[pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, Debug Logging: Off, PCM Chunk: 3840 bytes
[Wayland] VAAPI Encoder initialized successfully.
[Wayland] Decision: Zero-Copy path active.
Stream settings active -> Res: 2290x1304 | FPS: 60.0 | Stripes: 1 | Mode: H264 (VAAPI) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
INFO:data_websocket:Received redundant resize request for primary (2290x1304). No action taken.
INFO:webrtc_input:Clipboard changed. Sending content (text/plain)
[pcmflux] First non-silent audio chunk detected! Encoding...
INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.
INFO:data_websocket:Stopping all streams for display 'primary'...
[Wayland] Capture loop stopped.
INFO:data_websocket:Successfully stopped all streams for display 'primary'.
INFO:data_websocket:Video chunk sender for 'primary' cancelled.
INFO:data_websocket:Video chunk sender for 'primary' finished.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Issues

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions