JetBrains ToolboxとSDKMAN!が協調して動かない、あるいはJetBrains Toolboxに環境を引き継いで欲しいときに気をつけるポイント
JetBrains ToolboxはJetBrains社の提供するプロダクトをかんたんにインストールして管理することができるツールである。基本的に便利なので、仕事でIntelliJ IDEAを利用するときなどは積極的に利用している。 ただ、少しだけ問題があって、JetBrains Toolboxを普通にインストールしてしまうとシステムの起動時に立ち上がってきてしまい、SDKMAN!などのインタラクティブシェルでパスをあとから変更する類のツールとうまく協調できずに困ることがある。 面倒だったので、毎回勝手に立ち上がってきていたJetBrains Toolboxを一度停止して、ターミナルから起動する、という対応をとっていた。しかし、いい加減毎回消したりするのが面倒になってきたので、どうにかしようと重い腰をあげることにした。
インストール
何も考えずにインストールしてよい。から.tar.gzをダウンロードしてきて、適当に展開するとjetbrains-toolboxがでてくるのでこれを実行する。 そうすると$HOME/.local/share/JetBrains/Toolbox/bin/jetbrains-toolboxというパスに実行ファイルが置かれるはずなので、インストールは完了。インストールが完了したら一度実行して起動するとよい(これでいくつか作られるファイルがあると後が便利なので)。
システム起動時にJetBrains Toolboxが起動されないようにする
デフォルトでシステム起動時にJetBrains Toolboxが起動されるようになっているが、これだとSDKMAN!の設定を引き継いでもらえないので、一旦システム起動時にJetBrains Toolboxが起動しないようにする。
まずJetBrains Toolboxの右上の設定ボタンから「Settings」を選択する。
https://gyazo.com/827aa28e3f8618d1593d468f28980ce8
次に「Launch Toolbox App at system startup」というトグルをオフにする。
https://gyazo.com/4d1fd82f4554195d76db4fd1974d5939
これで次回起動以降、システム起動時にJetBrains Toolboxは起動しなくなる。
システム起動時にSDKMAN!を読み込みつつ、JetBrains Toolboxを起動するようにする
Alt + F2を押してgnome-session-propertiesを入力して、自動起動するアプリケーションの設定を行う。
https://gyazo.com/c0471bc33c24e9fbeb5812126339044e
https://gyazo.com/6228bc7695c247729005fb06f428536b
「追加」を押して新しく設定を追加する。「コマンド」のところにbash -c "source /home/ayato-p/.sdkman/bin/sdkman-init.sh && /home/ayato-p/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox --minimize"と入力し「名前」と「説明」は適当に入力して「保存」する。これで次回システム起動時以降はSDKMAN!が読み込まれてJetBrains Toolboxが起動されるようになる(パスのayato-pは任意のユーザに変更すること)。
アプリケーションとしていい感じのショートカットを登録する
あとはJetBrains Toolboxをいい感じに起動することができればよいだけなので、かんたんに起動する方法をつくる。~/.local/share/applications/jetbrains-toolbox.desktopというファイルが存在するので、一度確認する。だいたい以下のような形になっているはず。
code:jetbrains-toolbox.desktop
Icon=/home/ayato-p/.local/share/JetBrains/Toolbox/toolbox.svg
Exec=/home/ayato-p/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox %u
Version=1.0
Type=Application
Categories=Development
Name=JetBrains Toolbox
StartupWMClass=jetbrains-toolbox
Terminal=false
MimeType=x-scheme-handler/jetbrains;
X-GNOME-Autostart-enabled=true
StartupNotify=false
X-GNOME-Autostart-Delay=10
X-MATE-Autostart-Delay=10
X-KDE-autostart-after=panel
これを書き換えれば…と思っていたんだけど、どうもJetBrains Toolboxが毎回起動時に作り直している様子(めちゃくちゃ厄介)なので、コピーして新しいものを作ることにする。オリジナルをcp ~/.local/share/applications/{jetbrains-toolbox,my-toolbox}.desktopなどとして適当にコピーするもってくる。
$HOME/.local/share/applications/my-toolbox.desktopを修正して以下のように変更する(パスのayato-pは任意のユーザに変更すること)。修正したのはExecとNameのところだけ。
code:my-toolbox.desktop
Icon=/home/ayato-p/.local/share/JetBrains/Toolbox/toolbox.svg
Exec=bash -c "source /home/ayato-p/.sdkman/bin/sdkman-init.sh && /home/ayato-p/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox %u"
Version=1.0
Type=Application
Categories=Development
Name=My Toolbox
StartupWMClass=jetbrains-toolbox
Terminal=false
MimeType=x-scheme-handler/jetbrains;
X-GNOME-Autostart-enabled=true
StartupNotify=false
X-GNOME-Autostart-Delay=10
X-MATE-Autostart-Delay=10
X-KDE-autostart-after=panel
これでSuperキー(Windowsキー)を押したときにNameに指定した任意の名前で起動できるようになる。このショートカットで一度起動してしまえば、JetBrains Toolboxは常駐するのであとはいつも通りそこから任意のプロジェクトを開いたりすれば問題なくなる。
https://gyazo.com/28e74d5bb336f54f5c1012ef57dafdf7