Ubuntu 13.10 でEclipseやXMindのメニューが反応しなくなったのでシェルスクリプトから起動させつつランチャーに登録する

Ubuntuでアプリケーションを起動すると、アプリケーションのメニューはグローバルメニューとかいってMacのように画面上部に統合されて表示されるようになる。

Ubuntu 13.10 で Eclipse4.3 を起動すると下の画像のようになる。

ubuntu_globalmenu01

で、Eclipse の設定を変更しようとして、window メニューを押すも、うんともすんとも反応しない。

これでは、お話にならないので以下の対策をとる。

1.シェルスクリプトから起動して、メニューをアプリケーション自体に表示させる

1.1 シェルスクリプトの作成

Eclipse を配置したディレクトリに、次のような内容のシェルスクリプトを配置

#! /bin/bash
export UBUNTU_MENUPROXY=0
$(dirname $0)/eclipse

自分の場合は、~/opt/eclipse_ee_4.3 に、展開しているので、そのフォルダに、eclipse_ee.sh という名前で保存。

1.2 実行できるようにする

ファイルを実行できるように

$ chmod +x eclise_ee.sh

1.3 実行してみる

この段階でアイコンをダブルクリックして実行すると、予想に反してテキストエディタでシェルスクリプトが開かれてしまう。

コマンドラインから実行すれば、当然Eclipseが実行されるのだが、

execshell01

ファイル アプリケーションを起動し、設定-動作 から、「実行可能なテキストファイル」を「クリックしたら中身を表示する」以外にしてアイコンをダブルクリック。

eclipse_app_menu

メニューが、Eclipse側に表示され、動作するようになりました。

2.シェルスクリプトをランチャーに登録する

2.1 設定ファイルを作成

ランチャーには、アプリケーション実行中にランチャーのアイコンを右クリックして、「Launcherに登録」等で登録できるが、上記シェルスクリプト経由で実行したアプリケーションでそれをやっても、シェルスクリプトを登録してくれるわけではなく、直接アプリケーションが登録されてしまう。

どうやら、設定ファイルを以下のフォルダに作成する必要があるようだ。

ファイルの置き場所 説明
~/.local/share/applications/ 特定のユーザーだけに有効にする場合
/usr/share/applications/ すべてのユーザーに有効にする場合

Eclipseについては、そもそもユーザーのホームディレクトリ配下においているので、~/.local/share/applications/ に、eclipse_ee.desktop ファイルを作成する。

元ネタとして、グローバルメニューがそもそも不具合だったときに作成された、eclipse.desktop というファイルがすでに存在するので、それをコピーし一部変更する。

  • Nameは、元のものと区別するために、(shell) という文字列を安直だが付け加える
  • Exec に、上記で作成したシェルスクリプトのパスを設定
  • Icom は、Eclipseに入っているアイコン画像を指定する
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Java EE(shell) - Eclipse
Icon=/home/piroto/opt/eclipse_ee_4.3/icon.xpm
Path=/home/piroto/opt/eclipse_ee_4.3
Exec=/home/piroto/opt/eclipse_ee_4.3/eclipse_ee.sh
StartupNotify=true
StartupWMClass=Eclipse
OnlyShowIn=Unity;
X-UnityGenerated=true

保存し、いったんログアウトした上でログインし直す。

2.2 アプリケーションの起動

上記で設定したファイルは、Dashホームで検索するとでてくる。

上段の右端のアイコンには、上記で設定した、”(shell)”の文字を確認することができるのでこれを起動する。

ubuntu_dash_eclipse

めでたく起動できたら、ランチャーを右クリックして、「Lancherに登録」を行えばよい。

eclipse_lancher01

3.XMindの場合

上記でめでたしめでたしかと思いきや、愛用のXMindもEclipseベースのため同様の事態。

基本的に上記 Eclipse の手順を繰り返す。

xmind_invalid_menu

Eclipse と同様の症状

3.1 シェルスクリプトの作成

こちらは、インストーラでインストールしているので、/usr/local/xmind にインストールされている。

シェルスクリプトを作成し、/usr/local/xmind に XMind.sh 配置する。

#! /bin/bash
export UBUNTU_MENUPROXY=0
$(dirname $0)/XMind

実行できるように

# chmod +x XMind.sh

xmind_good_menu

修正された。

3.2 設定ファイルを作成する

/usr/share/applications/ にもともと作成されている xmind.desktop をコピーして、xmind_shell.desktopとし、一部変更する

  • 例によって、Name に (shell) を追記
  • Exec を作成したシェスクリプトのパスに
[Desktop Entry]
Encoding=UTF-8
Name=XMind(shell)
Comment=Launch XMind 3.4.0
Exec=/usr/local/xmind/XMind.sh
Terminal=false
Type=Application
Icon=/usr/local/xmind/xmind-logo-36.png
StartupNotify=true
Categories=Office;
MimeType=application/xmind;

3.3 Dashホームから探す

xmind_shell

(shell) が名前に含まれている方を起動

3.4 ランチャーに登録

xmind_lancher

起動したら、ランチャーのアイコンを右クリックして「Lancherに登録」を行う。

以上。めでたし。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です