A resposta para minha própria pergunta é:
- Launcher.cpp, unityshell.cpp, DashController.cpp e HudController.cpp para versão de unidade & lt; 7.4.0 e
- Launcher.cpp e UnitySettings.ccp para a unidade versão 7.4.0
do pacote de origem da unidade.
Mas estou respondendo mais do que isso, já que todos que procuram a resposta à minha pergunta também estarão interessados em saber o que fazer com esses arquivos de origem.
Conteúdo:
A. Compile você mesmo ou B. Obtenha o binário
. 0
Compile o Unity para não mostrar o inicializador
0. Pela impaciência
Este script deve funcionar pelo menos para 12.04, 14.04 e 15.10. Apenas descomente no final, conforme necessário:
#!/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
Em seguida, reinicie a unidade e pronto.
1. Procure os arquivos de origem corretos
Após algumas tentativas e erros, descobri que os arquivos de origem a serem alterados são
- Launcher.cpp - & gt; adicione uma linha para não mostrar mais o lançador
- unityshell.cpp, DashController.cpp e HudController.cpp - & gt; definir a largura do lançador para zero
Todos os quatro arquivos estão contidos no pacote de origem "unity".
2. Obtenha as fontes
Eu tive que instalar o pacote xserver-xorg-video-dummy-lts-{sua versão HWE} manualmente para preencher alguns problemas de dependência antes de poder instalar o build-deps para unidade:
sudo apt-get install xserver-xorg-video-dummy-lts-{put your HWE name here}
Você pode encontrar o nome (versão) do seu HWE com este comando:
dpkg-query -l xserver*-lts-* | grep ^ii | cut -d" " -f3 | rev | cut -d- -f1 | rev | sort -u
Depois disso, o resto funcionou:
sudo apt-get build-dep unity
apt-get source unity
cd unity-*
3. Coloque uma linha no Launcher.cpp
find . -iname launcher.cpp -exec gedit {} \;
Procure a função "void Launcher :: DrawContent (nux :: GraphicsEngine & amp; GfxContext, bool force_draw)" e coloque um "return"; apenas no começo do seu corpo assim:
void Launcher::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
{
return; //dont show launcher anymore
...
Isso é suficiente para não mostrar mais o lançador. Mas o painel e o hud ainda deixarão o local para o lançador no lado esquerdo da tela sem uso.
4. Defina a largura do lançador para zero em unityshell.cpp, DashController.cpp e HudController.cpp / UnitySettings.cpp
Por unidade & lt; 7.4.0:
Use um editor para substituir todas as ocorrências de "launcher_width=" com "launcher_width = 0; //" em unityshell.cpp, DashController.cpp e HudController.cpp.
Ou apenas use este comando
for i in unityshell.cpp DashController.cpp HudController.cpp; do find . -iname $i -exec sed -i -e 's/launcher_width =/launcher_width =0; \/\//' {} \; ; done
Para a unidade 7.4.0:
Encontre o arquivo UnitySettings.cpp e substitua o valor de retorno no final do LauncherSize assim:
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];
}
Isso é necessário apenas se você quiser que o traço seja exibido à direita da tela, sem qualquer margem que tenha sido usada pelo inicializador.
5. Defina a versão correta no changelog
No meu caso (12.04, unidade 5.20.2) eu tive que mudar a versão da fonte da unidade de 5.20 para 5.20.2 usando
EDITOR=nano debchange --newversion $(apt-show-versions unity | cut -d " " -f2)
antes de compilar para evitar ter dependências quebradas durante a instalação. Não esqueça de salvar o arquivo.
6. Compile e instale
Então eu recompilado usando isso:
dpkg-buildpackage -rfakeroot -d -us -uc -b
Instalado o novo pacote:
sudo dpkg -i ../unity_*.deb
(Até onde eu posso ver e testar, o único arquivo realmente necessário é
find . -name libunityshell.so | grep unity/usr/lib/compiz/libunityshell.so
Substituir /usr/lib/compiz/libunityshell.so por esse novo deve ser o suficiente, mas se você quiser ter certeza, basta instalar o novo pacote unit como descrito acima.
7. Definir o lançador para ocultar automaticamente
# 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
É isso. Reiniciou a unidade e o lançador foi embora!
B. Caso você prefira confiar e apenas obter o binário
Se você preferir obter o binário e sua combinação de versão de unidade e arquitetura de PC
unity --version
getconf LONG_BIT
pode ser encontrado abaixo, basta baixar o pacote certo
32 bits
- unity_5.20.0-0ubuntu3_i386_nolauncher.deb
- unity_5.20.2_i386_nolauncher.deb
- unity_7.2.6 + 14.04.20151021-0ubuntu1_i386_nolauncher.deb
- unity_7.3.2 + 15.10.20151016-0ubuntu1_i386_nolauncher.deb
64 bits
- unity_5.20.0-0ubuntu3_amd64_nolauncher.deb
- unity_7.2.6 + 14.04.20160408-0ubuntu1_amd64_nolauncher.deb
- unity_7.3.2 + 15.10.20151016-0ubuntu1_amd64_nolauncher.deb
- unity_7.4.0 + 16.04.20160715-0ubuntu1_amd64_nolauncher.deb
e verifique o arquivo deb após o download
md5sum unity_*.deb
O resultado deve ser um desses
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
Em seguida, instale o pacote
sudo dpkg -i unity_*.deb
defina o iniciador para ocultar automaticamente e reiniciar a unidade. É isso aí!
No caso de algo dar errado e a unidade não começar:
sudo apt-get install --reinstall unity
Mas, se tudo funcionar, talvez você queira impedir que o novo pacote seja atualizado:
echo "unity hold" | sudo dpkg --set-selections
Apenas o arquivo "unity_5.20.2_i386_nolauncher.deb" foi compilado no meu PC. Os outros arquivos deb foram feitos nos chamados "computadores em nuvem" (porque as salas de máquinas se parecem muito com as nuvens ...) usando essa variação do script:
#!/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/')