「Conky」の版間の差分
細 |
(同期) |
||
1行目: | 1行目: | ||
[[Category:状態監視と通知]] |
[[Category:状態監視と通知]] |
||
+ | [[de:Conky]] |
||
[[en:Conky]] |
[[en:Conky]] |
||
[[es:Conky]] |
[[es:Conky]] |
||
+ | [[fa:Conky]] |
||
[[fr:Conky]] |
[[fr:Conky]] |
||
[[it:Conky]] |
[[it:Conky]] |
||
11行目: | 13行目: | ||
== インストールと設定 == |
== インストールと設定 == |
||
− | + | {{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 でログメッセージをデスクトップにリダイレクトすることが可能です。 |
||
− | + | 設定ファイルを編集すると、保存した瞬間に変更が適用されます。X セッションをログアウト・ログインする必要はありません。設定を何かテストしたいときは、設定ファイルを保存してみて ''conky'' のウィンドウがどうなったか確認するのが良いでしょう。 |
|
+ | ''conky'' の素晴らしい機能として {{ic|/var/log/}} ファイルからログメッセージを読み込んでデスクトップに表示させることができます。ほとんどのログファイルは {{ic|root}} しか読めないようになっていますが、''conky'' を {{ic|root}} で動作させることは推奨されません。代わりに使用しているユーザーを {{ic|log}} グループに追加してください: |
||
− | == AUR パッケージ == |
||
+ | # usermod -aG log ''username'' |
||
+ | |||
+ | === AUR パッケージ === |
||
基本の '''conky''' パッケージに加えて、追加のコンパイルオプションを有効にした [[AUR]] のパッケージがいくつか存在します: |
基本の '''conky''' パッケージに加えて、追加のコンパイルオプションを有効にした [[AUR]] のパッケージがいくつか存在します: |
||
35行目: | 36行目: | ||
== Tips and tricks == |
== 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 は完全透過をサポートしています。有効にするには |
+ | バージョン 1.8.0 から、Conky は完全透過をサポートしています。有効にするには以下の行を {{ic|conky.conf}} に追加して下さい: |
− | own_window_transparent |
+ | 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|. |
+ | {{ic|conky.conf}} ファイルに以下を追加: |
− | background |
+ | background = true, |
この変数は Conky をバックグラウンドにフォークします。ウィンドウをデスクトップ上に常に表示させ、全てのワークスペースに張り付かせてタスクバーには表示したくない場合、以下の引数を追加してください: |
この変数は Conky をバックグラウンドにフォークします。ウィンドウをデスクトップ上に常に表示させ、全てのワークスペースに張り付かせてタスクバーには表示したくない場合、以下の引数を追加してください: |
||
− | own_window |
+ | 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| |
+ | ダブルバッファリングを有効にするには {{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| |
+ | Compiz を使っていない場合は、{{ic|conky.conf}} を編集して以下の行を追加または修正してください: |
− | own_window_type override |
+ | own_window_type = 'override', |
− | もしくは |
+ | もしくは: |
− | own_window_type desktop |
+ | own_window_type = 'desktop', |
− | 詳しい違いについては conky の man ページを参照。ただし後者のオプションでは |
+ | 詳しい違いについては conky の man ページを参照。ただし後者のオプションでは [[Openbox]] などでリサイズのキーバインドを使ってウィンドウを conky の縁に調整することができます。前者は出来ません。 |
− | === |
+ | === GNOME との統合 === |
− | + | 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| |
+ | {{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| |
+ | 外部のスクリプトを実行したり 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 ==== |
||
+ | |||
+ | ===== 方法 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=' |
+ | 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| |
+ | 次の行を {{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 |
+ | <nowiki>$ curl -s -u email:password https://mail.google.com/mail/feed/atom | grep fullcount | sed 's/<[^0-9]*>//g'</nowiki> |
− | + | ''email'' と ''password'' はあなたのデータに置き換えて下さい。 |
|
+ | |||
+ | ===== 方法 4 ===== |
||
また、{{Pkg|stunnel}} パッケージの [http://www.stunnel.org/ stunnel] を使うこともできます。 |
また、{{Pkg|stunnel}} パッケージの [http://www.stunnel.org/ stunnel] を使うこともできます。 |
||
− | 以下の設定は [ |
+ | 以下の設定は [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| |
+ | 後は {{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 と 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| |
+ | {{ic|conky.conf}} に次を追加: |
${execpi 300 ~/.conky/imap.pl} |
${execpi 300 ~/.conky/imap.pl} |
||
ファイルの位置は適宜変更してください。 |
ファイルの位置は適宜変更してください。 |
||
328行目: | 334行目: | ||
Gmail を使う場合、アプリパスワードを [http://www.google.com/accounts/IssuedAuthSubTokens?hide_authsub=1 生成] する必要があります。 |
Gmail を使う場合、アプリパスワードを [http://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 |
||
}} |
}} |
||
+ | 次の画像のように表示されます: http://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}}。 |
||
− | 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|. |
+ | 装飾がある {{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 | grep WM_NAME|2=WM_NAME(STRING) = "Conky (ArchitectLinux)"}} |
{{hc|$ xprop | grep WM_NAME|2=WM_NAME(STRING) = "Conky (ArchitectLinux)"}} |
||
− | 上記の場合、''conky'' で合っていますが、別の文字列が出力された場合は、それに合わせて指定するようにしてください。{{ic| |
+ | 上記の場合、''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:// |
+ | * [http://freecode.com/projects/conky/ Conky] on [[wikipedia:Freecode|Freecode]] |
− | * [irc://chat.freenode.org/conky #conky] IRC chat channel on [[wikipedia |
+ | * [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] |
2016年11月14日 (月) 22:30時点における版
Conky は X Windows System 向けのシステム監視ソフトウェアです。GNU/Linux と FreeBSD で利用することができます。GPL ライセンスでリリースされているフリーソフトウェアになります。CPU, メモリー, スワップ, ディスク容量, 温度, top, アップロード, ダウンロード, システムメッセージなど、様々なシステムの情報を Conky はモニターすることが可能です。色々と設定することができますが、設定は少々わかりにくいかもしれません。Conky は torsmo のフォークです。
目次
- 1 インストールと設定
- 2 Tips and tricks
- 2.1 設定ファイルの構文の変更
- 2.2 KDE4 や Xfce4 で完全透過を有効にする
- 2.3 Xfce4 で自動起動
- 2.4 ちらつきを防止する
- 2.5 カスタムカラー
- 2.6 デュアルスクリーン
- 2.7 デスクトップの表示で最小化させない
- 2.8 GNOME との統合
- 2.9 Razor-qt との統合
- 2.10 パッケージの更新情報を表示
- 2.11 天気予報を表示
- 2.12 カウントダウンタイマーを表示
- 2.13 RSS フィードを表示
- 2.14 rTorrent の統計を表示
- 2.15 WordPress ブログの統計を表示
- 2.16 新規メールの数を表示
- 2.17 有効なネットワークインターフェイスを表示
- 2.18 UTF-8 マルチバイト文字のスクロールの修正
- 2.19 nvidia サポートのサンプルリングスクリプト
- 2.20 記号フォントに関する注意
- 2.21 本来よりフォントが小さく表示される
- 2.22 完全透過を有効にする万能の方法
- 3 参照
インストールと設定
conky パッケージをインストールしてください。機能が追加された他のパッケージについては #AUR パッケージを見てください。
ローカルの設定ファイルを作成してください:
$ mkdir -p ~/.config/conky $ conky -C > ~/.config/conky/conky.conf
~/.config/conky/conky.conf
を編集することで好きに conky をカスタマイズできます。こちらのページ には設定ファイルのサンプルが載っています。
設定ファイルを編集すると、保存した瞬間に変更が適用されます。X セッションをログアウト・ログインする必要はありません。設定を何かテストしたいときは、設定ファイルを保存してみて conky のウィンドウがどうなったか確認するのが良いでしょう。
conky の素晴らしい機能として /var/log/
ファイルからログメッセージを読み込んでデスクトップに表示させることができます。ほとんどのログファイルは root
しか読めないようになっていますが、conky を root
で動作させることは推奨されません。代わりに使用しているユーザーを 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
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 スクリプトが こちら にあります。
何かがおかしかったり、スクリプトを信用できない場合、デフォルトの設定ファイルから設定をやり直してください:
$ conky -C > conky.conf.default
KDE4 や Xfce4 で完全透過を有効にする
バージョン 1.8.0 から、Conky は完全透過をサポートしています。有効にするには以下の行を conky.conf
に追加して下さい:
own_window_transparent = true,
上のオプションは OWN_WINDOW_ARGB_VISUAL yes
オプションと一緒に使うのは望ましくありません。下で説明している feh の方法を置き換えます。
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.conf
の TEXT
セクションに挿入します:
${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'
email と password はあなたのデータに置き換えて下さい。
方法 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-imapclientAUR と perl-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.ini
の extension=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}
次の画像のように表示されます: http://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-bulletsAUR と ttf-piechartsformapsAUR[リンク切れ: アーカイブ: aur-mirror] として AUR からインストールすることができ、もしくはフォントの記事に書かれている方法を使って手動でインストールすることもできます。
本来よりフォントが小さく表示される
conky のフォントがやけに小さく表示されたり、ちゃんと並ばない場合、infinality の freetype2 パッチのデフォルト設定が原因かもしれません。この設定は 96 DPI ではなく 72 DPI でフォントを表示するプログラムに問題を生じさせます。たとえシステムを 96 DPI に設定していても関係ありません。この問題を修正するには /etc/fonts/infinality/infinality.conf
を開いて DPI のセクションを探して 72 から 96 に変更してください。
完全透過を有効にする万能の方法
透過は conky における KAIJU ですが、xcompmgr と transset-df を使ってどんな環境やウィンドウマネージャでも完全透過を適用する方法が存在します。xcompmgr と transset-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.conf
で own_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
参照
- 公式ウェブサイト
- 設定に使用する Conky 変数
- Conky オブジェクト
- Arch フォーラムの Conky 設定スレッド
- Conky on Freecode
- #conky IRC chat channel on freenode
- FAQ