Conkyで独自のカスタムプログレスバーを作成する方法は?

Conkyで独自のカスタムプログレスバーを作成する方法は?

私は数日前からConkyを使い始めました。色と素敵なASCIIアートを追加し、基本を学びました。

しかし、Conkyに付属のデフォルトの進行状況バーは気に入らない。 50個の「#」記号または「長方形」(ASCIIテーブルの219番目の文字)などの文字列を作成したいと思います。つまり、最初の20は緑で、次は緑です。黄色は20個、赤は最後の10個です。

fs_bar空き容量が十分であれば緑、半分が冷えると黄色、一部のファイルを空にする必要があるときは赤で実装したいのですが、最後の2つの場合には3つの色が表示されます。私ビデオ結果は非常に似ています。

私はArch LinuxでAwesomeWMを実行しており、Conkyのバージョンは1.10.5です。

ベストアンサー1

execpi30秒ごとにシェルスクリプトを実行し、出力を解析し、コメントに使用されるconkyコマンドと文字df /の長いリストに変換する次のような簡単な操作を実行できます。color\##

${execpi 30  df --output=pcent / | awk 'NR==2 {
  n = ($1+0)/2; yellow = 20; red = 40;
  if(n>=red)   { r = "${color #ff0000}"; for(;n>=red;n--)   r = r "\\#" }
  if(n>=yellow){ y = "${color #ffff00}"; for(;n>=yellow;n--)y = y "\\#" }
                 g = "${color #00ff00}"; for(;n>0;n--)      g = g "\\#";
  print g y r
  printf "%50s"," "
 }' }
${color}

私のdf --output=pcent出力は2行です。 2番目は使用された割合です69%。私はこれをconky 1.9で試しました。


~/.conkyrcファイルがバージョン 1.10 形式に変換された場合は、次の行が含まれます。

conky.text = [[

最終終了前に上記のスクリプトを必ず追加してください]]。また、1.10では(#ff0000上記のように)数字で指定された色はもはや始まらないため、スクリプトでなどを使用する必要が#あります。ff0000簡単にするには、次のスクリプトをPATHの別々のファイルに入れます。たとえば、~/mydf実行可能にし、chmod +x ~/mydf( ) そのファイル名を~/.conkyrc${execpi 30 ~/mydf /}

#!/bin/bash
df --output=pcent "${1?}" | awk 'NR==2{
   n = ($1+0)/2; yellow = 20; red = 40;
   if(n>=red)   { r = "${color ff0000}"; for(;n>=red;n--)   r = r "\\#" }
   if(n>=yellow){ y = "${color ffff00}"; for(;n>=yellow;n--)y = y "\\#" }
                  g = "${color 00ff00}"; for(;n>0;n--)      g = g "\\#";
   print g y r
   printf "%50s"," "
  }'

スクリプト全体をファイルに入れるには、デフォルトの~/.conkyrcバッファサイズを増やす必要があります。それ以外の場合、コマンドは256文字に切り捨てられます。これにより、次のエラーが発生します。

sh: -c: line 0: unexpected EOF while looking for matching `''

これを行うには、1.10の該当するセクション内に行を追加し、設定をconky.config={...}コンマ()で区切ります。,

text_buffer_size = 400,

conky 1.9では、このセクションの前に次の行を追加しますTEXT

text_buffer_size 400

印刷される文字の数が増加するにつれてウィンドウのサイズが変更されるのを防ぐために、最大長スペースの2printf "%50s"," "行目が最後に追加されます。またはminimum_size 500(または1.10)など、ウィンドウの最小サイズ(ピクセル単位)の構成設定を追加します。minimum_size=500,ここで使用する値は、#文字のフォント幅によって異なります。

おすすめ記事