-
Notifications
You must be signed in to change notification settings - Fork 380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docker-for-win: containerized xpra server with xwin (cygwin) #122
Comments
Quite interesting that Xwin works with xpra so far. x11docker command line setup for Xwin and VcXsrv is the same (including X over IP with IP:DISPLAY).
xpra needs extension
This is probably the root/background window xpra works with. Normally it is invisible (Xvfb/Xdummy), as well as the black application window.
I don't know how windows can be minimized/hidden on MS Windows. Linux provides e.g. |
Yes.
The world window is meant to cover the whole desktop and is used for managing focus events. Each regular (non-OR) window will have a corral window reparenting it. Which means that the application window should always be shown inside the corral window.
Normal window managers place decorations on their equivalent to the corral window: that's where the top bar and the minimize / maximize / close buttons live. |
Regarding
I tried with So, it works. Keyboard and mouse work in the app (be Regarding the the world window and the corral windows, Xwin does hide what it calls the Root Window (i.e. it is not shown as a separate icon in the task bar, and it is minimized by default). This is similar to the world window of xpra, but the one from xpra is windowed fullscreen, while the one from Xwin is completely fullscreen (even on top of the taskbar). Nevertheless, if Xwin can hide it's own world window, there might be some mechanism to tell it to hide xpra's world and corral windows too.
It'd be great to either enable it by default in
I tried it. It does not work.
I believe that the X server (Xwin here) needs to tell Windows to create the icons in the task bar. So, we should not need an external tool to interact with windows. Shouldn't we interact with Xwin? I installed
I don't really want to remove it, if it provides some feature. It doesn't produce any problem when minimized. So, I'd just want to tell the X server not to create an icon for that window in the windows taskbar. According to https://xpra.org/trac/ticket/853 and the notes in 2.4 Important Features, I thought that the python3 version of the server was not ready. Is it?
As shown in the screencast above, this is not the case. Each regular window has a corral window, that's ok. But it seems not to be a parent. Both windows have the same size, and the regular window is shown on top of the corral. Furthermore, if the corral window is minimized, it is not updated anymore (it keeps it's position and size, independently of moving/resizing the regular window).
How does xpra set the corral window not to be visible? EDIT After checking the Xwin manpage and the feature list, I think that it is not possible to hide the icons in the taskbar.
The tray icon/menu can be hidden and/or modified:
But there is no equivalent feature for taskbar icons. |
That's "normal". In order to avoid window resizing loops, we delay configure events with a timer.
The "root" window has a very specific purpose in X11, it is the parent of all windows.
Maybe this will help:
No, xpra uses native API calls.
In 2.5 it is almost ready.
They are not meant to be manipulated externally. They are not meant to be seen either.
Exactly the same size.
It doesn't! |
Is there any info about the CI flow you use? Is it public? I can build the latest from sources in a Debian container. However, I'll need some time to have it done on Windows. Anyway, those changes should only affect the server, so I'll try.
Does it mean that I can install xpra 2.5 in a container without python2 at all, although with some bugs/missing features?
I was wondering if I could issue a
Then, I'm missing something. How is it that two windows are created, one of them is not supposed to be visible, but xpra does not tell it explicitly? Is it because xpra ensures that the corral window is always behind the real window? I'm trying to guess that, on GNU/Linux, the X server does not provide to the window manager the list of windows to be shown in |
Yesterday I've installed xpra with python3 on debian buster. It seems to work well so far.
We can try to hide the windows with xdotool. However, I would prefer a
A similar setup by x11docker is used with
Normally xpra uses Xvfb or Xdummy. They are always invisible (Xvfb = X virtual frame buffer), so xpra does not need to hide anything. |
Feel free to re-open if this is of interest again. |
Now that #120 is fixed, I can execute
./x11docker --gpu --user=root --cap-default -- -p "8080:8080" -- x11docker/xpra sh -c "apk add xterm && xterm"
in Cygwin, which will default to--xwin
. The X server is properly started, and xterm is shown on the host. Then, from an MSYS terminal, I can:The xterm windows disappears, and a huge window is opened on the host with title
Xpra-WorldWindow@b59bbb2a99c7
. With huge I mean that it takes all my desktop (two monitors).When I connect with a xpra client (from the host), I see the xterm window again. So, at first sight it seems to work somehow. But there is an annoying issue and it is not really usable:
xterm on 977b1caccd88
. The content (video/render) of xterm is shown here.Xpra-CorralWindows-0x80000d
. It is just a black window with a title.The annoyance is that keyboard input only works in the Xwin (black) window, which is behind. So, I need to select the black window from the taskbar and move it to a side. Then, I click inside and whatever I write there is shown in the other window. However, if I move the Xpra window, the Xwin one is positioned behind. See screencast below:
For the record, I tried the same exercise with
--vcxsrv
. The result is the same as with MSYS2 (reported in #117): xpra cannot start and vcxsrv takes 30% of the CPU and ceases to respond. I did add+extension COMPOSITE
manually.@totaam, can this be related to you comment. always try to avoid doing things this way in #117?
EDIT
When I disconnect the xpra client, the xterm window is closed, but
Xpra-CorralWindow
remains. When I close it, xpra terminates withXpra: Fatal IO error 11 (Resource temporarily unavailable) on X server 10.0.75.1:100.
, the huge window is closed and the xterm is shown again (because control is returned to xwin).It seems that both the huge window and
Xpra-CorralWindow
should not be shown in the windows taskbar, and they should be permanently minimized.The text was updated successfully, but these errors were encountered: