Browse Source

Add qubes-guivm-session utility

To be used in an xsession file (/usr/share/xsessions).
Paweł Marczewski 3 years ago
parent
commit
624e4e32fb
3 changed files with 23 additions and 1 deletions
  1. 1 0
      Makefile
  2. 1 1
      qubesadmin/tools/qvm_start_daemon.py
  3. 21 0
      scripts/qubes-guivm-session

+ 1 - 0
Makefile

@@ -15,6 +15,7 @@ install:
 	install -m 0644 etc/qvm-start-daemon-kde.desktop $(DESTDIR)/etc/xdg/autostart/
 	install -d $(DESTDIR)/usr/bin
 	ln -sf qvm-start-daemon $(DESTDIR)/usr/bin/qvm-start-gui
+	install -m 0755 scripts/qubes-guivm-session $(DESTDIR)/usr/bin/
 
 clean:
 	rm -rf test-packages/__pycache__ qubesadmin/__pycache__

+ 1 - 1
qubesadmin/tools/qvm_start_daemon.py

@@ -634,7 +634,7 @@ class DAEMONLauncher:
                 continue
 
             if not self.is_watched(vm):
-                return
+                continue
 
             power_state = vm.get_power_state()
             if power_state == 'Running':

+ 21 - 0
scripts/qubes-guivm-session

@@ -0,0 +1,21 @@
+#!/bin/bash -e
+
+print_usage() {
+cat >&2 <<USAGE
+Usage: $0 vmname
+Starts given VM and runs its associated GUI daemon. Used as X session for the
+GUI domain.
+USAGE
+}
+
+if [ $# -lt 1 ] ; then
+    print_usage
+    exit 1
+fi
+
+# Start VM, gui-daemon and audio
+qvm-start --skip-if-running "$1"
+qvm-start-daemon --watch "$1" &
+
+# Run the inner session (Xephyr) and wait until it exits
+exec qvm-run -p --no-gui --service "$1" qubes.GuiVMSession