लॉन्चर के बिना एकता को संकलित करें


17

मैं एकता को प्रक्षेपक (बाईं ओर पट्टी) को बिल्कुल नहीं दिखाने के लिए संशोधित करना चाहूंगा । मैं किसी भी ऐसे समाधान की तलाश में नहीं हूं जो लांचर को कुछ मामलों में दिखाई दे। मैं वास्तव में इसे पूरी तरह से गायब करना चाहता हूं। यह मेरे मंगेतर के लिए एक उपहार है और मैं अपने लिनक्स लैपटॉप के लिए उच्चतम संभव वुमन एक्सेप्टेंस फैक्टर हासिल करना चाहता हूं, जो फैंसी आइकनों के साथ एक डॉक डॉक चल रहा है, जो कि उस ज्ञात और फ्रूटी कंपनी से होने का आभास कराता है।

कौन से पैकेज और कौन सी स्रोत फ़ाइलों के बारे में मुझे अध्ययन करना चाहिए?

मैं उम्मीद कर रहा हूँ कि यह "unity.launcher.show ()" और recomp के साथ लाइन को कमेंट करना जितना आसान होगा, :-)

धन्यवाद!


क्या आपको वास्तव में एकता की आवश्यकता है, अगर उबंटू डिस्ट्रोस सेब की तरह नहीं दिख रहे हैं, तो आपको सेटिंग्स संपादक से केवल अनचेक करने की जरूरत है: शो-फाइलसिस्टम, -होम आदि !! और आप जाने के लिए तैयार हैं!
केन मोलेरुप

जवाबों:


20

मेरे अपने प्रश्न का उत्तर है:

  • Launcher.cpp, unityshell.cpp, DashController.cpp और HudController.cpp एकता संस्करण के लिए। 7.4% और
  • Launcher.cpp और UnitySettings.ccp एकता संस्करण 7.4.0 के लिए

एकता स्रोत पैकेज से।

लेकिन मैं इससे भी ज्यादा जवाब दे रहा हूं क्योंकि मेरे सवाल का जवाब तलाशने वाले हर व्यक्ति को यह जानने में दिलचस्पी होगी कि उन सोर्स फाइल्स का क्या किया जाए।

सामग्री:
A. अपने आप को संकलित करें या
B बाइनरी प्राप्त करें

डिस्क्लेमर: मेरा कोई सुराग नहीं है और यह केवल १२.०४ को एकता ५.२०.२ के साथ, १४.०४ पर 15.२.४ के साथ, १५.१० पर एकता के साथ ,.३.२ और १६.०४ में एकता के साथ ०.४.० पर परीक्षण किया गया था।

लॉन्चर को न दिखाने के लिए A. संकलित एकता

यहां छवि विवरण दर्ज करें

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. सही स्रोत फ़ाइलों के लिए देखें

कुछ परीक्षण और त्रुटि के बाद मुझे पता चला कि बदली जाने वाली स्रोत फाइलें हैं

  • लॉन्चर.कैप -> लॉन्चर को नहीं दिखाने के लिए एक लाइन जोड़ें
  • unityshell.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; //dont show launcher anymore
  ...

यह लॉन्चर को नहीं दिखाने के लिए पर्याप्त है। लेकिन पानी का छींटा और हुड स्क्रीन अप्रयुक्त के बाईं ओर लांचर के लिए जगह छोड़ देंगे।

4. लांचर चौड़ाई को unityshell.cpp, DashController.cpp और HudController.cpp / UnitySettings.cpp में शून्य पर सेट करें

एकता के लिए <7.4.0:

Unityshell.cpp, DashController.cpp और HudController.cpp में "लॉन्चर_अवेशन = 0; //" के साथ "लॉन्चर_अवेशन =" की सभी घटनाओं को बदलने के लिए एक संपादक का उपयोग करें।
या बस इस कमांड का उपयोग करें

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. चैंज में सही वर्जन सेट करें

मेरे मामले में (१२.०४, एकता ५.२०.२) मुझे एकता के स्रोत के संस्करण को ५.२० से बदलकर ५.२०% करना पड़ा।

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

स्थापित करने से पहले टूटी हुई निर्भरता से बचने के लिए संकलन करने से पहले। फ़ाइल को सहेजना न भूलें।

6. संकलित करें और स्थापित करें

तो मैं इस का उपयोग कर recompiled:

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

बस। एकता को फिर से शुरू किया और लांचर चला गया!


ख। यदि आप विश्वास करना पसंद करते हैं और केवल बाइनरी प्राप्त करते हैं

यदि आप बाइनरी और एकता संस्करण और पीसी आर्किटेक्चर के संयोजन को प्राप्त करना पसंद करते हैं

unity --version
getconf LONG_BIT

नीचे पाया जा सकता है, बस सही पैकेज डाउनलोड करें

32 बिट

64 बिट

और डाउनलोड के बाद डिबेट फ़ाइल की जाँच करें

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


केवल फ़ाइल "unity_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/')

1
वैसे आप कि आपके .so संकलित 32 बिट है, इसलिए किसी भी इच्छुक 64 बिट उपयोगकर्ताओं गलत ELF ने काट लिया नहीं कर रहे हैं उल्लेख करने के लिए चाहते हो सकता है
डौग

1
अच्छा काम JLTD, मुझे उपयोगकर्ताओं को अपने स्वयं के प्रश्न का उत्तर देने के लिए प्रयास करते हुए देखना पसंद है। इनाम आपको साइट में अधिक पहुंच प्रदान करेगा। (मैं 24 घंटे इंतजार कर सकता हूं)। BTW, क्या आप इस उत्कृष्ट प्रश्न askubuntu.com/q/165888/26246 पर एक नज़र डाल सकते हैं , इसे केवल HUD की आवश्यकता है, और मेरा मानना ​​है कि यूनिटी को स्टैंडअलोन (कंपिज़ प्लगइन के रूप में नहीं) के रूप में बनाया जा सकता है। मुझे पता है कि अगर आप किसी भी विचार मिला, मैं एक इनाम
बढ़ाऊंगा

@JLTD यह फ़ाइल सर्वर से हट जाती है। क्या आप इसे फिर से अपलोड कर सकते हैं मैं linux में नौसिखिया व्यक्ति हूँ, इसलिए मेरे लिए विकल्प A
बुरहानुद्दीन अब्बास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.