wheelScrollAccelerationEnabledでスクロール加速を切るClaude Code設定
フルスクリーン表示でホイールを速く回すほど飛ぶ挙動を、settings.jsonのwheelScrollAccelerationEnabledで止める方法とCLAUDE_CODE_SCROLL_SPEEDとの違い。
wheelScrollAccelerationEnabledとは
wheelScrollAccelerationEnabled は、Claude Codeのフルスクリーン表示でマウスホイールをすばやく回したときに、スクロール量を増やす加速処理のオン・オフを切り替える設定キーです。settings.json に置くブール値で、既定値は true(加速あり)。false にすると、ホイールを速く回しても遅く回しても、1ノットあたりのスクロール量が常に一定になります。
{
"wheelScrollAccelerationEnabled": false
}対応する範囲は「Any file」、つまり ~/.claude/settings.json(ユーザー)/ .claude/settings.json(プロジェクト)/ .claude/settings.local.json(ローカル)/ 組織が配布する管理設定のどれに置いても有効です。個人の好みなのでユーザー設定に置くのが自然ですが、チームで共通の挙動にしたいならプロジェクト設定に含めても構いません。利用にはClaude Code v2.1.174以降が必要で、それより前のバージョンではキー自体が存在せず無視されます。手元のバージョンは claude --version で確認でき、古ければアップデートすると設定が反映されるようになります。
この設定が刺さるのはフルスクリーン表示のときだけです。フルスクリーン表示は vim や htop のように端末の代替スクリーンバッファを使う描画モードで、/tui fullscreen で切り替えられます(元に戻すのは /tui default)。従来の描画(クラシックレンダラー)ではホイール加速の概念自体が発生しません。公式ドキュメントはこの描画モードをまだ研究プレビュー扱いだと明記しており、フィードバック次第で挙動が変わり得るとしています。
どちらのモードで起動するかは環境ごとに決まっており、Claude Code v2.1.239以降でフィーチャーフラグを取得しない環境(Amazon Bedrock経由など)や、テレメトリを切っている環境では、初回起動時からフルスクリーンが既定になっています。フィーチャーフラグを取得する環境でも、2026年5月6日以降にClaude Codeを使い始めたユーザーはフルスクリーンが既定です。すでに /tui の設定を保存している場合はその値が優先されるため、wheelScrollAccelerationEnabled を書く前に一度 /tui を引数なしで実行し、現在どちらのレンダラーが動いているかを確認しておくと無駄がありません。
なぜホイール加速が問題になるか
フルスクリーン表示は、長いログを速く読みたいときに便利な半面、ホイールの回し方によってスクロール量が変わる設計になっています。すばやくホイールを回すと1回の入力で進む行数が増え、ゆっくり回すと数行ずつ進みます。vimやページャに慣れた人ほど、この可変挙動を「効きすぎる」「止めたい場所を通り過ぎる」と感じやすい部分です。数千行あるビルドログを一気に遡りたいときと、直前の1コマンドの出力だけを数行戻って見返したいときとでは、そもそも求めているスクロール量が違うため、加速の有無どちらが快適かは作業内容によって変わります。
公式ドキュメントは、この体感速度のばらつきには2つの原因が混在すると説明しています。
- 端末側の増幅: 端末エミュレータがホイール1ノットにつき何回のスクロールイベントを送るかは実装依存です。GhosttyやiTerm2(faster scrolling有効時)はすでに増幅して送るのに対し、VS Codeの統合ターミナルは1ノットにつき1イベントしか送りません。Claude Codeはどちらの挙動か判別できません。
- Claude Code側の加速: 上記の端末差とは別に、Claude Code自身がホイールを速く回したときにスクロール量を増やす処理を持っています。これが
wheelScrollAccelerationEnabledの対象です。
つまり「スクロールが速すぎる」と感じたとき、直すべきなのが基準速度なのか加速なのかで、触る設定が変わります。
CLAUDE_CODE_SCROLL_SPEEDとの違い
wheelScrollAccelerationEnabled は加速の有無だけを切り替える二値のスイッチです。スクロールの基準速度そのものを変えたいときは、別の仕組みである環境変数 CLAUDE_CODE_SCROLL_SPEED を使います。
export CLAUDE_CODE_SCROLL_SPEED=3CLAUDE_CODE_SCROLL_SPEED は基準スクロール距離の倍率で、0より大きく20以下の任意の値(0.25のような小数も可)を受け付けます。値 3 はvim系アプリの既定倍率に相当し、端末がホイールを増幅せずに1ノット1イベントで送ってくる場合の目安です。逆に端末側がすでに増幅している場合は、0.25 のような1未満の値で速すぎる基準速度を落とせます。
対話的に調整したい場合は /scroll-speed を実行します。ルーラー付きのダイアログが開き、← / → で速度を変えながら体感を確認でき、r でリセット、Enter で保存します。この操作は ~/.claude/settings.json に同じ値を書き込むので、環境変数と同じ設定を上書きします。ダイアログ側の上限は10ですが、環境変数で10より大きい値を設定していた場合は表示上10に丸められ、そのままダイアログから保存すると10として永続化される点に注意が必要です。
| 設定 | 何を変えるか | 置き場所 |
|---|---|---|
wheelScrollAccelerationEnabled | 何を変えるか加速処理そのもののオン・オフ | 置き場所settings.json(falseで加速オフ) |
CLAUDE_CODE_SCROLL_SPEED | 何を変えるか基準スクロール距離の倍率(0超〜20) | 置き場所環境変数、または/scroll-speed経由でsettings.json |
「一定の速さで動いてほしいが、その速さ自体が速すぎる/遅すぎる」ときは両方を組み合わせます。まず wheelScrollAccelerationEnabled: false で加速をなくし、そのうえで CLAUDE_CODE_SCROLL_SPEED を自分の端末に合わせて調整する、という順番が体感を合わせやすい流れです。
どのsettings.jsonに書くか
wheelScrollAccelerationEnabled は4つの設定ファイルすべてに置けますが、同じキーが複数のファイルにあるときは優先順位が固定されています。高い順に、組織が配布する管理設定 → コマンドラインの --settings → プロジェクトローカル設定(.claude/settings.local.json)→ 共有プロジェクト設定(.claude/settings.json)→ ユーザー設定(~/.claude/settings.json)です。上位のファイルが同じキーを持てば、下位の値は無視されます。
個人の好みで加速を切りたいだけなら ~/.claude/settings.json に書けば十分です。チームで「ホイール加速を全員オフにする」と決めた場合は共有プロジェクト設定に含めればリポジトリをcloneした全員に反映され、各自が自分の .claude/settings.local.json で個人的に上書きすることもできます。組織のIT管理者が全社で強制したい場合は管理設定に置けば、ユーザー側でどう設定しても上書きされません。
設定してもホイールが反応しないとき
ホイール加速の設定をいじる前に、そもそもホイール入力が端末からClaude Codeへ届いているかを確認してください。フルスクリーン表示は会話を端末の代替スクリーンバッファに描画するため、スクロールバックが消えるように見える別の症状と混同しやすい部分でもあります。マウスホイールのスクロールは、端末がマウスイベントをアプリケーションへ転送する設定になっていないと動作しません。ほとんどの端末は既定で転送しますが、iTerm2はプロファイルごとの設定になっており、ホイールを回しても PgUp / PgDn しか効かない場合はSettings → Profiles → TerminalでEnable mouse reportingを有効にする必要があります。同じ設定は、クリックでツール結果を展開する操作やテキスト選択にも必要です。
JetBrains系IDEの統合ターミナルはさらに特殊です。このターミナルでは CLAUDE_CODE_SCROLL_SPEED は無視され、Claude Code自身のスクロール処理が使われます。JetBrainsのターミナルはほかのエミュレータよりずっと高い頻度でスクロールイベントを送ってくるため、他の環境向けに調整した倍率をそのまま適用すると行き過ぎてしまうからです。同じ理由で /scroll-speed によるダイアログ調整もJetBrains系IDEのターミナルでは効きません。加えて2025.2までのJetBrainsターミナルにはホイール周りのバグがあり、意図しない矢印キー入力や逆方向のスクロールが発生することがあります。Claude Codeは実行時にこれを検出して自動的に緩和しますが、快適さを求めるならIDE側を2025.3以降に上げるのが公式の推奨です。
よくある質問
値を変えたのに反映されない
settings.json を直接編集した場合はセッションの再起動が必要です。編集後に新しいセッションで /status を開き、Setting sourcesの行にユーザー設定・プロジェクト設定・ローカル設定のどれが読み込まれているかを確認してください。/status はどのファイルを読み込んだかまでしか示さず、どのファイルがこのキーの値を最終的に決めたかは表示しません。想定と違う挙動になっている場合は、より上位のファイル(プロジェクト共有設定や管理設定)が同じキーを持っていないかを確認してください。なお /config は /status と同じダイアログの別タブで、settings.json の中身をそのまま映すビューアーではありません。
マウスホイールの捕捉自体を止めたい
wheelScrollAccelerationEnabled はマウスキャプチャがオンであることが前提の設定です。SSHやtmux越しの操作でマウスキャプチャそのものが邪魔になる場合は、環境変数 CLAUDE_CODE_DISABLE_MOUSE=1 を設定すると、フルスクリーン表示の描画は維持したままマウス捕捉全体を無効化できます。ただしこの場合、クリックによるカーソル移動やURLオープン、ホイールによる会話のスクロールも一緒に失われ、代わりに端末のネイティブなクリック&ドラッグ選択とキーボードスクロール(PgUp / PgDn など)が使えるようになります。ホイールでのスクロールだけは残しつつクリック系だけを止めたい場合は、CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1(v2.1.195以降)を使います。両方を設定した場合は CLAUDE_CODE_DISABLE_MOUSE が優先されます。
まとめ
wheelScrollAccelerationEnabled は、フルスクリーン表示でホイールを速く回すほどスクロール量が増える挙動だけを止める設定です。settings.json に "wheelScrollAccelerationEnabled": false を書けば、v2.1.174以降の環境で常に一定のスクロール量になります。スクロールが速すぎる・遅すぎるという不満そのものを直したい場合は、加速の有無ではなく基準速度を決める CLAUDE_CODE_SCROLL_SPEED(または /scroll-speed)を調整してください。ホイール入力自体が反応しない場合は、加速設定より先に端末側のマウス転送設定(iTerm2ならEnable mouse reporting)を疑うのが近道です。