Testing Unity Session in Eoan - Ubuntu 19.10

Just uncovered a disparity in the Gnome vs. Unity desktop involving the latest version of the Citrix ICA Client. Everything worked fine with Version 13 of the client but upgrades on the server side forced me to update to the latest version (19). Full screen mode under Unity no longer works; I always get the launcher and the top bar from Unity displayed with the remote desktop within. The mouse pointer is also “off” as I have to use the mouse “tail” to click on icons instead of the pointed tip.

This does not happen if I boot into the Gnome desktop, but that has it’s own weird issues. If I swap away to another virtual desktop and back, the remote screen is initially displayed within Gnome, then after a few moments takes over the entire screen again (weird).

FWIW, things aren’t much better with the Cinnamon desktop as the launcher always remains visible too (but that’s just at the bottom of the screen, not the top and left hand sides). I wish I could keep using Version 13 of the client but that was taken out of my hands. Not sure if there’s anything you guys can do about it but I thought I’d report it. BTW, I’m running 18.04.3LTS and I’m all up to date with patches. I have the Unity PPA added to my PPAs as well. Since Unity development is taking place here, I figured I’d report this here rather than on the 18.04 thread.

Thanks.

18.04 thread is better place. This is only for 19.10 development. But there is no reason that it shouldn’t work. May be something gone wrong with your set up or Citrix. Try finding out what settings changed in citrix from13 to 19. Also try auto hiding the launcher.

1 Like

Thanks, but auto-hiding the launcher only takes care of the left side of the screen. The top bar is still a problem.

Does HUD work? @khurshid-alam, @mc3man

As of 15:00 EST 2019-10-08, after dist-upgrading 19.10, upon rebooting and launching Unity, one of my machines return a message about not being able to launch the Unity session because of some errors. Gnome session is not affected and works.

@khurshid-alam, @mc3man Do we have a known issue here?

Yeah, ability to log into a unity session is broken here with latest updates, haven’t had time to explore…

Caused by the new gnome-session package(s), i.e 3.34.1-1ubuntu1

Thank you @mc3man. I trust someone knowledgeable will look into it.

The problem seems to be with this change in /usr/bin/gnome-session

Went from

exec /usr/lib/gnome-session/gnome-session-binary "$@"

to (lines 28+)

 if [ -d "${XDG_RUNTIME_DIR}/systemd" ]; then
	exec /usr/lib/gnome-session/gnome-session-binary --systemd "$@"
else
	exec /usr/lib/gnome-session/gnome-session-binary --builtin "$@"

@mc3man @khurshid-alam Is there a quick fix that I could apply waiting for this to be patched?

Well you could, for the moment, make /usr/bin/gnome-session look exactly like the image. If not done exactly you’ll likely not be able to log into anything. As to any unintended effects, haven’t seen but that doesn’t mean there aren’t.
Changes made are between the final 2 fi

If remotely unsure how to maybe post elsewhere like ubuntu forums as this place doesn’t particularly like support posts or bug hacks…

It’s this commit. @laney, do you have any idea?

Maybe the downstream gnome-session.service we have in Ubuntu could use /usr/lib/gnome-session/gnome-session-binary directly instead of going through this wrapper, if that $REGION stuff isn’t needed.

I’ll sponsor an update that makes this change.

Or actually I think modifying gnome-session.service to pass --builtin should work too?

@laney: How about simply changing

if [ -d "${XDG_RUNTIME_DIR}/systemd" ]; then

to

if [ -d "${XDG_RUNTIME_DIR}/systemd" ] && [ "$DESKTOP_SESSION" != "unity" ]; then

in the existing patch?

are you saying my suggestions didn’t work? I mean you could do something like that, but it’d be a gross and unnecessary hack I think, when you could tell gnome-session what to do from the outside.

@laney: No, I’m rather saying that I wasn’t quite sure of which changes exactly you proposed in the .service file. Did you mean to change it for standard Ubuntu too, or adding a special case for Unity there?

Unity uses a file gnome-session.service which is not used by any other desktop. It’s from when we had systemd launching the user session back in yakkety (IIRC). You might remember that I deleted it a few weeks ago thinking it was unused, and broke Unity then. :frowning:

That file (debian/data/gnome-session.service in the source package or /usr/lib/systemd/user/gnome-session.service on an installed system) should be edited to add --builtin after the calls to execute gnome-session. i.e.:

diff --git a/debian/data/gnome-session.service b/debian/data/gnome-session.service
index c3199684..5aa53b3f 100644
--- a/debian/data/gnome-session.service
+++ b/debian/data/gnome-session.service
@@ -6,6 +6,6 @@ PartOf=graphical-session.target
 ExecStart=/bin/sh -exc '[ "$DESKTOP_SESSION" != "gnome-classic" ] || export GNOME_SHELL_SESSION_MODE=classic; \
     export GNOME_SESSION_XDG_SESSION_PATH=${XDG_SESSION_PATH}; \
     [ "$DESKTOP_SESSION" = gnome-flashback-metacity ] && \
-        exec gnome-session --session=$DESKTOP_SESSION --disable-acceleration-check || \
-        exec gnome-session --session=$DESKTOP_SESSION'
+        exec gnome-session --builtin --session=$DESKTOP_SESSION --disable-acceleration-check || \
+        exec gnome-session --builtin --session=$DESKTOP_SESSION'
 ExecStopPost=-/bin/sh -xc '[ "${XDG_SESSION_PATH}" = "${GNOME_SESSION_XDG_SESSION_PATH}" ] && [ "${UPSTART_SESSION}" ] && /usr/bin/dbus-send --type=method_call --address="${UPSTART_SESSION}" /com/ubuntu/Upstart com.ubuntu.Upstart0_6.EndSession'

and I think (not tested, mind you - that’s what I’m requesting someone on this thread does) that you’ll be fixed.

Got it. Didn’t know that it’s a Unity only file. Will test in a few minutes.

@laney: Tested successfully and uploaded to the eoan queue.

1 Like