← Back to team overview

unity7maintainers team mailing list archive

Unity 7 standalone applications (without shell)



Thank you for having me. I don't have anything to offer but i have
some questions about Unity 7 source code.

I understand that you all are probably busy with 18.04 and all that
stuff. Please consider this just an invitation to discussion, i do not
insist on replies and i'm not requesting anyone to do investigation of
any sorts. I would appreciate if someone could just point me into
right direction or give a general advice.

I'm puzzling myself with running Unity on a different distro and
advanced for a bit but not quite. Please allow me to show what i have
today, then i'll share some of my findings, i hope they will be
interesting to hear for you too. I'm not sure if this mailing list
would allow attachments, so here is link to screenshots on forum:
, i'm also attaching screenshots to this email if you don't want to
open external links and attachments won't be stripped.

What you see on screenshots is Unity 7.5.0 launcher and dash kind of
running on Void Linux without any patches to Gtk, on compiz-0.9, at
the top of the screen it's xfce4-panel with global menu applet. What i
have installed are Gtk2 2.24.32 and Gtk3 3.22.29 as packaged by Void
packages maintainers, source code i used for build is from
https://launchpad.net/unity and other places on launchpad. My main
finding was that some (actually most so far) components of Unity 7 can
run on vanilla Gtk. I had to disable panel services build because it
depends on ido (https://launchpad.net/ido) and ido depends on
gtk-private, but launcher, dash, hud (frontend), shutdown and switcher
built without errors (all standalone versions). Some components
doesn't work (switcher), some doesn't work very well (launcher and
dash), but it's more or less functional, launcher track windows and
dash is capable of doing searches. I don't know, maybe some other
components i didn't touch yet depend on gtk-private, but launcher and
dash are what i'm mostly interested in at this moment. Dash works
alright-ish and looks very promising, launcher works not so much
alright-ish, but still looks rather promising than not.

I tried to look into standalone launcher and dash and as far as i
understand, it's just some example applications for testing or
debugging. Do i understand this correctly or is it something else?
Another my finding was that those standalone applications do not link
with compiz:

[alex@localhost build]$ ldd ./launcher/launcher | grep -i compiz
[alex@localhost build]$

They link with nux, but not with compiz. I also do not have unityshell
plugin installed into compiz. I understand that compiz is required to
do desktop effects like scale and probably expo, but i'm actually
interested in _not_ linking to compiz. IIRC scale could be initiated
with some dbus message before, i don't know how it is now, anyways
that's not the point, i'm pretty happy with what i've got so far, it's
just information to whom it may concern.

My main question: do you think it is theoretically possible to
eventually re-purpose these standalone applications into full-fledged
launcher and dash that do not depend on patched Gtk?

I tried to debug launcher and progressed a little bit, but i had to
dig pretty deep, in my opinion, i had to implement some missing bits
of XWindowSystem for example. Does that ring a bell? Or maybe i'm
trying to do some stupid thing and Unity isn't supposed to work like

I would like to experiment with this more if that makes any sense and
i'm looking for any documentation or advice how to approach this. Is
this the right place to ask such questions or other rather low-level
questions about Unity source code? I'm interested in what bits could
be potentially reused for standalone Unity apps, general info on Unity
architecture, any hints to why some particular features might not work
in standalone apps, etc. Can i ask such questions here?

Thanks in advance.

Follow ups