Skip to content
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

Improve UX regarding VM pausing #5993

Open
andrewdavidwong opened this issue Aug 10, 2020 · 20 comments
Open

Improve UX regarding VM pausing #5993

andrewdavidwong opened this issue Aug 10, 2020 · 20 comments
Labels
C: core P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. ux User experience

Comments

@andrewdavidwong
Copy link
Member

The problem you're addressing (if any)

Most users don't know what pausing a VM does or when they should do it.

Describe the solution you'd like

Some better way for Qubes OS to make VM pausing intuitive for users, or just improve the UX regarding VM pausing in general, however you deem best.

Where is the value to a user, and who might that user be?

Users won't use the pause functionality for the wrong reasons or in the wrong way. Users won't see the pause button and wonder fearfully what it does.

Describe alternatives you've considered

Document information about pausing VMs. This would also be good, but of course not everyone will read the documentation.

Additional context

See the discussion on #5988.

Relevant documentation you've consulted

We currently don't mention pausing much in the documentation. Understanding and Preventing Data Leaks mentions it in passing.

Related, non-duplicate issues

#5988, #5987, #5967, #5305, #4700, #4101

@andrewdavidwong andrewdavidwong added T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. C: core ux User experience P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. labels Aug 10, 2020
@andrewdavidwong andrewdavidwong added this to the TBD milestone Aug 10, 2020
@3hhh
Copy link

3hhh commented Aug 10, 2020

Yes, and don't forget to mention that unpause is not expected to work - especially after a while.

@brendanhoar
Copy link

If resume isn’t really supposed to work, why is it in the menu?

@marmarek
Copy link
Member

marmarek commented Aug 10, 2020 via email

@brendanhoar
Copy link

“it works unless you take a phone call
or lunch break” is not really a working feature. If it must be presented to UI users, I suggest adding an “Are you sure you wish to pause this VM? The unpause feature often fails.” OK/cancel dialog, at a minimum, to the UI invocations.

Or, make it more reliable.

B

@GWeck
Copy link

GWeck commented Aug 11, 2020

It would also be helpful if the difference between pause and suspend were documnented a bit more. Also, on the shutdown screen both operations are offered, but it is not clear what is the difference.

@marmarta
Copy link
Member

I have one big UI problems here - providing description in the domains-widget and in Qube Manager is difficult (almost nobody reads tooltips :( ), and reacting to every pause with a "are you sure" message box may be annoying (and showing it just once will mean roughly 80% of people will not read it). I could perhaps add a warning with "don't show this warning for X days/this VM/until next reboot"...

Maybe we should rename it to something like Emergency Pause?

@brendanhoar as far as I can tell, this is a problem with Linux kernel, hard to fix on our side.

@GWeck this I think is part of the bigger "Linux tools have unclear UI" problem - the shutdown widget is just basic XFCE, so there's no very simple way of modifying it without having to maintain our separate fork :( I would love to have a more customized and usable window manager one day...

@3hhh
Copy link

3hhh commented Aug 11, 2020

+1 from me for "emergency pause" unless it's fixed.

marmarta added a commit to marmarta/qubes-manager that referenced this issue Aug 11, 2020
… Pause

Instead of tiny buttons, now Qube Manager will have bigger buttons and text underneath.
Furthermore, Pause gets renamed to Emergency pause for clearer communication.

references QubesOS/qubes-issues#5993
marmarta added a commit to marmarta/qubes-desktop-linux-manager that referenced this issue Aug 11, 2020
@andrewdavidwong
Copy link
Member Author

If unpausing is only expected to work for up to ~30 mins, then how about, when you pause a VM, a little widget pops up that says, for example:

The work qube can be unpaused for the next:

21m 32s

[Unpause]

(Or some better version of this.)

@andrewdavidwong andrewdavidwong modified the milestones: TBD, Release 4.1 Aug 13, 2020
@brendanhoar
Copy link

If unpausing is only expected to work for up to ~30 mins, then how about, when you pause a VM, a little widget pops up that says, for example:

The work qube can be unpaused for the next:
21m 32s
[Unpause]

Unfortunately the cause of the failed unpause isn’t that deterministic.

B

@andrewdavidwong
Copy link
Member Author

Unfortunately the cause of the failed unpause isn’t that deterministic.

I'm not sure what you mean. I don't see how my idea depends on the cause being deterministic, unless that entails that there is no safe minimum time at which to set the threshold.

@marmarta
Copy link
Member

marmarta commented Aug 15, 2020 via email

@ninavizz
Copy link
Member

ninavizz commented Sep 4, 2020

Guys—is there a reason it's not just called "Quit VM" or "Shut Down VM?" I feel that much of the problem, is splitting hairs in an effort to be as technically accurate as possible... and muddling usability, in the process.

Including descriptions in a dropdown menu doesn't feel like an acceptable solution for this. What the function is called, needs to speak clearly enough for itself.

Yes, reading through the above, I'm also gathering I don't understand the functionality, myself... which, again, then, speaks to needing to make it more self-evident in the UI. We can't count on ppl to read documentation; although a compromise, would be including contextual help within the menu itself (and I've done a mockup of that, somewhere).

