Skip to content

[BUG] Docker linuxserver/firefox container: Chinese text clipboard paste becomes garbled (mojibake) #86

@billyunver

Description

@billyunver

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Hi everyone,
I'm running the linuxserver/firefox Docker container on my FNOS NAS (hardware: Dell Wyse 5070). Recently I noticed an issue with clipboard pasting of Chinese text.
When I copy Chinese text from other applications on my host machine and paste it into Firefox inside the container, it turns into garbled characters (mojibake).
Example:
Original text: "为什么这很重要?"
After pasting into container Firefox: "为�������"
Additional details:

This only happens when pasting from outside the container.
Typing Chinese directly inside the container Firefox (using Microsoft IME) works perfectly.
I have other Selkies-based Docker browsers running on the same setup, and they do not have this clipboard issue.
The issue may or may not have existed before — I only noticed it recently.

Here is my current docker-compose.yaml:
YAMLservices:
firefox:
image: lscr.io/linuxserver/firefox:latest
container_name: firefox
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- LC_ALL=zh_CN.UTF-8
- FIREFOX_CLI=https://www.google.com
# - CUSTOM_USER=yourusername # recommended for basic auth
# - PASSWORD=yourstrongpassword # recommended for basic auth
volumes:
- ./config:/config
- ./fonts:/usr/share/fonts/custom # optional, custom fonts
ports:
- 13000:3000 # optional HTTP
- 13001:3001 # HTTPS main port
devices:
- /dev/dri:/dev/dri # Intel iGPU hardware acceleration
shm_size: "1gb"
restart: unless-stopped
Has anyone encountered this clipboard encoding issue with Chinese (or other non-ASCII) text in the linuxserver/firefox container? Any suggestions for fixes or workarounds would be greatly appreciated.
Thanks in advance!

Expected Behavior

No response

Steps To Reproduce

When I copy Chinese text from other applications on my host machine and paste it into Firefox inside the container, it turns into garbled characters (mojibake).
Example:
Original text: "为什么这很重要?"
After pasting into container Firefox: "为�������"

Environment

- OS:
- How docker service was installed:
FN nas os
Dell wyse 5070

CPU architecture

x86-64

Docker creation

YAMLservices:
  firefox:
    image: lscr.io/linuxserver/firefox:latest
    container_name: firefox
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - LC_ALL=zh_CN.UTF-8
      - FIREFOX_CLI=https://www.google.com
      # - CUSTOM_USER=yourusername    # recommended for basic auth
      # - PASSWORD=yourstrongpassword  # recommended for basic auth
    volumes:
      - ./config:/config
      - ./fonts:/usr/share/fonts/custom  # optional, custom fonts
    ports:
      - 13000:3000   # optional HTTP
      - 13001:3001   # HTTPS main port
    devices:
      - /dev/dri:/dev/dri  # Intel iGPU hardware acceleration
    shm_size: "1gb"
    restart: unless-stopped

Container logs

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

dbus-daemon[283]: [system] Activating service name='org.freedesktop.login1' requested by ':1.15' (uid=1000 pid=387 comm="/usr/lib/firefox/firefox https://www.linuxserver.i") (using servicehelper)

dbus-daemon[283]: [system] Activating service name='org.freedesktop.timedate1' requested by ':1.15' (uid=1000 pid=387 comm="/usr/lib/firefox/firefox https://www.linuxserver.i") (using servicehelper)

dbus-daemon[283]: [system] Activated service 'org.freedesktop.login1' failed: Failed to execute program org.freedesktop.login1: Permission denied

WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready.

INFO:data_websocket:Legacy client ('127.0.0.1', 40274) connected. Role: controller, Slot: None

INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 40274)

INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 40274)

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:gst_app_resize:Openbox detected. Applying xrdb for DPI 96.

INFO:gst_app_resize:Wrote 'Xft.dpi:   96' to /config/.Xresources.

INFO:gst_app_resize:Successfully loaded /config/.Xresources using xrdb.

INFO:gst_app_resize:Wrote font and DPI settings to /config/.xsettingsd.

INFO:gst_app_resize:Found xsettingsd process with PID: 286.

xsettingsd: Reloading configuration

xsettingsd: Loaded 5 settings from /config/.xsettingsd

INFO:gst_app_resize:Sent SIGHUP to xsettingsd process 286 to reload config.

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 1910 to 1912 for xrandr.

INFO:data_websocket:Layout calculated: Total Size=1912x952. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1910, 'h': 952}}

INFO:data_websocket:Mode 1912x952 not found. Creating it.

INFO:data_websocket:Defining logical monitors for the window manager...

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=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1910, "height": 952}

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

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

[pcmflux] Attempting to connect to PulseAudio device: output.monitor...

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

INFO:data_websocket:pcmflux audio capture started successfully.

INFO:data_websocket:pcmflux audio chunk broadcasting task started.

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

