A Micro Toolbox

ソフトウェアのニッチな問題の対処記録です

RubyInstaller付属のMinttyを右クリックメニューで開く

RubyInstallerでRuby 2.6.5+DevKitをインストールしたらMSYS2が入った。

この機会にWindowsでのBash環境をGit for Windowsから変えてみた。

 

 

C:\Ruby26-x64\msys64にPATHを通す。

 

C:\Ruby26-x64\msys64\msys2.iniで次の行のコメントを外す。

 

CHERE_INVOKING=1

 

これでエクスプローラで開いているフォルダのアドレスバーにmsys2と入れれば、そのフォルダでBashが起動するようになった。

 

 

が、フォルダの何もないところの右クリックメニューからBashを開こうとしてはまった。

 

レジストリエディタでキーを作成。

 

HKEY_CLASSES_ROOT\Directory\Background\shell\bash

値にBashを設定

 

フォルダの右クリックメニューにBashが追加されて、ここまでは問題なし。

 

さらに実行するコマンド用のキーを作成。

HKEY_CLASSES_ROOT\Directory\Background\shell\Bash\command

 

値にC:\Ruby26-x64\msys64\msys2.exeを指定 -> 失敗。

いざフォルダで右クリックメニューからBashを選ぶと次のエラーが表示されてBashが開かない。

 

Error: Windows cannot access the specified device, path, or file. You may not have the appropriate permission to access the item

 

参考記事にあったMinttyのコマンドラインを指定して、Bashが起動するようになった。

"C:\Ruby26-x64\msys64\usr\bin\mintty.exe" /bin/bash -l -c "{ cd ""%V""; exec /bin/bash;}"

 

上記の方法だと$HOMEをデフォルトと違う場所しているとき~/.bash_profileが読まれなかった。

msys2_shell.cmd経由で

C:\Ruby26-x64\msys64\msys2_shell.cmd -use-full-path -where "%V"

にしたら解消した。

NFD(Mac由来の濁点が分かれる「が」や「パ」)が入ったフォルダでも大丈夫になった。

「-use-full-path」はWindowsのPATHを強制的に引き継ぐため。

 

参考記事

msysでインストールしたmintty.exeを、ディレクトリ右クリックメニューから起動する - へぬもへメモ