DispVM(mullvad-browser) Debian-12-minimal

1. Download, install and clone template

1.1 Install debian-12-minimal template
dom0 terminal:
sudo qubes-dom0-update qubes-template-debian-12-minimal

1.2 Clone debian-12-minimal template:
dom0 terminal:
qvm-clone debian-12-minimal d12m-mullvad

2. Download mullvad-browser:

2.1 From any VM-browser download mullvad-browser:

2.2 Send the downloaded file to the cloned template “d12m-mullvad”

3. Installing aditional packages on d12m-mullvad template:
You can customize the template for specific uses, in this case its a “Mullvad-browser DispVM”, its better you have passwordless root since the minimal template are minimal, they are not configured for passwordless root by default, to do that you can install the packages directly from dom0 and after that you’ll be able to use ‘sudo’ inside minimal template if you dont want to install from dom0.

Dom0 terminal:
qvm-run -u root --pass-io --nogui d12m-mullvad "xterm -e 'apt-get update && apt-get upgrade && apt-get install qubes-core-agent-networking qubes-core-agent-passwordless-root nautilus mousepad && apt-get autoremove && read'"

4. Setup mullvad-browser on template

4.1 Browse to QubesIncoming folder inside cloned template(d12m-mullvad)
dom0 terminal:
qvm-run d12m-mullvad 'nautilus'

4.2 Extract the downloaded file and move the mullvad-browser folder to /home/
after that the path will be:

4.3 Shutdown the template
dom0 terminal:
qvm-shutdown d12m-mullvad

5. Create AppVM based on d12m-mullvad template
dom0 terminal:
qvm-create --template d12m-mullvad --class AppVM --label red default-dvm-mullvad-browser

6. Copy mullvad-browser folder from cloned template(d12m-mullvad) to AppVM(default-dvm-mullvad-browser)
dom0 terminal:
qvm-run d12m-mullvad "xterm -e 'qvm-copy /home/user/mullvad-browser && read'"
→ a window will pop up, select the recent created appvm (default-dvm-mullvad-browser) and click OK

6.1 Move /QubesIncoming/d12m-mullvad/mullvad-browser/ to /home/user/ in (default-dvm-mullvad-browser)
dom0 terminal:
qvm-run -q -a --pass-io --nogui default-dvm-mullvad-browser 'mv /home/user/QubesIncoming/d12m-mullvad/* /home/user/'

6.2 Edit two .desktop files inside VM (default-dvm-mullvad-browser) find and delete the word “–detach” from each file

dom0 terminal:
qvm-run default-dvm-mullvad-browser 'mousepad /home/user/mullvad-browser/Browser/start-mullvad-browser.desktop'"

dom0 terminal:
qvm-run default-dvm-mullvad-browser 'mousepad nano /home/user/mullvad-browser/start-mullvad-browser.desktop'

6.3 Shutdown both qubes
dom0 terminal:
qvm-shutdown d12m-mullvad default-dvm-mullvad-browser

7. Make AppVM(default-dvm-mullvad-browser) a disposable template and set the default dispvm
dom0 terminal:
qvm-prefs default-dvm-mullvad-browser template_for_dispvms True && qvm-prefs default-dvm-mullvad-browser default_dispvm default-dvm-mullvad-browser

8. Creating Application Launcher for mullvad-browser in Panel

8.1 Right click on panel then navigate: Panel → ‘Add New Item’
Choose Launcher then click ‘+Add’ and ‘Close’

9. Right click on launcher in panel then select ‘Properties’
Choose ‘Add new item’ and fill the fields:

Command: qvm-run -q -a --pass-io --dispvm=default-dvm-mullvad-browser 'cd /home/user/mullvad-browser/ && ./start-mullvad-browser.desktop'

Click “SAVE”

If you have done everything ok, click on launcher and mullvad-browser will run like a charm.

1 Like

looks like a lot of work.

No it isn’t. This guide creates a disposable vm and a app launcher on panel, so whenever you want browse the web you can run the launcher and use mullvad browser as disposable.

mullvad’s instructions can be done in the dvm-template

Thats amazing, now we have two guides in one topic… :smiley:
thanks for sharing it.

when I click on the launcher and mullvad-browser starts, and it automatically shuts down.
I copied the command line to start mullvad-browser in the Dom0 terminal and I obtained:

@dom0 Launching './Browser/start-mullvad-browser '....

thanks for sharing