Skip to content

[BUG] <title>Scaling not working properly</title> #328

@Forgision

Description

@Forgision

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Scaling is not working as expected on arm64v8-ubuntu-xfce. Refer to following screen shot.
Image

My laptop has 3840x2400 resolution with 300% scaling. When I am using webtop on the laptop resolution of webtop has been changed to 3840x2160, but scaling has not effect. This may occur the above bug.

Changing resolution to 1920x1080 also does help me.

If I changes scaling from selkies pannel. It ask me to restart container and may fix scaling for all. It will create same issue with different resolutions like using the same webtop on my pc which has 1920x1080 resolution. Further, scaling doesn't increase size, but only increase font size, due to this, text gets mess with each other.

I have tried other image i.e. arm64v8-ubuntu-mate. It also has the same issue, but in this image it allow me to change scaling from "Monitor Preference" window in the webtop.

Expected Behavior

UI Scaling in selkies pane should change display scale like windows does.

Steps To Reproduce

Run using docker compose

Environment

- OS: Windows 11, 3840x2400
- Image: arm64v8-ubuntu-xfce

CPU architecture

x86-64

Docker creation

- Docker-compose:
webtop:
    image: lscr.io/linuxserver/webtop:arm64v8-ubuntu-xfce
    container_name: webtop
    hostname: webtop
    security_opt:
      - seccomp:unconfined #optional
    environment:
      - PUID=1001
      - PGID=1001
      - TZ=Asia/Koltaka
      - TITLE=WebTop #optional
      - CUSTOM_PORT=80
      - CUSTOM_HTTPS_PORT=443
      - DOCKER_MTU=1344
    volumes:
      # - ./volumes/webtop/config:/config
      # - ./volumes/webtop/kasm-user/:/home/kasm-user/
      # - ./volumes/webtop/custom-files:/custom-cont-init.d:ro
      - /var/run/docker.sock:/var/run/docker.sock #optional
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 3000:80
      - 3001:443
    shm_size: "1gb" #optional
    restart: unless-stopped

Container logs

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=0x1118, Product=0x0654, Version=0x0276, Buttons=11, Axes=8

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=0x1118, Product=0x0654, Version=0x0276, Buttons=11, Axes=8

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:Starting clipboard monitor

INFO:webrtc_input:Found XFIXES version 4.0

INFO:webrtc_input:starting cursor monitor

INFO:webrtc_input:watching for cursor changes

WARNING:data_websocket:Cannot broadcast cursor data: prerequisites not met.

INFO:gst_app:GStreamer bus handling loop finished.

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

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

INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 1024, "height": 768}

INFO:data_websocket:Attempting to establish PulseAudio connection...

INFO:data_websocket:PulseAudio connection established.

INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 1024, 'manualHeight': 768, 'audioBitRate': 128000, 'videoBufferSize': 0, 'initialClientWidth': 3840, 'initialClientHeight': 2160}

INFO:gst_app_resize:on_resize_handler attempting resize for: 3840x2160

INFO:gst_app_resize:App dimensions updated to 3840x2160 before xrandr call.

INFO:gst_app_resize:Mode 3840x2160 not found in xrandr list. Attempting to add for screen 'screen'.

INFO:gst_app_resize:Successfully ran: xrandr --newmode 3840x2160 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync

INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 3840x2160

INFO:gst_app_resize:Applying xrandr mode '3840x2160' for screen 'screen'.

INFO:gst_app_resize:Successfully applied xrandr mode '3840x2160'.

INFO:gst_app_resize:resize_display('3840x2160') reported success.

INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings.

INFO:data_websocket:Initial client settings message processed by ws_handler.

WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change.

INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.

INFO:gst_app:Starting WebSocket audio pipeline...

INFO:gst_app:Building WebSocket audio pipeline...

INFO:gst_app:Audio pipeline state change to PLAYING is ASYNC.

INFO:gst_app:WebSocket audio pipeline started.

INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 3840, "height": 2160}

WARNING:webrtc_input:No clipboard content to send

INFO:data_websocket:Received START_VIDEO for encoder: x264enc

INFO:data_websocket:Starting x264enc: 3840x2160 @ 60.0fps, CRF: 25, FullFrame: True

INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').

INFO:data_websocket:x264enc capture started successfully.

INFO:data_websocket:Frame-based backpressure logic task started.

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

INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.

INFO:data_websocket:START_AUDIO: Server-to-client audio pipeline already reported as active.

X Shared Memory Extension available.

XShm setup complete for 3840x2160.

CPU cores available: 4

INFO:webrtc_input:Resetting keyboard modifiers.

INFO:data_websocket:Received STOP_VIDEO

INFO:data_websocket:Stopping X11 x264-striped capture...

Capture loop stopped. X resources released.

INFO:data_websocket:Frame-based backpressure logic task cancelled.

INFO:data_websocket:Frame-based backpressure logic task finished.

INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.

INFO:data_websocket:Resetting frame IDs.

INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s).

INFO:webrtc_input:Resetting keyboard modifiers.

INFO:webrtc_input:Set clipboard content, length: 873

INFO:data_websocket:Received START_VIDEO for encoder: x264enc

INFO:data_websocket:Starting x264enc: 3840x2160 @ 60.0fps, CRF: 25, FullFrame: True

INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').

INFO:data_websocket:x264enc capture started successfully.

INFO:data_websocket:Frame-based backpressure logic task started.

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

X Shared Memory Extension available.

XShm setup complete for 3840x2160.

CPU cores available: 4

INFO:webrtc_input:Sending clipboard content, length: 846

INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 60256)...

INFO:data_websocket:Last client (('127.0.0.1', 60256)) disconnected. Cancelling frame backpressure task.

WARNING:data_websocket:Cannot broadcast GStreamer audio: data_streaming_server.clients not available or empty. Scheduling audio pipeline shutdown.

INFO:data_websocket:No other clients in set after ('127.0.0.1', 60256) disconnected. Marking pipelines for stop.

INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 60256)).

INFO:data_websocket:Stopping X11 x264-striped capture...

INFO:gst_app:Stopping WebSocket audio pipeline...

INFO:gst_app:WebSocket audio pipeline stopped.

Capture loop stopped. X resources released.

INFO:data_websocket:Frame-based backpressure logic task cancelled.

INFO:data_websocket:Frame-based backpressure logic task finished.

INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.

INFO:data_websocket:Resetting frame IDs.

INFO:data_websocket:Frame IDs reset, but no clients to notify.

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

INFO:data_websocket:Frame-based backpressure logic task started.

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

INFO:data_websocket:Stats sender: WS connection closed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions