Claude Media
wheelScrollAccelerationEnabledでスクロール加速を切るClaude Code設定

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自身が、速く回したときに移動距離を増やす加速をかけています。

くらべる

触る設定は症状で決まる

wheelScrollAccelerationEnabled

加速が気になる

勢いよく回すと止めたい行を通り過ぎる。ゆっくり回すと数行ずつ進むのに、速く回すと一気に飛ぶ。false にすると1目盛りの移動量が一定になります。二値のスイッチで、速さそのものは変わりません。

CLAUDE_CODE_SCROLL_SPEED

基準の速さが合わない

ゆっくり回しても速すぎる、または遅すぎる。基準の移動距離にかかる倍率で、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

    1回だけ試す

    --settings にキーをJSONで渡して起動します。claude --help では、引数は「Path to a settings JSON file or a JSON string」と説明されています。

  2. 2

    気に入ったら書き込む

    個人の好みなら ~/.claude/settings.json、チームで揃えるなら .claude/settings.json に書きます。自分だけ違う設定にしたいときは .claude/settings.local.json が上書きします。

  3. 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 ボタンという別の手段が残っています。

この記事を共有:XはてブLinkedIn