私はちょうど同じ問題を抱えていました。最新バージョンの画面では、 -q
を指定できます フラグを立てて画面を静かにし、表示されないようにします。
ソースは示しています
if (rflag && (rflag & 1) == 0 && !quietflag)
そのため、Gilles がどこでそれを見つけたのか、いつ変更されたのかはわかりません。
残念ながら、この動作はソースにハードコーディングされています。同じテストを使用して、「新しい画面...」通知を発行するかどうかを決定し、実行中のセッションにアタッチするかどうかを決定します。 (画面 4.0.3 ソースでは、(rflag && (rflag & 1) == 0)
attacher.c
で と screen.c
— rflag
-r
の場合は 1 -R
ごとにプラス 2 .)
再コンパイルする場合、パッチは簡単です:メッセージを表示する行を screen.c
から削除します。 .
何かを入力して、メッセージを消すことができます。画面ウィンドウ内のアプリケーションに到達するキーを入力したくない場合は、 C-a `
と入力できます または他のバインドされていないキー。
ある種の簡単な回避策は、画面セッションをすぐに切り離すことです (C-a d
のいずれかを使用) または detach
screenrc
のコマンド ファイル; -m
-R
の場合、コマンドラインでこれが機能しません も指定されている)、再度アタッチします (同じコマンドを再度実行するなど)。
非常に厄介ですが、完全に自動化された回避策は、 screenrc
に次の行を含めることです 最初はメッセージをスキップし、1 秒後に再び有効にするためのファイル:
msgwait 0
screen -t post_initialization 39 sh -c 'sleep 1; screen -X msgwait 5'
(39 は可能な最大のウィンドウ番号です。これはコンパイル時のオプションです (MAXWIN
)
どちらの回避策でもメッセージ screen
が非表示になることに注意してください。 役に立たない「新しい画面...」だけでなく、起動時に表示することを選択します。