Skip to content

X11 with VNC, Fatal server error: (EE) Failed to activate virtual core keyboard: 2(EE) , termux workaround #75

@deliciouslytyped

Description

@deliciouslytyped

Update: termux not needed with #75 (comment)

I've been fiddling with #34 , and made something akin to progress, but there are some issues;

  • strace doesnt work, so I'm not sure how to figure out why Xvfb isn't working. GDB works but I don't know how to deal with multithreaded-processed things with it. strace doesn't work #76
  • the hybridization approach seems to leave everything visible in VNC hanged, whatever that means.*

cc @ShamrockLee

As a temporary workaround for #34, I tried installed and running X11 in termux.
I successfully installed and ran Xvfb, and connected nix-built applications to the remote display via the $DISPLAY variable over the loopback device. So a hybrid termux/nix-on-droid approach seems to work*.

A thrown together tutorial (no authentication, etc, the point was just to see if I can even get this to work):

  • Install termux and nix-on-droid from F-Droid
  • install a VNC app like VNC Viewer (by RealVNC) from the play store, or MultiVNC from F-Droid. Sadly the UI design of the former seems to work somewhat better. For example: the MultiVNC keyboard overlaps with the screen area for me, which is irritating Feature request: shift the canvas up/down when the keyboard is toggled bk138/multivnc#76 (comment)
  • keep installing stuff until termux is happy; the main things needed are tigervnc, providing the vncserver and x0vncserver commands, which spawn an Xvnc process, and the X11 stuff which provides Xvnc, Xvfb, etc.
  • in nix, load a shell with something like awesomewm and xclock for testing
  • TERMUX: run Xvfb to start an X server. It seems not to expose a network port by default so we make it listen on a port, and we disable host based authentication (TODO: check the auth disabling is needed): Xvfb -listen tcp -ac &
  • TERMUX: run x0vncserver to attach a vnc server to an existing display (TODO: check how to do it without password) (TODO: check if setting env var is needed) (TODO: the passwd file is created by running vncserver probably?): DISPLAY=:0 x0vncserver -rfbauth /data/data/com.termux/files/home/.vnc/passwd
    Edit: NIX: start a nix-shell with x11vnc and run DISPLAY=127.0.0.1:0 x11vnc -passwd whatever -rfbport 5901 -noshm -forever see X11 with VNC, Fatal server error: (EE) Failed to activate virtual core keyboard: 2(EE) , termux workaround #75 (comment)
  • NIX: export DISPLAY=127.0.0.1:0 && awesome & xclock &
  • VNC CLIENT: connect to 127.0.0.1:5900 with the set password (or whatever port, check with netstat) and enjoy your frozen windows

TODO: script that sshes to the termux and handles everythig in one place

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions