Unity用のMatlabランチャーを作成するにはどうすればよいですか?


22

Ubuntu 12.04にUnity用のMatlab R2011aランチャーをインストールしようとしています。私はこのガイドを試しました(11.10用であり、11.10でもMatlab R2011aのサポートされていないOSであると述べています)が、満足のいく解決策はありません。

これは私のランチャーファイルです/usr/share/applications/matlab.desktop

#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Icon=/usr/share/icons/matlab.png
Name=MATLAB R2011a
Comment=Start MATLAB - The Language of Technical Computing
Exec=matlab -desktop
Categories=Development;

ダッシュパネルを開き、「matlab」を検索します。このランチャーはアプリケーションの中にあります。クリックすると、Matlabのスプラッシュ画面が表示されますが、消えるとプログラムは起動しません。(htopmatlabプロセスがバックグラウンドで実行されていないことも確認しました。)

私が追加した場合

Terminal=true

ランチャーファイルに対して、プログラムはOKを開始し、Matlabと同様にターミナルを開きます。ただし、ターミナルとMatlab自体の両方がランチャー領域に表示され、Matlabアイコンが表示されるため、実際には1つだけの場合に2つの Matlabインスタンスが実行されているように見えます。(実際には、同じ2つのインスタンスではなく、2つの異なるプログラムとして表示されます。アイコンは独立しており、グループ化されていません。)

これは間違いなく最適ではありません。ランチャー領域にロックできるランチャーを作成することを望んでいました。プログラムが実行されているとき、その同じアイコンがアクティブなMatlabインスタンスのアイコンになります。

期待どおりに動作するMatlabのランチャーを作成するにはどうすればよいですか?

更新:私の症状については明らかに不明確だったので、少し明確にしようと思います。また、回答からいくつかの提案を試み、さらに何が起こるかを調査しました。私の現在のセットアップ(Terminal=trueおよびでのランチャーファイルExec=matlab -desktop -nosplash &)は、次の動作をレンダリングします。

  1. ラップトップでWindowsキーを押してDashを開き、「matlab」を検索します。「MATLAB R2011a」という名前のランチャーが見つかります。クリックします。
  2. ランチャーファイルで参照したアイコンを使用して、ターミナルウィンドウが開きます。ほとんどすぐに、MATLABのスプラッシュ画面も同じアイコンを使用して開きます(したがって、ランチャーのターミナルウィンドウとグループ化されます)。
  3. スプラッシュ画面が消え、ランチャーのアイコンの1つも消えます。ターミナルウィンドウのアイコンの隣に表示される(それとグループ化されていない)アイコンの異なるバージョンを使用して、MATLABデスクトップ環境が開きます。

ターミナルウィンドウのアイコンをランチャーにロックし、クリックしてMATLABを正常に起動できますが、あるアイコンでプログラムを起動し、別のアイコンで切り替えることは最適ではありません。私も次のことを試しました:

  • Exec&ランチャーコマンドにアンパサンドはありませんが、違いはありませんでした。
  • matlab -nosplash端末から手動で実行しても、スプラッシュ画面が表示されます。(それでは、nosplashオプションは本当に何をするのでしょうか?)

matlabターミナルウィンドウで手動で実行するとどうなりますか?
エリアケイガン

@EliahKagan:それは完璧に動作します。matlabまたはを実行してもmatlab -desktop、問題ではないようです。
トマスAschan

アイコンについてもまったく同じ問題を抱えています。リポジトリからmatlab用のUbuntuパッケージもインストールしました。...あなたが開始すると、MATLAB別のアイコンが作成され、あなたはランチャーに新しいものをロックした場合、新しいものを開くには、MATLABではないということ、それは本当に奇妙な私を見つける
フェリペ

回答:


14

ギャレットの答えは私にとってはほとんど機能しますが、代わりに

StartupWMClass=sun-awt-X11-XFramePeer

これにより、スプラッシュ画面が表示されている間は追加のランチャーアイコンが表示されます(spashscreenのWM_CLASSは単なる「MATLAB」であるため)が、その後、ウィンドウはランチャーの下で適切にグループ化されます。

Matlabの新しいインスタンス(端末、またはSynapse、またはで起動した別のtty export DISPLAY=:0)もこのランチャーの下にグループ化され、ランチャーの終了オプションはそれらすべてを強制終了します。

を使用してこのWM_CLASS値を見つけました

$ xprop WM_CLASS

次に、Matlabウィンドウをクリックします。これは、スーパーユーザーから取得したコマンドです。

一時的な余分なランチャーアイコンを防ぐために、-nosplashフラグの後にフラグを追加することもできます-desktop

だから、私の~/.local/share/applications/MATLAB.desktopように見えます:

[Desktop Entry]
Version=1.0
Type=Application
Icon=matlab
Name=Matlab
Comment=Start MATLAB - The Language of Technical Computing
Exec=matlab -desktop -nosplash
Terminal=false
Categories=Development;
StartupNotify=true
StartupWMClass=sun-awt-X11-XFramePeer
X-Ayatana-Desktop-Shortcuts=New_Window;

Name[en_US]=MATLAB

[New_Window Shortcut Group]
Name=start a new MATLAB instance
Exec=matlab -desktop

これはUbuntu 12.10で、Matlab R2012bを使用しています


これは、私が望んでいるとおりに機能します。どうもありがとう!
トマスアスチャン

2
私はあなたの答えを少し広げました。ここでの
羊の飛行

他の人がどこでロゴを手に入れたかわからないが、これはうまくいく:$ sudo wget http://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png -O /usr/share/pixmaps/matlab.png
ニール・トラフト14

7

それは非常に奇妙です。matlab -desktop本当にトリックを行う必要があります。

アプローチ1:ランチャーの問題点を確認する

Unityサイドバーに機能するMATLABアイコンがあります。私はそれをクリックすることができます、それは正しいアイコンを維持し、ターミナルを開きません。私が見る限り、それはあなたのコードとほとんど同じですが:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/MATLAB/R2011b/bin/matlab -desktop
Name=MATLAB
Icon=/home/tomas/icons/Matlab_Logo.png

上記のコードは、に配置されているmatlab.desktopにあり/usr/share/applications/ます。重要な違いは(i)Execパスだけですが、MATLABのインストール中にシンボリックリンクをインストールした場合、問題なく動作するはずです。(ii)MATLAB R2011bを実行しています。

あなたと同じように、私はUbuntu 12.04を実行しています。

私が何かを見逃した場合は、私のコードを使用して、MATLABを起動してみてください。

アプローチ2:ターミナルでの汚い回避策

matlab -desktopターミナルでの作業に言及した(つまり、追加Terminal=true)ただし、MATLABの下にグループ化された2つの画面が表示されます。

プロセスの呼び出し方法を変更することで、これを修正しようとすることができます。ここで鍵となるのは、アンパサンド&記号です。それが行うことは、それが終了するのを待たずに、先行するコードを実行することです。理想的には、ターミナルを起動し、ターミナルでMATLABを起動し、MATLABを実行したままターミナルをすぐに閉じます。行の後にアンパサンドを付けて端末からmatlabを起動するとどうなりますか、または:

matlab -desktop &

それが機能する場合は、(i)Terminal=true上記のコードを使用してランチャーを作成するか、(ii)上記のコードを呼び出すbashスクリプトを参照するランチャーを作成します。

あなたにとって、アプローチ1は役に立ちませんでした。アプローチ2が機能しない場合は、少し試してみると良いかもしれません。アンパサンド、ターミナル、およびbashスクリプトでできることとできないことを確認してください。私はかなり良いアイデアを失っていますが、私より賢い人があなたを助けることができるかもしれません。


