TopBarにオリジナルのインジケータを作る Argos
ubuntu GNOMEのEstensionsにArgosという面白いものを発見したので,それで遊んでみた.
Argosとは,TopBarにオリジナルのインジケータ(例えば…今日の株価を表示する,CPUの使用率を表示する,通信速度を表示する等)を作成できるツール.
アイデアによっては面白いものができそうなので,使い方をまとめてみました.
Argosとは
TobBarにオリジナルのインジケータを作成できるツール.
GNOME Shell Extensionsから導入できる.
例えばこんな感じのことができます.
CPUの使用率を監視して,TopBarに表示しています.
インジケータをクリックすると,使用率の内訳が表示されUserとSystemそれぞれのCPU使用率が表示されます.
ArgosのGitHubページ https://github.com/p-e-w/argos
macユーザのかたはBitBarというアプリがあるのをご存知かもしれません.
ArgosとBitBarは互換性がありArgosの為に書いたスクリプトはBitBarでも動くそうです.
ArgosはシェルスクリプトやPythonなと,様々な言語で記述することができるのですが,ここではシェルスクリプトを用いて説明します.
実行ファイルの配置
実行ファイルを以下のディレクトリに配置することで,Argosが勝手にそのスクリプトを実行してくれます.
~/.config/argos/
ファイル名に実行間隔を指定してあげることで,Argosはその周期でスクリプトを呼び出してくれる.
命名規則は FILENAME.POSITION.INTERVAL.EXTENSION となる.
FILENAME | 任意のファイル名 |
POSITION | 表示位置を指定できる.l(left), c(center), r(right)の三種類. POSITIONは省略できる.省略するとleftになる. |
INTERVAL | スクリプトを呼び出す周期の指定. 単位はd(day),h(hour),m(minutes),s(second)の4種類. 0sと指定すると,最初に1度だけ呼び出される? |
EXTENSION | 拡張子の指定. |
例えばファイル名を
sample.c.10s.sh
とすると,表示位置が中央で,10秒に1度このスクリプトが呼び出される.
実行権限を付与するのを忘れずに
$ sudo chmod +x <file_name>
スクリプト
表示したい情報はechoを使って出力する.
サンプルコードを見ていただければ大体把握できると思います.
#!/bin/bash echo "hogehoge" echo "---" echo "Line1" echo "Line2" echo "--Line2Sub1" echo "--Line2Sub2" echo "--Line2Sub3" echo "Line3" echo "Line4" echo "---" echo "Line5" echo "Line6" echo "--Line6Sub1" echo "--Line6Sub2"
最初の出力がTobBar上での表示となり,一度 “—” で区切ります.
以降の出力がドロップダウンメニューの内容となります.
“–name” とすると,その行は上の出力のサブメニューという形になります.
“—” で出力を区切ることができます.
時計のサンプルコード
サンプルとして簡単ですが,時計を載せておきます.
#!/bin/bash clock=$(date +"%H:%M:%S") date=$(date +"%Y/%m/%d") echo "${clock}" echo "---" echo "${date}"
CPUチェッカーのサンプルコード
cpu使用率を表示するスクリプトのサンプルコードです.
#!/bin/bash icon_pc="" font="Ubuntu\ Mono" vmstat_result=$(vmstat 1 2 | tail -n 1) usr_cpu=$(echo ${vmstat_result} | awk '{print $13}') sys_cpu=$(echo ${vmstat_result} | awk '{print $14}') total_cpu=$(( ${usr_cpu} + ${sys_cpu} )) if [ ${total_cpu} -gt 100 ]; then ${total_cpu}=100 fi echo "${icon_pc} ${total_cpu} %" echo "---" echo "${icon_pc} User <span weight='bold'>${usr_cpu}</span> % | font=${font}" echo "${icon_pc} System <span weight='bold'>${sys_cpu}</span> % | font=${font}"