点滅しないシステム情報OSDディスプレイ

点滅しないシステム情報OSDディスプレイ

CPUとGPUの使用量に関する情報を表示する小さなスクリプトを実行しようとしています。スクリプトが完成し、出力情報の形式は次のとおりです。

  CPU     2%    37C
  GPU     0%    56C

私もそれを見せてくれます拡張子名2番目のスクリプトを使用してください。

#!/bin/sh

file=$(mktemp --suffix=osdtmp)

tail -f $file | osd_cat -o 30 -i 5 -d 1 -l 2 - &

while true; do
    ./temps.sh >> $file
done

rm -f $file

スクリプトはファイルの変更を読み取り、画面に表示される 2 行を更新します。私の問題は、データが更新されるたびにちらつきが目立つように見えて迷惑になるということです。

xosdを使用する必要はありませんが、作業に最適なツールのようです。

小さなテキストオーバーレイを表示し、点滅せずに定期的に更新する方法は?

ベストアンサー1

これは古い投稿であることを知っていますが、オンラインで検索してみると、これが唯一の投稿であることがわかりました。

あなたができることは、CPU%Cのように最初に変更されない要素を印刷することです。

その後、osd_catを使用する他のプロセスが変更された値を印刷します。

私は、スリープ状態のループ出力をosd_catにパイプする一般的な例を使用すると、同期が解放され、さらに点滅する現象が発生することがわかりました。

たとえば、私がすることは次のとおりです。https://github.com/kevinlekiller/shell_scripts/blob/main/misc/osd_stats.sh

編集:私が提供したソリューションでは、ちらつきはありませんが、画面上のosd_cat印刷の間に切り替えがあります。これは、osd_catプロセスが終了してから文字列を計算する必要があり、osd_catが再度呼び出されるためです。遷移が表示されます。 、間の時間です。

ループ内のosd_catへの呼び出しを分岐して、この変換時間をなくすことができます。次に、osd_catに対して実行したよりもわずかに低い待ち時間でループ内でスリープモードを使用します。これは数ミリ秒の重複を引き起こす可能性がありますが、そうしません。その変化を見てください。上記のリンクされたスクリプトを編集し、これらの変更を追加します。

おすすめ記事