La réponse à ma propre question est:
- Launcher.cpp, UnityShell.cpp, DashController.cpp et HudController.cpp pour la version Unit <7.4.0 et
- Launcher.cpp et UnitySettings.ccp pour Unit version 7.4.0
à partir du package source de l'unité.
Mais je réponds plus que cela, car tous ceux qui recherchent la réponse à ma question seront également intéressés à savoir quoi faire avec ces fichiers source.
Contenu:
A. Compilez-vous ou
B. Obtenez le binaire
Avis de non-responsabilité: je n'ai aucune idée du tout et cela n'a été testé que le 12.04 avec l'unité 5.20.2, le 14.04 avec l'unité 7.2.6, le 15.10 avec l'unité 7.3.2 et le 16.04 avec l'unité 7.4.0
A. Compiler Unity pour ne pas montrer le lanceur
0. Pour l'impatience
Ce script devrait fonctionner au moins pour 12.04, 14.04 et 15.10. Décommentez simplement à la fin si nécessaire:
#!/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
Ensuite, redémarrez l'unité et vous avez terminé.
1. Recherchez les bons fichiers source
Après quelques essais et erreurs, j'ai découvert que les fichiers source à modifier sont
- Launcher.cpp -> ajouter une ligne pour ne plus afficher le lanceur
- Unityshell.cpp, DashController.cpp et HudController.cpp -> définir la largeur du lanceur à zéro
Les quatre fichiers sont contenus dans le paquet source "Unity".
2. Obtenez les sources
J'ai dû installer manuellement le paquet xserver-xorg-video-dummy-lts- {votre version HWE} pour résoudre certains problèmes de dépendance avant de pouvoir installer les build-deps pour l'unité:
sudo apt-get install xserver-xorg-video-dummy-lts-{put your HWE name here}
Vous pouvez trouver le nom (version) de votre HWE avec cette commande:
dpkg-query -l xserver*-lts-* | grep ^ii | cut -d" " -f3 | rev | cut -d- -f1 | rev | sort -u
Après cela, le reste a fonctionné:
sudo apt-get build-dep unity
apt-get source unity
cd unity-*
3. Mettez une ligne dans Launcher.cpp
find . -iname launcher.cpp -exec gedit {} \;
Recherchez la fonction "void Launcher :: DrawContent (nux :: GraphicsEngine & GfxContext, bool force_draw)" et mettez un "return;" juste au début de son corps comme ceci:
void Launcher::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
{
return; //dont show launcher anymore
...
Cela suffit pour ne plus montrer le lanceur. Mais le tiret et le hud resteront inutilisés pour le lanceur sur le côté gauche de l'écran.
4. Définissez la largeur du lanceur sur zéro dans UnityShell.cpp, DashController.cpp et HudController.cpp / UnitySettings.cpp
Pour l'unité <7.4.0:
Utilisez un éditeur pour remplacer toutes les occurrences de "launcher_width =" par "launcher_width = 0; //" dans UnityShell.cpp, DashController.cpp et HudController.cpp.
Ou utilisez simplement cette commande
for i in unityshell.cpp DashController.cpp HudController.cpp; do find . -iname $i -exec sed -i -e 's/launcher_width =/launcher_width =0; \/\//' {} \; ; done
Pour l'unité 7.4.0:
Recherchez le fichier UnitySettings.cpp et remplacez la valeur de retour à la fin de LauncherSize comme ceci:
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];
}
Cela n'est nécessaire que si vous voulez que le tiret soit affiché juste à gauche de l'écran, sans aucune marge qui aurait été utilisée par le lanceur.
5. Définissez la bonne version dans le journal des modifications
Dans mon cas (12.04, unité 5.20.2), j'ai dû changer la version de la source d'unité de 5.20 à 5.20.2 en utilisant
EDITOR=nano debchange --newversion $(apt-show-versions unity | cut -d " " -f2)
avant de compiler pour éviter d'avoir des dépendances cassées lors de l'installation. N'oubliez pas d'enregistrer le fichier.
6. Compilez et installez
Ensuite, j'ai recompilé en utilisant ceci:
dpkg-buildpackage -rfakeroot -d -us -uc -b
Installation du nouveau package:
sudo dpkg -i ../unity_*.deb
(Pour autant que je puisse le voir et le tester, le seul fichier réellement nécessaire est
find . -name libunityshell.so | grep unity/usr/lib/compiz/libunityshell.so
Le remplacement de /usr/lib/compiz/libunityshell.so par ce nouveau devrait être suffisant, mais si vous voulez en être sûr, installez simplement le nouveau paquet d'unité comme écrit ci-dessus.)
7. Réglez le lanceur pour masquer automatiquement
# 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
C'est ça. L'unité a redémarré et le lanceur est parti!
B. Si vous préférez faire confiance et obtenir simplement le binaire
Si vous préférez obtenir le binaire et votre combinaison de version d'unité et d'architecture PC
unity --version
getconf LONG_BIT
peut être trouvé ci-dessous, il suffit de télécharger le bon package
32bit
64bit
et vérifiez le fichier deb après le téléchargement
md5sum unity_*.deb
Le résultat devrait être l'un de ces
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
Installez ensuite le package
sudo dpkg -i unity_*.deb
définissez le lanceur pour masquer automatiquement et redémarrer l'unité. C'est ça!
Au cas où quelque chose se passe mal et que l'unité ne démarre pas:
sudo apt-get install --reinstall unity
Mais si tout fonctionne, vous souhaiterez peut-être empêcher la mise à jour du nouveau package:
echo "unity hold" | sudo dpkg --set-selections
Seul le fichier "Unity_5.20.2_i386_nolauncher.deb" a été compilé sur mon PC. Les autres fichiers deb ont été créés sur ce que l'on appelle des "ordinateurs cloud" (car les salles des machines ressemblent tellement à des nuages ...) en utilisant cette variante du 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/')