さて、今回はLinuxネタです。

筆者の最近のお気に入りであるGarudaLinuxでConkyを使ってみました。

システム情報をデスクトップの背景に透過して表示することができるので、
負荷かけるような作業しながら様子を見るのが好きな方にはオススメしたいです笑

デスクトップはこんな感じで、筆者は右にPlankのメニュー、左側にConkyでシステム情報を表示させるようにしました。



Conkyの部分を拡大するとこんな感じです。



conkyのインストール

それではConkyのインストール方法から紹介していきましょう。

GarudaLinux(ArchLinux系)の場合は以下コマンドでインストールします。

$ sudo pacman -S conky

インストールしたら起動できるか試してみましょう。
以下コマンドでconkyが起動します。

$ conky

すると以下の表示になるかと思います。



conkyの設定情報を見てみる

これがデフォルトの設定状態ですね。

それでは「ctrl」+「c」キーで中断し、ターミナルに戻ります。

では今度は以下コマンドを叩いてみましょう。

$ conky -v


取得可能な情報一覧があります。
システム情報の他には、RSS、天気なども取得可能ですね。

これでmacOSXの情報表示に似せたものは出来そうな気がします。

またコマンドラインでも情報の取得を可能なように加工すれば、
株価やビットコインの情報も取得できると思います。

また先ほどのデフォルトで表示されたconkyのコンフィグファイルについては、
「/etc/conky/conky.conf」のものが使用されたことがわかりますね。

しかし、実際には検索すると以下にありました。

$ cat /usr/share/doc/conky-1.12.2_pre/conky.conf

そしてデフォルトの設定値は以下になっておりました。


conky.config = {
    alignment = 'top_left',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    default_outline_color = 'white',
    default_shade_color = 'white',
    double_buffer = true,
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    extra_newline = false,
    font = 'DejaVu Sans Mono:size=12',
    gap_x = 60,
    gap_y = 60,
    minimum_height = 5,
    minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_ncurses = false,
    out_to_stderr = false,
    out_to_x = true,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    show_graph_range = false,
    show_graph_scale = false,
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    use_xft = true,
}

conky.text = [[
${color grey}Info:$color ${scroll 32 Conky $conky_version - $sysname $nodename $kernel $machine}
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed} ${color grey} - Down:$color ${downspeed}
$hr
${color grey}Name              PID     CPU%   MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
]]

というわけで上記を見てみましょう。

前半セクションとなる「conky.config」ではconkyのウインドウなどの設定情報。

後半セクションとなる「conky.text」では表示させたい内容の設定情報となりますね。

仕組みを理解したらカスタマイズしてみましょう。

ローカルの設定をする

ローカルの設定ファイルはホーム以下に以下ファイル名で格納となります。

$ .conkyrc

まずは以下を参考にしました。

https://wiki.archlinux.jp/index.php/Conky

alignmentはレイアウト位置となります。

ここはtop_leftのままとし、
gap_xやgap_yはデスクトップの上からの位置や左からの位置ですので、ギリギリまで移動します。

表示内容では先にcolor宣言で色指定をすると有効になり、またcolor宣言で指定なしだろ白に戻るようです。

というわけでまずは基本的にできることで色々弄ってみました結果が、
先ほど紹介した筆者の表示内容となります。

筆者の「.conkyrc」は以下になります。

フォントを日本語フォントにすれば日本語も表示可能となります。

※「Noto Sans CJK JP」フォントをインストールしていればそのまま使えます。


conky.config = {
  use_spacer = 'left',
  pad_percents = 3,
  background = true,
  double_buffer = true,
  font = 'Noto Sans CJK JP:size=8',
  use_xft = true,
  alignment = 'top_left',
  gap_x = 6,
  gap_y = 36,
  own_window_argb_visual = true,
  own_window_argb_value = 100,
  own_window_type = 'desktop',
  own_window = true,
  update_interval = 5.0,
}

conky.text = [[
${color orange}Hostname: ${color}${nodename}
${color orange}Kernel:   ${color}${sysname} ${kernel}
${color orange}Uptime:   ${color}${uptime}
${hr}
${color orange}[CPU]
${color orange} Clock:${color}  ${freq_g} GHz
${color orange}     1:${color}${cpu cpu1}%${cpubar cpu1}
${color orange}     2:${color}${cpu cpu2}%${cpubar cpu2}
${color orange}     3:${color}${cpu cpu3}%${cpubar cpu3}
${color orange}     4:${color}${cpu cpu4}%${cpubar cpu4}
${cpugraph}
${hr}
${color orange}[PROCESS]
${color orange} Name               PID       CPU%   MEM%
${color lightgrey}  ${top name 1}  ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey}  ${top name 2}  ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey}  ${top name 3}  ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey}  ${top name 4}  ${top pid 4} ${top cpu 4} ${top mem 4}
${color lightgrey}  ${top name 5}  ${top pid 5} ${top cpu 5} ${top mem 5}
${color lightgrey}  ${top name 6}  ${top pid 6} ${top cpu 6} ${top mem 6}
${color lightgrey}  ${top name 7}  ${top pid 7} ${top cpu 7} ${top mem 7}
${color lightgrey}  ${top name 8}  ${top pid 8} ${top cpu 8} ${top mem 8}
${color lightgrey}  ${top name 9}  ${top pid 9} ${top cpu 9} ${top mem 9}
${color orange} Load average: ${alignc }${color}${loadavg}
${color orange} Processes:    ${alignc }${color}${processes} 
${color orange} Running:      ${alignc }${color}${running_processes}
${hr}
${color orange}[RAM]
${color orange} Free:   ${color}${mem}/${memmax}
${memperc}% ${membar 5}
${color orange} Swap:   ${color}${swap}/${swapmax}
${swapperc}% ${swapbar 5}
${memgraph}
${hr}
${color orange}[DISK]
${color orange} Free: ${color}${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color orange} I/O:   ${color}$diskio /  ${diskio_read} /  ${diskio_write}
${color orange}${color}$diskiograph
${hr}
${color orange}[NETWORK]
${color orange} Eth0/IPAddr: ${color}${addr enp0s31f6}
${color orange} Up:       ${color}${upspeed enp0s31f6} /  ${color orange}Down:     ${color}${downspeed enp0s31f6}
${hr}
${color orange} Wifi/IPAddr: ${color}${addr wlp3s0}
${color orange} Up:       ${color}${upspeed wlp3s0} /  ${color orange}Down:     ${color}${downspeed wlp3s0}
${hr}
${color orange}[POWER]
${color orange} AC/Status :    ${color}${acpiacadapter}
${color orange} BAT1:  ${color}${battery BAT0} / ${color orange} BAT2:  ${color}${battery BAT1}
${hr}
${color orange}[LOG Files]
${color size=6}${execi 30 cat /var/log/messages.log|grep -v gnome-shell|tail -n3|fold -w50}
]]

execi で外部コマンド結果を取り込ませることができるので、
上記の以下部分では直近のログを表示折り畳んでさせるようにしています。

${execi 30 cat /var/log/messages.log|grep -v gnome-shell|tail -n3|fold -w50}

このexeciを使って、コマンドをいくつか組み合わせるように工夫できれば、
新着メール情報、ビットコインや株価も取得表示など、通知系の大抵のことがができるようになると思います。

conkyを自動起動にする

毎回手動で起動するのは手間ですよね。

こちらを自動起動にするにはGnome-Tweakを使って設定できます。

スタートアップアプリケーションでconkyを追加します。



というわけで今回はGarudaLinuxにconkyをインストールに関するご紹介でした。

何かの役に立てば幸いです。