मेरे अपने प्रश्न का उत्तर है:
- 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/')