web-dev-qa-db-ja.com

ランチャーなしでUnityをコンパイルする

ランチャー(左側のバー)を表示しないように統一を変更したいと思いますすべて。場合によっては、ランチャーを表示できるソリューションを探していません。完全に消えてほしい。それは私の婚約者への贈り物であり、その有名でフルーティーな会社のように見える派手なアイコンを備えたドックドックを実行しているLinuxラップトップで可能な限り最高の女性受け入れ係数を達成したいと思います。

どのパッケージとどのソースファイルを勉強すべきかについてのヒントはありますか?

「unity.launcher.show()」で行をコメントアウトし、再コンパイルするのと同じくらい簡単になることを望んでいます:-)

ありがとうございました!

17
JLTD

私自身の質問に対する答えは:

  • Unityバージョン<7.4.0の場合、Launcher.cpp、unityshell.cpp、DashController.cppおよびHudController.cpp
  • Unityバージョン7.4.0のLauncher.cppおよびUnitySettings.ccp

ユニティソースパッケージから。

しかし、私の質問への回答を探している人は誰でも、それらのソースファイルをどうするかを知りたいと思うので、私はそれ以上に答えています。

内容:
A。自分でコンパイルするまたは
B。バイナリを取得します

免責事項:手がかりAT ALLはありません。これは、Unity 5.20.2の12.04、Unity 7.2.6の14.04、Unity 7.3.2の15.10でのみテストされました。ユニティ7.4.0での16.04

A。ランチャーを表示しないようにUnityをコンパイルします

enter image description here

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。適切なソースファイルを探します

いくつかの試行錯誤の後、変更するソースファイルが

  • Launcher.cpp-> 1行追加して、ランチャーを表示しないようにします
  • unityshell.cpp、DashController.cpp、HudController.cpp->ランチャーの幅をゼロに設定

4つのファイルはすべて、ソースパッケージ「unity」に含まれています。

2。ソースを取得する

私は、xserver-xorg-video-dummy-lts- {your HWE version}パッケージを手動でインストールして、Unityの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に1行を入力します

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でランチャーの幅をゼロに設定します

Unity <7.4.0の場合:

エディターを使用して、unityshell.cpp、DashController.cpp、およびHudController.cppで発生する「launcher_width =」を「launcher_width = 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

Unity 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をその新しいものに置き換えるだけで十分ですが、確実にしたい場合は、上記の新しいユニティパッケージをインストールしてください。)

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」のみが私のPCでコンパイルされました。他の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/')
20
JLTD