Skip to content

原文(日本語に翻訳)

ラップトップのスリープ/ウェイクやCtrl+Z/fg の後、次のキー入力またはストリーム出力があるまでフルスクリーンモードが白画面を表示していた問題を修正しました。

原文(英語)

Fixed fullscreen mode showing a blank screen after laptop sleep/wake or Ctrl+Z/fg until the next keystroke or stream output

概要

フルスクリーンモードで動作するClaude Codeは、ラップトップがスリープ状態から復帰した後や、Ctrl+Zでプロセスを一時停止してfgで再開した後に、画面が白くなってしまう問題がありました。この状態はキーを押すかストリーム出力が発生するまで継続していました。この修正により、スリープ復帰やプロセス再開後すぐに正常な表示が復元されます。

基本的な使い方

この修正は自動的に適用されます。スリープからの復帰やfgによる再開後に白画面が表示されなくなります。

bash
# 修正前の問題が起きていたケース:
# 1. Claude Codeを起動(フルスクリーンモード)
# 2. ラップトップを閉じてスリープ → 開いて復帰
# 3. → 画面が白くなる(キーを押すまで)

# 修正後:
# スリープ復帰後、自動的に画面が再描画される

実践例

ラップトップのスリープ/ウェイク対応

長時間作業でラップトップを閉じても画面状態が正しく復元されます。

修正前の動作:
1. Claude Codeを実行中(会話中)
2. ラップトップを閉じてスリープ
3. ラップトップを開いて復帰
4. → Claude Codeの画面が完全に白くなる
5. → 何かキーを押すか、新しいメッセージが届くまで白画面が続く

修正後の動作:
1. Claude Codeを実行中(会話中)
2. ラップトップを閉じてスリープ
3. ラップトップを開いて復帰
4. → 自動的に画面が再描画される
5. → 会話の続きがすぐに確認できる

Ctrl+Zによる一時停止とfgでの再開

バックグラウンドで他の作業をして、Claude Codeに戻る場合。

bash
# Claude Codeを実行中
# Ctrl+Z でプロセスを一時停止(バックグラウンドへ)

# 他の作業を行う
ls -la
git status
vim somefile.txt

# Claude Codeをフォアグラウンドに戻す
fg

# 修正前: 画面が白くなっていた
# 修正後: 画面が自動的に再描画され、会話が続きから表示される

tmuxでのウィンドウ切り替え

tmuxでウィンドウやペインを切り替えた後の表示が改善されます。

bash
# tmuxでClaude Codeを実行中
# 別のウィンドウに切り替えて作業
# Prefix + n(次のウィンドウ)などで移動

# Claude Codeのウィンドウに戻る
# 修正前: 場合によっては白画面が発生することがあった
# 修正後: 画面が正常に表示される

# tmuxのリフレッシュコマンド(必要な場合)
# Prefix + r(tmux設定による)

注意点

  • この問題はフルスクリーン(alternate screen)モード特有の問題でした。CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 を設定して代替画面を無効化している場合は、この問題は発生しません(ただし別のトレードオフがあります)。
  • スリープ復帰後の白画面は、ターミナルエミュレータがSIGCONTシグナルを送信した際の画面再描画処理の欠如が原因でした。修正後はSIGCONTを適切に処理するようになっています。
  • ターミナルエミュレータによっては独自のリフレッシュ機能(例: tmuxの Prefix + r)がある場合があり、修正前はそれで回避できることもありましたが、修正後は不要になります。
  • screenやzellijなどの他のターミナルマルチプレクサでも同様の改善が期待できます。

関連情報