Conkyの設定に奇妙な問題が発生しました。
${cpu cpuX}
私が取り除いたり修正したいのは、私のCPUの割合(使用量)が正しく満たされていないようです。状態が揺れないように、すべての値を垂直に揃えたいと思います。私のconkyファイルから抜粋したものは次のとおりです。
# ...
pad_percents 3
# ...
${cpubar cpu1 6,135}$alignr${...}${cpu cpu1}%
レイアウトが壊れないようにCPUパーセント値を適切に整列してパディングするにはどうすればよいですか?同等のprintf%3.0f
値は次のとおりです。
$ "%3.0f" % (1,)
' 1'
$ "%3.0f" % (13,)
' 13'
$ "%3.0f" % (100,)
'100'
私のCPU比率でConkyでこれをどのように達成できますか?
答え1
上記の@jasonwryanが提供したソリューション:
Conkyが使用するLuaスクリプトを作成します。私は自分が作成したフォルダに自分のフォルダを作成しましたが、
~/.config/conky/scripts
どこでも好きな場所に作成できます。$ mkdir -p ~/.config/conky/scripts/ $ vim ~/.config/conky/scripts/conky_lua_scripts.lua
次の Lua 関数を使用してファイルを入力します。
function conky_format( format, number ) return string.format( format, conky_parse( number ) ) end
lua_load
コマンドを使用して、LuaスクリプトファイルをConky設定ファイルにインポートします。# ... lua_load ~/.config/conky/scripts/conky_lua_scripts.lua TEXT # ...
値を書式設定したいときはいつでも、前に定義した
format
関数を呼び出します。名前をとして指定しましたが、変数を使用してアクセスconky_format
します。format
lua_parse
# ... lua_load ~/.config/conky/scripts/conky_lua_scripts.lua TEXT # ... ${lua_parse format %3.0f ${cpu cpu1}}%
このクールなスクリプトを使用すると、任意の値とフォーマット文字列を使用してLuaフォーマットエンジンを呼び出すことができます。これで、出力が期待どおりに表示されます。
このユーティリティに精通している場合は、printf
このユーティリティを使用して他の優れた書式設定方法を実行できます。
答え2
条件文を使用すると、Luaスクリプトなしでほぼ同じ効果を得ることができます。
${if_match ${cpu cpu1} < 10}${offset 10}${cpu cpu1}%
あなたのコードは次のとおりです。
${cpubar cpu1 6,135}$alignr${...}${if_match ${cpu cpu1} < 10}${offset 10}${endif}${cpu cpu1}%
注:オフセット値(上記の10)は、使用されているフォントに応じて調整する必要があります。
より完全な例では、より多くの条件を使用できます。
${cpubar cpu1 6,135}$alignr${...}${if_match ${cpu cpu1} < 10}${offset 20}${else}${if_match ${cpu cpu1} < 100}${offset 10}${endif}${cpu cpu1}%