| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180  |  Install -------------------------------------------------------------------------------- • Notes - libunity is an independant library which has a client side API for talking to Unity. However it does not depend on the main Unity codebase and the main Unity codebase does not depend on it. - Unity and it's desktop environment modules are all modules of Compiz. We use a patched version of Compiz which uses the GLib main loop instead of the custom Compiz main loop. This allows us to use GNOME libraries easily inside the Unity plugins. We are currently working on getting this patch upstreamed, but until then you will need to build this special version of Compiz. - libunity is written in Vala and the rest of Unity in C++/C. - Unity depends on a library called Nux (lp:nux) which let's us do OpenGL layouts quickly and efficiently. • Dependencies These are in Debian package name form, but it should be easy enough to translate them to other systems: libglib2.0-dev libgdk-pixbuf2.0-dev libcairo2-dev libpng12-dev libglew1.5-dev libglewmx1.5-dev libxxf86vm-dev libgl1-mesa-dev libsigc++-2.0-dev libpango1.0-dev doxygen cmake pkg-config intltool libbamf-dev gsettings-desktop-schemas-dev libgconf2-dev libglib2.0-dev libdbusmenu-glib-dev libgtk2.0-dev libdee-dev libindicator-dev libboost-dev libboost-serialization-dev libmetacity-dev python-dev cython However, as with any project, it's probably best to just run autogen/cmake and figure out what you need/is missing. If your distro supports grabbing all the packages needed to build a package, then at least do that for Compiz, as I'm not going to detail everything it needs here. In case your distro isn't packaging all the Ayatana software, these links might come in handy: https://launchpad.net/dee https://launchpad.net/bamf https://launchpad.net/libindicator Also, although we don't hard depend on them, having a few indicators installed will make your experience better: https://launchpad.net/indicator-appmenu https://launchpad.net/indicator-application https://launchpad.net/indicator-network https://launchpad.net/indicator-sound https://launchpad.net/indicator-messages https://launchpad.net/indicator-datetime https://launchpad.net/indicator-me https://launchpad.net/indicator-session • Build Compiz GLib This is taken from http://wiki.ubuntu.com/Unity/InstallationGuideFromSource and was originally authored by Sam: core: git clone git://git.compiz.org/users/dbo/compiz-with-glib-mainloop cd compiz-with-glib-mainloop mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity make sudo make findcompiz_install sudo make install exporting paths: export PKG_CONFIG_PATH=/opt/unity/lib/pkgconfig:${PKG_CONFIG_PATH} export LD_LIBRARY_PATH=/opt/unity/lib:${LD_LIBRARY_PATH} export LD_RUN_PATH=/opt/unity/lib:${LD_RUN_PATH} libcompizconfig: git clone git://git.compiz.org/compiz/compizconfig/libcompizconfig cd libcompizconfig mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity make sudo make install compizconfig-python: git clone git://git.compiz.org/compiz/compizconfig/compizconfig-python cd compizconfig-python python setup.py install --prefix=/opt/unity ccsm: git clone git://git.compiz.org/compiz/compizconfig/ccsm cd ccsm python setup.py install --prefix=/opt/unity plugins-main: git clone git://git.compiz.org/compiz/plugins-main cd plugins-main git submodule init git pull origin master git submodule update mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity make sudo make install plugins-extra: git clone git://git.compiz.org/compiz/plugins-extra cd plugins-extra git submodule init git pull origin master git submodule update mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity make sudo make install • Build Nux bzr branch lp:nux cd nux ./autogen.sh --disable-documentation --prefix=/opt/unity make sudo make install • Build Unity bzr branch lp:unity cd unity mkdir build; cd build cmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=package -DCMAKE_INSTALL_PREFIX=/opt/unity make sudo make install • Cleanup unset PKG_CONFIG_PATH unset LD_LIBRARY_PATH unset LD_RUN_PATH • Testing add this to your /home/$USER/.bashrc function compiz-unity-setup-env { export PATH=/opt/unity/bin:${PATH} export PYTHONPATH=/opt/unity/lib/python2.6/site-packages } Logout, login, then in a terminal do $ compiz-unity-setup-env $ compiz --replace cpp & $ ccsm And then use the CompizConfig Settings Window to search for and enable the Unity plugin! • Bugs If you find bugs in this installation guide or in Unity itself, please report them at https://launchpad.net/unity/+filebug 
 |