QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
536 stars 48 forks source link

Organizing large numbers of VMs #2646

Closed andrewdavidwong closed 3 years ago

andrewdavidwong commented 7 years ago

The discussion in #2523 revealed that a rather severe UX problem arises when the user has a large number of VMs. Eight colors isn't enough to sufficiently distinguish them all. However, that discussion also led to the conclusion that simply adding more colors isn't the correct solution, since it's likely to backfire and ultimately harm the user instead. A more creative solution is needed.

jpouellet commented 7 years ago

I remember there having been proposals to provide different patterns (although I can't seem to find a link right now). I think this is reasonable.

jpouellet commented 7 years ago

Also I think the title of this issue is slightly misleading. I am under the impression that this issue is actually about differentiating already-running VMs, rather than organizing them (aka not a discussion about alternatives to a flat list in qubes-manager, the application launcher menu, etc.).

woju commented 7 years ago

The patterns were discussed in the context of accessibility for colorblind people. I understand the issue as wider in scope, together with list in manager, but you are right in the sense that colourful labels were initially intended to separate (as in "compartmentalise") windows (areas of screen) in GUI. That's their primary function.

andrewdavidwong commented 7 years ago

Also I think the title of this issue is slightly misleading. I am under the impression that this issue is actually about differentiating already-running VMs, rather than organizing them (aka not a discussion about alternatives to a flat list in qubes-manager, the application launcher menu, etc.).

It seems to me that a solution for differentiating large numbers of already-running VMs could very well entail an altnernative to a flat list in Qubes Manager, especially in light of #2132. I'd prefer to keep this open-ended in order to encourage creative solutions that might be unintentionally precluded by defining the problem too narrowly.

tonsimple commented 7 years ago

My two cents as a user who has many (>10) VMs actively in use.

New colors will be useful, but the extent to which users can differentiate them depends on user's eyesight, workload, stress (I could definitely distinguish more colors than you currently have under most circumstances, but I am very good at the "tell two close but dissimilar colors apart" tasks) and am rarely operating at any considerable stress (I am neither an activist nor a "funny agency" employee, etc etc)

Patterns will be useful, but same considerations apply (some patterns might become, in principle, possible to confuse when under stress)

I do think that increasing the number of colors AND enabling patterns, and making pattern independently pickable (so I can have a "red window" and "red window with vertical line pattern) would be most beneficial.

I suspect there might be academic articles on "most easily distinguished colors". As to "most easily distinguished patterns" I would suggest simply copying the "fill patterns" available in Microsoft Excel. Microsoft has likely already done relevant ergonomic research, so you don't have to ;-)

vercas commented 7 years ago

As someone who is colorblind, I can tell you that patterns would be extremely welcome.
Currently, green, yellow and orange decorations all look the same to me. Purple and blue are also indistinguishable. I am limited to 5 colors, including gray and black.

Adding something like a checkboard or diagonal line pattern would greatly improve UX, and they would work even for people who have harsher forms of colorblindness or even severely impaired eyesight.

DigitalChiller commented 7 years ago

Why not use different icons too? A gear for system vms, a stamp for tempalte vms, a lock for vault vms, a coffer for work vm, a fingerprint for personal vm (totally not inspired by firefox containers, nope). They even can be included into window titles (using fonts). I'm not colorblind but the colors confuse me too: why do vault, sys-whonix and template vms have the same color? why do the system vms have different colors? In i3wm it is hard to tell what window is focused when almost every window has a different color. https://www.qubes-os.org/doc/style-guide/ says the colors green, yellow, orange and red signalize success, alert, warning and danger respectively. Coloring a vms in these colors might me confusing.

coderpatros commented 7 years ago

My initial thoughts... there should be the option to choose an icon, pattern and two colours, foreground and background. The foreground colour would determine the colour of the icon, title bar text and the alternate colour for patterns. For readability, behind the icon and title bar text should be just the background colour, no pattern. There should be a minimum amount of the pattern visible between the icon and title bar text. The icon set should be monochrome. Think font awesome.

brendanhoar commented 6 years ago

Just to "me too" here: the availability of border patterns would be a very useful reminder when using disposable VMs that any updated content will likely go poof after that window is closed...especially with R4.0 or later where each menu app request for a disposable VM app goes to it's own uniquely started dispVM.

In my case, I would love to configure disposable VMs to have color/white "barbershop style" or "construction sign style" set of diagonal stripes in the window border and select red/white for anon-whonix disposables, blue/white for fedora disposables, and purple/white for VPN'd fedora disposables.

viviparous commented 6 years ago

Am a new user of Qubes 3.2; I have coding and UX experience and some vision challenges. I have followed the origin of this discussion and read all the comments. In short:

Req 1) Yes, organising and using even a moderate number of VMs is a problem that needs to be addressed. I have 17 entries in my VM Mgr list, including dom0. I expect to create several more.

Req 2) Yes, the hard-coded assumptions made in v3.2 are too limited and in some cases poor choices. For example, the "inactive titlebar" combination if the label colour is yellow is grey text on yellow (hard to read). As was mentioned by others, disparity in colour perception makes a dependence on colour alone a UX mistake. I understand the v4.x makes the colour settings configurable in a single file. Good. I suggest that OpenBox (e.g. LXDE) gets this mostly right. I prefer OpenBox for my own visual needs. When I use M-Windows, I switch it back to the "classic" mode, which also offers a good example of enabling the user to configure colours for window components.

