Ubuntu 13.10 でEclipseやXMindのメニューが反応しなくなったのでシェルスクリプトから起動させつつランチャーに登録する
Ubuntuでアプリケーションを起動すると、アプリケーションのメニューはグローバルメニューとかいってMacのように画面上部に統合されて表示されるようになる。
Ubuntu 13.10 で Eclipse4.3 を起動すると下の画像のようになる。
で、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が実行されるのだが、
ファイル アプリケーションを起動し、設定-動作 から、「実行可能なテキストファイル」を「クリックしたら中身を表示する」以外にしてアイコンをダブルクリック。
メニューが、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)”の文字を確認することができるのでこれを起動する。
めでたく起動できたら、ランチャーを右クリックして、「Lancherに登録」を行えばよい。
3.XMindの場合
上記でめでたしめでたしかと思いきや、愛用のXMindもEclipseベースのため同様の事態。
基本的に上記 Eclipse の手順を繰り返す。
Eclipse と同様の症状
3.1 シェルスクリプトの作成
こちらは、インストーラでインストールしているので、/usr/local/xmind にインストールされている。
シェルスクリプトを作成し、/usr/local/xmind に XMind.sh 配置する。
#! /bin/bash export UBUNTU_MENUPROXY=0 $(dirname $0)/XMind
実行できるように
# chmod +x XMind.sh
修正された。
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ホームから探す
(shell) が名前に含まれている方を起動
3.4 ランチャーに登録
起動したら、ランチャーのアイコンを右クリックして「Lancherに登録」を行う。
以上。めでたし。