MATE環境のステータスバーに任意のコマンド結果を表示できるMargos

PodcastのRebuildfmで出てきたmacOS用のBitBar, SwiftBar というツールバーに任意のコマンドの結果を表示できたりするユーティティのことを知りました．

Rebuild: 292: Two Chickens, One Stone (hak)

matryer/bitbar-plugins: Plugin repository for BitBar

SwiftBar

Linuxで動く似たようなものないかな?と少し探してみました．

Gnome Shellのextentionでargosというものが，KDEにはkargosというものが，MateにはMargosというものがありました．

p-e-w/argos: Create GNOME Shell extensions in seconds

lipido/kargos: KDE Plasma port of GNOME Argos and OSX BitBar

ssimono/margos: Create Mate applets from your script output

しかし現在利用しているWMはAwesomeなのでどれも使えなさそうです．
別の端末に子の中で一番小さそうなMateを導入してMargosを試してみました．

Mate 1.18以上，gtk-3，Python 3.6以上，pipが必要です．

margos導入

$ sudo pip3 install -U margos (1)
$ sudo margos install (2)
$ killall mate-panel (3)

pipコマンドでmargosを導入

デスクトップ環境で利用できるようにする

mate-panelを再起動する

margosアプレット登録

後はパネルにアプレットを登録します．
パネルで右クリックしてアプレットの追加をします．
アプレット内の「コマンド」を選択して追加します．

登録されたmargosは既定値で時計になっています．これを右クリックして「Prefarence」で設定画面に移動します．
「Command」部分に任意のコマンドを，「Interval」にコマンドを実行する間隔の秒数を指定します．

以下はansiweatherというコマンドで天気を表示しているところです．

ansiweather -l chiyoda,JP -u metric -f 1 -a false -s true

これで色々と任意のコマンドを表示できるといくつか試してみましたが，いくつか問題が．

以下はwegoで天気予報を表示しようとした結果にエスケープシーケンスが含まれていた場合です．エスケープシーケンスで文字色を設定しているのですがそのまま出力されています．colorなどは使わないようにしましょう．

wego -d 1 -f emoji | head -4 | tail -1

以下は九州電力の消費電力を表示しようとしたのですが，⚡21時/84% と表示したいところの`時`部分が`?になり，%`が消えてしまっています．絵文字がOKで日本語がNGなパターンは初めて見た気がします．

echo -n ⚡$`date +%H-1時/;curl -s https://www.kyuden.co.jp/td_power_usages/csv/juyo-hourly- date +%Y%m%d.csv | head -38 | tail -24 | grep ,$date +%H -1:00 | cut -z -d, -f5;echo %`

Note

タイミングによりうまく動かないのに気づいた><

その他， | でつないだりするとうまく動きませんが， sh -c "command1 | command2" のようにsh経由で動かすと大丈夫でした．ファイルに書き出してそれを指定したほうがいいかもしれません．

という感じでmargosは他のツールに比べると機能が少ないですが最低限の機能はあるかなと思います．bitbar, swiftbarのpluginを流用することもできそうです．
watchコマンドをMateパネルに置く感じですね．

Gnome Shell/KDEのargos，kargosの方が機能が多くbitbar，swiftbarに近そうなのでそちらも試してみたいところです．しかし常用環境のawesome wmではどれも動かないので汎用的なものがないかな……．

環境

$ pip3 list | grep -i margos
Margos 0.0.2
$ pacman -Qi python-pip | grep Version
Version : 20.2.2-1
$ pacman -Qi mate-desktop | grep Version
Version : 1.24.1-1
$ mate-about -v
MATE Desktop Environment 1.24.1
$ lsb_release -dr
Description: Manjaro ARM Linux
Release: 20.12
$ uname -m
aarch64