Dzen

提供: ArchWiki
ナビゲーションに移動 検索に移動

Dzen は X11 向けの汎用メッセージング、通知、メニュープログラムです。どの言語でもスクリプト可能なように作られており dwm, wmii, xmonad などのウィンドウマネージャとよく合いますが、ウィンドウマネージャならどれでも動作します。

インストール

公式リポジトリdzen2 パッケージをインストールしてください。Xft, XPM, Xinerama のサポートが含まれています。

ノート: Xft doesn't seem to work with the official package. Alternatively, you can install the dzen2-xft-xpm-xinerama-gitAUR package located in the AUR with Xft, XPM and Xinerama support.

設定

Dzen は X resources からフォントと色の設定を読み込むことができます。例えば、以下の行を ~/.Xresources に追加できます:

dzen2.font:       -*-fixed-*-*-*-*-*-*-*-*-*-*-*-*
dzen2.foreground: #22EE11
dzen2.background: black

Tips and tricks

dzen でカスタムフォントを使う

Dzen は X Logical Font Description に従って X フォントパスにあるフォントしか使いません。詳しくはフォント#古いアプリケーションを見て下さい。

Dzen と Conky

Conky から直接情報を受け取りステータスバーとして出力する事が出来ます。これは公式の版でも、より機能を制限した conky-cliAUR でも可能です。

以下の例は平均負担値を赤字で、現在時刻を前景色で出力します:

~/.conkyrc
background no
out_to_console yes
out_to_x no
update_interval 1.0
total_run_times 0
use_spacer none

TEXT
^fg(\#ff0000)${loadavg 1 2 3} ^fg()${time %a %b %d %I:%M%P}
~/bin/dzconky
#!/bin/sh

FG='#aaaaaa'
BG='#1a1a1a'
FONT='-*-terminus-*-r-normal-*-*-120-*-*-*-*-iso8859-*'
conky | dzen2 -e - -h '16' -w '600' -ta r -fg $FG -bg $BG -fn $FONT &

起動時に読み込まれるファイルに dzconky と記述すれば起動します。

クリッカブルエリアとポップアップ

dzen2 では ^ca(button, command)Text^ca() を使ってクリック可能領域を定義できます。こちら のスクリーンショット gif のように任意の情報を表示するポップアップを作成することが可能です。

シンプルな例:

sysinfo_popup.sh
#!/bin/bash

#A simple popup showing system information

HOST=$(uname -n)
KERNEL=$(uname -r)
UPTIME=$( uptime | sed 's/.* up //' | sed 's/[0-9]* us.*//' | sed 's/ day, /d /'\
         | sed 's/ days, /d /' | sed 's/:/h /' | sed 's/ min//'\
           |  sed 's/,/m/' | sed 's/  / /')
PACKAGES=$(pacman -Q | wc -l)
UPDATED=$(awk '/upgraded/ {line=$0;} END { $0=line; gsub(/[\[\]]/,"",$0); \
         printf "%s %s",$1,$2;}' /var/log/pacman.log)

(
echo "System Information" # Fist line goes to title
# The following lines go to slave window
echo "Host: $HOST "
echo "Kernel: $KERNEL"
echo "Uptime: $UPTIME "
echo "Pacman: $PACKAGES packages"
echo "Last updated on: $UPDATED"
) | dzen2 -p -x "500" -y "30" -w "220" -l "5" -sa 'l' -ta 'c'\
   -title-name 'popup_sysinfo' -e 'onstart=uncollapse;button1=exit;button3=exit'

# "onstart=uncollapse" ensures that slave window is visible from start.

スクリプトを保存して実行可能属性を付与したら、conkyrc で ^ca() 属性が使えます (もしくは dzen2 にパイプで渡すスクリプトで使用):

^ca(1,<path to your script>)Sysinfo^ca()

上記の設定でマウスボタン1でスクリプトを実行するように紐付けます。

dzen の Xft サポートを有効にする

ノート: You need to install the libxft package.

As of SVN revision 241 (development), dzen2 has optional support for Xft. To enable Xft support, build dzen2 with these options by editing config.mk:

config.mk
 ## Option: With Xinerama and XPM and XFT
 LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lXinerama -lXpm $(pkg-config --libs xft)
 CFLAGS = -Wall -Os ${INCS} -DVERSION=\"${VERSION}\" -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(pkg-config --cflags xft)

To check libxft support, you can use this command:

echo "hello world" | dzen2 -fn 'Times New Roman' -p

参照

フォーラムスレッド