「Conky」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Pkg/AUR テンプレートの更新)
(2人の利用者による、間の7版が非表示)
1行目: 1行目:
[[Category:状態監視と通知]]
+
[[Category:システムモニタ]]
  +
[[de:Conky]]
 
[[en:Conky]]
 
[[en:Conky]]
 
[[es:Conky]]
 
[[es:Conky]]
  +
[[fa:Conky]]
 
[[fr:Conky]]
 
[[fr:Conky]]
 
[[it:Conky]]
 
[[it:Conky]]
 
[[ru:Conky]]
 
[[ru:Conky]]
 
[[tr:Conky]]
 
[[tr:Conky]]
[[zh-CN:Conky]]
+
[[zh-hans:Conky]]
 
Conky は X Windows System 向けのシステム監視ソフトウェアです。GNU/Linux と FreeBSD で利用することができます。GPL ライセンスでリリースされているフリーソフトウェアになります。CPU, メモリー, スワップ, ディスク容量, 温度, top, アップロード, ダウンロード, システムメッセージなど、様々なシステムの情報を Conky はモニターすることが可能です。色々と設定することができますが、設定は少々わかりにくいかもしれません。Conky は torsmo のフォークです。
 
Conky は X Windows System 向けのシステム監視ソフトウェアです。GNU/Linux と FreeBSD で利用することができます。GPL ライセンスでリリースされているフリーソフトウェアになります。CPU, メモリー, スワップ, ディスク容量, 温度, top, アップロード, ダウンロード, システムメッセージなど、様々なシステムの情報を Conky はモニターすることが可能です。色々と設定することができますが、設定は少々わかりにくいかもしれません。Conky は torsmo のフォークです。
   
 
== インストールと設定 ==
 
== インストールと設定 ==
   
