我想修改统一,不显示启动(左侧边栏)在所有。我没有在寻找可以在某些情况下使启动器可见的解决方案。我真的希望它完全消失。这是给我的未婚夫的礼物,我希望她的linux笔记本电脑达到最高的女性接受度,该笔记本电脑运行着带有精美图标的码头底座,使它看起来像是来自那家知名的水果公司。
关于应该学习哪些软件包和哪些源文件的任何提示?
我希望它就像用“ unity.launcher.show()”注释掉这一行并重新编译一样容易:-)
谢谢!
我想修改统一,不显示启动(左侧边栏)在所有。我没有在寻找可以在某些情况下使启动器可见的解决方案。我真的希望它完全消失。这是给我的未婚夫的礼物,我希望她的linux笔记本电脑达到最高的女性接受度,该笔记本电脑运行着带有精美图标的码头底座,使它看起来像是来自那家知名的水果公司。
关于应该学习哪些软件包和哪些源文件的任何提示?
我希望它就像用“ unity.launcher.show()”注释掉这一行并重新编译一样容易:-)
谢谢!
Answers:
我自己的问题的答案是:
来自unity源码包。
但是我要回答的不仅如此,因为每个人都在寻找我问题的答案,也将对知道如何处理这些源文件感兴趣。
内容:
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
然后重新启动unity,就完成了。
1.查找正确的源文件
经过一番尝试和错误后,我发现要更改的源文件是
所有四个文件都包含在源程序包“ unity”中。
2.获取资源
我必须手动安装软件包xserver-xorg-video-dummy-lts- {您的HWE版本}来解决一些依赖性问题,然后才能安装build-deps以实现统一:
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.在unityshell.cpp,DashController.cpp和HudController.cpp / UnitySettings.cpp中将启动器宽度设置为零。
对于统一性<7.4.0:
使用编辑器在unityshell.cpp,DashController.cpp和HudController.cpp中用“ launcher_width = 0; //”替换所有出现的“ launcher_width =“。
或者只是使用此命令
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,unity 5.20.2)我必须使用以下命令将unity的版本从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替换就足够了,但是如果要确保按照上面的说明安装新的unity软件包。)
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.如果您更愿意信任并且只获取二进制文件
如果您希望获得二进制文件以及统一版本和PC体系结构的组合
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
我的电脑上只编译了文件“ unity_5.20.2_i386_nolauncher.deb”。其他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/')