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

Make it easier to open other apps and files in a running DisposableVM #5557

Open
lattice0 opened this issue Jan 4, 2020 · 17 comments
Open
Labels
C: other 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

@lattice0
Copy link

lattice0 commented Jan 4, 2020

The problem you're addressing (if any)
If I open a new DispVM, I cannot (easily) open other apps in the same DispVM. If I do through the qubes menu, it opens a new DispVM with the new App.

Describe the solution you'd like
It'd be better if, when I opened, for example, Firefox in a DispVm called DispVM 3412, then DispVM 3412 appears in the Qubes menu just as other VMs do, so I can launch other apps other than Firefox inside it, not in a new one.

Where is the value to a user, and who might that user be?
In my case I want to test random github projects that require, for example, installing through terminal, browsing files, opening vscode, all inside one VM. Then I want everything to go away with the click of a button (shutdown VM). It's much better than creating a VM just for that and then erasing it.
But I see people using this for any kind of problems

@lattice0 lattice0 added 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. labels Jan 4, 2020
@marmarek
Copy link
Member

marmarek commented Jan 4, 2020

You can open terminal using domains widget (Q icon). But generally using multiple applications in a single DisposableVM may be confusing, as DisposableVM is destroyed as soon as you close the "primary" application (the one started initially) - regardless of what else is running there.

@brendanhoar
Copy link

If I want to use a disposable VM for more than just a one-time task like opening a PDF of unknown providence (the intended purpose), I usually just start the disposableVM via the "Xfce Terminal" (whonix) or Xterm (fedora).

I then open another terminal window from that "original" terminal window and minimize it to reduce the chances of shutdown without intention.

Then use the secondary terminal window to execute commands/applications.

B

@andrewdavidwong andrewdavidwong added the ux User experience label Jan 8, 2020
@andrewdavidwong andrewdavidwong changed the title Make dispVM instances appear in the VMs list Make it easier to open other apps in a running DisposableVM Jan 8, 2020
@andrewdavidwong andrewdavidwong added this to the Far in the future milestone Jan 8, 2020
@andrewdavidwong andrewdavidwong changed the title Make it easier to open other apps in a running DisposableVM Make it easier to open other apps and files in a running DisposableVM Feb 28, 2020
@ninavizz
Copy link
Member

ninavizz commented Apr 1, 2021

Ohboyy I did not know this is how things work today. Will give this some thought in the updated AppMenu design.

@deeplow
Copy link

deeplow commented Apr 1, 2021

There is a way to currently do this, but it takes some configuration. I should make a guide about it as now all that exists are a documentation page on something related and a discussion on the forum.

The solution is to have a named dispVM and configuring the qubes.OpenInVM with something like:

srcVM $dispvm allow,target=namedDispVM

One thing the user would also need to do is to have the qubes-app-shutdown-idle package installed because now the qube doesn't shut down as soon as the user closes the viewing application (because there may be multiple).


(slightly more) User-friendly implementation

In a qube's settings under Advanced tab » Other, there is the option Default DisposableVM Template. Currently only DisposableVM Templates there, but it would be nice to have the option to select Named DisposableVMs.

The user would still need to create said Named DisposableVM via the terminal and install the qubes-app-shutdown-idle package. But it would avoid having to mess with Qubes RPC configurations.

@SvenSemmler
Copy link

SvenSemmler commented Apr 1, 2021 via email

@deeplow
Copy link

deeplow commented Apr 1, 2021

Yes, some more thought will need to be given to the shut down behavior in a way that does not surprise the user. I mention here another possible solution: shutting down the VM when all windows are closed.

@ninavizz
Copy link
Member

ninavizz commented May 11, 2021

This mockup is one of the leading candidate solutions for a new appmenu (for the first 2 releases, based on survey feedback thus far). It demonstrates the disp-vm functionality suggested in this issue. This feels like the most intuitive way to reflect this functionality in the appmenu.

The ability to shut down VMs within the appmenu will likely be included in the forthcoming appmenu redesign (yep, that has been responded to quite favorably in the survey). Thoughts (on just the disp-vm part of this, relevant to this issue)?

I am not comfortable with shutting down the VM by default, if any files have been saved to its File Manager in the use of another app—but if nothing has been downloaded or created/saved, then it makes sense to shut down the disp-vm with the closure of the last application open in it.

valentina-withopendisp

@andrewdavidwong
Copy link
Member

