Ответ на мой вопрос:
- Launcher.cpp, unityshell.cpp, DashController.cpp и HudController.cpp для единой версии <7.4.0 и
- Launcher.cpp и UnitySettings.ccp для единой версии 7.4.0
из пакета источника единства.
Но я отвечаю не только на это, поскольку всем, кто ищет ответ на мой вопрос, также будет интересно узнать, что делать с этими исходными файлами.
Содержание:
A. Скомпилируйте себя или
B. Получите бинарный файл
Отказ от ответственности: я не имею понятия ВСЕ, и это было проверено только 12.04 с единицей 5.20.2, 14.04 с единицей 7.2.6, 15.10 с единицей 7.3.2 и 16.04 с единицей 7.4.0
A. Скомпилируйте Unity, чтобы не показывать панель запуска
0. За нетерпение
Этот скрипт должен работать как минимум 12.04, 14.04 и 15.10. Просто раскомментируйте в конце по мере необходимости:
#!/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
Затем возобновите единство, и все готово.
1. Ищите правильные исходные файлы
После некоторых проб и ошибок я обнаружил, что исходные файлы, которые будут изменены,
- Launcher.cpp -> добавить одну строку, чтобы больше не показывать панель запуска
- unityshell.cpp, DashController.cpp и HudController.cpp -> установить ширину модуля запуска на ноль
Все четыре файла содержатся в пакете с исходным кодом «Unity».
2. Получить источники
Мне пришлось установить пакет xserver-xorg-video-dummy-lts- {ваша версия HWE} вручную, чтобы решить некоторые проблемы с зависимостями, прежде чем я смог установить build-deps для unity:
sudo apt-get install xserver-xorg-video-dummy-lts-{put your HWE name here}
Вы можете найти имя (версию) вашего HWE с помощью этой команды:
dpkg-query -l xserver*-lts-* | grep ^ii | cut -d" " -f3 | rev | cut -d- -f1 | rev | sort -u
После этого остальные работали:
sudo apt-get build-dep unity
apt-get source unity
cd unity-*
3. Поместите одну строку в Launcher.cpp
find . -iname launcher.cpp -exec gedit {} \;
Найдите функцию «void Launcher :: DrawContent (nux :: GraphicsEngine & GfxContext, bool force_draw)» и вставьте «return;» просто в его теле начинаются так:
void Launcher::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
{
return; //dont show launcher anymore
...
Этого достаточно, чтобы больше не показывать лаунчер. Но тире и шум все равно оставят место для пусковой установки в левой части экрана неиспользованным.
4. Установите ширину модуля запуска в ноль в unityshell.cpp, DashController.cpp и HudController.cpp / UnitySettings.cpp
Для единства <7.4.0:
Используйте редактор, чтобы заменить все вхождения «launcher_width =» на «launcher_width = 0; //» в unityshell.cpp, DashController.cpp и HudController.cpp.
Или просто используйте эту команду
for i in unityshell.cpp DashController.cpp HudController.cpp; do find . -iname $i -exec sed -i -e 's/launcher_width =/launcher_width =0; \/\//' {} \; ; done
Для единства 7.4.0:
Найдите файл UnitySettings.cpp и замените возвращаемое значение в конце LauncherSize следующим образом:
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];
}
Это необходимо только в том случае, если вы хотите, чтобы черта отображалась справа в левой части экрана, без какого-либо поля, которое использовалось бы панелью запуска.
5. Установите правильную версию в списке изменений
В моем случае (12.04, Unity 5.20.2) мне пришлось изменить версию источника Unity с 5.20 на 5.20.2, используя
EDITOR=nano debchange --newversion $(apt-show-versions unity | cut -d " " -f2)
перед компиляцией, чтобы избежать нарушения зависимостей при установке. Не забудьте сохранить файл.
6. Скомпилируйте и установите
Затем я перекомпилировал, используя это:
dpkg-buildpackage -rfakeroot -d -us -uc -b
Установлен новый пакет:
sudo dpkg -i ../unity_*.deb
(Насколько я вижу и проверяю, единственный файл, который действительно нужен, это
find . -name libunityshell.so | grep unity/usr/lib/compiz/libunityshell.so
Замена /usr/lib/compiz/libunityshell.so на новый должна быть достаточной, но если вы хотите быть уверенным, просто установите новый пакет Unity, как написано выше.)
7. Установите панель запуска на автоматическое скрытие
# 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
Вот и все. Перезапустил единство и лаунчер ушел!
Б. В случае, если вы предпочитаете доверять и просто получить двоичный
Если вы предпочитаете получить бинарный файл и вашу комбинацию единой версии и архитектуры ПК
unity --version
getconf LONG_BIT
можно найти ниже, просто скачайте нужный пакет
32bit
64bit
и проверьте файл deb после загрузки
md5sum unity_*.deb
Результат должен быть одним из них
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
Затем установите пакет
sudo dpkg -i unity_*.deb
установите панель запуска на автоматическое скрытие и перезапустите Unity. Это оно!
Если что-то пойдет не так и единство не начнется:
sudo apt-get install --reinstall unity
Но если все работает, вы можете помешать обновлению нового пакета:
echo "unity hold" | sudo dpkg --set-selections
Только файл "unity_5.20.2_i386_nolauncher.deb" был скомпилирован на моем компьютере. Другие файлы deb были созданы на так называемых «облачных компьютерах» (потому что машинные помещения очень похожи на облака ...) с использованием этого варианта сценария:
#!/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/')