Conky:複数行のテキストブロックを水平に並べる方法はありますか?

Conky:複数行のテキストブロックを水平に並べる方法はありますか?

私は少し最適化されたアンデオンバージョンを使用しています。conky-simple、次のようになります。

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

残念なことに、私はconkyスクリプトの経験があまりないので、本当に欲しいものができるかどうかはわかりません。各セクション(システム、CPU使用量など)を「段落」で水平に揃えたいです。または間に小さなパディングスペースを置き、画面の上部に配置されたブロックを使用して、各ブロックを現在の形状を維持しながら積み重ねずに並べて配置したい。

Conky これを行う方法はありますか?オフセットなどに関する記事を読みましたが、多くの結果は得られませんでした。

ベストアンサー1

テーブル型構造と同じくらい簡単なものを探していると仮定すると、答えは「いいえ」です。ただし、必要な外観を得るには効果が必要です。

単一のconkyスクリプトで問題を直接解決するには、各行を個別に処理する必要があります。つまり、各ブロックの最初の行を水平方向に結合してから、2番目の行、3番目の行などを結合する必要があります。できますが、退屈でスクリプトが混乱してしまいます。

単一のconkyスクリプトで目的minimum_widthの水平幅に設定し、ブロック${offset x}${voffset -y}の最初の行の前と希望の位置に配置するように位置を${offset x}変更する必要がある各後続のブロック行の前に配置することもできますx-y)オフセットあたりのピクセル数)。たとえば、無料で利用可能なconkyファイルを参照してください。https://store.kde.org/p/1112169/。しかし、すべてを正しくするには退屈な試行錯誤が必要です。さらに、オフセットはディスプレイに元の線があった位置に基づいているため、線の位置を変更する前のその後の変更はその線の位置に影響を与える可能性があります。

複数のconkyインスタンスを実行する場合は、チャンクを別々のconkyスクリプトファイルに分割し、各チャンクに適切な位置指定コマンドを含め、各チャンクを別々のconkyインスタンスで実行するのはかなり簡単です。

これはLuaスクリプトを書くことで達成できますが、これはマイナーな問題ではありません。デフォルトでは、Luaスクリプトは必要なデータを取得し、上記のように手動で生成する必要がある行を設定します。表示する個々の値を取得するには、Luaスクリプトでこのconky_parse関数(conkyのドキュメントを参照man)を使用する必要があります。 Luaの詳細を学ぶことに興味があり、Luaが初めてであることを確認してください。Luaリファレンスマニュアル

これらの方法のどれもあまり満足できませんが、効果がある唯一の方法のようです。

おすすめ記事