Mathematica(Ubuntu):
ノートブックをクリックすると毎回新規フロントエンドで開いてしまう問題
初:2017-12-24;更新:2018-04-22;
以前はそんなことなかったような気がするのだが、Ubuntu 16.04,Mathematica 11(Student)の組み合わせで普通にファイルマネージャ(Nautilus)からノートブックをクリックして開くと、毎回新しいフロントエンドが別カーネルで立ち上がるようになってしまった。
別フロントエンド間では変数が共有されてなかったりして、気づかないうちにやってしまうとかなり不便。
なのでどうにか解決を図った。
結論
MIMEタイプ設定を編集してSingle Launchモードで開くようにする。
/usr/share/applications/wolfram-mathematica11.desktop
のファイルを管理者権限で開いて
Exec=
の行に-sl
のオプションを追記する。
過程
結果を言えばMathematicaをSingle Launchモード、オプション-sl
付きで開くようにすれば良い。(なぜデフォルトでそうしてくれないのか)
Opening a notebook from command line in an existing front end instance
端末で確かめて見ると確かにコマンドmathematica
だけでは新規プロセスが立ち上がり、-sl
をつけると既存プロセスで開いてくれる。
次の問題はNautilusからノートブックをこのオプション付きで開かせるようにすることである。MIME-typeとかでどうにかできると思い調べてみる。
mime type - Where are file associations stored? - Ask Ubuntu
(できればGUIで済ませたかったがUbuntu-tweakのMIME-typeエディタなどではどうにも反映されなかった。)
ここによると、ファイルマネージャによる開き方は/usr/share/applications/
以下のファイル群に書いてあるらしい。
開き方が./*.desktop
に書かれていて./default.list
でそれとMIME-typeを関連付けているよう。
普通にインストールしていればとりあえずapplication/vnd.wolfram.nb=wolfram-mathematica11.desktop
という感じで関連付けられていると思うので、./wolfram-mathematica11.desktop
を(sudo geditなどで)編集すれば良い。
.desktopファイルを開くといろいろ書かれているが、Exec=
が実行コマンドを指定する部分なのでここをExec=[...]/Mathematica -sl %F
とすれば良い。%F
はおそらく開くファイルのパスだろう。
これで保存し、再度ログインすると期待通り、同一プロセスで開くようになってくれた!
一件落着。しかしなぜMIME-typeというか開き方を編集するGUIが無いのか。まぁLinux使うならこれぐらいは端末叩いてやれということかな…。