Jürgen Hartmann
2016-11-15 13:08:08 UTC
Using Fvwm for decades now, I am unfortunately not very familiar with its
details nor with the tools or concepts of Xorg. So I hope that somebody on
this mailing list can advice me a solution or a workaround for the following
issue:
On my Linux host system (Xorg 7.6 / Kernel 3.11.6) I use Fvwm 2.6.7 as window
manager (congratulation to the new default configuration which I like very
much) and Vmware Workstation 9.0.4 to run virtual machines that use variants
of MS Windows as guest operating systems.
Now, when I switch a virtual machine that is displayed in fullscreen mode
back to normal window mode, I get the normal Fvwm desktop but no Vmware
window: The expected Vmware GUI window is neither visible, nor iconified
somewhere, nor brought back by
All MoveToScreen
(issued in FvwmConsole), nor gets listed by FvwmWinList.
However, according to
xprop -name vmware
the window still exists with the following properties
(newlines and indents inserted for readability):
WM_CLASS(STRING) = "vmware", "Vmware"
WM_COMMAND(STRING) = { "vmware" }
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x1000002
WM_CLIENT_LEADER(WINDOW): window id # 0x1000001
_NET_WM_PID(CARDINAL) = 7626
WM_LOCALE_NAME(STRING) = "de_DE.UTF-8"
WM_CLIENT_MACHINE(STRING) = "unikat"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified size: 10 by 10
WM_PROTOCOLS(ATOM):
protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING
WM_ICON_NAME(STRING) = "vmware"
_NET_WM_ICON_NAME(UTF8_STRING) = "vmware"
WM_NAME(STRING) = "vmware"
_NET_WM_NAME(UTF8_STRING) = "vmware"
Actually, these properties didn't change since Vmware Workstation was freshly
started in window mode.
In addition, `ps' says that all necessary vmware processes are still running,
and it is possible to reopen that window--with a still running virtual
machine--using a second instance of Vmware Workstation.
This issue is not specific to Fvwm's version 2.6.7 as I found the same
behavior using its predecessors 2.6.6 and 2.6.5.
On the other hand, this problem does not not show up if Kwin 4.11.2 or
Icewm 1.2.38 is used as window manager: With one of these, the normal Vmware
GUI window shows up right after switching off Vmware's fullscreen mode.
To understand what is going on, I looked to the output that these window
managers produce when the fullscreen mode is switched on and off:
Kwin says nothing related.
Fvwm 2.6.7 outputs the following lines when the fullscreen mode is turned
on (!) at the first place (newlines and indents inserted for readability):
[fvwm][ComplexFunction]:
<<ERROR>> Grab failed in function EWMHActivateWindowFunc, unable to
execute immediate action
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
Icewm 1.2.38 comments the switching off (!) of the fullscreen mode like that
(newlines and indents inserted for readability):
IceWM: MappingNotify
IceWM: APP BUG?
configureRequest for window 40011C sent to destroyed frame 800003!
IceWM: APP BUG?
configureRequest for window 40011C sent to destroyed frame 800003!
IceWM: APP BUG?
mapRequest for window 40011C sent to destroyed frame 800003!
IceWM: APP BUG?
configureRequest for window 40011C sent to destroyed frame 800003!
I don't have the knowledge to interpret these messages in detail. But if you
force me to guess, I would say that there is a bug in Vmware Workstation that
happens to be treated in a more tolerant way by Kwin and Icewm than it is by
Fvwm.
Unfortunately, I am bound to use that version of Vmware since it was a hard
battle to find a working combination of guest system, virtual machine,
virtualization software and Linux kernel version. In particular, this rules
out the contemporary versions of Vmware Player and Oracle's Virtual Box.
Looking at Vmware's web pages, I found the contribution
https://communities.vmware.com/message/2207791#2207791
of 2013-03-08 where the user "dl8dtl" asks for help on the exactly same
problem that he encountered with Vmware Player. Unfortunately he was never
answered.
And since Vmware is closed source software (at least partially), Fvwm seems
to be the the only possible place to achieve something.
Searching the Fvwm mailing lists, the thread
http://www.mail-archive.com/***@fvwm.org/msg01287.html
started by Harald Dunkel on 2010-04-29 seems loosely related, but does not
help in this situation.
Following Thomas Adam's advice in
http://fvwmforums.org/phpBB3/
viewtopic.php?f=33&t=2000&p=11330&hilit=vmware
--which of course addresses a totally different problem, but that is related
to Vmware--I attributed the styles
EWMHIgnoreStateHints
EWMHIgnoreWindowType
to "Vmware*", achieving some effect to some of the transient windows that pop
up during the startup of the virtual machine but not to the actual problem.
If somebody likes to reproduce this problem, it can be done using for example
the Vmware Player 12.5.1 (current version) which is freely available from
http://www.vmware.com/products/player/playerpro-evaluation.html
Therein, it suffices to create a new virtual machine with an empty disk (no
system), power it on, an switching to fullscreen mode and back again. In
contrast to Workstation, a second instance of Vmware Player is not able to
bring back the hidden window.
To summarize, here are the questions I have right now:
* What is this fullscreen mode in the first place? Is it a window at all
what we see? Is it managed by Fvwm? Or by the X server? Or is it
realized by Vmware directly accessing the hardware?
* What is that state that the hidden Vmware GUI window is in after
returning from fullscreen mode?
(Known to xprop, but unknown to FvwmWinList.)
* Is there any tool to manipulate X windows at runtime, e.g. to move or
raise them or to change their geometry (aside from the window's border
and the handles there--it should be applicable to a hidden window)?
* Is it possible to tune Fvwm's configuration in some way, to achieve that
Vmware returns with a normal (visible) window from fullscreen mode?
* If not, is it possible to tune Fvwm's sources in some way to achieve
this? Perhaps by replicate the behavior of Kwin or Icewm in this
respect?
Pretty naive? I had a feeling.
* Do you see any solutions, workarounds, or starting points to proceed
with this problem?
In any case, thank you for still reading.
I would greatly appreciate any help.
Juergen
details nor with the tools or concepts of Xorg. So I hope that somebody on
this mailing list can advice me a solution or a workaround for the following
issue:
On my Linux host system (Xorg 7.6 / Kernel 3.11.6) I use Fvwm 2.6.7 as window
manager (congratulation to the new default configuration which I like very
much) and Vmware Workstation 9.0.4 to run virtual machines that use variants
of MS Windows as guest operating systems.
Now, when I switch a virtual machine that is displayed in fullscreen mode
back to normal window mode, I get the normal Fvwm desktop but no Vmware
window: The expected Vmware GUI window is neither visible, nor iconified
somewhere, nor brought back by
All MoveToScreen
(issued in FvwmConsole), nor gets listed by FvwmWinList.
However, according to
xprop -name vmware
the window still exists with the following properties
(newlines and indents inserted for readability):
WM_CLASS(STRING) = "vmware", "Vmware"
WM_COMMAND(STRING) = { "vmware" }
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x1000002
WM_CLIENT_LEADER(WINDOW): window id # 0x1000001
_NET_WM_PID(CARDINAL) = 7626
WM_LOCALE_NAME(STRING) = "de_DE.UTF-8"
WM_CLIENT_MACHINE(STRING) = "unikat"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified size: 10 by 10
WM_PROTOCOLS(ATOM):
protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING
WM_ICON_NAME(STRING) = "vmware"
_NET_WM_ICON_NAME(UTF8_STRING) = "vmware"
WM_NAME(STRING) = "vmware"
_NET_WM_NAME(UTF8_STRING) = "vmware"
Actually, these properties didn't change since Vmware Workstation was freshly
started in window mode.
In addition, `ps' says that all necessary vmware processes are still running,
and it is possible to reopen that window--with a still running virtual
machine--using a second instance of Vmware Workstation.
This issue is not specific to Fvwm's version 2.6.7 as I found the same
behavior using its predecessors 2.6.6 and 2.6.5.
On the other hand, this problem does not not show up if Kwin 4.11.2 or
Icewm 1.2.38 is used as window manager: With one of these, the normal Vmware
GUI window shows up right after switching off Vmware's fullscreen mode.
To understand what is going on, I looked to the output that these window
managers produce when the fullscreen mode is switched on and off:
Kwin says nothing related.
Fvwm 2.6.7 outputs the following lines when the fullscreen mode is turned
on (!) at the first place (newlines and indents inserted for readability):
[fvwm][ComplexFunction]:
<<ERROR>> Grab failed in function EWMHActivateWindowFunc, unable to
execute immediate action
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
[fvwm][GetWindowSizeHints]:
<<WARNING>> reason: 1: The hints have been ignored because the window's
current size would have become invalid. The new hints will become active
when the window generates the next ConfigureRequest.
Icewm 1.2.38 comments the switching off (!) of the fullscreen mode like that
(newlines and indents inserted for readability):
IceWM: MappingNotify
IceWM: APP BUG?
configureRequest for window 40011C sent to destroyed frame 800003!
IceWM: APP BUG?
configureRequest for window 40011C sent to destroyed frame 800003!
IceWM: APP BUG?
mapRequest for window 40011C sent to destroyed frame 800003!
IceWM: APP BUG?
configureRequest for window 40011C sent to destroyed frame 800003!
I don't have the knowledge to interpret these messages in detail. But if you
force me to guess, I would say that there is a bug in Vmware Workstation that
happens to be treated in a more tolerant way by Kwin and Icewm than it is by
Fvwm.
Unfortunately, I am bound to use that version of Vmware since it was a hard
battle to find a working combination of guest system, virtual machine,
virtualization software and Linux kernel version. In particular, this rules
out the contemporary versions of Vmware Player and Oracle's Virtual Box.
Looking at Vmware's web pages, I found the contribution
https://communities.vmware.com/message/2207791#2207791
of 2013-03-08 where the user "dl8dtl" asks for help on the exactly same
problem that he encountered with Vmware Player. Unfortunately he was never
answered.
And since Vmware is closed source software (at least partially), Fvwm seems
to be the the only possible place to achieve something.
Searching the Fvwm mailing lists, the thread
http://www.mail-archive.com/***@fvwm.org/msg01287.html
started by Harald Dunkel on 2010-04-29 seems loosely related, but does not
help in this situation.
Following Thomas Adam's advice in
http://fvwmforums.org/phpBB3/
viewtopic.php?f=33&t=2000&p=11330&hilit=vmware
--which of course addresses a totally different problem, but that is related
to Vmware--I attributed the styles
EWMHIgnoreStateHints
EWMHIgnoreWindowType
to "Vmware*", achieving some effect to some of the transient windows that pop
up during the startup of the virtual machine but not to the actual problem.
If somebody likes to reproduce this problem, it can be done using for example
the Vmware Player 12.5.1 (current version) which is freely available from
http://www.vmware.com/products/player/playerpro-evaluation.html
Therein, it suffices to create a new virtual machine with an empty disk (no
system), power it on, an switching to fullscreen mode and back again. In
contrast to Workstation, a second instance of Vmware Player is not able to
bring back the hidden window.
To summarize, here are the questions I have right now:
* What is this fullscreen mode in the first place? Is it a window at all
what we see? Is it managed by Fvwm? Or by the X server? Or is it
realized by Vmware directly accessing the hardware?
* What is that state that the hidden Vmware GUI window is in after
returning from fullscreen mode?
(Known to xprop, but unknown to FvwmWinList.)
* Is there any tool to manipulate X windows at runtime, e.g. to move or
raise them or to change their geometry (aside from the window's border
and the handles there--it should be applicable to a hidden window)?
* Is it possible to tune Fvwm's configuration in some way, to achieve that
Vmware returns with a normal (visible) window from fullscreen mode?
* If not, is it possible to tune Fvwm's sources in some way to achieve
this? Perhaps by replicate the behavior of Kwin or Icewm in this
respect?
Pretty naive? I had a feeling.
* Do you see any solutions, workarounds, or starting points to proceed
with this problem?
In any case, thank you for still reading.
I would greatly appreciate any help.
Juergen