Launcher olmadan Unity'i derleyin


17

Ben başlatıcısı (sol taraf bar) gösterilmemesi için birlik değiştirmek istiyorum hiç . Başlatıcının bazı durumlarda görünür olmasını sağlayacak herhangi bir çözüm aramıyorum. Gerçekten tamamen kaybolmasını istiyorum. Nişanlım için bir hediye ve ben bilinen ve meyveli şirket gibi olmak gibi süslü simgeleri ile süslü bir rıhtım çalıştıran linux dizüstü bilgisayar için mümkün olan en yüksek Kadın Kabul Faktörü elde etmek istiyorum.

Hangi paketler ve hangi kaynak dosyalar üzerinde çalışmam gerektiğine dair herhangi bir ipucu var mı?

Ben "unity.launcher.show ()" ile satır yorum yapmak ve yeniden derleme kadar kolay olmasını umuyorum :-)

Teşekkür ederim!


Gerçekten birliğe ihtiyacınız var mı, eğer Apple'a çok benzeyen Ubuntu dağıtımları yoksa, sadece işaretini kaldırmanız gerekir: ayarlar düzenleyiciden show-dosya sistemi, -home vb. ve gitmeye hazırsınız!
Ken Mollerup

Yanıtlar:


20

Kendi sorumun cevabı:

  • <7.4.0 birlik sürümü için Launcher.cpp, unityshell.cpp, DashController.cpp ve HudController.cpp ve
  • Birlik 7.4.0 sürümü için Launcher.cpp ve UnitySettings.ccp

birlik kaynak paketinden.

Ama bundan daha fazla cevap veriyorum, çünkü sorumun cevabını arayan herkes de bu kaynak dosyalarla ne yapacağını bilmek isteyecek.

İçindekiler:
A. Kendinizi derleyin veya
B. İkili dosyayı alın

Feragatname: ALL'de ipucu yok ve bu sadece birlik 5.20.2 ile 12.04, birlik 7.2.6 ile 14.04, birlik 7.2.2 ile 15.10 ve birlik 7.4.0 ile 16.04 üzerinde test edildi

A.Başlatıcıyı göstermemek için Birlik derleyin

resim açıklamasını buraya girin

0. Sabırsızlık için

Bu komut dosyasının en az 12.04, 14.04 ve 15.10 için çalışması gerekir. Sonunda sadece gerektiği gibi rahatsızlık:

#!/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

Sonra birliği yeniden başlatın ve işiniz bitti.

1. Doğru kaynak dosyaları arayın

Biraz deneme yanılma işleminden sonra değiştirilecek kaynak dosyalarının

  • Launcher.cpp -> artık başlatıcıyı göstermeyecek bir satır ekle
  • unityshell.cpp, DashController.cpp ve HudController.cpp -> başlatıcı genişliğini sıfıra ayarlayın

Dört dosyanın tümü "birlik" kaynak paketinde bulunur.

2. Kaynakları alın

Birlik için derlemeler kurmadan önce bazı bağımlılık sorunlarını gidermek için xserver-xorg-video-dummy-lts- {HWE sürümünüz} paketini manuel olarak yüklemem gerekti:

sudo apt-get install xserver-xorg-video-dummy-lts-{put your HWE name here}

Bu komutla HWE'nizin adını (sürümünü) bulabilirsiniz:

dpkg-query -l xserver*-lts-* | grep ^ii  | cut -d" " -f3 | rev | cut -d- -f1 | rev | sort -u

Bundan sonra geri kalanı çalıştı:

sudo apt-get build-dep unity
apt-get source unity
cd unity-*

3. Launcher.cpp dosyasına bir satır koyun

find . -iname launcher.cpp -exec gedit {} \;

"Void Launcher :: DrawContent (nux :: GraphicsEngine & GfxContext, bool force_draw)" işlevini arayın ve bir "return;" sadece vücudunda böyle başlar:

