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


17

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

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

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

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


本当に結束が必要ですか、Appleによく似たUbuntuディストリビューションがない場合は、設定エディタからshow-filesystem、-homeなどのチェックを外すだけです!! これで準備完了です!
ケンMollerup

回答:


20

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

  • ユニティバージョン<7.4.0および
  • Unityバージョン7.4.0のLauncher.cppおよびUnitySettings.ccp

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

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

内容:
A.自分でコンパイルする か、
B。バイナリを入手する

免責事項:まったく手掛かりがありません。これは、Unity 5.20.2の12.04、Unity 7.2.6の14.04、Unity 7.3.2の15.10、およびUnity 7.4.0の16.04でのみテストされました。

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

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

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

ユニティ<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/')

1
さてあなたは、あなたのコンパイルが.soの32ビット利害64ビットのユーザーが間違ったELFにかまれないようであることを言及することをお勧めします
ダグ

1
すばらしいJLTD、ユーザーが自分の質問に答える努力をしているのを見たいです。報奨金は、サイト内でより多くのアクセスを提供します。(24時間待つ必要があります)。ところで、この傑出した質問askubuntu.com/q/165888/26246を見てください。HUDだけが必要です。Unityは(compizプラグインとしてではなく)スタンドアロンとしてビルドできると思います。アイデアがあったら教えてください、私は250以下の賞金を上げます:)
user.dz

@JLTD このファイルはサーバーから削除されます。もう一度アップロードしてください。私は、オプションAを選択するためのが難しくなって、私は、Linuxでの初心者な人です
アッバスburhanuddin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.