mintty のタブが思ってたのと違った
- カテゴリ:
- ソフトウェア/ツール/OSS
- コメント数:
- Comments: 0
◆ タブじゃない
◆ ウィンドウを重ねて位置とサイズを同期してるだけ
◆ タスクバーの項目は減らないし ウィンドウが重なるので透過と相性悪い
◆ ウィンドウを重ねて位置とサイズを同期してるだけ
◆ タスクバーの項目は減らないし ウィンドウが重なるので透過と相性悪い
MSYS2 の mintty や WSL の wsltty は基本タブがなくてセッションごとに 1 ウィンドウです
タブがある Cmder や Windows Terminal も試しては見ましたが 結局 mintty のウィンドウの感じや操作感が好きで mintty (wsltty) を使っています
mintty の中で画面分割やタブを作れる tmux も一時期は使ったものの 一部ツールが正常に表示できなかったり mintty 側のマウス操作の機能が制限されたりしたので結局これも使ってません
その結果複数のサーバにつないでいるとウィンドウがいっぱいでタスクバーが圧迫されて困ります
どれがどれかわからないので一つずつ開いて探すのも面倒です
やっぱり mintty にタブ機能ほしいな と思って調べてみたら機能としてはあるようです
バージョン的にもすでに実装されてるようです
しかし オプションや右クリックメニューなどどこを見てもそれらしいものがありません
マニュアルを探すと --tabbar オプションで起動すれば良いみたいです
とは言っても起動は msys2.exe などで mintty.exe を直接起動はしないので難しそうです
「--tabbar=level」 は 「TabBar=1」 と 「SessionGeomSync=level」 を指定するのと一緒らしいので
.minttyrc に設定してみます
level は 3 以上が推奨らしいので
を追記しました
そして mintty を再起動すると タブバーが表示されました!
ブラウザやエディタでよくあるようなタブを期待していたのですが mintty ではウィンドウを重ねているだけでした
タブを開いても実際に開くのはウィンドウです
開いたウィンドウを同じサイズで同じ場所に配置して見た目上 1 ウィンドウにしています
ウィンドウをドラッグして動かしたりリサイズしたりするとマウスを離すまでは裏側のウィンドウは元のままです
マウスを離したときに移動やリサイズ後のウィンドウにあわせて重なるように裏側のウィンドウも移動やリサイズされます
SessionGeomSync の意味がイマイチ理解できてなかったのですが この挙動を見るとわかりました
裏側に隠れてるウィンドウのジオメトリ的な同期方法です
1 だとセッションを起動したり閉じたり切り替えたりのタイミングで同期します
2 だと移動やリサイズでも同期します
3 だと最小化時も同期して 4 だとウィンドウが別々に開始したときも同期します
ウィンドウの位置とサイズを同期して重ねるだけで何も嬉しくない機能でした
タスクバーの項目をひとつにしたいのにタブの数だけタスクバーに mintty が並びます
さらに私の場合は mintty のウィンドウを半透過にして裏側を見れるようにしています
ウィンドウが重なるので 重なってる後ろ側の mintty の文字がうっすら見えて邪魔です
さらに背景色が重なるので 背景の黒色が強くなって見づらいです
本来は裏側のブラウザだったり別のウィンドウで出てる文字を見ながらコマンドを打ちたくて半透明にしてるのに ウィンドウが重なるせいでそれができなくなっています
ウィンドウのジオメトリ同期は無効化して タブバーを出すだけなら切り替えやすいかなと思いはしましたが タスクバーに並んでいるのであまり便利さを感じませんでした
それよりも長めのデータを見るときにタスクバーがあることで 2 行分くらい見れる量が減るほうが不便に思います
このタブバーができた経緯を軽く見てみると 本来のタブは実装が難しく 現在の仮想的なものなら可能で これでもいいというユーザがいてこうなったようでした
オプションメニューから出せないのもこういう中途半端な機能だからなんでしょうね
経緯からして mintty が本来のタブに対応するのは期待できませんし Windows Terminal の進化とカスタマイズで mintty をやめる方向に頑張るしかなさそうです
タブがある Cmder や Windows Terminal も試しては見ましたが 結局 mintty のウィンドウの感じや操作感が好きで mintty (wsltty) を使っています
mintty の中で画面分割やタブを作れる tmux も一時期は使ったものの 一部ツールが正常に表示できなかったり mintty 側のマウス操作の機能が制限されたりしたので結局これも使ってません
その結果複数のサーバにつないでいるとウィンドウがいっぱいでタスクバーが圧迫されて困ります
どれがどれかわからないので一つずつ開いて探すのも面倒です
やっぱり mintty にタブ機能ほしいな と思って調べてみたら機能としてはあるようです
バージョン的にもすでに実装されてるようです
しかし オプションや右クリックメニューなどどこを見てもそれらしいものがありません
マニュアルを探すと --tabbar オプションで起動すれば良いみたいです
とは言っても起動は msys2.exe などで mintty.exe を直接起動はしないので難しそうです
「--tabbar=level」 は 「TabBar=1」 と 「SessionGeomSync=level」 を指定するのと一緒らしいので
.minttyrc に設定してみます
level は 3 以上が推奨らしいので
TabBar=1
SessionGeomSync=3
を追記しました
そして mintty を再起動すると タブバーが表示されました!
思ってたのと違う
タブバーは表示できたのですが思っていたのと違いましたブラウザやエディタでよくあるようなタブを期待していたのですが mintty ではウィンドウを重ねているだけでした
タブを開いても実際に開くのはウィンドウです
開いたウィンドウを同じサイズで同じ場所に配置して見た目上 1 ウィンドウにしています
ウィンドウをドラッグして動かしたりリサイズしたりするとマウスを離すまでは裏側のウィンドウは元のままです
マウスを離したときに移動やリサイズ後のウィンドウにあわせて重なるように裏側のウィンドウも移動やリサイズされます
SessionGeomSync の意味がイマイチ理解できてなかったのですが この挙動を見るとわかりました
裏側に隠れてるウィンドウのジオメトリ的な同期方法です
1 だとセッションを起動したり閉じたり切り替えたりのタイミングで同期します
2 だと移動やリサイズでも同期します
3 だと最小化時も同期して 4 だとウィンドウが別々に開始したときも同期します
ウィンドウの位置とサイズを同期して重ねるだけで何も嬉しくない機能でした
タスクバーの項目をひとつにしたいのにタブの数だけタスクバーに mintty が並びます
さらに私の場合は mintty のウィンドウを半透過にして裏側を見れるようにしています
ウィンドウが重なるので 重なってる後ろ側の mintty の文字がうっすら見えて邪魔です
さらに背景色が重なるので 背景の黒色が強くなって見づらいです
本来は裏側のブラウザだったり別のウィンドウで出てる文字を見ながらコマンドを打ちたくて半透明にしてるのに ウィンドウが重なるせいでそれができなくなっています
ウィンドウのジオメトリ同期は無効化して タブバーを出すだけなら切り替えやすいかなと思いはしましたが タスクバーに並んでいるのであまり便利さを感じませんでした
それよりも長めのデータを見るときにタスクバーがあることで 2 行分くらい見れる量が減るほうが不便に思います
このタブバーができた経緯を軽く見てみると 本来のタブは実装が難しく 現在の仮想的なものなら可能で これでもいいというユーザがいてこうなったようでした
オプションメニューから出せないのもこういう中途半端な機能だからなんでしょうね
経緯からして mintty が本来のタブに対応するのは期待できませんし Windows Terminal の進化とカスタマイズで mintty をやめる方向に頑張るしかなさそうです