Passing of input devices #10
-
|
Hello! (context) I came across joonas' blog post while doing some research about multi-pointer interfaces for a theatre performance i'm currently working on (I want every member of the audience to have a mouse and to be able to interact with a big screen). Thank you for sharing your research! However, we did not manage to get the VNC server running. we tried three methods :
I'm not sure which problem would be easiest to solve, could you please give us a hint to what we could try next? thank you for your time! :) |
Beta Was this translation helpful? Give feedback.
Replies: 11 comments 3 replies
-
|
Hey! It is true there is no arm64 version, as I've not needed it. Seems to work out of the box, the most recent version. I used this command: docker run -d --name screen-server -p 80:80 --shm-size 512m -e "SCREEN_1=5900,800,1280,Galaxy Tab 2" fn61/screen-server:20240121_1530_c8d20f9d
Is it possible that you might get confused by the particular screen being all transparent? That shows on the webpage as white, so in the beginning the frontpage is just the heading "Galaxy Tab 2" because remember this is meant to host multiple screens and so frontpage has this structure:
See, this is from most recent version: Peek.2024-04-13.18-38.mp4So one has to click on the thumbnail (all white, I agree it's sucky UX!) to open the web-based VNC viewer. Another alternative is to just use VNC without the webpage. |
Beta Was this translation helpful? Give feedback.
-
|
Seems like adding multi-arch images (ARM 64 & 32 bit) was not a pain at all. Please test if you can! #9 |
Beta Was this translation helpful? Give feedback.
-
|
Dear Jonas, |
Beta Was this translation helpful? Give feedback.
-
|
Great that got you forward! The multi-arch build had a bug, turns out it was a bit more work but not bad still. The above mentioned PR has an update, if you have time please try again |
Beta Was this translation helpful? Give feedback.
-
|
I tested the new image on my Raspberry Pi 3B+ running on Raspbian 6.6, it's working! thank you :)) also : adding |
Beta Was this translation helpful? Give feedback.
-
|
However, i haven't managed to pass the mouse events to x11vnc yet. I might be misunderstanding how it's supposed to work : what i expected was my mouse to stop being responsive (being "grabbed") as soon as i launched the docker image with the proper flag ( in both cases, using thank you for your help, i appreciate it. |
Beta Was this translation helpful? Give feedback.
-
Now that you mention it, this worked without the seccomp flag on my work computer, but on my other computer I also had to use that flag.. maybe the need for it is fixed in updated Docker versions or such (I have 24.0.5 on where I don't need the flag, 20.10.7 where I need it) |
Beta Was this translation helpful? Give feedback.
-
|
Anyways, converting to discussion as the discussion no longer concerns openbox or a bug in screen-server |
Beta Was this translation helpful? Give feedback.
-
|
For context, the blog post you mentioned is this: https://joonas.fi/2020/12/attach-a-keyboard-to-a-docker-container/
Thanks for adding context via the expectation. So The second part of the puzzle is this code: screen-server/cmd/screen-server/main.go Line 219 in 4521f64 That gets only triggered if this option is set: screen-server/cmd/screen-server/main.go Line 193 in 4521f64 That gets set here: screen-server/cmd/screen-server/main.go Line 323 in 4521f64 So it's based on the
So you need to also add the device that you gave to Docker as Yes, this is too little documented.. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you so much for your time, i got everything working! In the video below i am interacting with firefox though my "grabbed" mouse as expected. My pointer is not visible but that's not an issue in my use case. trimmedout.mp4In this other video i'm using the signal from two concurrent docker images running a custom webapp in the browser. The two "grabbed" mouse positions are relayed to the webapp and used to dynamically move the position of two "pointers" on another client. multipointer.SUCCESS.movI am throttling the number of messages sent to the server but the next step is to try implementing a webRTC data channel to see if smooth 24 FPS updates of the pointer positions are possible. The goal is to get ~100 mice connected together in the end project! i'd like to thank you once more for your clarity and your kindness. |
Beta Was this translation helpful? Give feedback.
-
|
Dear @joonas-fi, I'm back to report on the completion of my initial project, which was kickstarted thanks to your research. Let me break up the steps i took :
you can watch a teaser here to get a glimpse of what games the crowd engage in. tech-wise, the bottom line of the project is that i did end up running into performance issues, probably because i'm animating many objects in certainly not the most efficient way in a web browser. The tradeoff of not using "native" pointers was that i had to pretty much re-code all the nice & free browser interactions & animations in Javascript (like CSS on-hover effects for instance). Anyway that was a super fun project, thank you very much for helping with the very first steps, which put me right on track! |
Beta Was this translation helpful? Give feedback.



For context, the blog post you mentioned is this: https://joonas.fi/2020/12/attach-a-keyboard-to-a-docker-container/
Thanks for adding context via the expectation. So
--deviceis only first part of the puzzle, that makes the device visible to inside of the container, but the app (screen-server) does not do anything with it yet.The second part of the puzzle is this code:
screen-server/cmd/screen-server/main.go
Line 219 in 4521f64