Jawaban untuk pertanyaan saya sendiri adalah:
- Launcher.cpp, unityshell.cpp, DashController.cpp dan HudController.cpp untuk versi unity <7.4.0 dan
- Launcher.cpp dan UnitySettings.ccp untuk unity versi 7.4.0
dari paket sumber kesatuan.
Tapi saya menjawab lebih dari itu karena semua orang mencari jawaban untuk pertanyaan saya juga akan tertarik mengetahui apa yang harus dilakukan dengan file sumber tersebut.
Isi:
A. Kompilasi diri Anda atau
B. Dapatkan biner
Penafian: Saya tidak memiliki petunjuk AT ALL dan ini hanya diuji pada 12,04 dengan unity 5.20.2, pada 14.04 dengan unity 7.2.6, on 15.10 dengan unity 7.3.2, dan pada 16.04 dengan unity 7.4.0
A. Kompilasi Unity untuk tidak menampilkan peluncur
0. Untuk ketidaksabaran
Skrip ini harus berfungsi setidaknya untuk 12,04, 14,04 dan 15,10. Hanya batalkan komentar di akhir sesuai kebutuhan:
#!/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
Kemudian mulai kembali persatuan dan Anda selesai.
1. Cari file sumber yang tepat
Setelah beberapa percobaan dan kesalahan saya menemukan bahwa file sumber yang akan diubah adalah
- Launcher.cpp -> tambahkan satu baris untuk tidak menampilkan peluncur lagi
- unityshell.cpp, DashController.cpp dan HudController.cpp -> atur lebar peluncur ke nol
Keempat file tersebut terkandung dalam paket sumber "unity".
2. Dapatkan sumbernya
Saya harus menginstal paket xserver-xorg-video-dummy-lts- {versi HWE Anda} secara manual untuk memenuhi beberapa masalah ketergantungan sebelum dapat menginstal build-deps untuk kesatuan:
sudo apt-get install xserver-xorg-video-dummy-lts-{put your HWE name here}
Anda dapat menemukan nama (versi) HWE Anda dengan perintah ini:
dpkg-query -l xserver*-lts-* | grep ^ii | cut -d" " -f3 | rev | cut -d- -f1 | rev | sort -u
Setelah itu sisanya bekerja:
sudo apt-get build-dep unity
apt-get source unity
cd unity-*
3. Letakkan satu baris di Launcher.cpp
find . -iname launcher.cpp -exec gedit {} \;
Cari fungsi "void Launcher :: DrawContent (nux :: GraphicsEngine & GfxContext, bool force_draw)" dan beri "return;" tepat di badannya mulai seperti ini:
void Launcher::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
{
return; //dont show launcher anymore
...
Ini cukup untuk tidak menampilkan peluncur lagi. Tapi dash dan hud akan tetap meninggalkan tempat untuk peluncur di sisi kiri layar yang tidak digunakan.
4. Atur lebar peluncur ke nol di unityshell.cpp, DashController.cpp dan HudController.cpp / UnitySettings.cpp
Untuk persatuan <7.4.0:
Gunakan editor untuk mengganti semua kemunculan "launcher_width =" dengan "launcher_width = 0; //" di unityshell.cpp, DashController.cpp dan HudController.cpp.
Atau cukup gunakan perintah ini
for i in unityshell.cpp DashController.cpp HudController.cpp; do find . -iname $i -exec sed -i -e 's/launcher_width =/launcher_width =0; \/\//' {} \; ; done
Untuk kesatuan 7.4.0:
Temukan file UnitySettings.cpp dan ganti nilai kembali di akhir LauncherSize seperti ini:
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];
}
Ini diperlukan hanya jika Anda ingin tanda hubung ditampilkan tepat di sisi kiri layar, tanpa margin yang akan digunakan oleh peluncur.
5. Atur versi yang tepat di changelog
Dalam kasus saya (12.04, unity 5.20.2) saya harus mengubah versi sumber unity dari 5.20 menjadi 5.20.2 menggunakan
EDITOR=nano debchange --newversion $(apt-show-versions unity | cut -d " " -f2)
sebelum kompilasi untuk menghindari ketergantungan yang rusak saat menginstal. Jangan lupa untuk menyimpan file.
6. Kompilasi dan instal
Lalu saya kompilasi ulang menggunakan ini:
dpkg-buildpackage -rfakeroot -d -us -uc -b
Menginstal paket baru:
sudo dpkg -i ../unity_*.deb
(Sejauh yang saya bisa lihat dan mengujinya, satu-satunya file yang benar-benar dibutuhkan adalah
find . -name libunityshell.so | grep unity/usr/lib/compiz/libunityshell.so
Mengganti /usr/lib/compiz/libunityshell.so dengan yang baru seharusnya sudah cukup, tetapi jika Anda ingin memastikan cukup instal paket unity baru seperti yang ditulis di atas.)
7. Atur peluncur ke autohide
# 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
Itu dia. Persatuan dimulai kembali dan peluncur pergi!
B. Jika Anda lebih suka percaya dan hanya mendapatkan biner
Jika Anda lebih suka mendapatkan biner dan kombinasi versi unity dan arsitektur PC Anda
unity --version
getconf LONG_BIT
dapat ditemukan di bawah, cukup unduh paket yang tepat
32 bit
64bit
dan periksa file deb setelah diunduh
md5sum unity_*.deb
Hasilnya harus salah satunya
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
Kemudian instal paket
sudo dpkg -i unity_*.deb
atur peluncur ke sembunyikan otomatis dan mulai kembali kesatuan. Itu dia!
Jika terjadi kesalahan dan persatuan tidak dimulai:
sudo apt-get install --reinstall unity
Tetapi jika semuanya berfungsi, Anda mungkin ingin mencegah paket baru diperbarui:
echo "unity hold" | sudo dpkg --set-selections
Hanya file "unity_5.20.2_i386_nolauncher.deb" yang dikompilasi di PC saya. File deb lainnya dibuat pada apa yang disebut "komputer awan" (karena ruang mesin sangat mirip awan ...) menggunakan variasi skrip ini:
#!/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/')