Dzen
Dzen は X11 向けの汎用メッセージング、通知、メニュープログラムです。どの言語でもスクリプト可能なように作られており dwm, wmii, xmonad などのウィンドウマネージャとよく合いますが、ウィンドウマネージャならどれでも動作します。
目次
インストール
Xft、XPM、Xinerama のサポートを含む dzen2 パッケージを インストール して下さい。
使い方
Dzen はパイプから文字列を受け取り、それをグラフィカルに出力します。この事実により、Dzen はどの言語でもスクリプト化可能になります。 例:
$ echo "Hello World" | dzen2 -p
オプション
Dzen には多くのオプションがあります。次のリストでは、その一部について説明します:
-fg
前景色。-bg
背景色。-fn
フォント。-ta
タイトルウィンドウの内容 l (eft) 、c (enter) 、r (ight) を位置合わせします。-tw
タイトルウィンドウの幅。-sa
スレーブウィンドウの内容を整列します-ta
を参照してください。-l
スレーブウィンドウの行数。-e
イベントとアクション。-m
メニューモード。-u
タイトルウィンドウとスレーブウィンドウの内容を同時に更新します。-p
EOF を永続化します (オプションのタイムアウト (秒単位))-x
X 位置。-y
Y 位置。-h
線の高さ (デフォルト:フォントの高さ +2 ピクセル)-w
ウィンドウの幅。-v
バージョン。
設定
Dzen は X resources からフォントと色の設定を読み込むことができます。例えば、以下の行を ~/.Xresources
に追加できます:
dzen2.font: -*-fixed-*-*-*-*-*-*-*-*-*-*-*-* dzen2.foreground: #22EE11 dzen2.background: black
ヒントとテクニック
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 サポートを有効にする
SVN リビジョン 241 (開発版) 現在、dzen2 は Xft を任意でサポートしています。Xft のサポートを有効にするには 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)
libxft のサポートが有効になっているかどうかは以下のコマンドで確認できます:
echo "hello world" | dzen2 -fn 'Times New Roman' -p
参照
フォーラムスレッド
- 2007-12-04 - Arch Linux - dzen & xmobar Hacking Thread