Skip to content

[BUG] Selkies-based UI missing core functionality for usability from iOS based devices which KasmVNC provides #49

@Chirishman

Description

@Chirishman

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I see the potential benefits of the Selkies based version and it does seem to be mostly a straight upgrade on desktop web browsers but several specific behaviors make this completely unusable for my workflow/usage pattern:

I will break them down into two basic categories although the issues with each compound the other:

Resolution Problems

  • Automatic resolution is setting an improper height on iOS cutting the title bar and the status bar at the bottom of the Calibre UI off. This includes various "yes" and "Continue" dialogue buttons which always appear in the bottom right corner. This also removes access to the horizontal scroll bar.
  • Resolution detection by Selkies is non-deterministic. Rotating the display from landscape to portrait and back while set to fullscreen results in a different resolution from the originally displayed resolution
  • Clicking "reset to window" button after trying a preset resolution sometimes results in an all-black screen that can only be recovered by refreshing the page or (for some reason) toggling the HiDPI (Pixel Perfect) toggle

User Input Deficiencies

  • Selkies, unlike KasmVNC offers no touch-based way to input modifier key inputs such as CTRL, ALT, ESC, TAB, etc, disallowing the triggering of said input dialogues with CTRL+Y, or Tabbing to the correct input and hitting spacebar, or similar. This also breaks my workflow for this tool which involves CTRL+Click selecting non-contiguous books to mark them as having been read/completed
  • Toggling the Onscreen Keyboard exits fullscreen mode every time
  • The mouse cursor/trackpad behavior option is not properly compatible with fullscreening on iOS. Because the system gesture for exiting fullscreened browser playback is pulling down if any of your mouse gestures start with a downward movement it exits fullscreen mode immediately.
  • Stylus mouse input (which works fine on KasmVNC) is fully unusable in Selkies unless you disable writing-based text input system-wide on your iOS Device.

Impact

My daily use of this container includes

  • Open at the default normal resolution
  • ctrl+click selecting several items by tapping them with my stylus
  • using a ctrl shortcut to mark them as read
  • going to a different tab in my Calibre library, scrolling sideways to check a few columns
  • hitting ctrl+a to select all and clicking a button to cause a plugin to check for new chapters/updates on the web serials I'm following
  • Clicking on the "Jobs" tracker in the bottom right corner to open the window to check on the long running job's progress
  • Inputting ESC to close the window using the KasmVNC touch UI
  • Clicking Yes on the UI dialogue in the bottom right to accept the changes to my library/updates to my downloaded books

I have bolded the items of my daily use of this container which are difficult or not possible with the current version of Selkies.

Here is a screen recording demonstrating the cut off UI elements, mouse input issues, etc on Chrome for iOS on an M4 iPad Pro

Expected Behavior

  • Proper resolution/viewable area detection on iOS Chrome, resulting in UI elements such as horizontal scrollbars, titlebars, and confirmation dialogue buttons not being cut off
  • Deterministic resolution detection not resulting in a different resolution before and after screen rotation
  • Ability to input CTRL, ALT, TAB, ESC

Steps To Reproduce

  1. Install the current version
  2. Attempt to access UI elements at the bottom of the window on iOS Chrome
  3. Attempt to input CTRL, ALT, TAB, ESC

Environment

- OS: Ubuntu 24.04.2 LTS
- How docker service was installed:
Not relevant

CPU architecture

x86-64

Docker creation

version: '3'

volumes:
  calibre_config:
    driver: local
    driver_opts:
      type: none
      device: "/var/containers/dockerconfigs/calibre"
      o: bind
  litshare:
    driver: local
    driver_opts:
      type: cifs
      device: //10.1.2.20/LitShare/
      o: addr=10.1.2.20,username=REDACTED,password=REDACTED,uid=1000,gid=1000,vers=3.0,file_mode=077>
services:
  calibre:
    image: lscr.io/linuxserver/calibre:latest
    deploy:
      placement:
        constraints:
          - "node.labels.role==nas"
#    security_opt:
#      - seccomp:unconfined #optional
    environment:
      - PUID=1001
      - PGID=1002
      - TZ=America/New_York
#      - PASSWORD= #optional
#      - CLI_ARGS= #optional
    volumes:
      - calibre_config:/config
      - /mnt/nvme1/literary:/literary
      - litshare:/litshare
    ports:
      - 8180:8080
      - 8181:8181
      - 8081:8081

Container logs

Not relevant

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