void Launcher::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
{
  return; //dont show launcher anymore
  ...

Bu, fırlatıcıyı artık göstermemek için yeterlidir. Ancak çizgi ve hud, ekranın sol tarafındaki fırlatıcı için yeri kullanılmadan bırakacaktır.

4. Unityshell.cpp, DashController.cpp ve HudController.cpp / UnitySettings.cpp'de başlatıcı genişliğini sıfıra ayarlayın

Birlik <7.4.0 için:

Unityshell.cpp, DashController.cpp ve HudController.cpp'deki tüm "launcher_width =" oluşumlarını "launcher_width = 0; //" ile değiştirmek için bir düzenleyici kullanın.
Veya sadece bu komutu kullanın

for i in unityshell.cpp DashController.cpp HudController.cpp; do find . -iname $i -exec sed -i -e  's/launcher_width =/launcher_width =0; \/\//' {} \; ; done

Birlik 7.4.0 için:

UnitySettings.cpp dosyasını bulun ve LauncherSize öğesinin sonundaki dönüş değerini aşağıdaki gibi değiştirin:

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];
}

Bu, yalnızca çizginin ekranın sol tarafında, başlatıcı tarafından kullanılacak herhangi bir kenar boşluğu olmadan gösterilmesini istiyorsanız gereklidir.

5. Değişiklik günlüğünde doğru sürümü ayarlayın

Benim durumumda (12.04, birlik 5.20.2) Birlik kaynağının sürümünü 5.20'den 5.20.2'ye değiştirmek zorunda kaldım

EDITOR=nano debchange --newversion $(apt-show-versions unity | cut -d " " -f2) 

yüklemeden önce bağımlılıkları kırmamak için derlemeden önce. Dosyayı kaydetmeyi unutmayın.

6. Derleyin ve yükleyin

Sonra bunu kullanarak yeniden derlenmiş:

dpkg-buildpackage -rfakeroot -d -us -uc -b

Yeni paketi yükledi:

sudo dpkg -i ../unity_*.deb

(Görebildiğim ve test edebildiğim kadarıyla, aslında gereken tek dosya

find . -name libunityshell.so | grep unity/usr/lib/compiz/libunityshell.so

/Usr/lib/compiz/libunityshell.so yerine yenisini koymak yeterli olmalı, ancak emin olmak istiyorsanız yukarıda belirtilen şekilde yeni birlik paketini kurun.)

7. Başlatıcıyı otomatik gizlemeye ayarlayın

# 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

Bu kadar. Birlik yeniden başlatıldı ve fırlatıcı gitti!


B. Güvenmeyi ve ikiliyi almayı tercih ederseniz

İkili ve birlik versiyonunu ve PC mimarisini birleştirmeyi tercih ediyorsanız

unity --version
getconf LONG_BIT

aşağıda bulunabilir, sadece doğru paketi indirin

32 bit

64bit

ve indirdikten sonra deb dosyasını kontrol edin

md5sum unity_*.deb

Sonuç bunlardan biri olmalı

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

Ardından paketi yükleyin

sudo dpkg -i unity_*.deb

başlatıcıyı birliği otomatik olarak gizleyecek ve yeniden başlatacak şekilde ayarlayın. Bu kadar!

Bir şeyler ters giderse ve birlik başlamazsa:

sudo apt-get install --reinstall unity

Ancak her şey işe yararsa, yeni paketin güncellenmesini önlemek isteyebilirsiniz:

echo "unity hold" | sudo dpkg --set-selections


Bilgisayarımda yalnızca "unity_5.20.2_i386_nolauncher.deb" dosyası derlendi. Diğer deb dosyaları, komut dosyasının bu varyasyonu kullanılarak "bulut bilgisayarlar" (makine odaları bulutlara çok benzediği için) üzerinde yapıldı:

#!/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/')

1
Peki derlenmiş .so 32 bit olduğunu söylemek isteyebilirsiniz, bu yüzden herhangi bir ilgili 64 bit kullanıcı yanlış ELF tarafından ısırılmadı
doug

1
İyi iş çıkardın JLTD, kullanıcıların kendi sorularını cevaplamak için çaba harcadıklarını görmek hoşuma gidiyor. Ödül, sitede daha fazla erişim sağlar. (24 saat beklemek zorundayım). BTW, askubuntu.com/q/165888/26246 bu olağanüstü soruya bir göz atabilir misiniz , sadece HUD'ye ihtiyaç duyuyor ve Unity'nin bağımsız olarak (compiz eklentisi olarak değil) inşa edilebileceğine inanıyorum. Herhangi bir fikriniz varsa bana bildirin, 250'den az
olmamak üzere

@JLTD Bu dosya sunucudan silinir. lütfen tekrar yükleyebilir misiniz? Ben linux newbie kişi bu yüzden onun için A seçeneği seçmek zor oluyor
burhanuddin abbas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.