[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

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:Client is taking over existing display 'primary'. Updating state for new connection.

INFO:data_websocket:Applying and sanitizing client settings for 'primary' (initial=False)

INFO:data_websocket:Received redundant resize request for primary (1910x952). No action taken.

[pcmflux] First non-silent audio chunk detected! Encoding...

INFO:webrtc_input:Clipboard changed. Sending content (text/plain)

INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.

INFO:data_websocket:Stopping all streams for display 'primary'...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

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.

INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.

INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1910, 'h': 952}

INFO:data_websocket:Preparing to start capture for display='primary': Res=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:webrtc_input:Set clipboard content, length: 249

INFO:webrtc_input:Set clipboard content, length: 249

INFO:webrtc_input:Set clipboard content, length: 249

INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.

INFO:data_websocket:Stopping all streams for display 'primary'...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

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.

INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.

INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1910, 'h': 952}

INFO:data_websocket:Preparing to start capture for display='primary': Res=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:webrtc_input:Set clipboard content, length: 249

INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.

INFO:data_websocket:Stopping all streams for display 'primary'...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

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.

INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.

INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1910, 'h': 952}

INFO:data_websocket:Preparing to start capture for display='primary': Res=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:webrtc_input:Set clipboard content, length: 249

INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.

INFO:data_websocket:Stopping all streams for display 'primary'...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

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.

INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.

INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1910, 'h': 952}

INFO:data_websocket:Preparing to start capture for display='primary': Res=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:webrtc_input:Set clipboard content, length: 13

WARNING:webrtc_input:unhandled on_mouse_pointer_visible

INFO:data_websocket:Received SET_NATIVE_CURSOR_RENDERING: True

INFO:data_websocket:Cursor rendering changed, triggering display reconfiguration.

INFO:data_websocket:Starting display reconfiguration...

INFO:data_websocket:Stopping all existing capture and backpressure tasks...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

INFO:data_websocket:All capture instances, senders, and backpressure tasks stopped.

INFO:data_websocket:Calculating new extended desktop layout from ALL clients...

INFO:data_websocket:Aligned total width from 1910 to 1912 for xrandr.

INFO:data_websocket:Layout calculated: Total Size=1912x952. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1910, 'h': 952}}

INFO:data_websocket:Video chunk sender for 'primary' cancelled.

INFO:data_websocket:Video chunk sender for 'primary' finished.

INFO:data_websocket:Defining logical monitors for the window manager...

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=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1910, "height": 952}

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:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XFixes Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:data_websocket:Received resize request for primary: 1918x1078 from ('127.0.0.1', 40274)

INFO:gst_app_resize:on_resize_handler for display 'primary' with resolution: 1918x1078

INFO:gst_app_resize:Display client 'primary' dimensions updated to 1918x1078. Triggering reconfiguration.

INFO:data_websocket:Starting display reconfiguration...

INFO:data_websocket:Stopping all existing capture and backpressure tasks...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

INFO:data_websocket:All capture instances, senders, and backpressure tasks stopped.

INFO:data_websocket:Calculating new extended desktop layout from ALL clients...

INFO:data_websocket:Aligned total width from 1918 to 1920 for xrandr.

INFO:data_websocket:Layout calculated: Total Size=1920x1078. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1918, 'h': 1078}}

INFO:data_websocket:Video chunk sender for 'primary' cancelled.

INFO:data_websocket:Video chunk sender for 'primary' finished.

INFO:data_websocket:Mode 1920x1078 not found. Creating it.

INFO:data_websocket:Defining logical monitors for the window manager...

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=1918x1078, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1918, "height": 1078}

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:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XFixes Extension available.

XShm setup complete for 1918x1078.

CPU cores available: 4

Stream settings active -> Res: 1918x1078 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

WARNING:webrtc_input:unhandled on_mouse_pointer_visible

INFO:data_websocket:Received SET_NATIVE_CURSOR_RENDERING: False

INFO:data_websocket:Cursor rendering changed, triggering display reconfiguration.

INFO:data_websocket:Starting display reconfiguration...

INFO:data_websocket:Stopping all existing capture and backpressure tasks...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

INFO:data_websocket:All capture instances, senders, and backpressure tasks stopped.

INFO:data_websocket:Calculating new extended desktop layout from ALL clients...

INFO:data_websocket:Aligned total width from 1918 to 1920 for xrandr.

INFO:data_websocket:Layout calculated: Total Size=1920x1078. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1918, 'h': 1078}}

INFO:data_websocket:Video chunk sender for 'primary' cancelled.

INFO:data_websocket:Video chunk sender for 'primary' finished.

INFO:data_websocket:Defining logical monitors for the window manager...

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=1918x1078, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1918, "height": 1078}

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:webrtc_input:Resetting keyboard modifiers.

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XShm setup complete for 1918x1078.

CPU cores available: 4

Stream settings active -> Res: 1918x1078 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:data_websocket:Received resize request for primary: 1910x952 from ('127.0.0.1', 40274)

INFO:gst_app_resize:on_resize_handler for display 'primary' with resolution: 1910x952

INFO:gst_app_resize:Display client 'primary' dimensions updated to 1910x952. Triggering reconfiguration.

INFO:data_websocket:Starting display reconfiguration...