Discussion

If the VM Mgr the preferred mgmt UI, then a collapsible node list could work well. The parent would be the template by default, but the user could relocate the children. It might also be possible to launch a set of VMs at once.

Also consider a pure graph presentation of nodes and edges. Not something that roils and churns like a force-directed d3 mess, but something stable and modifiable (dragging, connecting). It could be scalable. A node's properties could be listed in a "hover window" (mouseover event). You could have a default layout enforced with a "snap-to-grid" feature.

t4777sd commented 6 years ago

For me the issue is that colors are not a good enough signal between all my various VMs (referring to already running VMs not organizing VMs in the vm manager). I operate different VMs for different companies and each one has different trust levels. Identifying the VMs with the current color set is impossible because of overlap. However, at some point the colors would be too close together to be useful if lots of more colors were added.

These are the changes I think should be implemented:

Change 1: Color Picker The colors should be user pickable. Not so that users can add 100 colors, but because the default colors do not serve every users ability to differentiate colors. To be useful the user should be able to pick users that they they personally can differentiate and make sense. If you still want to limit it to 8 colors or whatever, then make 8 colors user pickable. Otherwise, you run the risk where the feature is just useless for some people.

Change 2: Patterns I also think patterns should be included as an option for stylization of the window title. Not just to create more ways to differentiate different contexts, but because it provides more information to the user to have color+pattern which means it will be easier to differentiate. Not to mention it helps color blind people which is an accessibility feature.

Change 3: Text Overlay - Most Important I would actually like the VM name (such as work, company 1, company 2, hobby 1, anonymous) to be overlaid over the VM title bar. That way I can just look at the title bar and see that it is "company 1" and it is very explicit without me having to remember which VM I assigned it to.

Maybe there is not a good way to do that for the windowed applications and of course wouldn't be useful if there is no title bar. Maybe an alternative would be a keyboard shortcut that displayed the VM the currently focused VM belonged to. While actively pressing this keyboard shortcut then overlaid in the center of the screen will be the VM name. As soon as it is unpressed it will disappear.

This would server as a way for someone to quickly identify a VM without doubt. "I forgot exactly what this yellow VM is again. What is it?" Press the keyboard shortcut and it says "hobby-net-vpn" and just like that I know exactly what it is.

andrewdavidwong commented 6 years ago

I would actually like the VM name (such as work, company 1, company 2, hobby 1, anonymous) to be overlaid over the VM title bar. That way I can just look at the title bar and see that it is "company 1" and it is very explicit without me having to remember which VM I assigned it to.

That's how it's always been, though. Do you not have VM names in the title bars of your windows?

GammaSQ commented 5 years ago

I may have a very different approach, but I rarely have difficulty figuring out which window belongs to which VM. Even if they have the same color, different VMs have different purpose and so the same program is rarely open in two VMs of the same color. (except for file explorer)

What I would much rather wish for is a visual cue as to what's going on in one distinct VM. I'd wish for two things to have a better overview:

1.) In KDE, when alt+tab-ing through windows, it would make everything transparent except for the window currently selected until you're done alt-tabbing. Since there are now all running domains in the qubes-domains blue Q, would it be possible to make everything transparent and highlight all windows running in one VM, as well as representations in the task-bar, when hovering on one VM? I'd guess this would be a lot of work to do correctly for all the different window-managers.

2.) I love the qube-manager and I'd hate to see it go. (Though I rarely use it right now due to known bugs.) If we keep it, there would be a lot of options. I disagree with the option to create folders (unless someone has a great idea how to visually communicate what VM is part of which folder), but would enjoy a way to see all running programs for each VM with a glance. Running VMs shoudl be listed on top, stopped below. Though I like the little status-icons and after some time they are quite informative, I'd appreciate something "bigger" to signify VM-states. (e.g. instead of the updates-available logo a light-green background, a green rim for powercycle-to-update AppVMs, red rim for paused VMs, and so on ...)

0spinboson commented 4 years ago

related: https://github.com/QubesOS/qubes-issues/issues/5532

andrewdavidwong commented 3 years ago

Closing as over-broad and under-defined. There are now many other more specific issues to address this topic, such as #6679 and the other issues linked to this one.