コードを試しましたが、成功しませんでした。また、(i)Matlabのインストール中にシンボリックリンクをインストールしました。(ii)もちろんそれは重要な違いかもしれません-残念ながら、これはアカデミックライセンスであり、私はR2011aが最新版であるため、R2011b =(
Tomas Aschan

投稿を編集して、別のアイデアを追加しました。それがどのように機能するかをお知らせください。
トマス

ありがとう!ただし、大きな違いはありませんでした。私は自分の症状について少し不明瞭だったようです。明確化のためにOPの更新を参照してください。
トマスAschan

なるほど、作成したランチャーを使用してMATLABを起動できます。間違っているのはアイコンだけです。アプローチ2で説明したターミナルソリューションに頼ると、正しいアイコンが表示されないのではないかと心配しています。私はまったく同じ問題を抱えていましたが、MATLABを使用して呼び出すことができましたmatlab -desktop(アプローチ1を参照)。私にとっては、スプラッシュスクリーンとメインインターフェイスの正しいアイコンで、MATLABを呼び出します。ロックされたランチャーの下に配置されます。正しいアイコンが必要で、でランチャーを介してMATLABを実行できない場合matlab -desktop、私は考えを失っています。私が何かを思いついたらお知らせします。
トマス

.desktopファイルに対応するテキストはどのように表示されますか?
DBinJP

4

ソフトウェアセンターからMatlab構成ファイル/スクリプトをインストールしました。Matlabランチャーがダッシュでリストされ、Ubuntu 12.04のMatlab2011aで完全に機能します。しかし、ランチャーからは機能していません。つまり、ランチャーでロックして、そこから起動しようとすると、機能しません。少なくとも私にとっては機能しません。だから、ダッシュから開始する必要があります。

これをインストールするには、Ubuntu Software Centerにアクセスして、Matlabを検索します。これはリストの最初のアイコンです(アイコンはMatlabロゴです)。インストールするだけで、あとは大事になります。


1
良いヒント!ただし、自分で作成したランチャーとまったく同じ問題があります。
トマスAschan

ありがとう、@ maqtanim!私にとって魅力のように動作します(ubuntu 12.10 amd64)
amc

私のために完璧に働いた(12.10のMatlab R2013a)。これをインストールする前に、ランチャーさえ持っていませんでした。ソフトウェアセンターへのリンク:apt.ubuntu.com/p/matlab-support
Tobold

3

新規インストール(Ubuntu 12.04のバージョンR2010b)から始めて、正しく動作するようにするために私がしたことは次のとおりです。

  1. 推奨されるように、ソフトウェアセンターからmatlab-supportパッケージをインストールします。または、次のコマンドを使用できますsudo apt-get install matlab-support

  2. ローカルの.desktopファイルを作成しますgedit ~/.local/share/applications/matlab.desktop。何らかの理由で/ usr / share / applicationsに保存すると、最初にログインしたときに機能しなくなりました。

  3. 次のコードをコピーして貼り付けて保存します。重要な変更は、StartupWMClass行です。

    [Desktop Entry]
    Version=1.0
    Type=Application
    Icon=/usr/share/icons/matlab.png
    Name=Matlab
    Comment=Start MATLAB - The Language of Technical Computing
    Exec=matlab -desktop
    Terminal=false
    Categories=Development;
    StartupNotify=true
    StartupWMClass=com-mathworks-util-PostVMInit
    X-Ayatana-Desktop-Shortcuts=New_Window;
    
    [New_Window Shortcut Group]
    Name=New Matlab
    Exec=matlab -desktop
    
  4. matlab.desktopファイルを保存したばかりのアプリケーションフォルダーを開きますnautilus ~/.local/share/applications

  5. matlab.desktopファイルをUnityランチャーにドラッグアンドドロップします。


これは本当に有望に見えます!ただし、さらに必要なことがあります-これを行った後、ランチャーのMatlabアイコンをクリックすると、次のことが行われます:1)スプラッシュウィンドウが表示され、独自の個別のランチャーアイコンが表示され、クリックしたアイコンが点滅し始めます(フェードインとでる)。2)スプラッシュウィンドウ、およびそのアイコンが消え、ランチャーアイコンが点滅し続けます。3)アイコンの点滅が止まり、何も起こりません。
トマスAschan

また、matlab.desktopファイルが自分(rootではない)に所有されていること、およびすべてのユーザーに読み取りおよび実行権限があることを確認しました。
トマスAschan

ただし、MatlabをターミナルまたはGuakeから起動すると、ランチャーに置いたばかりのアイコンが使用されます- 何かが正しい=)
Tomas Aschan

スプラッシュ画面は自動的に表示されますが、消えます。これは、Matlab仮想マシン(メインプログラム)とは異なるクラスを持つためです。開始しない限り、わかりません。あなたはそれが(私は同じコマンドを使用して仮定しているターミナルに始まり言う特に以来matlab -desktop
ギャレット・フォスター

はい、同じコマンドを使用します。matlab &また、問題なく動作します(つまり、-desktop端末から起動する場合、スイッチは不要です)。
トマスAschan

1

少し遅れて来ているかもしれませんが、「メインメニュー」アプリケーションにエントリを追加することでこれを実現できました。「アプリケーション」としてリストし、MATLABディレクトリ内の実行可能ファイルへのフルパスをコマンドとして指定しました。

また、フラグ '-desktop'(引用符なし)を追加する必要がありました。さらに、64ビットシステムでStudent Versionを使用しているため、 '-glnx86'フラグも使用する必要がありましたが、これも正常に機能しました。

その後、このWebサイトからアイコンを取得しました。

これは、アプリケーションメニューにあり、ランチャーにドラッグダウンできます。少し変わった動作をしているのは、クリックすると、既にあるアイコンを使用する代わりに、別のMATLABアイコンがランチャーに表示されることです。誰もがこれを解決する方法を見つけることができれば、それは素晴らしいでしょう...しかし、私はそれでそのまま生きることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.