Відповідь на моє власне питання:
- Launcher.cpp, юниshell.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 -> додайте один рядок, щоб більше не показувати запуск
- Ujedinjeshell.cpp, DashController.cpp і HudController.cpp -> встановити ширину пускового пристрою на нуль
Усі чотири файли містяться у вихідному пакеті "єдність".
2. Добери джерела
Мені довелося встановити пакет xserver-xorg-video-dummy-lts- {ваша версія HWE} вручну, щоб виконати деякі проблеми залежності, перш ніж я міг встановити накопичувачі для єдності:
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. Встановіть ширину запуску на нуль у uneshell.cpp, DashController.cpp і HudController.cpp / UnitySettings.cpp
Для єдності <7.4.0:
Використовуйте редактор, щоб замінити всі випадки "launcher_width =" на "launcher_width = 0; //" в Jedinsthell.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, єдність 5.20.2) мені довелося змінити версію джерела єдності з 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 цим новим має бути достатньо, але якщо ви хочете бути впевненим, просто встановіть новий пакет єдності, як написано вище.)
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
Це воно. Переповнене єдність і пускова установка пішли!
B. У випадку, якщо ви віддаєте перевагу довірі і просто отримаєте двійкове
Якщо ви віддаєте перевагу отримати бінарне і ваше поєднання версії єдності та архітектури ПК
unity --version
getconf LONG_BIT
їх можна знайти нижче, просто завантажте потрібний пакет
32 біт
64 біт
і перевірити файл 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
встановіть пускач для автоматичного приховування та перезапуску єдності. Це воно!
Якщо щось піде не так, і єдність не розпочнеться:
sudo apt-get install --reinstall unity
Але якщо все працює, можливо, ви захочете не допустити оновлення нового пакету:
echo "unity hold" | sudo dpkg --set-selections
На моєму комп'ютері був скомпільований лише файл "unit_5.20.2_i386_nolauncher.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/')