It demonstrates the disp-vm functionality suggested in this issue.

Where? I'm not seeing any DisposableVMs in the menu.

@ninavizz
Copy link
Member

ninavizz commented May 12, 2021

@andrewdavidwong datascrub is the template for the disp-vm, and then 3573-datascrub is the running disp-vm.

What are you "seeing" instead?

@andrewdavidwong
Copy link
Member

@andrewdavidwong datascrub is the template for the disp-vm, and then 3573-datascrub is the running disp-vm.

What are you "seeing" instead?

Oh, I was looking for an entry like disp1234, since that's how DisposableVMs are named in Qubes.

@DemiMarie
Copy link

DemiMarie commented May 12, 2021

@andrewdavidwong datascrub is the template for the disp-vm, and then 3573-datascrub is the running disp-vm.
What are you "seeing" instead?

Oh, I was looking for an entry like disp1234, since that's how DisposableVMs are named in Qubes.

Nit: That is how automatically created DisposableVMs are named. Manually-created DisposableVMs (often called “named DispVMs”) can be named anything the user wishes.

@andrewdavidwong
Copy link
Member

@andrewdavidwong datascrub is the template for the disp-vm, and then 3573-datascrub is the running disp-vm.
What are you "seeing" instead?

Oh, I was looking for an entry like disp1234, since that's how DisposableVMs are named in Qubes.

Nit: That is how automatically created DisposableVMs are named. Manually-created DisposableVMs (often called “named DispVMs”) can be named anything the user wishes.

Sure, but then I would have expected something like, "In this screenshot, we've created a static DisposableVM named X." At first, I thought creo was the DisposableVM, since that's the one with the open menu. But then I thought, "Wait, there's no indication that that's a DisposableVM, so that must not be it. But then where is it?" which led to my question.

So, one important takeaway is to indicate to the user which of these VMs are disposable and which are not.

@deeplow
Copy link

deeplow commented May 12, 2021

This feels like the most intuitive way to reflect this functionality in the appmenu.

Quite an interesting approach. I like it 👍

@ninavizz
Copy link
Member

ninavizz commented May 13, 2021

Nit: That is how automatically created DisposableVMs are named. Manually-created DisposableVMs (often called “named DispVMs”) can be named anything the user wishes.

Sure, but then I would have expected something like, "In this screenshot, we've created a static DisposableVM named X." At first, I thought creo was the DisposableVM, since that's the one with the open menu. But then I thought, "Wait, there's no indication that that's a DisposableVM, so that must not be it. But then where is it?" which led to my question.

All of the above, needs to be self-evident when looking at a UI at first glance (with familiar semiotics—which the qute qubes are not, just yet). Hence, why this will take some iteration. :)

Alrightee... it sounds like there are some conversations that need to happen, around all the incarnation options for disposable VMs. That can happen, and I'll put it on my "to do" list for an async workshop.

One other issue, is that the new icons system has not yet rolled-out... and I don't even have 4.1 on a laptop, to "test" how Marta has implemented the disp-vm icon. I also don't know if the disp-vm's are still currently italicized in the menu, or not. @marmarta when you are home, could we do a quick runthrough of all the Disp-VM incarnations on 4.1 and how icons populate throughout? Also—are the qute-qube icons in window chromes on 4.1, or is that just your own customized thing in a screenshot?

I will work on procuring a laptop to run test builds on, as I probably should have that, anyway. I cannot unfortunately run 4.1 on my SecureDrop Workstation laptop, which thus far is my only Qubes machine.

@ninavizz
Copy link
Member

ninavizz commented Jun 5, 2021

Functionality shown in #6665

@deeplow
Copy link

deeplow commented Jun 5, 2021

Implementing this will possibly have to change behavior of when a disposable qube shuts down.

Current Behavior

Shut down as soon as the first program opened there is closed. Example:

  1. opens pdf in disp1234
  2. opens browser in disp1234
  3. closes pdf reader and qube shuts down (including the still open browser)

Future Behavior

Shuts down only when all the processes associated with open applications close.

  1. opens pdf in disp1234
  2. opens browser in disp1234
  3. closes pdf reader
  4. closes browser
  5. qube shuts down

@ninavizz
Copy link
Member

ninavizz commented Mar 6, 2022

@marmarta Has this been done or is it being worked on?

@andrewdavidwong andrewdavidwong removed this from the Release 4.2 updates milestone Aug 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: other 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