wheelScrollAccelerationEnabledでスクロール加速を切るClaude Code設定
フルスクリーン表示でホイールを速く回すほど飛ぶ挙動を、settings.jsonのwheelScrollAccelerationEnabledで止める方法とCLAUDE_CODE_SCROLL_SPEEDとの違い。
wheelScrollAccelerationEnabledとは
wheelScrollAccelerationEnabled は、Claude Codeのフルスクリーン表示でホイールを速く回したときの加速処理を切り替える設定キーです。
settings.json に置くブール値で、既定値は true(加速あり)。false にすると、1目盛りあたりのスクロール量が回す速さによらず一定になります。
{
"wheelScrollAccelerationEnabled": false
}置き場所は「Any file」で、4種類のどれに書いても有効です。ユーザー設定は ~/.claude/settings.json、プロジェクト設定は .claude/settings.json、ローカル設定は .claude/settings.local.json、あとは組織の管理設定です。個人の好みならユーザー設定が自然です。利用にはClaude Code v2.1.174以降が必要で、それより前のバージョンはキーを知りません。手元のバージョンは claude --version で見られます。
claude --version
# 2.1.289 (Claude Code)この設定が効くのはフルスクリーン表示のときだけです。フルスクリーン表示は vim や htop のように端末の代替スクリーンバッファへ描く方式で、/tui fullscreen で切り替え、/tui default で戻します。公式ドキュメントは研究プレビューと位置づけており、挙動はフィードバックで変わり得ます。
どちらのレンダラーで動いているか
起動時のレンダラーは環境ごとに決まり、上から順に当てはまる行が採用されます。
| 状況 | 起動するレンダラー |
|---|---|
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 または CLAUDE_CODE_NO_FLICKER=0 | 起動するレンダラークラシック |
CLAUDE_CODE_NO_FLICKER=1 | 起動するレンダラーフルスクリーン |
| フルスクリーンの起動に失敗して、Claude Codeが自動でオフにした | 起動するレンダラークラシック |
iTerm2のtmux連携(tmux -CC)、またはWindows上のClaude CodeへSSH接続 | 起動するレンダラークラシック |
保存済みの tui 設定がある | 起動するレンダラー設定が指すほう |
| フラグを取得しない環境で、起動ダイアログの提示をClaude Codeが止めている | 起動するレンダラークラシック |
| フィーチャーフラグを取得しない環境で、初回起動がv2.1.239以降 | 起動するレンダラーフルスクリーン |
| フラグを取得する環境で、2026年5月6日以降にClaude Codeを使い始めた | 起動するレンダラーフルスクリーン |
| 上のどれにも当てはまらない | 起動するレンダラークラシック |
フィーチャーフラグを取得しないのは、Amazon Bedrock・Google Cloud・Microsoft Foundry経由のセッションや、テレメトリを切っているセッションです。この表とは別に、アタッチしたバックグラウンドセッションはフルスクリーン、スクリーンリーダーモードのセッションはクラシックで始まります。/tui を引数なしで実行すると、いま動いているレンダラーが表示されるので、設定を書く前に一度叩くのが確実です。
速すぎる原因は加速か基準速度か
体感速度のばらつきには、端末側とClaude Code側の2つの原因が混ざります。端末エミュレータがホイール1目盛りで送るイベント数は、実装ごとに違います。GhosttyやiTerm2(faster scrolling有効時)は増幅して送り、VS Codeの統合ターミナルは1目盛り1イベントです。Claude Codeはどちらの端末か判別できません。そのうえでClaude Code自身が、速く回したときに移動距離を増やす加速をかけています。
触る設定は症状で決まる
加速が気になる
勢いよく回すと止めたい行を通り過ぎる。ゆっくり回すと数行ずつ進むのに、速く回すと一気に飛ぶ。false にすると1目盛りの移動量が一定になります。二値のスイッチで、速さそのものは変わりません。
基準の速さが合わない
ゆっくり回しても速すぎる、または遅すぎる。基準の移動距離にかかる倍率で、0より大きく20以下(0.25 のような小数も可)。3 は vim 系の既定に相当し、端末が1目盛り1イベントのときの目安です。
両方を使うなら、先に加速を切って移動量を一定にし、そのあと倍率で好みの速さに寄せる順番が合わせやすい流れです。環境変数の例は次のとおりです。
export CLAUDE_CODE_SCROLL_SPEED=3対話的に調べるなら /scroll-speed を実行します。開いたダイアログのルーラーをスクロールしながら ← / → で速度を変え、r で自動検出された既定値に戻し、Enter で保存します。刻みは10まで整数で、対応する端末では0.25まで4分の1刻みも選べます。保存先は ~/.claude/settings.json で、環境変数と同じ値を書き込みます。
ダイアログの上限は10です。環境変数に10超の値を入れている状態でダイアログを開くと10と表示され、そのまま保存すると10で永続化されます。
保存する前に試して、反映を確かめる
設定ファイルを書き換えなくても、起動時の --settings にJSONを渡せば、そのセッションだけ値を差し替えられます。--settings はユーザー・プロジェクト・ローカルの各ファイルより上、管理設定より下に位置します。
試してから保存するまで
- 1
1回だけ試す
--settingsにキーをJSONで渡して起動します。claude --helpでは、引数は「Path to a settings JSON file or a JSON string」と説明されています。 - 2
気に入ったら書き込む
個人の好みなら
~/.claude/settings.json、チームで揃えるなら.claude/settings.jsonに書きます。自分だけ違う設定にしたいときは.claude/settings.local.jsonが上書きします。 - 3
読み込まれたファイルを見る
/statusを開き、StatusタブのSetting sourcesで、どのファイルが読み込まれているかを見ます。
claude --settings '{"wheelScrollAccelerationEnabled": false}'同じキーが複数の場所にあるときは、高い順に管理設定、コマンドラインの --settings、ローカル設定、共有プロジェクト設定、ユーザー設定の順で決まります。上位が同じキーを持てば下位の値は使われません。組織が管理設定に置いた値は、--settings でも上書きできません。
設定してもホイールが反応しないとき
加速をいじる前に、ホイールの入力が端末からClaude Codeへ届いているかを見ます。マウスホイールのスクロールは、端末がマウスイベントをアプリへ転送して初めて動きます。ここで外れやすい環境が4つあります。
ホイールが届かない4つの環境
iTerm2
マウス転送はプロファイルごとの設定です。ホイールが効かず
PgUp/PgDnだけ効くなら、Settings → Profiles → TerminalでEnable mouse reportingを有効にします。クリックでの展開やテキスト選択にも同じ設定が要ります。tmux
ホイールを受け取るにはtmuxのマウスモードが必要です。
~/.tmux.confにset -g mouse onを足して設定を読み直します。オフのままだと、ホイールのイベントはClaude Codeでなくtmuxへ届きます。iTerm2のtmux連携(tmux -CC)
フルスクリーン表示と相性が悪く、ホイールが効かないうえ、ダブルクリックで端末の状態が壊れることがあります。このモードでは有効にせず、
-CCなしのtmuxを使います。JetBrains系IDEのターミナル
Claude Code独自のスクロール処理が使われ、
CLAUDE_CODE_SCROLL_SPEEDは効かず、/scroll-speedも使えません。2025.2のターミナルにはホイール周りのバグがあり、Claude Codeが自動で緩和します。2025.3以降なら快適さが上がります。
ホイールが効かないあいだも、キーボードでのスクロールは使えます。会話が代替スクリーンバッファに描かれるため、端末側のスクロールバックを使えない症状は別の話で、スクロールバックが消えるで扱っています。
ホイール以外のスクロール手段と自動追従
ホイールの調整で収まらないときは、キーボード操作と自動追従の設定も選択肢になります。フルスクリーン表示のスクロール操作は次のとおりです。
| 操作 | 動き |
|---|---|
PgUp / PgDn | 動き半画面ぶん上下に動く |
Ctrl+Home | 動き会話の先頭へ移動する |
Ctrl+End | 動き最新のメッセージへ移り、自動追従を再開する |
| マウスホイール | 動き数行ずつ動く |
MacBookのようにこれらのキーがない配列では、Fn を押しながら矢印キーを使います。Fn+↑ が PgUp、Fn+↓ が PgDn、Fn+← が Home、Fn+→ が End です。ただし Ctrl+Fn+→ はmacOSではClaude Codeに届かないため、既定のままでは最新へ戻るキーの組み合わせがありません。
代わりに、画面下の Jump to bottom ボタンをクリックするか、ホイールで一番下まで戻れば追従が再開します。scroll:bottom に届くキーを割り当てる手もあります。
上へスクロールすると自動追従は止まり、新しい出力が来ても画面は動きません。止まっているあいだは、返信のストリーミングが終わっても表示位置が保たれます。新着があるとボタンに 3 new messages のように件数が出ます。
そもそも追従させたくないなら、/config のAuto-scrollをオフにします。オフでも、応答が必要な権限確認などのダイアログは画面内へスクロールされます。ホイールの加速より、勝手に最下部へ戻る動きが邪魔だった場合は、こちらが当たりです。
ホイールは会話だけでなく、選択メニューにも効きます。/model のように選択肢が表示行数より多いリストは、ポインターが選択肢の上にあるあいだホイールでスクロールできます(v2.1.280以降)。/config の設定リストも同様にホイールで動かせます(v2.1.271以降)。
/skills や /mcp のように行が溢れるリストでは、ポインターを重ねるとスクロールバーが現れます。トラックのクリックやドラッグで動かせます(v2.1.281以降)。バー両端の ↑ ↓ 矢印は、クリックで1行ずつ、押し続けると連続で動きます(v2.1.286以降)。
よくある質問
値を変えたのに反映されない
Claude Codeは設定ファイルを監視し、変更を実行中のセッションへ反映するのが通常の動きです。再起動が要るのは、起動時に一度だけ読まれる一部のキーです。反映されないときは、/status の Setting sources に想定のファイルが並んでいるかを見てください。表示されるのは読み込まれたファイルまでで、値を最終的に決めたファイルまでは分かりません。
並んでいるのに効かないなら、より上位のファイル(管理設定やローカル設定)が同じキーを持っていないかを疑います。/config は /status と同じダイアログの別タブで、settings.json の中身をそのまま映すビューアーではありません。
マウスホイールの捕捉自体を止めたい
加速以前に、SSHやtmux越しでマウス捕捉が邪魔になることがあります。CLAUDE_CODE_DISABLE_MOUSE=1 を設定すると、フルスクリーン表示の描画を保ったままマウス捕捉が丸ごと無効になります。クリックによるカーソル移動、URLを開く操作、ホイールによる会話のスクロールも失われます。
代わりに端末のネイティブな選択とキーボードスクロールが使えます。ホイールだけ残してクリック系を止めたいときは CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1(v2.1.195以降)です。両方を設定すると CLAUDE_CODE_DISABLE_MOUSE が優先されます。
まとめ
加速を切っても合わないなら、疑う順番は端末の増幅設定、CLAUDE_CODE_SCROLL_SPEED、自動追従(Auto-scroll)です。ホイールの調整で収まらない場面は、PgUp / PgDn や Jump to bottom ボタンという別の手段が残っています。