INFO:data_websocket:Stopping all existing capture and backpressure tasks...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

INFO:data_websocket:All capture instances, senders, and backpressure tasks stopped.

INFO:data_websocket:Calculating new extended desktop layout from ALL clients...

INFO:data_websocket:Aligned total width from 1910 to 1912 for xrandr.

INFO:data_websocket:Layout calculated: Total Size=1912x952. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1910, 'h': 952}}

INFO:data_websocket:Video chunk sender for 'primary' cancelled.

INFO:data_websocket:Video chunk sender for 'primary' finished.

INFO:data_websocket:Defining logical monitors for the window manager...

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=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1910, "height": 952}

INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"]}

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:data_websocket:Display reconfiguration finished successfully.

INFO:data_websocket:Reconfiguration process complete (state unlocked).

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

INFO:webrtc_input:Set clipboard content, length: 13

INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.

INFO:data_websocket:Stopping all streams for display 'primary'...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

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.

INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.

INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1910, 'h': 952}

INFO:data_websocket:Preparing to start capture for display='primary': Res=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.

INFO:data_websocket:Stopping all streams for display 'primary'...

INFO:data_websocket:Backpressure logic task for 'primary' cancelled.

INFO:data_websocket:Backpressure logic task for 'primary' finished.

INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.

INFO:data_websocket:Resetting frame IDs for display 'primary'.

INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary

Capture loop stopped. X resources released.

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.

WARNING:data_websocket:Data WS closed with error from ('127.0.0.1', 40274): sent 1011 (internal error) keepalive ping timeout; no close frame received

INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 40274) (Display ID: primary)...

INFO:data_websocket:Client for 'primary' disconnected. Removing and triggering full display reconfiguration.

INFO:data_websocket:Starting display reconfiguration...

WARNING:data_websocket:No display clients connected. Video pipelines remain stopped.

INFO:data_websocket:Reconfiguration process complete (state unlocked).

INFO:data_websocket:Last client (('127.0.0.1', 40274)) disconnected. All pipelines should have been stopped by reconfigure_displays.

INFO:main:Initiating unified pipeline shutdown...

WARNING:data_websocket:Reconfiguration already in progress. Ignoring concurrent request.

INFO:data_websocket:Stopping pcmflux audio pipeline...

INFO:data_websocket:pcmflux audio chunk broadcasting task cancelled.

INFO:data_websocket:pcmflux audio chunk broadcasting task finished.

[pcmflux] Stop requested. Cleaning up capture loop...

[pcmflux] Audio capture loop finished. Resources released.

INFO:data_websocket:pcmflux audio pipeline stopped.

INFO:main:Unified pipeline shutdown complete.

INFO:data_websocket:Data WS handler for ('127.0.0.1', 40274) finished all cleanup.

INFO:data_websocket:Stats sender: WS connection closed.

INFO:data_websocket:Legacy client ('127.0.0.1', 52100) connected. Role: controller, Slot: None

INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 52100)

INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 52100)

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:gst_app_resize:Openbox detected. Applying xrdb for DPI 96.

INFO:gst_app_resize:Wrote 'Xft.dpi:   96' to /config/.Xresources.

INFO:gst_app_resize:Successfully loaded /config/.Xresources using xrdb.

INFO:gst_app_resize:Wrote font and DPI settings to /config/.xsettingsd.

INFO:gst_app_resize:Found xsettingsd process with PID: 286.

xsettingsd: Reloading configuration

xsettingsd: Loaded 5 settings from /config/.xsettingsd

INFO:gst_app_resize:Sent SIGHUP to xsettingsd process 286 to reload config.

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 1910 to 1912 for xrandr.

INFO:data_websocket:Layout calculated: Total Size=1912x952. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1910, 'h': 952}}

INFO:data_websocket:Defining logical monitors for the window manager...

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=1910x952, Offset=0x0

INFO:data_websocket:Video chunk sender started for display 'primary'.

INFO:data_websocket:SUCCESS: Capture started for 'primary'.

INFO:data_websocket:New frame backpressure task started for display 'primary'.

INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1910, "height": 952}

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

INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.

[pcmflux] Attempting to connect to PulseAudio device: output.monitor...

X Shared Memory Extension available.

XShm setup complete for 1910x952.

CPU cores available: 4

Stream settings active -> Res: 1910x952 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f

INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.

INFO:data_websocket:pcmflux audio capture started successfully.

[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

INFO:data_websocket:pcmflux audio chunk broadcasting task started.

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 (1910x952). No action taken.

[pcmflux] First non-silent audio chunk detected! Encoding...

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.0s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.2s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.5s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.0s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.2s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.0s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.2s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.0s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.2s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.5s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.2s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.2s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.0s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.3s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.1s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.2s. Forcing backpressure.

INFO:data_websocket:Backpressure LIFTED for 'primary'. S:92, C:92 (EffDesync:-21.7f <= Allowed:120.0f).

WARNING:data_websocket:Client stall for 'primary': No ACK in 4.4s. Forcing backpressure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions