Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/pr/83'
Browse files Browse the repository at this point in the history
* origin/pr/83:
  GUI/AUDIO xid: use 'wait' option of qubesdb-read
  Allow GUI and AUDIO client to be ran before their corresonding servers
  • Loading branch information
marmarek committed Mar 1, 2020
2 parents 805aacf + cabf69f commit fb71f79
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 8 deletions.
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ endif
$(DESTDIR)/usr/lib/sysctl.d/30-qubes-gui-agent.conf
install -D -m 0644 appvm-scripts/lib/udev/rules.d/70-master-of-seat.rules \
$(DESTDIR)/$(SYSLIBDIR)/udev/rules.d/70-master-of-seat.rules
install -D appvm-scripts/usr/lib/qubes/qubes-gui-agent-pre.sh \
$(DESTDIR)/usr/lib/qubes/qubes-gui-agent-pre.sh
ifeq ($(shell lsb_release -is), Debian)
install -D -m 0644 appvm-scripts/etc/pam.d/qubes-gui-agent.debian \
$(DESTDIR)/etc/pam.d/qubes-gui-agent
Expand Down
4 changes: 1 addition & 3 deletions appvm-scripts/qubes-gui-agent.service
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ TTYPath=/dev/tty7
# custom PATH for X session can be set with ENV_PATH; otherwise service's PATH
# is inherited
#Environment=ENV_PATH=/usr/local/bin:/usr/bin:/bin
# pretend tha user is at local console
ExecStartPre=/bin/mkdir -p /var/run/console ; /bin/touch /var/run/console/user
ExecStartPre=/bin/sh -c ". /usr/lib/qubes/init/functions; if qsvc guivm-gui-agent; then sed -i '/DISPLAY=/d' /var/run/qubes-service-environment; echo DISPLAY=:1 >> /var/run/qubes-service-environment; fi;"
ExecStartPre=/bin/sh -c /usr/lib/qubes/qubes-gui-agent-pre.sh
ExecStart=/usr/bin/qubes-gui $GUI_OPTS
# clean env
ExecStopPost=/bin/rm -f /tmp/qubes-session-env /tmp/qubes-session-waiter
Expand Down
26 changes: 26 additions & 0 deletions appvm-scripts/usr/lib/qubes/qubes-gui-agent-pre.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh

. /usr/lib/qubes/init/functions

# pretend tha user is at local console
mkdir -p /var/run/console ; /bin/touch /var/run/console/user

# set corresponding display for guivm
if qsvc guivm-gui-agent; then
sed -i '/DISPLAY=/d' /var/run/qubes-service-environment
echo DISPLAY=:1 >> /var/run/qubes-service-environment
fi

# set gui opts
gui_xid="$(qubesdb-read -w /qubes-gui-domain-xid)"
if [ -z "$gui_xid" ]; then
gui_xid=0
fi
gui_opts="-d $gui_xid"

debug_mode=$(qubesdb-read /qubes-debug-mode 2> /dev/null)
if [ -n "$debug_mode" ] && [ "$debug_mode" -gt 0 ]; then
gui_opts="$gui_opts -vv"
fi

echo "GUI_OPTS=$gui_opts" >> /var/run/qubes-service-environment
1 change: 1 addition & 0 deletions debian/qubes-gui-agent.install
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ usr/bin/qubes-set-monitor-layout
usr/lib/qubes/icon-sender
usr/lib/sysctl.d/30-qubes-gui-agent.conf
usr/lib/tmpfiles.d/*
usr/lib/qubes/qubes-gui-agent-pre.sh
usr/share/glib-2.0/schemas/20_qubes-gui-vm.gschema.override
var/log/qubes
13 changes: 8 additions & 5 deletions pulse/start-pulseaudio-with-vchan
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,15 @@
#
#

type pulseaudio >/dev/null 2> /dev/null || exit 0
type pulseaudio >/dev/null 2>&1 || exit 0

if [ -f /etc/this-is-dvm ]; then
# ... wait for Dom0 notify
qubesdb-watch /qubes-restore-complete
# ... wait for Dom0 notify
qubesdb-watch /qubes-restore-complete
fi

qubesdb-read -w /qubes-audio-domain-xid >/dev/null

pulseaudio --start \
-n --file=/etc/pulse/qubes-default.pa \
--exit-idle-time=-1
-n --file=/etc/pulse/qubes-default.pa \
--exit-idle-time=-1
1 change: 1 addition & 0 deletions rpm_spec/gui-agent.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ rm -f %{name}-%{version}
/lib/udev/rules.d/70-master-of-seat.rules
/usr/lib/tmpfiles.d/qubes-session.conf
/usr/lib/sysctl.d/30-qubes-gui-agent.conf
/usr/lib/qubes/qubes-gui-agent-pre.sh
%{_datadir}/glib-2.0/schemas/20_qubes-gui-vm.gschema.override
/usr/lib/qubes/icon-sender
/etc/xdg/autostart/qubes-icon-sender.desktop
Expand Down

0 comments on commit fb71f79

Please sign in to comment.