@marmarta
Copy link
Member

marmarta commented Sep 4, 2020 via email

marmarta added a commit to marmarta/qubes-manager that referenced this issue Sep 22, 2020
… Pause

Instead of tiny buttons, now Qube Manager will have bigger buttons and text underneath.
Furthermore, Pause gets renamed to Emergency pause for clearer communication.

references QubesOS/qubes-issues#5993
@ninavizz
Copy link
Member

ninavizz commented Feb 5, 2021

On Mon, Aug 10, 2020 at 10:52:58AM -0700, Brendan Hoar wrote: If resume isn’t really supposed to work, why is it in the menu?
It does work if you do it relatively shortly after pause - up to something like few tens minutes after.

Can the "un-pause" option in the dropdown have a live countdown-timer on it that then disables this option entirely, after 10min? To me, that sounds like the most obvious solution in the UI itself.

More options to learn about stuff, contextually, throughout all the UIs seems like a broader but solid need, longer-term. Mostly because so many things in Qubes speak to non-existent mental models for almost all users.

@3hhh
Copy link

3hhh commented Apr 13, 2021

I think I found a one-line removal fix for the root cause, i.e. this one can be likely reverted to the original wording.

Details in #5988

@ninavizz
Copy link
Member

If it the issue of paused VMs effectively freezing or crashing in-stasis at some point could be fixed so that doesn't happen, yay! If not: would it be possible to change the "status" of a VM from Paused to Frozen or Crashed or something speaking to a need to kill it?

@deeplow
Copy link

deeplow commented Apr 17, 2021

Well, pausing is something you do to a VM. Not something that happens on its own (like freeze or crash).

I would suggests that this feature is either supported or removed from the GUI entirely until it works reliably. It would also reduce the information load in some Qubes Domains widget. And one can always qvm-pause (and some Warning could be easily added there).


On another note, it is hard to tell paused VMs apart. I would suggest that when a VM is paused it should have a grey-ish tone to it. Kind of like the "blue" in alt-tab:

screenshot2

The XFCE's alt-tab code I believe is this. Possibly also a Resume button at the center.

@ninavizz ninavizz modified the milestones: Release 4.1, Ongoing May 24, 2021
@ninavizz
Copy link
Member

No linked PR and 4.1 is nearing release. I really like @deeplow's idea with the tinting of a window with a Resume button at the center, but also feel the functionality should to function reliably; and yet the effort to make that possible, feels so low on the broader order of priorities.

Thoughts?

@3hhh
Copy link

3hhh commented May 24, 2021

Fyi:

I use the following as salt fix:

# -*- coding: utf-8 -*-
# vim: set syntax=yaml ts=2 sw=2 sts=2 et :
#
# Fix https://github.com/QubesOS/qubes-issues/issues/5988 - make unpausing a VM after a longer time work.
#

#remove the systemd-logind watchdog as it restarts systemd-logind after an unpause, which in turn causes X to shut itself down, which then causes qubes-gui-daemon to fail & dispVMs to shut down
remove-systemd-logind-watchdog:
  file.replace:
    - name: /usr/lib/systemd/system/systemd-logind.service
    - pattern: '^WatchdogSec=.*$'
    - repl: ''

@andrewdavidwong andrewdavidwong modified the milestones: Ongoing, TBD May 24, 2021
@deeplow
Copy link

deeplow commented May 24, 2021

but also feel the functionality should to function reliably;

Yup. This is a requirement. But if @3hhh's thing solves it then it should be implemented. Regardless, on the current 4.1 testing release it is labled as emergency pause. With that priority I don't think users are likely to click there. And if they do, they may remember they paused it.

So I don't think this should be a priority.

@andrewdavidwong andrewdavidwong removed this from the Release TBD milestone Aug 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: core P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. ux User experience
Projects
None yet
Development

No branches or pull requests

8 participants