* [[公式リポジトリ]]の {{Pkg|conky}} パッケージを[[pacman|インストール]]。
+
{{Pkg|conky}} パッケージを[[インストール]]してください。機能が追加された他のパッケージについては [[#AUR パッケージ]]を見てください
  +
{{Note|このパッケージに lua のサポートは含まれていません。[[#AUR パッケージ]]を参照。}}
 
  +
ローカルの設定ファイルを作成してください:
* [http://conky.sourceforge.net/screenshots.html homeproject-screenshot] のサンプル設定ファイルを使って {{ic|~/.conkyrc}} 設定ファイルを編集。
 
  +
$ mkdir -p ~/.config/conky
設定ファイルの編集時、ファイルを保存すればすぐに変更が適用されます。X セッションをログアウト・ログインする必要はありません。なので、一つ一つ、全てのオプションを試してみて、設定ファイルを保存して conky ウィンドウがどう変化したか見て、望むようになるまで修正するのが良いでしょう。
 
* また、{{ic|/etc/conky/conky.conf}} のデフォルト設定を使うこともできます:
 
 
$ conky -C > ~/.config/conky/conky.conf
 
$ conky -C > ~/.config/conky/conky.conf
ローカルの {{ic|~/.conkyrc}} 設定ファイルを使うのがベストです。多くのアプリと同じように、conky もまず最初にローカルの {{ic|.conkyrc}} ファイルがあるか確認します。ファイルが存在しない場合、デフォルトの設定が読み込まれます。
 
   
  +
{{ic|~/.config/conky/conky.conf}} を編集することで好きに conky をカスタマイズできます。[https://github.com/brndnmtthws/conky/wiki/User-Configs こちらのページ] には設定ファイルのサンプルが載っています。
設定をローカル (例: ホームディレクトリ) に保存した場合、変更を行うまでログファイルを読めなくなります。conky の素晴らしい機能の一つとしてデスクトップに {{ic|/var/log/}} のファイルをパイプしてあらゆるログメッセージを読めるようにすることができます。これらのファイルのほとんどは {{ic|root}} しか読むことができないため、{{ic|sudo}} で conky を実行する必要がありますが conky を {{ic|root}} で起動するのはあまり推奨されません、以下の変更を行いましょう:
 
# usermod -aG log username
 
{{ic|username}} を {{ic|log}} グループに追加します。これで {{ic|username}} はログファイルを読むことができるようになり、conky でログメッセージをデスクトップにリダイレクトすることが可能です。
 
   
* {{ic|~/.conkyrc}} にした変更が conky に適用されない場合 -- 例: minimum_size -- {{ic|/etc/conky/conky.conf}} を削除するか関連するションをコメントアウトして下さ。conky {{ic|/etc/conky/}} のファイルを込み続け Xorgエラーメッセージ表示されことあります、{{ic|/etc/conky/}} のファイルは削除すると良いでしょう。
+
設定ファイルを編集すると、保存した瞬間に変更が適用されます。Xションをログアウト・ログインする必要はありません。設定を何かテストしとき、設定ファイルを保存して ''conky''ウィンドウどうなったか確認すが良いでしょう。
   
  +
''conky'' の素晴らしい機能として {{ic|/var/log/}} ファイルからログメッセージを読み込んでデスクトップに表示させることができます。ほとんどのログファイルは {{ic|root}} しか読めないようになっていますが、''conky'' を {{ic|root}} で動作させることは推奨されません。代わりに使用しているユーザーを {{ic|log}} グループに追加してください:
== AUR パッケージ ==
 
  +
# usermod -aG log ''username''
  +
  +
=== AUR パッケージ ===
   
 
基本の '''conky''' パッケージに加えて、追加のコンパイルオプションを有効にした [[AUR]] のパッケージがいくつか存在します:
 
基本の '''conky''' パッケージに加えて、追加のコンパイルオプションを有効にした [[AUR]] のパッケージがいくつか存在します:
32行目: 33行目:
 
* {{App|conky-lua|Lua サポートが付いた Conky||{{AUR|conky-lua}}}}
 
* {{App|conky-lua|Lua サポートが付いた Conky||{{AUR|conky-lua}}}}
 
* {{App|conky-lua-nv|Lua と Nvidia サポートが付いた Conky||{{AUR|conky-lua-nv}}}}
 
* {{App|conky-lua-nv|Lua と Nvidia サポートが付いた Conky||{{AUR|conky-lua-nv}}}}
* {{App|conky-nvidia|Nvidia サポートが付いた Conky||{{AUR|conky-nvidia}}}}
+
* {{App|conky-nvidia|Nvidia サポートが付いた Conky||{{AUR|conky-nvidia}}{{Broken package link|パッケージが存在しません}}}}
   
  +
== ヒントとテクニック ==
== Tips and tricks ==
 
  +
  +
=== 設定ファイルの構文の変更 ===
  +
  +
Conky 1.10 から、設定ファイルは以下のように Lua の構文で書き直されました:
  +
  +
conky.config = {
  +
-- Comments start with a double dash
  +
bool_value = true,
  +
string_value = 'foo',
  +
int_value = 42,
  +
}
  +
conky.text = [[
  +
$variable
  +
${evaluated variable}
  +
]]
  +
  +
下で紹介しているサンプルは以下のような古い構文を使用している場合があります:
  +
  +
bool_value yes
  +
string_value 'foo'
  +
int_value 42
  +
  +
古い構文を新しい Lua 構文に変換する Lua スクリプトが [https://github.com/brndnmtthws/conky/blob/master/extras/convert.lua こちら] にあります。
  +
  +
何かがおかしかったり、スクリプトを信用できない場合、デフォルトの設定ファイルから設定をやり直してください:
  +
  +
$ conky -C > conky.conf.default
   
 
=== KDE4 や Xfce4 で完全透過を有効にする ===
 
=== KDE4 や Xfce4 で完全透過を有効にする ===
   
バージョン 1.8.0 から、Conky は完全透過をサポートしています。有効にするにはの行を {{ic|~/.conkyrc}} に追加して下さい:
+
バージョン 1.8.0 から、Conky は完全透過をサポートしています。有効にするには以下の行を {{ic|conky.conf}} に追加して下さい:
own_window_transparent yes
+
own_window_transparent = true,
   
 
上のオプションは {{ic|OWN_WINDOW_ARGB_VISUAL yes}} オプションと一緒に使うのは望ましくありません。下で説明している {{Pkg|feh}} の方法を置き換えます。
 
上のオプションは {{ic|OWN_WINDOW_ARGB_VISUAL yes}} オプションと一緒に使うのは望ましくありません。下で説明している {{Pkg|feh}} の方法を置き換えます。
47行目: 75行目:
 
=== Xfce4 で自動起動 ===
 
=== Xfce4 で自動起動 ===
   
{{ic|.conkyrc}} ファイル:
+
{{ic|conky.conf}} ファイルに以下を追加:
background yes
+
background = true,
   
 
この変数は Conky をバックグラウンドにフォークします。ウィンドウをデスクトップ上に常に表示させ、全てのワークスペースに張り付かせてタスクバーには表示したくない場合、以下の引数を追加してください:
 
この変数は Conky をバックグラウンドにフォークします。ウィンドウをデスクトップ上に常に表示させ、全てのワークスペースに張り付かせてタスクバーには表示したくない場合、以下の引数を追加してください:
own_window yes
+
own_window = true,
own_window_type override
+
own_window_type = 'override',
override オプションはウィンドウがウィンドウマネージャの制御下から外れるようにします。
+
override オプションは ''conky'' のウィンドウがウィンドウマネージャの制御下から外れるようにします。
   
 
{{ic|~/.config/autostart/conky.desktop}} を追加:
 
{{ic|~/.config/autostart/conky.desktop}} を追加:
71行目: 99行目:
 
Conky はちらつきを防止するために X サーバーの Double Buffer Extension (DBE) サポートを必要とします。これがないとウィンドウを高速に更新することができません。{{ic|/etc/X11/xorg.conf}} で {{ic|"Module"}} セクションに {{ic|Load "dbe"}} 行を追加することで有効にできます。(1.8.x パッチ以上では) {{ic|xorg.conf}} ファイルは個別の設定ファイルが入っている {{ic|/etc/X11/xorg.conf.d}} で置き換えられています。''DBE'' は自動でロードされます。
 
Conky はちらつきを防止するために X サーバーの Double Buffer Extension (DBE) サポートを必要とします。これがないとウィンドウを高速に更新することができません。{{ic|/etc/X11/xorg.conf}} で {{ic|"Module"}} セクションに {{ic|Load "dbe"}} 行を追加することで有効にできます。(1.8.x パッチ以上では) {{ic|xorg.conf}} ファイルは個別の設定ファイルが入っている {{ic|/etc/X11/xorg.conf.d}} で置き換えられています。''DBE'' は自動でロードされます。
   
ダブルバッファリングを有効にするには {{ic|~/.conkyrc}} に {{ic|double_buffer yes}} オプションを追加してください
+
ダブルバッファリングを有効にするには {{ic|conky.conf}} に以下を追加してください:
  +
double_buffer = true,
   
 
=== カスタムカラー ===
 
=== カスタムカラー ===
   
 
クラシックなプリセットカラーの他に (white, black, yellow...)、カラーネームコードを使ってカスタムカラーを設定することができます。色のコードを確認するには、色選択アプリを使って下さい。[[公式リポジトリ]]に入っている {{Pkg|gcolor2}} パッケージが色の名前を教えてくれます。カラーコードは6桁の16進数からなります (0-9, A-F)。カスタムカラーを使うには設定ファイルに以下の行を追加してください:
 
クラシックなプリセットカラーの他に (white, black, yellow...)、カラーネームコードを使ってカスタムカラーを設定することができます。色のコードを確認するには、色選択アプリを使って下さい。[[公式リポジトリ]]に入っている {{Pkg|gcolor2}} パッケージが色の名前を教えてくれます。カラーコードは6桁の16進数からなります (0-9, A-F)。カスタムカラーを使うには設定ファイルに以下の行を追加してください:
  +
color0 = 'white', --convention for standard named colors
color1 Colorname1
 
  +
color1 = '00CC00', --convention for hex colors: no pound sign
color2 Colorname2
 
 
そして、{{ic|TEXT}} セクションを編集するときに、事前に定義したカスタムカラー番号を使って下さい。
 
そして、{{ic|TEXT}} セクションを編集するときに、事前に定義したカスタムカラー番号を使って下さい。
   
83行目: 112行目:
   
 
デュアルスクリーン設定を使う場合は、conky のウィンドウを配置するための2つのオプションをいじる必要があります。例えば 1680X1050 ピクセルの解像度を使っていて、左モニターの中央上にウィンドウを置きたい場合、以下を使います:
 
デュアルスクリーン設定を使う場合は、conky のウィンドウを配置するための2つのオプションをいじる必要があります。例えば 1680X1050 ピクセルの解像度を使っていて、左モニターの中央上にウィンドウを置きたい場合、以下を使います:
alignment top_left
+
alignment = 'top_left',
gap_X 840
+
gap_X = 840,
 
{{ic|alignment}} オプションはそのままの意味で、{{ic|gap_X}} オプションは画面の左端からの距離をピクセルで表します。
 
{{ic|alignment}} オプションはそのままの意味で、{{ic|gap_X}} オプションは画面の左端からの距離をピクセルで表します。
  +
  +
{{ic|xinerama_head}} オプションも設定する必要があるかもしれません。
   
 
=== デスクトップの表示で最小化させない ===
 
=== デスクトップの表示で最小化させない ===
91行目: 122行目:
 
Compiz を使っている場合: 'デスクトップを表示' ボタンやキーバインドで、他のウィンドウと一緒に Conky も最小化されてしまう場合、Compiz の設定マネージャを起動して、"General Options" を開いて "Hide Skip Taskbar Windows" オプションのチェックを外して下さい。
 
Compiz を使っている場合: 'デスクトップを表示' ボタンやキーバインドで、他のウィンドウと一緒に Conky も最小化されてしまう場合、Compiz の設定マネージャを起動して、"General Options" を開いて "Hide Skip Taskbar Windows" オプションのチェックを外して下さい。
   
Compiz を使っていない場合は、{{ic|~/.conkyrc}} を編集して以下の行を追加または修正してください:
+
Compiz を使っていない場合は、{{ic|conky.conf}} を編集して以下の行を追加または修正してください:
   
own_window_type override
+
own_window_type = 'override',
   
もしくは
+
もしくは:
   
own_window_type desktop
+
own_window_type = 'desktop',
   
詳しい違いについては conky の man ページを参照。ただし後者のオプションでは Openbos などでリサイズのキーバインドを使ってウィンドウを conky の縁に調整することができます。前者は出来ません。
+
詳しい違いについては conky の man ページを参照。ただし後者のオプションでは [[Openbox]] などでリサイズのキーバインドを使ってウィンドウを conky の縁に調整することができます。前者は出来ません。
   
=== Gnome 3 との統合 ===
+
=== GNOME との統合 ===
   
Gnome 3 で Conky を表示したときに問題が生じる場合
+
GNOME で Conky を表示したときに問題が生じる場合、以下の行を {{ic|conky.conf}} に追加:
*以下の行を {{ic|~/.conkyrc}} に追加:
 
 
own_window yes
 
own_window yes
 
own_window_type conky
 
own_window_type conky
113行目: 143行目:
 
own_window_argb_visual yes
 
own_window_argb_visual yes
 
own_window_argb_value 255
 
own_window_argb_value 255
 
=== KDE との統合 ===
 
 
スクリーンショット設定の Conky ではアイコンの視覚化に問題を生じさせます。以下の手順に従って下さい。
 
* 以下の行を {{ic|~/.conkyrc}} に追加:
 
own_window yes
 
own_window_type normal
 
own_window_transparent yes
 
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
 
* 次の設定がオンになっている場合、コメントアウトするか行を削除する:
 
minimum_size
 
* Conky の起動を自動にするために、次のシンボリックリンクを作成:
 
** KDE4: {{ic|$ ln -s /usr/bin/conky ~/.kde4/Autostart/conkylink}}
 
** KDE3: {{ic|$ ln -s /usr/bin/conky ~/.kde/share/autostart/conkylink}}
 
* 公式リポジトリから入手できる {{Pkg|feh}} パッケージをインストール。
 
* スクリプトを作成してデスクトップで透過ができるようにする。
 
KDE4 では {{ic|~/.kde4/Autostart/fehconky}} を編集:
 
 
#!/bin/bash
 
feh --bg-scale "$(sed -n 's/wallpaper=//p' ~/.kde4/share/config/plasma-desktop-appletsrc)"
 
 
KDE3 では {{ic|~/.kde/share/autostart/fehconky}} を編集:
 
 
#!/bin/bash
 
feh --bg-scale $(dcop kdesktop KBackgroundIface currentWallpaper 1)
 
 
壁紙を中央に表示したい場合は {{ic|--bg-center}} を使う。
 
 
* 実行可能属性を付与:
 
** KDE4: {{ic|$ chmod +x ~/.kde4/Autostart/fehconky}}
 
** KDE3: {{ic|$ chmod +x ~/.kde/share/autostart/fehconky}}
 
* スクリプトを使うかわりに、{{ic|~/.conkyrc}} の一番下に同じ内容の行を追加することもできます。
 
** KDE4 の場合 {{ic|1=${exec feh --bg-scale "$(sed -n 's/wallpaper=//p' ~/.kde4/share/config/plasma-desktop-appletsrc)"} }}
 
** KDE3 の場合 {{ic|1=${exec feh --bg-scale $(dcop kdesktop KBackgroundIface currentWallpaper 1)} }}
 
   
 
=== Razor-qt との統合 ===
 
=== Razor-qt との統合 ===
   
 
Conky のデフォルト設定では、後ろをクリックするとデスクトップからウィンドウが消えることがあります。以下の行を追加してください:
 
Conky のデフォルト設定では、後ろをクリックするとデスクトップからウィンドウが消えることがあります。以下の行を追加してください:
{{hc|~/.conkyrc|own_window yes
+
{{hc|conky.conf|own_window yes
 
own_window_class Conky
 
own_window_class Conky
 
own_window_type normal
 
own_window_type normal
169行目: 165行目:
 
=== 天気予報を表示 ===
 
=== 天気予報を表示 ===
   
[https://bbs.archlinux.org/viewtopic.php?id=37381 このスレッド]を参照。
+
[https://bbs.archlinux.org/viewtopic.php?id=37381 このスレッド] を参照。
  +
  +
=== カウントダウンタイマーを表示 ===
  +
[https://github.com/orschiro/scriptlets/tree/master/ConkyTimer ConkyTimer] は作業の残り時間を表示するシンプルなカウントダウンタイマーです。
  +
  +
{{ic|conkytimer "<task description>" <min>}} でタイマーを開始できます。
   
 
=== RSS フィードを表示 ===
 
=== RSS フィードを表示 ===
   
外部のスクリプトを実行したり Conky に出力したりすることなく、RSS フィードをネイティブに表示する機能が Conky には備わっています。例えば、Planet Arch の最新の記事のタイトル10件を表示して一分ごとにフィードを更新したい場合、以下を {{ic|~/.conkyrc}} の {{ic|TEXT}} セクションに挿入します:
+
外部のスクリプトを実行したり Conky に出力したりすることなく、RSS フィードをネイティブに表示する機能が Conky には備わっています。例えば、Planet Arch の最新の記事のタイトル10件を表示して一分ごとにフィードを更新したい場合、以下を {{ic|conky.conf}} の {{ic|TEXT}} セクションに挿入します:
   
 
${rss https://planet.archlinux.org/rss20.xml 1 item_titles 10 }
 
${rss https://planet.archlinux.org/rss20.xml 1 item_titles 10 }
179行目: 180行目:
 
${rss https://bbs.archlinux.org/extern.php?action=feed&type=rss 1 item_titles 4}
 
${rss https://bbs.archlinux.org/extern.php?action=feed&type=rss 1 item_titles 4}
 
1 は更新間隔で (15分がデフォルト)、4 は表示するアイテムの数です。
 
1 は更新間隔で (15分がデフォルト)、4 は表示するアイテムの数です。
 
=== Distrowatch の Arch Linux のランキングを表示 ===
 
[https://bbs.archlinux.org/viewtopic.php?id=88779 このスレッド]を参照。
 
   
 
=== rTorrent の統計を表示 ===
 
=== rTorrent の統計を表示 ===
191行目: 189行目:
 
python で書かれた [http://evilshit.wordpress.com/2013/04/20/conkypress-a-wordpress-stats-visualization-tool-for-your-desktop/ ConkyPress] という名前の拡張を使うことで表示できます。
 
python で書かれた [http://evilshit.wordpress.com/2013/04/20/conkypress-a-wordpress-stats-visualization-tool-for-your-desktop/ ConkyPress] という名前の拡張を使うことで表示できます。
   
=== 新規メールの数を表示 (Gmail) ===
+
=== 新規メールの数を表示 ===
  +
  +
==== Gmail ====
  +
  +
===== 方法 1 =====
   
 
どこかに {{ic|gmail.py}} という名前のファイルを作って (ここでは {{ic|~/.scripts/}} を使用) 以下の [[Python]] コードを入力してください:
 
どこかに {{ic|gmail.py}} という名前のファイルを作って (ここでは {{ic|~/.scripts/}} を使用) 以下の [[Python]] コードを入力してください:
218行目: 220行目:
 
</nowiki>}}
 
</nowiki>}}
   
  +
===== 方法 2 =====
以下のように Python の urllib を使うこともできます。
 
  +
  +
以下のスクリプトは Python の機能を活用しています:
   
 
{{hc|gmail.py|<nowiki>
 
{{hc|gmail.py|<nowiki>
229行目: 233行目:
 
# Set up authentication for gmail
 
# Set up authentication for gmail
 
auth_handler = urllib.request.HTTPBasicAuthHandler()
 
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(realm='New mail feed',
+
auth_handler.add_password(realm='mail.google.com',
 
uri='https://mail.google.com/',
 
uri='https://mail.google.com/',
 
user= '****',
 
user= '****',
246行目: 250行目:
 
</nowiki>}}
 
</nowiki>}}
   
次の行を {{ic|~/.conkyrc}} に追加すれば、5分 (300秒) ごとに新しいメールがないか Gmail アカウントをチェックして表示するようになります:
+
次の行を {{ic|conky.conf}} に追加すれば、5分 (300秒) ごとに新しいメールがないか Gmail アカウントをチェックして表示するようになります:
 
${execpi 300 python ~/.scripts/gmail.py}
 
${execpi 300 python ~/.scripts/gmail.py}
   
==== 他の方法 ====
+
===== 方法 3 =====
   
 
同じやり方で {{ic|curl}}, {{ic|grep}}, {{ic|sed}} を使う方法:
 
同じやり方で {{ic|curl}}, {{ic|grep}}, {{ic|sed}} を使う方法:
 
 
<nowiki>$ curl -s -u '''email''':'''password''' https://mail.google.com/mail/feed/atom | grep fullcount | sed 's/<[^0-9]*>//g'</nowiki>
+
<nowiki>$ curl -s -u email:password https://mail.google.com/mail/feed/atom | grep fullcount | sed 's/<[^0-9]*>//g'</nowiki>
   
'''email''' と '''password''' はあなたのデータに置き換えて下さい。
+
''email'' と ''password'' はあなたのデータに置き換えて下さい。
  +
  +
===== 方法 4 =====
   
 
また、{{Pkg|stunnel}} パッケージの [http://www.stunnel.org/ stunnel] を使うこともできます。
 
また、{{Pkg|stunnel}} パッケージの [http://www.stunnel.org/ stunnel] を使うこともできます。
   
以下の設定は [http://conky.sourceforge.net/faq.html Conky の FAQ] から引用しています。
+
以下の設定は [https://github.com/brndnmtthws/conky/wiki/FAQ Conky の FAQ] から引用しています。
   
以下のように {{ic|/etc/stunnel/stunnel.conf}} を編集して、{{ic|stunnel}} [[デーモン]]を起動:
+
以下のように {{ic|/etc/stunnel/stunnel.conf}} を編集して、{{ic|stunnel.service}} [[起動]]:
 
# Service-level configuration for TLS server
 
# Service-level configuration for TLS server
 
[imap]
 
[imap]
275行目: 281行目:
 
connect = imap.gmail.com:993
 
connect = imap.gmail.com:993
   
後は{{ic|~/.conkyrc}} だけです:
+
後は {{ic|conky.conf}} だけです:
 
imap localhost username * -i 120 -p 993
 
imap localhost username * -i 120 -p 993
 
TEXT
 
TEXT
282行目: 288行目:
 
Here I used {{ic|*}} as the password for conky to ask for it at start, but you do '''not''' have to do it.
 
Here I used {{ic|*}} as the password for conky to ask for it at start, but you do '''not''' have to do it.
   
=== 新規メールを表示 (IMAP + SSL) ===
+
==== IMAP + SSL と Perl を使う ====
   
 
Conky には IMAP アカウントのサポートが組み込まれていますが SSL はサポートしていません。[http://www.unix.com/shell-programming-scripting/115322-perl-conky-gmail-imap-unread-message-count.html このフォーラムへの投稿] にあるスクリプトを使うことで利用することができます。{{AUR|perl-mail-imapclient}} と {{Pkg|perl-io-socket-ssl}} パッケージの Perl/CPAN Modules Mail::IMAPClient と IO::Socket::SSL が必要です。
 
Conky には IMAP アカウントのサポートが組み込まれていますが SSL はサポートしていません。[http://www.unix.com/shell-programming-scripting/115322-perl-conky-gmail-imap-unread-message-count.html このフォーラムへの投稿] にあるスクリプトを使うことで利用することができます。{{AUR|perl-mail-imapclient}} と {{Pkg|perl-io-socket-ssl}} パッケージの Perl/CPAN Modules Mail::IMAPClient と IO::Socket::SSL が必要です。
322行目: 328行目:
 
$client->logout();
 
$client->logout();
   
{{ic|~/.conkyrc}} に次を追加:
+
{{ic|conky.conf}} に次を追加:
 
${execpi 300 ~/.conky/imap.pl}
 
${execpi 300 ~/.conky/imap.pl}
 
ファイルの位置は適宜変更してください。
 
ファイルの位置は適宜変更してください。
   
Gmail を使う場合、アプリパスワードを [http://www.google.com/accounts/IssuedAuthSubTokens?hide_authsub=1 生成] する必要があります。
+
Gmail を使う場合、アプリパスワードを [https://www.google.com/accounts/IssuedAuthSubTokens?hide_authsub=1 生成] する必要があります。
   
もしくは、上に書かれているように stunnel を使うこともできます: [[#他の方法]]
+
もしくは、上に書かれているように stunnel を使うこともできます: [[#Gmail]]
   
  +
==== IMAP と PHP を使う ====
=== UTF-8 マルチバイト文字のスクロールの修正 ===
 
  +
PHP を使う方法もあります。[[PHP]] をインストールして {{ic|/etc/php/php.ini}} の {{ic|1=extension=imap.so}} をアンコメントしてください。
   
  +
それから {{ic|imap.php}} という名前のファイルを作成して実行可能属性を付与してください:
現在のバージョンの conky (1.9.0) には文字列ではなくバイト数によってスクロールするテキストが増えるというバグが存在し (http://sourceforge.net/p/conky/bugs/341/)、結果としてマルチバイト文字を含むテキストでスクロールが消えたり現れたりするということが起こります。このバグを修正するパッチをあてたパッケージが AUR に存在します: {{AUR|conky-utfscroll}}。
 
  +
$ chmod +x imap.php
   
  +
ファイルの中身は以下のようにします (適宜変更を加えてください):
== ユーザーによる設定例 ==
 
   
  +
#!/usr/bin/php
=== Graysky ===
 
  +
<?php
  +
// See http://php.net/manual/function.imap-open.php for more information about
  +
// the mailbox string in the first parameter of imap_open.
  +
// This example is ready to use with Office 365 Exchange Mails,
  +
// just replace your username (=email address) and the password.
  +
$mbox = imap_open("{outlook.office365.com:993/imap/ssl/novalidate-cert}", "username", "password");
  +
  +
// Total number of emails
  +
$nrTotal = imap_num_msg($mbox);
  +
  +
// Number of unseen emails. There are other ways using imap_status to count
  +
// unseen messages, but they don't work with Office 365 Exchange. This one does.
  +
$unseen = imap_search($mbox, 'UNSEEN');
  +
$nrUnseen = $unseen ? count($unseen) : 0;
  +
  +
// Display the result, format as you like.
  +
echo $nrUnseen.'/'.$nrTotal;
  +
  +
// Not needed, because the connection is closed after the script end.
  +
// For the sake of clean public available scripts, we are nice to
  +
// the imap server and close the connection manually.
  +
imap_close($mbox);
   
  +
{{ic|conky.conf}} に以下を追加:
[[https://raw.github.com/graysky2/configs/5fbe513918dfe8066f87e670108318464902afae/dotfiles/.conkyrc Here]] it is - modify to fit your system. Optimized for a quad core chip w/ several hdds (although one of them is not connected for this screenshot) and an nvidia graphics card. You can easily modify this to a dual or single core system with one or whatever number of hdds.
 
   
  +
${execpi 300 ~/.conky/imap.php}
=== nvidia サポートのサンプルリングスクリプト ===
 
   
  +
上記のスクリプトは A/B と表示します。A は未読メールの数で B はメールボックスに存在するメールの合計数です。imap_Status などの PHP 関数を使うことで他の情報も表示できます (http://php.net/manual/function.imap-status.php)。IMAP に関する PHP ドキュメントを見てください: http://php.net/manual/ref.imap.php 。
{{bc|1=
 
# -- Conky settings -- #
 
background no
 
update_interval 1
 
   
  +
=== 有効なネットワークインターフェイスを表示 ===
cpu_avg_samples 2
 
net_avg_samples 2
 
   
  +
ネットワークインターフェイスが有効化どうかテストするために、conky の {{ic|if_existing}} 変数を使ってインターフェイスの {{ic|operstate}} を確認できます。以下はインターフェイスが {{ic|wlo1}} の場合の例です:
override_utf8_locale yes
 
   
  +
{{bc |draw_graph_borders yes
double_buffer yes
 
  +
${if_existing /sys/class/net/wlo1/operstate up}
no_buffers yes
 
  +
${color #0077ff}Net Down:$color ${downspeed wlo1} ${color #0077ff}Net Up:$color ${upspeed wlo1}
 
  +
${color #0077ff}${downspeedgraph wlo1 32,155 104E8B 0077ff} $alignr${color #0077ff}${upspeedgraph wlo1 32,155 104E8B 0077ff}
text_buffer_size 2048
 
  +
${endif}
imlib_cache_size 0
 
 
# -- Window specifications -- #
 
 
own_window yes
 
own_window_type normal
 
own_window_transparent yes
 
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
 
 
border_inner_margin 0
 
border_outer_margin 0
 
 
minimum_size 320 800
 
maximum_width 320
 
 
alignment bottom_right
 
gap_x 0
 
gap_y 0
 
 
# -- Graphics settings -- #
 
draw_shades no
 
draw_outline no
 
draw_borders no
 
draw_graph_borders yes
 
 
# -- Text settings -- #
 
use_xft yes
 
xftfont MaiandraGD:size=24
 
xftalpha 0.4
 
 
uppercase no
 
 
default_color 888888
 
 
# -- Lua Load -- #
 
lua_load ~/conky/lua/lua.lua
 
lua_draw_hook_pre ring_stats
 
 
TEXT
 
${alignr}${voffset 53}${goto 90}${font MaiandraGD:size=11}${time %A, %d %B %Y}
 
 
 
${voffset 5}${goto 164}${font MaiandraGD:size=16}${time %H:%M}
 
 
 
 
${voffset -40}${goto 100}${font MaiandraGD:size=9}Kernel:${offset 70}Uptime:
 
${goto 90}${font MaiandraGD:size=9}$kernel${offset 40}$uptime
 
${voffset 57}${goto 117}${font snap:size=8}${cpu cpu0}%
 
${goto 117}${cpu cpu1}%
 
${goto 117}CPU
 
${voffset 19}${goto 145}${memperc}%
 
${goto 145}$swapperc%
 
${goto 145}MEM
 
${voffset 25}${goto 170}${nvidia gpufreq}
 
${goto 170}${nvidia memfreq}
 
${goto 170}GPU
 
${voffset 27}${goto 198}${totaldown ppp0}
 
${goto 198}${totalup ppp0}
 
${goto 205}NET
 
${voffset 21}
 
${goto 222}${fs_used /home}
 
${goto 230}DISK
 
 
}}
 
}}
   
  +
次の画像のように表示されます: https://i.imgur.com/pQQbsP6.png
And the required lua.lua script:
 
   
  +
=== UTF-8 マルチバイト文字のスクロールの修正 ===
{{bc|<nowiki>
 
--[[
 
Ring Meters by londonali1010 (2009)
 
   
  +
現在のバージョンの conky (1.9.0) には文字列ではなくバイト数によってスクロールするテキストが増えるというバグが存在し [https://github.com/brndnmtthws/conky/issues/129]、結果としてマルチバイト文字を含むテキストでスクロールが消えたり現れたりするということが起こります。このバグを修正するパッチをあてたパッケージが AUR に存在します: {{AUR|conky-utfscroll}}{{Broken package link|パッケージが存在しません}}。
This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
 
   
  +
=== nvidia サポートのサンプルリングスクリプト ===
IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this does not happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
 
   
  +
[https://gist.github.com/anonymous/85d052c0c23e58bc3666] を参照。
To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
 
lua_load ~/scripts/rings-v1.2.1.lua
 
lua_draw_hook_pre ring_stats
 
 
Changelog:
 
+ v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
 
+ v1.2 -- Added option for the ending angle of the rings (07.10.2009)
 
+ v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
 
+ v1.0 -- Original release (28.09.2009)
 
]]
 
 
settings_table = {
 
{
 
-- Edit this table to customise your rings.
 
-- You can create more rings simply by adding more elements to settings_table.
 
-- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
 
name='time',
 
-- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
 
arg='%I.%M',
 
-- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
 
max=12,
 
-- "bg_colour" is the colour of the base ring.
 
bg_colour=0x888888,
 
-- "bg_alpha" is the alpha value of the base ring.
 
bg_alpha=0.3,
 
-- "fg_colour" is the colour of the indicator part of the ring.
 
fg_colour=0x888888,
 
-- "fg_alpha" is the alpha value of the indicator part of the ring.
 
fg_alpha=0.5,
 
-- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
 
x=191, y=145,
 
-- "radius" is the radius of the ring.
 
radius=32,
 
-- "thickness" is the thickness of the ring, centred around the radius.
 
thickness=4,
 
-- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
 
start_angle=0,
 
-- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger (e.g. more clockwise) than start_angle.
 
end_angle=360
 
},
 
{
 
name='time',
 
arg='%M.%S',
 
max=60,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=191, y=145,
 
radius=37,
 
thickness=4,
 
start_angle=0,
 
end_angle=360
 
},
 
{
 
name='time',
 
arg='%S',
 
max=60,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=191, y=145,
 
radius=42,
 
thickness=4,
 
start_angle=0,
 
end_angle=360
 
},
 
{
 
name='cpu',
 
arg='cpu0',
 
max=100,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=140, y=300,
 
radius=26,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='cpu',
 
arg='cpu1',
 
max=100,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=140, y=300,
 
radius=20,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='memperc',
 
arg='',
 
max=100,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=170, y=350,
 
radius=26,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='swapperc',
 
arg='',
 
max=100,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=170, y=350,
 
radius=20,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='time',
 
arg='%d',
 
max=31,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=191, y=145,
 
radius=50,
 
thickness=5,
 
start_angle=-140,
 
end_angle=-30
 
},
 
{
 
name='time',
 
arg='%m',
 
max=12,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=191, y=145,
 
radius=50,
 
thickness=5,
 
start_angle=30,
 
end_angle=140
 
},
 
-- {
 
-- name='fs_used_perc',
 
-- arg='/',
 
-- max=100,
 
-- bg_colour=0x888888,
 
-- bg_alpha=0.3,
 
-- fg_colour=0x888888,
 
-- fg_alpha=0.5,
 
-- x=260, y=503,
 
-- radius=26,
 
-- thickness=5,
 
-- start_angle=-90,
 
-- end_angle=180
 
-- },
 
{
 
name='fs_used_perc',
 
arg='/home',
 
max=100,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=260, y=503,
 
radius=20,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='totalup',
 
arg='ppp0',
 
max=2,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=230, y=452,
 
radius=20,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='totaldown',
 
arg='ppp0',
 
max=2,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=230, y=452,
 
radius=26,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='nvidia',
 
arg='gpufreq',
 
max=475,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=200, y=401,
 
radius=26,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
{
 
name='nvidia',
 
arg='memfreq',
 
max=700,
 
bg_colour=0x888888,
 
bg_alpha=0.3,
 
fg_colour=0x888888,
 
fg_alpha=0.5,
 
x=200, y=401,
 
radius=20,
 
thickness=5,
 
start_angle=-90,
 
end_angle=180
 
},
 
}
 
 
require 'cairo'
 
 
function rgb_to_r_g_b(colour,alpha)
 
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
 
end
 
 
function draw_ring(cr,t,pt)
 
local w,h=conky_window.width,conky_window.height
 
 
local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
 
local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
 
 
local angle_0=sa*(2*math.pi/360)-math.pi/2
 
local angle_f=ea*(2*math.pi/360)-math.pi/2
 
local t_arc=t*(angle_f-angle_0)
 
 
-- Draw background ring
 
 
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
 
cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
 
cairo_set_line_width(cr,ring_w)
 
cairo_stroke(cr)
 
 
-- Draw indicator ring
 
 
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
 
cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
 
cairo_stroke(cr)
 
end
 
 
function conky_ring_stats()
 
local function setup_rings(cr,pt)
 
local str=''
 
local value=0
 
 
str=string.format('${%s %s}',pt['name'],pt['arg'])
 
str=conky_parse(str)
 
 
value=tonumber(str)
 
if value == nil then value = 0 end
 
pct=value/pt['max']
 
 
draw_ring(cr,pct,pt)
 
end
 
 
if conky_window==nil then return end
 
local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
 
 
local cr=cairo_create(cs)
 
 
local updates=conky_parse('${updates}')
 
update_num=tonumber(updates)
 
 
if update_num>5 then
 
for i in pairs(settings_table) do
 
setup_rings(cr,settings_table[i])
 
end
 
end
 
end
 
</nowiki>}}
 
   
== 記号フォントに関する注意 ==
+
=== 記号フォントに関する注意 ===
   
装飾がある {{ic|.conkyrc}} では大抵 PizzaDude Bullets と Pie Charts for Maps フォントを使っています。これらのフォントはそれぞれ {{AUR|ttf-pizzadude-bullets}} と {{AUR|ttf-piechartsformaps}} として AUR からインストールすることができ、もしくは[[フォント]]の記事に書かれている方法を使って手動でインストールすることもできます。
+
装飾がある {{ic|conky.conf}} では大抵 PizzaDude Bullets と Pie Charts for Maps フォントを使っています。これらのフォントはそれぞれ {{AUR|ttf-pizzadude-bullets}} と {{AUR|ttf-piechartsformaps}}{{Broken package link|{{aur-mirror|ttf-piechartsformaps}}}} として AUR からインストールすることができ、もしくは[[フォント]]の記事に書かれている方法を使って手動でインストールすることもできます。
   
== 本来よりフォントが小さく表示される ==
+
=== 本来よりフォントが小さく表示される ===
   
conky のフォントがやけに小さく表示されたり、ちゃんと並ばない場合、infinality の freetype2 パッチのデフォルト設定が原因かもしれません。この設定は 96 DPI ではなく 72 DPI でフォントを表示するプログラムに問題を生じさせます。たとえシステムを 96 DPI に設定していても関係ありません。この問題を修正するには {{ic|/etc/fonts/infinality/infinality.conf}} を開いて DPI のセクションを探して 72 から 96 に変更してください。
+
conky のフォントがやけに小さく表示されたり、ちゃんと並ばない場合、[[infinality]] の freetype2 パッチのデフォルト設定が原因かもしれません。この設定は 96 DPI ではなく 72 DPI でフォントを表示するプログラムに問題を生じさせます。たとえシステムを 96 DPI に設定していても関係ありません。この問題を修正するには {{ic|/etc/fonts/infinality/infinality.conf}} を開いて DPI のセクションを探して 72 から 96 に変更してください。
   
== 完全透過を有効にする万能の方法 ==
+
=== 完全透過を有効にする万能の方法 ===
   
 
透過は conky における KAIJU ですが、''xcompmgr'' と ''transset-df'' を使ってどんな環境やウィンドウマネージャでも完全透過を適用する方法が存在します。{{Pkg|xcompmgr}} と {{Pkg|transset-df}} を[[インストール]]してください。
 
透過は conky における KAIJU ですが、''xcompmgr'' と ''transset-df'' を使ってどんな環境やウィンドウマネージャでも完全透過を適用する方法が存在します。{{Pkg|xcompmgr}} と {{Pkg|transset-df}} を[[インストール]]してください。
755行目: 420行目:
 
{{hc|$ xprop &#124; grep WM_NAME|2=WM_NAME(STRING) = "Conky (ArchitectLinux)"}}
 
{{hc|$ xprop &#124; grep WM_NAME|2=WM_NAME(STRING) = "Conky (ArchitectLinux)"}}
   
上記の場合、''conky'' で合っていますが、別の文字列が出力された場合は、それに合わせて指定するようにしてください。{{ic|~/.conkyrc}} で {{ic|own_window_type}} オプションを {{ic|panel}} に設定していた場合、''xprop'' を実行しても何も出力されないことがあります。その場合は {{ic|dock}}, {{ic|normal}}, {{ic|override}}, {{ic|desktop}} などを使うようにしてみてください。
+
上記の場合、''conky'' で合っていますが、別の文字列が出力された場合は、それに合わせて指定するようにしてください。{{ic|conky.conf}} で {{ic|own_window_type}} オプションを {{ic|panel}} に設定していた場合、''xprop'' を実行しても何も出力されないことがあります。その場合は {{ic|dock}}, {{ic|normal}}, {{ic|override}}, {{ic|desktop}} などを使うようにしてみてください。
   
 
{{ic|~/.xinitrc}} に以下を記述することで [[Xorg|X]] の起動後に ''conky'' に透過を適用することができます:
 
{{ic|~/.xinitrc}} に以下を記述することで [[Xorg|X]] の起動後に ''conky'' に透過を適用することができます:
764行目: 429行目:
 
== 参照 ==
 
== 参照 ==
   
  +
* [https://github.com/brndnmtthws/conky 公式ウェブサイト]
* [http://conky.sourceforge.net/config_settings.html Official Conky variables for configuration]
 
  +
* [http://conky.sourceforge.net/config_settings.html 設定に使用する Conky 変数]
* [https://bbs.archlinux.org/viewtopic.php?id=39906 Conky Configs on arch forums]
 
* [http://conky.sourceforge.net/ 公式ウェサイト]
+
* [http://conky.sourceforge.net/variables.html Conky オジェクト]
  +
* [https://bbs.archlinux.org/viewtopic.php?id=39906 Arch フォーラムの Conky 設定スレッド]
* [http://freshmeat.net/projects/conky/ Conky] on [[wikipedia:ja:Freshmeat|Freshmeat]]
 
* [http://sourceforge.net/projects/conky/ Conky] on [[wikipedia:ja:SourceForge.net|SourceForge]]
+
* [http://freecode.com/projects/conky/ Conky] on [[wikipedia:Freecode|Freecode]]
* [irc://chat.freenode.org/conky #conky] IRC chat channel on [[wikipedia:ja:Freenode|freenode]]
+
* [irc://chat.freenode.org/conky #conky] IRC chat channel on [[wikipedia:Freenode|freenode]]
 
* [http://novel.evilcoder.org/wiki/index.php?title=ConkyFAQ&oldid=12463 FAQ]
 
* [http://novel.evilcoder.org/wiki/index.php?title=ConkyFAQ&oldid=12463 FAQ]

2019年9月25日 (水) 23:53時点における版

Conky は X Windows System 向けのシステム監視ソフトウェアです。GNU/Linux と FreeBSD で利用することができます。GPL ライセンスでリリースされているフリーソフトウェアになります。CPU, メモリー, スワップ, ディスク容量, 温度, top, アップロード, ダウンロード, システムメッセージなど、様々なシステムの情報を Conky はモニターすることが可能です。色々と設定することができますが、設定は少々わかりにくいかもしれません。Conky は torsmo のフォークです。

インストールと設定

conky パッケージをインストールしてください。機能が追加された他のパッケージについては #AUR パッケージを見てください。

ローカルの設定ファイルを作成してください:

$ mkdir -p ~/.config/conky
$ conky -C > ~/.config/conky/conky.conf

~/.config/conky/conky.conf を編集することで好きに conky をカスタマイズできます。こちらのページ には設定ファイルのサンプルが載っています。

設定ファイルを編集すると、保存した瞬間に変更が適用されます。X セッションをログアウト・ログインする必要はありません。設定を何かテストしたいときは、設定ファイルを保存してみて conky のウィンドウがどうなったか確認するのが良いでしょう。

conky の素晴らしい機能として /var/log/ ファイルからログメッセージを読み込んでデスクトップに表示させることができます。ほとんどのログファイルは root しか読めないようになっていますが、conkyroot で動作させることは推奨されません。代わりに使用しているユーザーを log グループに追加してください:

# usermod -aG log username

AUR パッケージ

基本の conky パッケージに加えて、追加のコンパイルオプションを有効にした AUR のパッケージがいくつか存在します:

  • conky-cli — X11 依存を取り除いた Conky
|| conky-cliAUR
  • conky-lua — Lua サポートが付いた Conky
|| conky-luaAUR
  • conky-lua-nv — Lua と Nvidia サポートが付いた Conky
|| conky-lua-nvAUR
  • conky-nvidia — Nvidia サポートが付いた Conky
|| conky-nvidiaAUR[リンク切れ: パッケージが存在しません]

ヒントとテクニック

設定ファイルの構文の変更

Conky 1.10 から、設定ファイルは以下のように Lua の構文で書き直されました:

 conky.config = {
   -- Comments start with a double dash
   bool_value = true,
   string_value = 'foo',
   int_value = 42,
 }
 conky.text = [[
 $variable
 ${evaluated variable}
 ]]

下で紹介しているサンプルは以下のような古い構文を使用している場合があります:

bool_value yes
string_value 'foo'
int_value 42

古い構文を新しい Lua 構文に変換する Lua スクリプトが こちら にあります。

何かがおかしかったり、スクリプトを信用できない場合、デフォルトの設定ファイルから設定をやり直してください:

$ conky -C > conky.conf.default

KDE4 や Xfce4 で完全透過を有効にする

バージョン 1.8.0 から、Conky は完全透過をサポートしています。有効にするには以下の行を conky.conf に追加して下さい:

own_window_transparent = true,

上のオプションは OWN_WINDOW_ARGB_VISUAL yes オプションと一緒に使うのは望ましくありません。下で説明している feh の方法を置き換えます。

ノート: Xfce はコンポジットの有効化を必要とします。[1] を見て下さい。

Xfce4 で自動起動

conky.conf ファイルに以下を追加:

background = true,

この変数は Conky をバックグラウンドにフォークします。ウィンドウをデスクトップ上に常に表示させ、全てのワークスペースに張り付かせてタスクバーには表示したくない場合、以下の引数を追加してください:

own_window = true,
own_window_type = 'override',

override オプションは conky のウィンドウがウィンドウマネージャの制御下から外れるようにします。

~/.config/autostart/conky.desktop を追加:

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=conky
Comment=
Exec=conky -d
StartupNotify=false
Terminal=false
Hidden=false

ちらつきを防止する

Conky はちらつきを防止するために X サーバーの Double Buffer Extension (DBE) サポートを必要とします。これがないとウィンドウを高速に更新することができません。/etc/X11/xorg.conf"Module" セクションに Load "dbe" 行を追加することで有効にできます。(1.8.x パッチ以上では) xorg.conf ファイルは個別の設定ファイルが入っている /etc/X11/xorg.conf.d で置き換えられています。DBE は自動でロードされます。

ダブルバッファリングを有効にするには conky.conf に以下を追加してください:

double_buffer = true,

カスタムカラー

クラシックなプリセットカラーの他に (white, black, yellow...)、カラーネームコードを使ってカスタムカラーを設定することができます。色のコードを確認するには、色選択アプリを使って下さい。公式リポジトリに入っている gcolor2 パッケージが色の名前を教えてくれます。カラーコードは6桁の16進数からなります (0-9, A-F)。カスタムカラーを使うには設定ファイルに以下の行を追加してください:

color0 = 'white', --convention for standard named colors
color1 = '00CC00', --convention for hex colors: no pound sign

そして、TEXT セクションを編集するときに、事前に定義したカスタムカラー番号を使って下さい。

デュアルスクリーン

デュアルスクリーン設定を使う場合は、conky のウィンドウを配置するための2つのオプションをいじる必要があります。例えば 1680X1050 ピクセルの解像度を使っていて、左モニターの中央上にウィンドウを置きたい場合、以下を使います:

alignment = 'top_left',
gap_X = 840,

alignment オプションはそのままの意味で、gap_X オプションは画面の左端からの距離をピクセルで表します。

xinerama_head オプションも設定する必要があるかもしれません。

デスクトップの表示で最小化させない

Compiz を使っている場合: 'デスクトップを表示' ボタンやキーバインドで、他のウィンドウと一緒に Conky も最小化されてしまう場合、Compiz の設定マネージャを起動して、"General Options" を開いて "Hide Skip Taskbar Windows" オプションのチェックを外して下さい。

Compiz を使っていない場合は、conky.conf を編集して以下の行を追加または修正してください:

own_window_type = 'override',

もしくは:

own_window_type = 'desktop',

詳しい違いについては conky の man ページを参照。ただし後者のオプションでは Openbox などでリサイズのキーバインドを使ってウィンドウを conky の縁に調整することができます。前者は出来ません。

GNOME との統合

GNOME で Conky を表示したときに問題が生じる場合、以下の行を conky.conf に追加:

own_window yes
own_window_type conky
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

透過に問題が起こる場合、以下の行を追加してみてください:

own_window_argb_visual yes
own_window_argb_value 255

Razor-qt との統合

Conky のデフォルト設定では、後ろをクリックするとデスクトップからウィンドウが消えることがあります。以下の行を追加してください:

conky.conf
own_window yes
own_window_class Conky
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes

パッケージの更新情報を表示

  • Pacman には checkupdates という公式リポジトリのパッケージアップデートを表示する自前のスクリプトが入っています。${execpi 3600 checkupdates | wc -l} でパッケージの合計が表示されます。
  • Paconky - ユーザー定義形式でパッケージのアップデート情報を表示します。${execpi} コマンドを使うことでこのプログラムの出力は conky に含めることができます。
  • Scrolling Notifications - スクロールするアップデート通知を表示。Paconky と作者が同じ。
  • Perl Script - Paconky の作者によるシンプルで簡単なスクリプト。アップデートが必要なパッケージの数だけを表示。
  • Python Script - Python で書かれたアップデート通知プログラム。
  • Bash Script - ShowSize を有効にしたユーザーのための Bash スクリプト。

天気予報を表示

このスレッド を参照。

カウントダウンタイマーを表示

ConkyTimer は作業の残り時間を表示するシンプルなカウントダウンタイマーです。

conkytimer "<task description>" <min> でタイマーを開始できます。

RSS フィードを表示

外部のスクリプトを実行したり Conky に出力したりすることなく、RSS フィードをネイティブに表示する機能が Conky には備わっています。例えば、Planet Arch の最新の記事のタイトル10件を表示して一分ごとにフィードを更新したい場合、以下を conky.confTEXT セクションに挿入します:

${rss https://planet.archlinux.org/rss20.xml 1 item_titles 10 }

Arch フォーラムの rss フィードを表示したい場合、次の行を追加します:

${rss https://bbs.archlinux.org/extern.php?action=feed&type=rss 1 item_titles 4}

1 は更新間隔で (15分がデフォルト)、4 は表示するアイテムの数です。

rTorrent の統計を表示

このスレッドを参照。

WordPress ブログの統計を表示

python で書かれた ConkyPress という名前の拡張を使うことで表示できます。

新規メールの数を表示

Gmail

方法 1

どこかに gmail.py という名前のファイルを作って (ここでは ~/.scripts/ を使用) 以下の Python コードを入力してください:

gmail.py
#!/usr/bin/env python

from urllib.request import FancyURLopener

email = 'your email' # @gmail.com can be left out
password  = 'your password'

url = 'https://%s:%s@mail.google.com/mail/feed/atom' % (email, password)

opener = FancyURLopener()
page = opener.open(url)

contents = page.read().decode('utf-8')

ifrom = contents.index('<fullcount>') + 11
ito   = contents.index('</fullcount>')

fullcount = contents[ifrom:ito]

print(fullcount + ' new')
方法 2

以下のスクリプトは Python の機能を活用しています:

gmail.py
#! /usr/bin/env python

import urllib.request
from xml.etree import ElementTree as etree

# Enter your username and password below within quotes below, in place of ****.
# Set up authentication for gmail
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(realm='mail.google.com',
                          uri='https://mail.google.com/',
                          user= '****',
                          passwd= '****')
opener = urllib.request.build_opener(auth_handler)
# ...and install it globally so it can be used with urlopen.
urllib.request.install_opener(opener)

gmail = 'https://mail.google.com/gmail/feed/atom'
NS = '{http://purl.org/atom/ns#}'
with urllib.request.urlopen(gmail) as source:
    tree = etree.parse(source)
fullcount = tree.find(NS + 'fullcount').text

print(fullcount + ' new')

次の行を conky.conf に追加すれば、5分 (300秒) ごとに新しいメールがないか Gmail アカウントをチェックして表示するようになります:

${execpi 300 python ~/.scripts/gmail.py}
方法 3

同じやり方で curl, grep, sed を使う方法:

$ curl -s -u email:password https://mail.google.com/mail/feed/atom | grep fullcount | sed 's/<[^0-9]*>//g'

emailpassword はあなたのデータに置き換えて下さい。

方法 4

また、stunnel パッケージの stunnel を使うこともできます。

以下の設定は Conky の FAQ から引用しています。

以下のように /etc/stunnel/stunnel.conf を編集して、stunnel.service起動:

# Service-level configuration for TLS server
[imap]
client = yes
accept  = 143
connect = imap.gmail.com:143
protocol = imap
sslVersion = TLSv1
# Service-level configuration for SSL server
[imaps]
client = yes
accept  = 993
connect = imap.gmail.com:993

後は conky.conf だけです:

imap localhost username * -i 120 -p 993
TEXT
Inbox: ${imap_unseen}/${imap_messages}

Here I used * as the password for conky to ask for it at start, but you do not have to do it.

IMAP + SSL と Perl を使う

Conky には IMAP アカウントのサポートが組み込まれていますが SSL はサポートしていません。このフォーラムへの投稿 にあるスクリプトを使うことで利用することができます。perl-mail-imapclientAURperl-io-socket-ssl パッケージの Perl/CPAN Modules Mail::IMAPClient と IO::Socket::SSL が必要です。

Conky に読み込ませる場所に imap.pl という名前のファイルを作成してください。このファイルには、以下の内容を記述します (必要なところは書き換えて下さい):

#!/usr/bin/perl

# gimap.pl by gxmsgx
# description: get the count of unread messages on imap

use strict;
use Mail::IMAPClient;
use IO::Socket::SSL;

my $username = 'example.username'; 
my $password = 'password123'; 

my $socket = IO::Socket::SSL->new(
  PeerAddr => 'imap.server',
  PeerPort => 993
 )
 or die "socket(): $@";

my $client = Mail::IMAPClient->new(
  Socket   => $socket,
  User     => $username,
  Password => $password,
 )
 or die "new(): $@";

if ($client->IsAuthenticated()) {
   my $msgct;

   $client->select("INBOX");
   $msgct = $client->unseen_count||'0';
   print "$msgct\n";
}

$client->logout();

conky.conf に次を追加:

${execpi 300 ~/.conky/imap.pl} 

ファイルの位置は適宜変更してください。

Gmail を使う場合、アプリパスワードを 生成 する必要があります。

もしくは、上に書かれているように stunnel を使うこともできます: #Gmail

IMAP と PHP を使う

PHP を使う方法もあります。PHP をインストールして /etc/php/php.iniextension=imap.so をアンコメントしてください。

それから imap.php という名前のファイルを作成して実行可能属性を付与してください:

$ chmod +x imap.php

ファイルの中身は以下のようにします (適宜変更を加えてください):

#!/usr/bin/php
<?php
// See http://php.net/manual/function.imap-open.php for more information about
// the mailbox string in the first parameter of imap_open.
// This example is ready to use with Office 365 Exchange Mails,
// just replace your username (=email address) and the password.
$mbox = imap_open("{outlook.office365.com:993/imap/ssl/novalidate-cert}", "username", "password");

// Total number of emails
$nrTotal = imap_num_msg($mbox);

// Number of unseen emails. There are other ways using imap_status to count
// unseen messages, but they don't work with Office 365 Exchange. This one does.
$unseen = imap_search($mbox, 'UNSEEN');
$nrUnseen = $unseen ? count($unseen) : 0;

// Display the result, format as you like.
echo $nrUnseen.'/'.$nrTotal;

// Not needed, because the connection is closed after the script end.
// For the sake of clean public available scripts, we are nice to
// the imap server and close the connection manually.
imap_close($mbox);

conky.conf に以下を追加:

${execpi 300 ~/.conky/imap.php} 

上記のスクリプトは A/B と表示します。A は未読メールの数で B はメールボックスに存在するメールの合計数です。imap_Status などの PHP 関数を使うことで他の情報も表示できます (http://php.net/manual/function.imap-status.php)。IMAP に関する PHP ドキュメントを見てください: http://php.net/manual/ref.imap.php

有効なネットワークインターフェイスを表示

ネットワークインターフェイスが有効化どうかテストするために、conky の if_existing 変数を使ってインターフェイスの operstate を確認できます。以下はインターフェイスが wlo1 の場合の例です:

draw_graph_borders yes 
${if_existing /sys/class/net/wlo1/operstate up}
${color #0077ff}Net Down:$color ${downspeed wlo1}      ${color #0077ff}Net Up:$color ${upspeed wlo1}
${color #0077ff}${downspeedgraph wlo1 32,155 104E8B 0077ff} $alignr${color #0077ff}${upspeedgraph wlo1 32,155 104E8B 0077ff}
${endif}

次の画像のように表示されます: https://i.imgur.com/pQQbsP6.png

UTF-8 マルチバイト文字のスクロールの修正

現在のバージョンの conky (1.9.0) には文字列ではなくバイト数によってスクロールするテキストが増えるというバグが存在し [2]、結果としてマルチバイト文字を含むテキストでスクロールが消えたり現れたりするということが起こります。このバグを修正するパッチをあてたパッケージが AUR に存在します: conky-utfscrollAUR[リンク切れ: パッケージが存在しません]

nvidia サポートのサンプルリングスクリプト

[3] を参照。

記号フォントに関する注意

装飾がある conky.conf では大抵 PizzaDude Bullets と Pie Charts for Maps フォントを使っています。これらのフォントはそれぞれ ttf-pizzadude-bulletsAURttf-piechartsformapsAUR[リンク切れ: アーカイブ: aur-mirror] として AUR からインストールすることができ、もしくはフォントの記事に書かれている方法を使って手動でインストールすることもできます。

本来よりフォントが小さく表示される

conky のフォントがやけに小さく表示されたり、ちゃんと並ばない場合、infinality の freetype2 パッチのデフォルト設定が原因かもしれません。この設定は 96 DPI ではなく 72 DPI でフォントを表示するプログラムに問題を生じさせます。たとえシステムを 96 DPI に設定していても関係ありません。この問題を修正するには /etc/fonts/infinality/infinality.conf を開いて DPI のセクションを探して 72 から 96 に変更してください。

完全透過を有効にする万能の方法

透過は conky における KAIJU ですが、xcompmgrtransset-df を使ってどんな環境やウィンドウマネージャでも完全透過を適用する方法が存在します。xcompmgrtransset-dfインストールしてください。

ノート: 他のコンポジットマネージャを使っている場合、この方法は干渉することがあります。

xcompmgr のドキュメントを確認してどのコンポジットオプションを有効にすべきか決めて下さい。以下は標準的なコマンドになります。

$ xcompmgr -c -t-5 -l-5 -r4.2 -o.55 &

conky & で conky が実行中か確認してください。transset-df を使って Conky ウィンドウの透過を有効にします。'.5' は 0 - 1 の好きな値に設定してください。

$ transset-df .5 -n Conky

これで conky のウィンドウが完全透過します。No Window matching Conky exists! のようなエラーが表示される場合、conky が動作しているか確認してから、xprop を使って conky のウィンドウをクリックして、transset-df に指定するべき名前を確認してください。

$ xprop | grep WM_NAME
WM_NAME(STRING) = "Conky (ArchitectLinux)"

上記の場合、conky で合っていますが、別の文字列が出力された場合は、それに合わせて指定するようにしてください。conky.confown_window_type オプションを panel に設定していた場合、xprop を実行しても何も出力されないことがあります。その場合は dock, normal, override, desktop などを使うようにしてみてください。

~/.xinitrc に以下を記述することで X の起動後に conky に透過を適用することができます:

xcompmgr -c -t-5 -l-5 -r4.2 -o.55 &
conky -d; sleep 1 && transset-df .5 -n Conky

参照