Dzen

提供: ArchWiki
2015年2月17日 (火) 18:52時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

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 can be used to pipe information directly to dzen for output in a status bar. This can be done with Conky in the official repositories and also with conky-cliAUR, a stripped-down version of the Conky status utility from the AUR.

The following example displays the average load values in red and the current time in the default dzen foreground colour:

~/.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 &

Simply execute dzconky in your startup scripts.

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

dzen2 allows you to define clickable areas using ^ca(button, command)Text^ca(). You can use this property to create popups giving arbitrary information, as seen in various screenshot gifs like this and this.

A simple example can be:

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.

Save this script and make it executable and then use the ^ca() attribute in your conkyrc (or the script that you pipe to dzen2) to trigger it.

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

This will bind the script to mouse button 1 and execute it when it is clicked over the text.

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

参照

フォーラムスレッド