Setting icon for MSYS2 shortcut
MSYS2のショートカットにアイコンを設定した。設定手順を記す。
MSYS2をインストールすると,スタートメニューに[MinGW-w64 Win64 Shell]という名前でメニューが追加される。これを選択することで/mingw64/binにPATHを通した状態でMSYS2が起動できる。
しかし,この方法での起動には以下の問題がある。
- タスクバーにピン留めしたときのアイコンがMSYS2でない。
- タスクバーにピン留めしたアイコンをクリックして実行すると,余分にタスクバーにターミナルのアイコンが表示されてしまう(下図参照)。
- ターミナルのアイコンをタスクバーにピン留めして実行した場合,MSYS2のPATHが一切設定されていない状態となる。
これは,スタートメニューの[MinGW-w64 Win64 Shell]が環境変数を設定してminttyを実行すようなbatファイルになっているためだ。[MinGW-w64 Win64 Shell]をタスクバーにピン留めして右クリック→プロパティからリンク先を見ると以下の内容となっている。
C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\mingw64_shell.bat
このようにcmd.exeからmingw64_shell.bat(mingw32_shell.bat)を起動している。mingw64_shell.batは中で環境変数を設定してminttyからbashを起動している。仕組みがわかれば自分で設定できる。mingw64_shell.bat(mingw32_shell.bat)では環境変数MSYSTEMの設定が重要である。この環境変数の設定でMSYSから使うMinGW-w64のアーキテクチャ(64/32bit)ごとのプログラムのPATH(それぞれ,/mingw64/binか/mingw32/bin)を設定している。以下のようにすることでアーキテクチャを指定できる。
- MinGW-w64の32bit版:MSYSTEM=MINGW32
- MinGW-w64の64bit版:MSYSTEM=MINGW64
この仕組みがわかっていれば自分でショートカットを作り,MSYS2起動時にアイコンの設定も可能だ。ここでは設定の手順を記す。
- どこでもよいが,例えばデスクトップ[右クリック]→[新規作成]→[ショートカット]でショートカットを作成する
- リンク先に以下を記述する。
C:\msys64\usr\bin\mintty.exe -i /msys2.ico /bin/env MSYSTEM="MINGW64" /bin/bash --login -i
- ショートカットの名前を[MSYS2-64 Terminal]にする。
- 作成されたアイコンを右クリックして[プロパティ]を選択。
- [ショートカットタブ]→[アイコンの変更]
- [このファイル内のアイコンを検索]に以下を入力して,その後表示されたアイコンを選択。
%SystemDrive%\msys64\msys2.ico
この設定で以下のようにアイコンが設定された。
あとはこれをタスクバーにピン留めしておけばクリック一発でMINGW64にPATHのとおったMSYS2が起動できる。自分で設定するのが面倒ならば,以下にMINGW32とMINGW64に設定済みのショートカットを用意しているので使うとよい。ファイル名を選択→Rawボタン押下でダウンロードできる。拡張子が.downloadになっていたら.downloadを削除してリネームすればよい。
https://github.com/lamsh/uploader/tree/master/MSYS2/shortcut
参考:Windows/MinGW-MSYS/インストール – yanor.net/wiki http://yanor.net/wiki/?Windows-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%2FMinGW-MSYS%2F%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB