La respuesta a mi propia pregunta es:
- Launcher.cpp, unityshell.cpp, DashController.cpp y HudController.cpp para la versión de la unidad <7.4.0 y
- Launcher.cpp y UnitySettings.ccp para unity versión 7.4.0
del paquete fuente de la unidad.
Pero estoy respondiendo más que eso, ya que todos los que buscan la respuesta a mi pregunta también estarán interesados en saber qué hacer con esos archivos fuente.
Contenido:
A. Compílate o
B. Obtén el binario
Descargo de responsabilidad: no tengo idea en absoluto y esto se probó solo en 12.04 con la unidad 5.20.2, en 14.04 con la unidad 7.2.6, en 15.10 con la unidad 7.3.2 y en 16.04 con la unidad 7.4.0
A. Compile Unity para no mostrar el lanzador
0. Por la impaciencia
Este script debería funcionar al menos para 12.04, 14.04 y 15.10. Simplemente descomente al final según sea necesario:
#!/bin/bash
mkdir temp-build-dir; cd temp-build-dir
export HWE=$(dpkg-query -l xserver*-lts-* | grep ^ii | cut -d" " -f3 | rev | cut -d- -f1 | rev | sort -u)
sudo apt-get install unity xserver-xorg-video-dummy-lts-$HWE
sudo apt-get build-dep unity
sudo apt-get install apt-show-versions devscripts dpkg-dev fakeroot nano
apt-get source unity
cd unity-*
# you can leave the comment field in the changelog empty but dont forget to save the file
EDITOR=nano debchange --newversion $(apt-show-versions unity | cut -d " " -f2)
find . -iname Launcher.cpp -exec sed -i -e '1,/void Launcher::DrawContent(nux::GraphicsEngine/b' -e '0,/{/s//{\nreturn;/' {} \;
# for unity 7.4.0 comment out this for statement and read the explanation Nr. A.4
for i in unityshell.cpp DashController.cpp HudController.cpp; do
find . -iname $i -exec sed -i -e 's/launcher_width =/launcher_width =0; \/\//' {} \;
done
dpkg-buildpackage -rfakeroot -d -us -uc -b
sudo dpkg -i ../unity_*.deb
# For 12.04 use:
# gconftool --type Integer --set /apps/compiz-1/plugins/unityshell/screen0/options/launcher_hide_mode 1
# For 14.04 use:
# dconf write "/org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode" 1
Luego reinicia la unidad y listo.
1. Busque los archivos fuente correctos
Después de una prueba y error, descubrí que los archivos de origen que se van a cambiar son
- Launcher.cpp -> agrega una línea para no mostrar más el lanzador
- unityshell.cpp, DashController.cpp y HudController.cpp -> establece el ancho del lanzador en cero
Los cuatro archivos están contenidos en el paquete fuente "unidad".
2. Obtenga las fuentes
Tuve que instalar el paquete xserver-xorg-video-dummy-lts- {su versión HWE} manualmente para resolver algunos problemas de dependencia antes de poder instalar los build-deps para la unidad:
sudo apt-get install xserver-xorg-video-dummy-lts-{put your HWE name here}
Puede encontrar el nombre (versión) de su HWE con este comando:
dpkg-query -l xserver*-lts-* | grep ^ii | cut -d" " -f3 | rev | cut -d- -f1 | rev | sort -u
Después de eso, el resto funcionó:
sudo apt-get build-dep unity
apt-get source unity
cd unity-*
3. Pon una línea en Launcher.cpp
find . -iname launcher.cpp -exec gedit {} \;
Busque la función "void Launcher :: DrawContent (nux :: GraphicsEngine & GfxContext, bool force_draw)" y ponga un "return;" justo en su cuerpo comienza así:
void Launcher::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
{
return; //dont show launcher anymore
...
Esto es suficiente para no mostrar más el lanzador. Pero el tablero y el hud todavía dejarán el lugar para el lanzador en el lado izquierdo de la pantalla sin usar.
4. Establezca el ancho del iniciador en cero en unityshell.cpp, DashController.cpp y HudController.cpp / UnitySettings.cpp
Para la unidad <7.4.0:
Use un editor para reemplazar todas las ocurrencias de "launcher_width =" con "launcher_width = 0; //" en unityshell.cpp, DashController.cpp y HudController.cpp.
O simplemente usa este comando
for i in unityshell.cpp DashController.cpp HudController.cpp; do find . -iname $i -exec sed -i -e 's/launcher_width =/launcher_width =0; \/\//' {} \; ; done
Para la unidad 7.4.0:
Busque el archivo UnitySettings.cpp y reemplace el valor de retorno al final de LauncherSize de esta manera:
int Settings::LauncherSize(int monitor) const
{
if (monitor < 0 || monitor >= (int)monitors::MAX)
{
LOG_ERROR(logger) << "Invalid monitor index: " << monitor << ". Returning 0.";
return 0;
}
return 0; // pimpl->launcher_sizes_[monitor];
}
Esto es necesario solo si desea que el guión se muestre justo en el lado izquierdo de la pantalla, sin ningún margen que hubiera sido utilizado por el iniciador.
5. Establezca la versión correcta en el registro de cambios
En mi caso (12.04, unity 5.20.2) tuve que cambiar la versión de la fuente de la unidad de 5.20 a 5.20.2 usando
EDITOR=nano debchange --newversion $(apt-show-versions unity | cut -d " " -f2)
antes de compilar para evitar tener dependencias rotas al instalar. No olvides guardar el archivo.
6. Compilar e instalar
Luego recompilé usando esto:
dpkg-buildpackage -rfakeroot -d -us -uc -b
Instalado el nuevo paquete:
sudo dpkg -i ../unity_*.deb
(Por lo que puedo ver y probar, el único archivo realmente necesario es
find . -name libunityshell.so | grep unity/usr/lib/compiz/libunityshell.so
Reemplazar /usr/lib/compiz/libunityshell.so con el nuevo debería ser suficiente, pero si quiere estar seguro, simplemente instale el nuevo paquete de la unidad como se escribió anteriormente.
7. Configure el iniciador para que se oculte automáticamente
# For 12.04:
gconftool --type Integer --set /apps/compiz-1/plugins/unityshell/screen0/options/launcher_hide_mode 1
# For 14.04:
dconf write "/org/compiz/profiles/unity/plugins/unityshell/launcher-hide-mode" 1
Eso es. ¡Reinició la unidad y el lanzador se fue!
B. En caso de que prefieras confiar y solo obtener el binario
Si prefiere obtener el binario y su combinación de versión unit y arquitectura de PC
unity --version
getconf LONG_BIT
se puede encontrar a continuación, solo descargue el paquete correcto
32bit
64bit
y verifique el archivo deb después de la descarga
md5sum unity_*.deb
El resultado debería ser uno de estos
0a5f7fc9255262e5803656d83f84f7c5 unity_5.20.0-0ubuntu3_amd64_nolauncher.deb
717dc41f4cad6410c997e1014f5f3f1d unity_5.20.0-0ubuntu3_i386_nolauncher.deb
594eb8b87f8a56697865c051c4db5073 unity_5.20.2_i386_nolauncher.deb
8ed070afa4d7d6da8222d03b8ad5ebf3 unity_7.2.6+14.04.20160408-0ubuntu1_amd64_nolauncher.deb
abd32e40e8a10bd603b9fc44014cb179 unity_7.2.6+14.04.20151021-0ubuntu1_i386_nolauncher.deb
43c56b889028bf368da01780c0a099b9 unity_7.3.2+15.10.20151016-0ubuntu1_amd64_nolauncher.deb
64474d1a8280ed4113d748a57422ddcc unity_7.3.2+15.10.20151016-0ubuntu1_i386_nolauncher.deb
4fecdb9b4f590e00609baa3b98f55cc0 unity_7.4.0+16.04.20160715-0ubuntu1_amd64_nolauncher.deb
Luego instale el paquete
sudo dpkg -i unity_*.deb
configura el iniciador para que se oculte automáticamente y reinicie la unidad. ¡Eso es!
En caso de que algo salga mal y la unidad no comience:
sudo apt-get install --reinstall unity
Pero si todo funciona, es posible que desee evitar que se actualice el nuevo paquete:
echo "unity hold" | sudo dpkg --set-selections
Solo el archivo "unity_5.20.2_i386_nolauncher.deb" fue compilado en mi PC. Los otros archivos deb se crearon en las llamadas "computadoras en la nube" (porque las salas de máquinas se parecen mucho a las nubes ...) usando esta variación del script:
#!/bin/bash
sudo apt-get update
sudo apt-get -y dist-upgrade
sudo apt-get -y build-dep unity
sudo apt-get -y install unity devscripts dpkg-dev fakeroot nano
mkdir temp-build-dir; cd temp-build-dir
rm -r unity-*
apt-get source unity
cd unity-*
find . -iname Launcher.cpp -exec sed -i -e '1,/void Launcher::DrawContent(nux::GraphicsEngine/b' -e '0,/{/s//{\nreturn;/' {} \;
# for unity 7.4.0 comment out this for statement and read the explanation Nr. A.4
for i in unityshell.cpp DashController.cpp HudController.cpp; do
find . -iname $i -exec sed -i -e 's/launcher_width =/launcher_width =0; \/\//' {} \;
done
dpkg-buildpackage -rfakeroot -d -us -uc -j2 -b
cp ../unity_*.deb ../$(echo ../unity_*.deb | sed -e 's/.deb$/_nolauncher.deb/')