Je voudrais modifier l'unité pour ne pas montrer le lanceur (barre latérale gauche) du tout. Je ne cherche aucune solution qui permettrait au lanceur d'être visible dans certains cas. Je veux vraiment qu'il disparaisse complètement. C’est un cadeau pour mon fiancé et je souhaite obtenir le facteur d’acceptation de la femme le plus élevé possible pour son ordinateur portable Linux qui exécute un docky dock avec des icônes sophistiquées qui lui donnent l’impression de appartenir à cette société connue et fruitée.
Des astuces sur quels paquets et quels fichiers sources je devrais étudier?
J'espère que ce sera aussi simple que de commenter la ligne avec "unity.launcher.show ()" et de la recompiler :-)
Je vous remercie!
La réponse à ma propre question est:
à partir du paquet source unit.
Mais je réponds plus que cela, car tout le monde à la recherche de la réponse à ma question voudra également savoir quoi faire avec ces fichiers sources.
Contenu:
A. Compilez-vous ou
B. Récupère le binaire
Disclaimer: Je n'ai aucune idée AT ALL 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. Juste commentez à 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
Puis 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
Les quatre fichiers sont contenus dans le paquet source "unit".
2. Obtenir les sources
J'ai dû installer le paquet xserver-xorg-video-dummy-lts- {votre version de HWE} manuellement afin de 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 laisseront toujours la place inutilisée pour le lanceur sur le côté gauche de l'écran.
4. Définissez la largeur du lanceur sur zéro dans les fichiers 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 souhaitez que le tiret soit affiché à droite de l’écran, sans aucune marge qui aurait été utilisée par le lanceur.
5. Définir la bonne version dans le changelog
Dans mon cas (12.04, unité 5.20.2) je devais changer la version de la source de l’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 brisées lors de l'installation. N'oubliez pas de sauvegarder le fichier.
6. Compiler et installer
Ensuite, j'ai recompilé en utilisant ceci:
dpkg-buildpackage -rfakeroot -d -us -uc -b
Installé le nouveau paquet:
Sudo dpkg -i ../unity_*.deb
(D'après ce que je peux voir et tester, le seul fichier réellement nécessaire est
find . -name libunityshell.so | grep unity/usr/lib/compiz/libunityshell.so
Remplacer /usr/lib/compiz/libunityshell.so par celui-ci devrait suffire, mais si vous voulez être sûr, installez simplement le nouveau paquet d'unité comme décrit ci-dessus.)
7. Définir 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. Unité redémarrée et le lanceur est parti!
B. Si vous préférez faire confiance et obtenir le binaire
Si vous préférez obtenir le binaire et votre combinaison de version unitaire 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
Puis installez le paquet
Sudo dpkg -i unity_*.deb
définir le lanceur pour masquer automatiquement et redémarrer l'unité. C'est ça!
Au cas où quelque chose ne va pas et que l’unité ne commence pas:
Sudo apt-get install --reinstall unity
Mais si tout fonctionne, vous voudrez 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 des "ordinateurs en nuage" (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/')