ConkyでDeadbeefで再生されているトラックの進行状況バーを表示するには?

ConkyでDeadbeefで再生されているトラックの進行状況バーを表示するには?

私はDeadbeefオーディオプレーヤーのための簡単なconkyスクリプトを書いた。

ここに画像の説明を入力してください。

上記の行に関連する部分は次のとおりです。

TEXT
${color 3399FF}${alignr}db audio is playing: 
#${alignr}
${color FFFFFF}${alignr} ${exec deadbeef --nowplaying "%a"} 
${color FFFFFF} ${alignr}${exec deadbeef --nowplaying "%t"}
${color FFFFFF}${alignr}${exec deadbeef --nowplaying "%b"} 
${color FFFFFF}
${alignr}${color 3399FF}${exec deadbeef --nowplaying "%e"}${offset 2}${alignr} / ${exec deadbeef --nowplaying "%l"} 
${alignr}${image ./logo.png -p 0,-1 -s 25x25}${color 3399FF}

曲の進行状況を表示するために進行状況バーをどのように追加できますか?

ベストアンサー1

私もこれを行う方法を探していますが、すでにconkyファイルでluaスクリプトを使用しているため、外部bashスクリプトに頼る必要がないように、これを行うためのlua関数を作成することにしました。 。

誰かがこのパスに従うことに興味がある場合は、conkyrcのconky.configセクションにluaファイルを含める必要があります。

conky.config = {
   ...other config options...,    
   lua_load         = '/path/to/file.lua'
}

その後、luaファイルには次の関数が必要です(これはdeadbeef 0.7.0で提供されているdeadbeefの新しいfoobar型構文を使用しており、古い構文が使用されなくなったときの将来の証拠になるだけでなく、計算を簡素化します。 )[私が見つけたばかばかなタイプミスを修正しました。]:

function conky_song_progress()
   local song_progress = "deadbeef --nowplaying-tf '(100*%playback_time_seconds%)//%length_seconds_fp%' 2>/dev/null"
   local get_progress = assert(io.popen(song_progress))
   local progress     = math.tointeger(assert(loadstring("return " .. get_progress:read('*all')))())
   get_progress:close()
   return progress
end

次に conky.text セクションに追加します。

${lua_bar song_progress}

また、これは新しいconky 1.10構文を使用しており、luaコードにはlua 5.3+が必要です。

おすすめ記事