Tildaはリリース時に偽の画面サイズについて文句を言いますか? [コピー]

Tildaはリリース時に偽の画面サイズについて文句を言いますか? [コピー]

Ubuntu 14.04ではMATEデスクトップ。ちょうどTilda Terminalをインストールして起動アプリに追加して再起動したところ、/usr/bin/tildaTildaが起動していることがわかりました。

ティルダ

「131072x1 画面サイズは偽です。問題が発生する可能性があります。」

その後、tildaを再起動しようとしましたが、killall tilda同じメッセージが表示されました。

この偽の画面サイズの問題を解決する方法を知っている人はいますか?

ベストアンサー1

何がこのメッセージを生成しましたか

これは Bourne Again シェルでは生成されません。これはティルダが作ったものではありません。

これはps次のコマンドで生成されます。procpsツールセットパフォーマンスこれはset_screen_size()機能を確認します。。このpsコマンドを使用するには、コンテンツを合理的に表示するには、端末装置が少なくとも9列×2行でなければなりません。どこかで、あなたはそれを知らずに電話していますps

このpsコマンドは、標準I / Oファイル記述子に接続されているターミナルデバイス(ラインルール)から直接ターミナルサイズを取得し、その値が正しい数値の場合は環境変数としてオーバーライドできますCOLUMNS。以下を実行して、決定を下すためにコマンドに表示される内容を確認LINESできます。ps

sttyサイズ; printenv 列行
次のコマンドを実行して脚を引っ張ることができますps

列=65535行=1ps

COLUMNS環境変数を愚かな131072×1値に設定した場合LINES(の出力に示すように)、printenvこれを行わないでください。 ☺ ただし、出力からわかるように、エンドデバイス自体はこのサイズを報告する可能性が高くなりますstty。 (Bourne Againシェルが実行するすべての操作は、checkwinsizeこれらのシェル変数の値を設定するだけです。エクスポートしないと、これらの変数はps端末デバイスの報告されたサイズに関係なくその環境のコマンドに渡されるわけではありませんcheckwinsize。の場合、環境変数が意味がない場合、端末装置はそれ自体が報告言うことはできません、後者は解決すべき基本的な問題です。 )

そのため、Tildaに誤りがある可能性があるというメッセージは生成されませんでした。エンドデバイスのサイズは共有リソースであり、エンドデバイスの開かれたファイル記述子を持つすべてのエントリは、ioctl()システムコールを介して任意に変更できます。しかしそれは慣例によると設定、ソフトウェア使用シナリオ端末エミュレーションプログラムTildaと同様に、エミュレーションを表示するGUIウィンドウのサイズが変更されると、ターミナルエミュレータプログラムによって実行されます。ターミナルエミュレータプログラムはGUIサイズ変更イベントを取得し、それを列と行に変換し、それを使用してデバイスサイズを設定しますioctl()

だからといって、他のものがこのゴミに適していないということではありません。結局設定できますあなた自身意味のないサイズに達するには、次のコマンドを実行します。

stty列1行65535

私たちは…

端末装置サイズをリセットする方法

エンドデバイスが報告したサイズが意味がない場合:

  • GUIターミナルエミュレータを使用している場合は、列/行ごとにGUIサイズを左右に調整します。これにより、ioctl()端末サイズが適切な値でトリガされ、設定されます。
  • サイズをより合理的な値に設定します(例:)。

    stty列80行25
  • resetコマンドを使用してください。resetエンドデバイスのサイズに加えて、多くの異なる点が設定されています。
  • 端末エミュレータが DEC VT340/VT420 と互換性がある場合は、適切な DECSCPP および DECSLPP/DECSNLS 制御シーケンスを直接実行するか、Noshツールセット~のconsole-resize(別名resizecons)これを発行するコマンド:

    80×25のサイズ変更

おすすめ記事