wslttyのスクロールバックを以前と同じ量にする

wslttyという、WSL用の端末エミュレータがあります。

GitHub - mintty/wsltty: Mintty as a terminal for Bash on Ubuntu on Windows / WSL

wslttyは、以前はスクロールバックが事実上無制限だったのですが、最近のバージョンだとたったの25万行しか保持できなくなっていました。 これは(あまり普通の使い方ではなさそうですが)私の使い方では大問題です。

他の端末エミュレータ

調べた範囲ではまともな端末エミュレータは他には存在しませんでした。

Windowsで使えるターミナルとシェルのまとめ - Qiitaを参考に以下を導入して調べましたが、全く話になりません。

端末エミュレータ 最大スクロールバック 備考
ConEmu 32766行 これを超える値を設定すると強制的にこの値になる
ConsoleZ 32766行 これを超える値を設定するとエラーとなる
Hyper 無限? yesコマンドに対するCtrl+Cの効きが悪い
(7秒くらいかかる)
PowerShell 実測で9031行 最大スクロールバックの量をいくら大きくしても無言で
この量になって邪悪。また、yesコマンドに対する
Ctrl+Cの効きが悪い(2秒くらいかかる)

wslttyの設定で直せる

wslttyはオープンソースですから、解決策を自力で探すことができます。 wslttyはminttyの薄いラッパーなので、minttyのソースを読む必要があります。

GitHubでscrollbackなどと検索してみると、以下のコードが怪しそうであることがわかります。

https://github.com/mintty/mintty/blob/eb8c5c81e561598704ff7f3384917debaaa4f529/src/config.c#L160

どうやらこのコミットでスクロールバックが25万行に制限されてしまったようです

github.com

MaxScrollbackLinesはGUIからは設定できませんが、configファイルを直接編集することで設定できます。 configファイルは、C:\Users\lpha\AppData\Roaming\wslttyにありました。 これに、MaxScrollbackLines=999999999を書き加えれば、スクロールバックが以前と同様に十分多く保持されるようになりました。