[Spice-devel] [RFC] Seamless mode behaviour discussion

Lukas Venhoda lvenhoda at redhat.com
Wed Aug 10 14:25:38 UTC 2016


Hi

On Wed, Aug 10, 2016 at 12:09 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
>> 1. Closing last seamless window
>> The question is what should happen, after you close the last window
>> while in seamless mode.
>> Currently when no window are open, the desktop with taskbars is shown
>> (without window
>> decorations, so basically fullscreen with your own taskbar showing)
>>
>> I propose, that closing the last window should close the client,
>> because that's what I always expect,
>> when I close th last window, and I'm always surprised that the
>> background shows up instead :)
>>
>> Second way would be to disable seamless mode. This might seem better,
>> but in the end, I see it not
>> much better then showing the background, because it might be confusing
>> when you close a window, that a VM shows up instead.
>>
>
> I remember how VirtualBox and Citrix xenapp works.
>
> The first is focused on the desktop. When you enabled seamless only the
> taskbar at the beginning is shown and you can open additional applications.
> When you close all application the taskbar is still there to allow other
> applications to be launched.
>
> xenapp was instead focused on applications so you decide which application
> to run and xenapp will connect to a VM and filter out all windows except
> your one (so the taskbar is not shown). When you close the application
> you get disconnected.
>
> It seems that your idea is more similar to the second however you still
> have the taskbar (if I understood) which is more similar to the first.

Yes the xenapp way is similar to my idea. The taskbar I meant from
your own system, because it's not really fullscreen.
VM side taskbar is still hidden.

>> 2. Starting from command line
>> So this one is rather simple, we could have --seamless-mode option to
>> just open the VM directly in
>> seamless mode. Currently a maximized VM would show up if no windows
>> are open, but with the change I propose, this would be an issue. Maybe
>> don't enable seamless mode when no windows are open? So then this
>> option would run the VM normally, and seamless mode button would be
>> greyed out.
>>
>
> Greying out make sense.
>
>> 3. Alt tabbing inside the VM
>> This one is currently kinda hacked. I changed the keybind inside the
>> VM from alt+tab to shift+tab, but we could just bind the shift+tab
>> combo to send alt+tab key combo to the VM or something.
>> The propblem starts when the alt+tab interface shows up, because it is
>> only rendering over the windows themselves. Could there be
>> multiplatform way to show the interface? This might also be
>> customization dependant (different sizes, widgets, etc)
>>
>> Example: http://i.imgur.com/pZlcCIV.png
>>
>
> Quite complicated. I think the best would be if you detect and handle the
> applications from the VM as being present on the client. But this seems
> overkilling.
> You could add the rectangle of the switching windows to the ones you transfer
> so hitting alt-tab will make possible to change application inside the VM.

Yes i'll try to work out the alt tab window somehow, because it still
needs to be shown even with my implementation.

>> 3. Accessing activities, start menues etc
>> This one is a weird one. We could do it like other VMs with a special
>> button to emulate activities/start etc floating around the screen and
>> showing most of the VM when clicked, or something like that. I'm not
>> really sure how to do this one
>>
>
> I didn't get this one.

Like the applications menu from taskbar, (start on windows, activities
in gnome etc)
If the user wants to launch a new app he would usually use the menu,
but currently it's hidden with the taskbar

>
>> 5. Multi desktop and multi monitor
>> This might be currently the biggest propelm, with no real idea how to solve
>> it.
>> Currently the VM is still a one big window, so showing up multiple
>> windows might be the way to go, but can we have multiple displays
>> working as a workspace? It might require like 8 display for simple
>> dual screen + 4 workspaces layout, not even mentioning dynamic
>> workspaces in gnome.
>>
>
> For multi monitor I would have a 1-to-1 mapping from VM to client.
> For multi desktop I would just let the VM switch between it's desktop
> (not mixing with client notion of desktops).

Could we set the application to not move when changing workspaces?
This way your workspace would change (outside VM) as well as the
workspace inside of the VM.

>> 6. Launching specific applications from command line
>> So this might be a cool little feature. Imagine running the VM from
>> command line, with seamless mode on and telling it exactly what
>> app/script run when the client launches.
>> It could even work like having pecific applications in the activities
>> which would in turn open the client and launch the app, and close the
>> clitn when the app is closed.
>>
>> There is a security concern about leting the user run scripts on a VM
>> from command line, but wer could have some kind of settings, where the
>> user would choose specific command like words for specific
>> binaries/scripts in the VM beforehand.
>>
>> Example: remote-viewer --seamless-mode --start writer
>>
>> Which would look if a writer command has been set upt, and if yes, run
>> the given application.
>>
>
> Looks like you want here to do something like xenapp :)

I might take a look at it. Seems like a cool way to launch virtualized
apps to me.

>> So that's most of the issues that really need solving, and it's better
>> to discuss it in the list instead of just us 3 in Brno :)
>>
>> Thanks for all the responses.
>
> Frediano

Thanks for the response
-- 
Lukas Venhoda


More information about the Spice-devel mailing list