0

conky の execbar が正しく動作していないようです。

したがって、bashスクリプト(myscript.shという名前)で行う場合

# moc or mocp is Music on Console
totalsec=$(mocp --info | grep "TotalSec" | cut -d: -f2 | sed 's/^ //g' | sed 's/ $//g')
cursec=$(mocp --info | grep "CurrentSec" | cut -d: -f2 | sed 's/^ //g' | sed 's/ $//g')
progress=$(echo "(${cursec}*100/${totalsec})" | bc)
echo "\${execbar echo ${progress}}"
echo "${progress}" # This works and shows be the value of the integer variable.

次に、conky から bash スクリプトを呼び出します。

conky.text = [[${execpi 3 ./myscript.sh}]];

プログレスバーは表示されません。白い長方形のみ。

ただし、同じ bash スクリプトを次のように変更すると、

progress=23
echo "\${execbar echo ${progress}}"

その後、動作し、一定のバーを示します23。整数変数を渡すことが機能しない理由がわかりません。この問題を解決するための助けをいただければ幸いです。

4

1 に答える 1

0

bashスクリプトで動作させることexecbarができることがわかりました。並べ替え。

変数の問題だけに問題を集中させるために、バーに表示する現在の時刻からの秒数を取得する小さなスクリプト (myscript2.sh) を作成しました...

#!/bin/bash
progress=$(date --date='now' +%S)
echo \${execbar echo ${progress}}

...そして、このconky構成ファイルを使用して、秒を示す定期的に更新されるバーを取得できました...

conky.config = {
    alignment = 'top_left',
    minimum_width = 300,
    own_window = true,
    own_window_hints = 'below',
    own_window_type = 'desktop',
    own_window_argb_visual=true,
    own_window_transparent = true,
    update_interval = 2.0,
}

conky.text = [[
${execpi 3 ./myscript2.sh}
]]

ただし、conky は、バーが適切な範囲まで満たされていることを示す場合と、バーが空であることを示す場合を交互に表示します。つまり、バーの内容の表示が点滅します。うん。

別の方法として、スクリプト (myscript3.sh) を使用して、バーに表示される値を単純に返すこともできます...

#!/bin/bash
progress=$(date --date='now' +%S)
echo $progress

execibar...そして、代わりに使用するconky構成ファイルを変更しますexecpi...

conky.config = {
    alignment = 'top_left',
    minimum_width = 300,
    own_window = true,
    own_window_hints = 'below',
    own_window_type = 'desktop',
    own_window_argb_visual=true,
    own_window_transparent = true,
    update_interval = 2.0,
}

conky.text = [[
${execibar 3 ./myscript3.sh}
]]

...まばたきすることなく、意図したとおりに動作しているように見えます。

于 2019-12-02T21:05:57.120 に答える