Linuxテキストコンソールのスクロール速度を変更する - 再起動は不要

Linuxテキストコンソールのスクロール速度を変更する - 再起動は不要

再起動せずにテキストコンソールのスクロール速度を変更する方法はありますか?現在Fedoraを使用していますが、ディストリビューションとは関係のない回答に感謝します。

https://www.kernel.org/doc/Documentation/fb/vesafb.txt

カーネルを再起動せずに、上記のvesafbカーネルパラメータで "ywrap"を使用したいと思います。

ベストアンサー1

stty関係ありません。

回線規律で設定されたハードウェア回線速度がゼロでない場合、仮想端末には意味がありません。これはシリアルデバイスの回線速度を制御するので、実際のシリアルデバイスによって形成される「ターミナル」にのみ意味があります。カーネルに組み込まれた端末エミュレータはシリアルデバイスを処理しません。

ywrap万病の歯磨き粉ではありません。

ターミナルエミュレータがサポートするディスプレイハードウェアなどのメカニズムは、ywrap(ほぼ)フルハイトフルライン幅スクロール機能を備えたターミナルエミュレータにのみ役立ちます。

明らかな理由から、端末エミュレータはこれらのハードウェア機構を利用できない。別の言葉左右の余白をサポートしている場合、スクロール操作は全行幅をスクロールしません。ただし、Linuxカーネルに組み込まれている端末エミュレータは、最初からDECSLRM(「DEC Set Left and Right Margins」)制御シーケンス(または同様のもの)をサポートしていないため、ここで部分行スクロールは問題になりません。

しかし、高さスクロールの一部です。 Linuxカーネルの組み込み端末エミュレータするアプリケーションがスクロールに参加する画面の最初の行と最後の行を設定できるようにするDECSTBM(「DEC Set Top and Bottom Margins」)制御シーケンスをサポートします。そして、この制御シーケンスはterminfoエントリchange_scroll_regionの関数として正しくリストされていますlinux。このようなものを使用してくださいスクロールエリア実際、フルスクリーンTUIアプリケーションでは非常に一般的です。 vimたとえば、全幅ウィンドウをスクロールするときに使用します。

Linuxカーネル用のドライバは、fbconスクロール操作がフルスクリーンイメージの3/4以上を維持して移動する場合にのみ、このメカニズムを使用します。ywrapこれは、部分高さスクロールを使用するとywrap一部のコピーも含まれるため、画面の「スクロールされていない」部分は、ハードウェアがスクロールしても同じ場所に残っているように見えるためです。みんな画面。スクロール領域が小さいほど、ywrapディスプレイの一部がスクロールしないように見えるようにする必要があるコピーの量が増えるため、使い勝手が悪くなります。

制御シーケンスはサポートされていません。

仮想端末とは異なり、実際の端末にはスクロール速度を選択できる制御シーケンスがある場合があります。例:DEC VTシリーズには、DECSCLM(「DEC Rolling Mode」、DEC Special Mode Flag#4)というフラグがあります。 (ECMA-48 RM制御シーケンスを介して)リセットすると、端末はできるだけ早くスクロールします。設定されている場合(ECMA-48 SM制御シーケンスを介して)、端末がゆっくりスクロールし、スクロール中に遅延が挿入されます。

Linuxカーネルに組み込まれているターミナルエミュレータが完全なDEC VTエミュレーションである場合、これはスクロール速度を制御する方法です。しかしそれは真実ではない。一部のユーザー空間端末エミュレーターはxtermこのモードフラグを実装するのが好きですが、これを行うカーネル端末エミュレーターはないことがわかっています。 Linuxカーネルに組み込まれた端末エミュレータは確かにそうではありません。

おすすめ記事