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

Allow GUI and AUDIO client to be ran before their corresonding servers #83

Merged
merged 2 commits into from
Mar 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,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