2015年9月28日月曜日

デスクトップにマシン情報を表示 conky


実際に見たほうが早いと思うので・・・



画面右の情報表示を行うようにします。

これのためのプログラムは「conky」です。

インストール

まずはインストールですが、これはいつもと同じ

$ sudo pacman -S conky

であっさり入ります。が、実行すると画面左上に禍々しい黒いウインドウが出るだけなのでカスタマイズします。

カスタマイズの準備

というわけでカスタマイズを調べると、conkyは相当自由にカスタマイズできるみたいです。中でもluaスクリプトというものを使うと好きに描画できるらしい。

こちらに例がありました。すごいですね。

しかし、今回はそこまでは必要ないのでもう少し簡単に編集します。luaが使いたい人はAURのパッケージを使わないとダメなのかもしれません。

後で気がついたのですが、

$ conky --version

を実行すると必要な情報が出てくるんですね・・・
conky 1.10.0
System config file: /etc/conky/conky.conf
Local configfile: $HOME/.conkyrc
とか、編集したらいいようなことが書いてあります。が、インストールしただけでは/etc/conkyが存在しなかったので設定ファイルの書き方がわからなくて苦労しました。
最初のとりかかりは
$ conky -C > ~/.conkyrc

を実行することでした。これで、最初の設定ファイルがホームディレクトリの.conkyrcに入りますのでこれを編集すれば良いわけです。

設定ファイルの書式

ネット上でconkyについて調べたのですが、設定ファイルをそのままコピーしてもうまく動きませんでした。なんでかなーと思ったのですが、バージョンの違い?なのか設定ファイルの書き方が全然違うみたいです。

上記の方法で書きだしたファイルを見ると、

 
conky.config = {
 設定の記述
}

conky.text = [[
 表示部分の記述
]]
という形になっていました。 しかも、ネット上の情報では設定の記述部分の設定値を有効にするのにyes/noが使われていますが、書きだしたファイルはtrue/falseだったりしています。似ているけど全然ちがうし。

使いたい設定の記述部分の名称は
$ man conky
するのが間違いありませんが、こちらの方のサイトが大変わかり易かったので参考になると思います。

もうあとは好きなようにやってくださいということですが、ハマったのでもう少しヒントを書きます。

設定の記述部分

まず、コメントが使えません。行頭を#にしても意味がないのは、

 
conky.config = {
    alignment = 'top_left',
    background = false,
....

という感じで、実際は,(カンマ)で区切られた値の羅列だからのようです。 なので、最後の行は行末にカンマをつけないようにしないといけません。その他の行は全部つけないといけません・・・。数値と、true\falseの値は何もつけなくていいですが、文字列の値はシングルクォートで囲ってください。これでいいと思います。

テキストの記述部分

${color 色名}でそこから後ろの色を変更できます。デフォルトに戻すときは${color}で戻ります。

if_matchとかを使えば分岐も可能です。
 
${if_match $memperc < 90 }${color white}${membar 11,50}${color}${else}${color red}${membar 11,50}${color}${endif} 

だと、メモリのパーセンテージが90以下ならmembarを白で表示。それ以外なら赤で表示となります。これでメモリが不足してきたら赤になるのですぐにわかるはず!!

${alignc}は中央揃え、${alignr}は右揃えにします。

とりあえずこれくらい知っていればなんとか書けると思います。

その他ハマった点

透過をさせるのにハマりました。
結論から言うと、設定の記述で
 
own_window = true,
own_window_transparent = true,
own_window_type = 'normal',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',

と書いたら透過できました。一番のキモはown_window_typeをnormalにすることです。これ以外の設定値だと、デスクトップをクリックしたらconkyが消えます。しかし、これにするとウインドウの上の部分とかもついてしまうので、own_windows_hintで消すというのが良かったようです。

暫定的な.conkyrc

 
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
--[[
Conky, a system monitor, based on torsmo

Any original torsmo code is licensed under the BSD license

All code written since the fork of torsmo is licensed under the GPL

Please see COPYING for details

Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
Copyright (c) 2005-2012 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program.  If not, see .
]]

conky.config = {
use_xft = true,
font = 'TakaoPGothic:style=Regular:size=10',
xftalpha = 0.8,
update_interval = 1.0,
total_run_times = 0,
own_window = true,
own_window_transparent = true,
own_window_type = 'normal',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
double_buffer = true,
maximum_width = 200,
draw_shades = false,
draw_outline = false,
draw_borders = false,
draw_graph_borders = false,
default_color = "DDDDDD",
default_shade_color = "FFFFFF",
default_outline_color = "FFFFFF",
alignment = 'top_right',
gap_x = 12,
gap_y = 12,
no_buffers = true,
uppercase = false
}



conky.text = [[
 
${color}$alignr${time %x %A}
$alignr${time %X} 
${hr}
Uptime:$alignr $uptime
Hostname: $nodename
Linux Kernel: $kernel
${hr}
${color white}CPU ${color}$alignr Freq: $freq(MHz) 
CPU Total: $alignr ${cpu cpu0}% ${cpugraph cpu0 11,80 FFFFFF 003300}
${hr}
${color white}RAM: ${color}$alignr $mem ($memperc%) ${if_match $memperc < 90 }${color white}${membar 11,50}${color}${else}${color red}${membar 11,50}${color}${endif} 
Available RAM: $memmax
${memgraph 11,200  FFFFFF 003300}
${hr}
${color white}Hard drive: $alignr ${color}${fs_size}
Free: ${fs_free /boot}$alignr(${fs_free_perc /boot}%)
Used: ${fs_used /}$alignr(${fs_used_perc /boot}%)
${color white}${fs_bar 11,200}${color}
${diskiograph 11,200 FFFFFF 003300}
${hr}
${if_match "${acpiacadapter}" == "on-line"}AC Plugged $alignr$battery
${color 3333ff}${battery_bar 11,200 }${color}
${else}${color white}Battery Using ${color}$alignr$battery
${if_match $battery_percent > 20 }${color green}${battery_bar 11,200 }${color}${else}${color red}${battery_bar 11,200 }${color}${endif}
${endif}${hr}
${color white}$alignc Current Networks

${color white}Wired: $alignr Wireless:
${color}Down:${downspeed enp0s25} $alignr Down:${downspeed wlp12s0}
${color}Up:${upspeed enp0s25} $alignr Up:${upspeed wlp12s0}
${hr}
${color white}$alignc Top 5 sorted by CPU usage

${color white}NAME                   PID    CPU%
${color}${top name 1} ${top pid 1} ${top cpu 1}
${color}${top name 2} ${top pid 2} ${top cpu 2}
${color}${top name 3} ${top pid 3} ${top cpu 3}
${color}${top name 4} ${top pid 4} ${top cpu 4}
${color}${top name 5} ${top pid 5} ${top cpu 5}
]]

で、外見はこんな感じになりました。




目次に戻る

0 件のコメント:

コメントを投稿