私は現在、DWMとConkyを試して、コーディングなどに使用する最小限のデスクトップを作成しています。何かいいことが起こっていますが、現在問題が発生しています。現在、私のConky TEXT
セクションは中央揃えで、見栄えが良いですが、CPU使用率に関する情報も返しています。 CPU使用率がたとえば9〜10%の間でちらつく場合、テキストの全体的なサイズは異なり、中央揃えであるため、少し移動します。わかりやすくするために色を少し削除しました。これが問題の行の単純なバージョンです...
${alignc}CPU: ${cpu}%
もちろん、2つの違い
CPU 9%
CPU 10%
問題の原因は何ですか。 9に2つのゼロ、次に10に1つのゼロ、次に100にゼロなしを左パディングするにはどうすればよいですか?ドキュメントで漠然と関連していることがわかるのは、小数点以下の桁数のパディングを処理することだけです。これは、私が必要としていることではありません。
解決策(現在はこれ以上良いものは見つかりませんが、機能します)には、カスタムLua関数の使用が含まれます。次の方法を実行する必要があります。
Lua関数のファイルを作成します。たとえば~/.conky_lua_scripts.lua
with:
function conky_pad( number )
return string.format( '%3i' , conky_parse( number ) )
end
これにより、数値がスペースで埋められます(imoより良い)。ゼロが必要な場合は、「%3i」を「%03i」に置き換えてください。
あなたの.conkyrc
TEXT
セクションの前に追加:
lua_load ~/.conky_lua_scripts.lua
最後に、TEXT
セクションに次のような埋め込み値型を出力します。
${alignc}CPU: ${lua_parse pad ${cpu}}%
Lua関数をできるだけシンプルにしようとしましたが、必要に応じてより一般的な関数を作成できるため、任意の数/値を管理したり、その配置を変更したりすることもできます。
Conkyにはついにそれが組み込まれました。これらのオプションはトリックを行います:
use_spacer left
pad_percents 2
パーセンテージを表示しようとしたときに、1%、5%、0%などではなく04%05%などと同様の懸念がありました(「ジャンプする」というテキストを避けるため)。 $if_match
を使用して単純なif構造をコーディングすることができました
${if_match ${cpu cpu0}<10}0${endif}${cpu cpu0}%
^^^これは、${cpu cpu0}
が10未満の場合、10の列に0を出力します。次に、1の列の数字を出力します。次に、%記号を出力します。
$if_match will print, run, or execute whatever is between itself and the ${endif}
${if_match [COMPARISON]}
...commands <<< all i do is print a 0. heh
${endif}
ここでは、コメント付きのコンポーネント、複数行に分解します
${if_match ${cpu cpu0}<10} ### is the cpu load less than 10% ?
0 ### if so, print a 0 !!!
${endif} ### thanks bye i had a really good time
% ### output formatting. so it says 08%
# instead of 08
私は通常、テキスト(CPU)を左に、値を右に揃え、正確な位置を指定します。このようにして、値はCPUと値の間の空きスペースに「拡張」されます(たとえば、9から10)。