Skip to content

[BUG] titlebar is too small for hi-dpi #139

@ICHx

Description

@ICHx

Update:
Adding the wayland env solved for titlebar scaling issue. But with wayland there is window resize issue for hidpi screen.

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Image

Firefox is scaled up but titlebar is not
Cursor is also not scaled up, but remedied with css-cursor option enabled

Expected Behavior

Firefox is scaled up along with titlebar

Steps To Reproduce

  1. open localhost:3000/ on hi-dpi display
  2. session is automatically set to 200% UI scaling
  3. browser is scaled up automatically

Environment

- OS: macOS Tahoe 26.3.1
- How docker service was installed: k3s 1.35 on remote cluster

CPU architecture

x86-64

Docker creation

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "4"
  labels:
    app: firefox
  name: firefox
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: firefox
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: firefox
    spec:
      containers:
      - image: lscr.io/linuxserver/firefox:latest
        imagePullPolicy: Always
        name: firefox
        ports:
        - containerPort: 3000
          protocol: TCP
        - containerPort: 3001
          protocol: TCP
        resources:
          limits:
            cpu: 500m
            memory: 3G
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30

Container logs

firefox-686dc975d8-74x95 INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock: Event processor started.
firefox-686dc975d8-74x95 INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js0.sock
firefox-686dc975d8-74x95 INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock: Event processor started.
firefox-686dc975d8-74x95 INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js1.sock
firefox-686dc975d8-74x95 INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock: Event processor started.
firefox-686dc975d8-74x95 INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js2.sock
firefox-686dc975d8-74x95 INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock: Event processor started.
firefox-686dc975d8-74x95 INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js3.sock
firefox-686dc975d8-74x95 INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1000.sock
firefox-686dc975d8-74x95 INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1001.sock
firefox-686dc975d8-74x95 INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1002.sock
firefox-686dc975d8-74x95 INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1003.sock
firefox-686dc975d8-74x95 dbus-daemon[284[]: [system[] Activating service name='org.freedesktop.login1' requested by ':1.10' (uid=911 pid=397 comm="/usr/lib/firefox/firefox") (using servicehelper)
firefox-686dc975d8-74x95 dbus-daemon[284[]: [system[] Activating service name='org.freedesktop.timedate1' requested by ':1.10' (uid=911 pid=397 comm="/usr/lib/firefox/firefox") (using servicehelper)
firefox-686dc975d8-74x95 dbus-daemon[284[]: [system[] Activated service 'org.freedesktop.login1' failed: Failed to execute program org.freedesktop.login1: Permission denied
firefox-686dc975d8-74x95 dbus-daemon[462[]: Failed to write data to pipe!
firefox-686dc975d8-74x95 INFO:data_websocket:Legacy client ('127.0.0.1', 47644) connected. Role: controller, Slot: None
firefox-686dc975d8-74x95 INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 47644)
firefox-686dc975d8-74x95 INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 47644)
firefox-686dc975d8-74x95 INFO:data_websocket:Attempting to establish PulseAudio connection...
firefox-686dc975d8-74x95 INFO:data_websocket:PulseAudio connection established.
firefox-686dc975d8-74x95 INFO:data_websocket:Registering new client for display: primary
firefox-686dc975d8-74x95 INFO:data_websocket:Applying and sanitizing client settings for 'primary' (initial=True)
firefox-686dc975d8-74x95 INFO:data_websocket:DPI changed from None to 192. Applying system-level change.
firefox-686dc975d8-74x95 INFO:gst_app_resize:Openbox detected. Applying xrdb for DPI 192.
firefox-686dc975d8-74x95 INFO:gst_app_resize:Wrote 'Xft.dpi:   192' to /config/.Xresources.
firefox-686dc975d8-74x95 INFO:gst_app_resize:Successfully loaded /config/.Xresources using xrdb.
firefox-686dc975d8-74x95 INFO:gst_app_resize:Wrote font and DPI settings to /config/.xsettingsd.
firefox-686dc975d8-74x95 INFO:gst_app_resize:Found xsettingsd process with PID: 300.
firefox-686dc975d8-74x95 xsettingsd: Reloading configuration
firefox-686dc975d8-74x95 xsettingsd: Loaded 5 settings from /config/.xsettingsd
firefox-686dc975d8-74x95 INFO:gst_app_resize:Sent SIGHUP to xsettingsd process 300 to reload config.
firefox-686dc975d8-74x95 INFO:data_websocket:Initial setup or dimensional change detected for 'primary'. Performing full display reconfiguration.
firefox-686dc975d8-74x95 INFO:data_websocket:Starting display reconfiguration...
firefox-686dc975d8-74x95 INFO:data_websocket:Calculating new extended desktop layout from ALL clients...
firefox-686dc975d8-74x95 INFO:data_websocket:Layout calculated: Total Size=2752x1762. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 2752, 'h': 1762}}
firefox-686dc975d8-74x95 INFO:data_websocket:Mode 2752x1762 not found. Creating it.
firefox-686dc975d8-74x95 INFO:data_websocket:Defining logical monitors for the window manager...
firefox-686dc975d8-74x95 INFO:data_websocket:Starting separate capture instances for each ACTIVE display region...
firefox-686dc975d8-74x95 INFO:data_websocket:Client 'primary' is active. Starting its capture.
firefox-686dc975d8-74x95 INFO:data_websocket:Preparing to start capture for display='primary': Res=2752x1762, Offset=0x0
firefox-686dc975d8-74x95 INFO:data_websocket:Video chunk sender started for display 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:SUCCESS: Capture started for 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:New frame backpressure task started for display 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 2752, "height": 1762}
firefox-686dc975d8-74x95 INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"[]}
firefox-686dc975d8-74x95 INFO:data_websocket:Display reconfiguration finished successfully.
firefox-686dc975d8-74x95 INFO:data_websocket:Reconfiguration process complete (state unlocked).
firefox-686dc975d8-74x95 INFO:data_websocket:Initial client settings message processed by ws_handler.
firefox-686dc975d8-74x95 INFO:data_websocket:Initial setup: Primary client connected, audio not active, attempting start.
firefox-686dc975d8-74x95 INFO:data_websocket:Starting pcmflux audio pipeline...
firefox-686dc975d8-74x95 INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2
firefox-686dc975d8-74x95 INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:pcmflux audio capture started successfully.
firefox-686dc975d8-74x95 [pcmflux[] Attempting to connect to PulseAudio device: output.monitor...
firefox-686dc975d8-74x95 INFO:data_websocket:pcmflux audio chunk broadcasting task started.
firefox-686dc975d8-74x95 X Shared Memory Extension available.
firefox-686dc975d8-74x95 XShm setup complete for 2752x1762.
firefox-686dc975d8-74x95 CPU cores available: 2
firefox-686dc975d8-74x95 Stream settings active -> Res: 2752x1762 | 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
firefox-686dc975d8-74x95 [pcmflux[] SUCCESS: Connected to PulseAudio.
firefox-686dc975d8-74x95 [pcmflux[] SUCCESS: Opus encoder created.
firefox-686dc975d8-74x95 [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
firefox-686dc975d8-74x95 INFO:data_websocket:Received resize request for primary: 2752x1760 from ('127.0.0.1', 47644)
firefox-686dc975d8-74x95 INFO:gst_app_resize:on_resize_handler for display 'primary' with resolution: 2752x1760
firefox-686dc975d8-74x95 INFO:gst_app_resize:Display client 'primary' dimensions updated to 2752x1760. Triggering reconfiguration.
firefox-686dc975d8-74x95 INFO:data_websocket:Starting display reconfiguration...
firefox-686dc975d8-74x95 INFO:data_websocket:Stopping all existing capture and backpressure tasks...
firefox-686dc975d8-74x95 INFO:data_websocket:Backpressure logic task for 'primary' cancelled.
firefox-686dc975d8-74x95 INFO:data_websocket:Backpressure logic task for 'primary' finished.
firefox-686dc975d8-74x95 INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.
firefox-686dc975d8-74x95 INFO:data_websocket:Resetting frame IDs for display 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary
firefox-686dc975d8-74x95 Capture loop stopped. X resources released.
firefox-686dc975d8-74x95 INFO:data_websocket:All capture instances, senders, and backpressure tasks stopped.
firefox-686dc975d8-74x95 INFO:data_websocket:Calculating new extended desktop layout from ALL clients...
firefox-686dc975d8-74x95 INFO:data_websocket:Layout calculated: Total Size=2752x1760. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 2752, 'h': 1760}}
firefox-686dc975d8-74x95 INFO:data_websocket:Video chunk sender for 'primary' cancelled.
firefox-686dc975d8-74x95 INFO:data_websocket:Video chunk sender for 'primary' finished.
firefox-686dc975d8-74x95 INFO:data_websocket:Mode 2752x1760 not found. Creating it.
firefox-686dc975d8-74x95 INFO:data_websocket:Defining logical monitors for the window manager...
firefox-686dc975d8-74x95 INFO:data_websocket:Starting separate capture instances for each ACTIVE display region...
firefox-686dc975d8-74x95 INFO:data_websocket:Client 'primary' is active. Starting its capture.
firefox-686dc975d8-74x95 INFO:data_websocket:Preparing to start capture for display='primary': Res=2752x1760, Offset=0x0
firefox-686dc975d8-74x95 INFO:data_websocket:Video chunk sender started for display 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:SUCCESS: Capture started for 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:New frame backpressure task started for display 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 2752, "height": 1760}
firefox-686dc975d8-74x95 INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"[]}
firefox-686dc975d8-74x95 INFO:data_websocket:Display reconfiguration finished successfully.
firefox-686dc975d8-74x95 INFO:data_websocket:Reconfiguration process complete (state unlocked).
firefox-686dc975d8-74x95 X Shared Memory Extension available.
firefox-686dc975d8-74x95 XShm setup complete for 2752x1760.
firefox-686dc975d8-74x95 CPU cores available: 2
firefox-686dc975d8-74x95 Stream settings active -> Res: 2752x1760 | 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
firefox-686dc975d8-74x95 INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.
firefox-686dc975d8-74x95 INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
firefox-686dc975d8-74x95 INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
firefox-686dc975d8-74x95 [pcmflux[] First non-silent audio chunk detected! Encoding...

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