「Dzen」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リンク切れ対応(〜.github.com→〜.github.io))
 
(5人の利用者による、間の13版が非表示)
1行目: 1行目:
[[Category:アプリケーションランチャー]]
+
[[Category:通知]]
 
[[Category:視覚効果]]
 
[[Category:視覚効果]]
[[Category:状態監視と通知]]
 
 
[[en:Dzen]]
 
[[en:Dzen]]
  +
[[pt:Dzen]]
[http://robm.github.com/dzen/ Dzen] は X11 向けの汎用メッセージング、通知、メニュープログラムです。どの言語でもスクリプト可能なように作られており [[dwm]], [[wmii]], [[xmonad]] などのウィンドウマネージャとよく合いますが、ウィンドウマネージャならどれでも動作します。
 
  +
[http://robm.github.io/dzen/ Dzen] は X11 向けの汎用メッセージング、通知、メニュープログラムです。どの言語でもスクリプト可能なように作られており [[dwm]], [[wmii]], [[xmonad]] などのウィンドウマネージャとよく合いますが、ウィンドウマネージャならどれでも動作します。
   
 
== インストール ==
 
== インストール ==
   
[[公式リリ]]の {{Pkg|dzen2}} パッケージをインストールしてください。Xft, XPM, Xinerama のサポートが含まれています
+
Xft、XPM、Xinerama のサを含む {{Pkg|dzen2}} パッケージを [[インストール]] してさい。
   
  +
== 使い方 ==
{{Note|Xft doesn't seem to work with the official package. Alternatively, you can install the {{AUR|dzen2-xft-xpm-xinerama-git}} package located in the [[AUR]] with Xft, XPM and Xinerama support.}}
 
  +
  +
Dzen はパイプから文字列を受け取り、それをグラフィカルに出力します。この事実により、Dzen はどの言語でもスクリプト化可能になります。
  +
例:
  +
$ echo "Hello World" | dzen2 -p
  +
  +
=== オプション ===
  +
  +
Dzen には多くのオプションがあります。次のリストでは、その一部について説明します:
  +
* {{ic|-fg}} 前景色。
  +
* {{ic|-bg}} 背景色。
  +
* {{ic|-fn}} フォント。
  +
* {{ic|-ta}} タイトルウィンドウの内容 ''l'' (eft) 、''c'' (enter) 、''r'' (ight) を位置合わせします。
  +
* {{ic|-tw}} タイトルウィンドウの幅。
  +
* {{ic|-sa}} スレーブウィンドウの内容を整列します {{ic|-ta}} を参照してください。
  +
* {{ic|-l}} スレーブウィンドウの行数。
  +
* {{ic|-e}} イベントとアクション。
  +
* {{ic|-m}} メニューモード。
  +
* {{ic|-u}} タイトルウィンドウとスレーブウィンドウの内容を同時に更新します。
  +
* {{ic|-p}} EOF を永続化します (オプションのタイムアウト (秒単位))
  +
* {{ic|-x}} X 位置。
  +
* {{ic|-y}} Y 位置。
  +
* {{ic|-h}} 線の高さ (デフォルト:フォントの高さ +2 ピクセル)
  +
* {{ic|-w}} ウィンドウの幅。
  +
* {{ic|-v}} バージョン。
  +
  +
{{Warning|{{ic|-u}} オプションは非推奨になりました。}}
  +
  +
== dzen でポップアップを作成する ==
  +
  +
次のコードは、画面右上に dzen ウィンドウを開きます。幅は 100px、高さは 15px で、前景は黒、背景は白です(右ボタンクリックでdzenを閉じます)
  +
  +
$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF'
  +
  +
ウィンドウの中央に数字 3 があることに注意してください。{{ic|-l}} オプションを使用して同じコードを実行してみてください。
  +
  +
$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF' -l '2'
  +
  +
これで、dzen 内でマウスをホバーすると、スレーブウィンドウが折りたたまれなくなります。スレーブウィンドウ内の行をクリックしても何も起こりません。{{ic|-m}} オプションを使用してみてください。
  +
  +
$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF' -l '2' -m
  +
  +
ここで、行をクリックすると、端末に数字が表示されます。メニュー作成に便利な機能です。
  +
  +
ただし、数字を中央揃えにしてタイトルを左揃えにしたい場合は、オプション {{ic|-sa}} と {{ic|-ta}} が必要になります。
  +
  +
$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF' -l '2' -m -ta 'l' -sa 'c'
   
 
== 設定 ==
 
== 設定 ==
18行目: 64行目:
 
dzen2.background: black
 
dzen2.background: black
   
  +
== ヒントとテクニック ==
== Tips and tricks ==
 
   
 
=== dzen でカスタムフォントを使う ===
 
=== dzen でカスタムフォントを使う ===
   
Dzen は [[X_Logical_Font_Description|X Logical Font Description]] に従って X フォントパスにあるフォントしか使いません。詳しくは[[フォント#古いアプリケーション]]を見て下さい。
+
Dzen は [[X Logical Font Description]] に従って X フォントパスにあるフォントしか使いません。詳しくは [[フォント#古いアプリケーション]] を見て下さい。
   
 
=== Dzen と Conky ===
 
=== Dzen と Conky ===
   
  +
[[Conky]] から直接情報を受け取りステータスバーとして出力する事が出来ます。これは公式の版でも、より機能を制限した {{AUR|conky-cli}} でも可能です。
<!--
 
[[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 {{AUR|conky-cli}}, a stripped-down version of the Conky status utility from the [[Arch User Repository|AUR]].
 
-->
 
[[Conky]]から直接情報を受け取りステータスバーとして出力する事が出来ます。
 
これは公式の版でも,より機能を制限した{{AUR|conky-cli}}でも可能です。
 
   
  +
以下の例は平均負担値を赤字で、現在時刻を前景色で出力します:
<!--
 
The following example displays the average load values in red and the current time in the default dzen foreground colour:
 
-->
 
続く例は読み込みの平均値を赤字で,現在時刻を標準の文字色で出力するものです:
 
   
{{hc|~/.conkyrc|
+
{{hc|~/.conkyrc|<nowiki>
  +
background no
<nowiki>
 
  +
out_to_console yes
background no
 
  +
out_to_x no
out_to_console yes
 
  +
update_interval 1.0
out_to_x no
 
  +
total_run_times 0
update_interval 1.0
 
  +
use_spacer none
total_run_times 0
 
use_spacer none
 
 
TEXT
 
^fg(\#ff0000)${loadavg 1 2 3} ^fg()${time %a %b %d %I:%M%P}
 
</nowiki>
 
}}
 
   
  +
TEXT
{{hc|~/bin/dzconky|
 
  +
^fg(\#ff0000)${loadavg 1 2 3} ^fg()${time %a %b %d %I:%M%P}
<nowiki>
 
  +
</nowiki>}}
#!/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 &
 
</nowiki>
 
}}
 
   
  +
{{hc|~/bin/dzconky|<nowiki>
起動時に読み込まれるファイルに{{ic|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 &
  +
</nowiki>}}
  +
  +
起動時に読み込まれるファイルに {{ic|dzconky}} と記述すれば起動します。
   
 
=== クリッカブルエリアとポップアップ ===
 
=== クリッカブルエリアとポップアップ ===
   
  +
dzen2 では {{ic|^ca(''button'', ''command'')Text^ca()}} を使ってクリック可能領域を定義できます。[https://i.imgur.com/bZegioR.gif こちら] のスクリーンショット gif のように任意の情報を表示するポップアップを作成することが可能です。
dzen2 allows you to define clickable areas using {{ic|^ca(''button'', ''command'')Text^ca()}}.
 
You can use this property to create popups giving arbitrary information, as seen in various screenshot gifs like [http://i.minus.com/ibzmjKMXKk7IbH.gif this] and [http://paste.unixhub.net/index.php/NlKe/ this].
 
   
  +
シンプルな例:
A simple example can be:
 
 
{{hc|sysinfo_popup.sh|<nowiki>
 
{{hc|sysinfo_popup.sh|<nowiki>
#/bin/bash
+
#!/bin/bash
   
#A simple popup showing system information
+
#A simple popup showing system information
   
HOST=$(uname -n)
+
HOST=$(uname -n)
KERNEL=$(uname -r)
+
KERNEL=$(uname -r)
UPTIME=$( uptime | sed 's/.* up //' | sed 's/[0-9]* us.*//' | sed 's/ day, /d /'\
+
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/ days, /d /' | sed 's/:/h /' | sed 's/ min//'\
| sed 's/,/m/' | sed 's/ / /')
+
| sed 's/,/m/' | sed 's/ / /')
PACKAGES=$(pacman -Q | wc -l)
+
PACKAGES=$(pacman -Q | wc -l)
UPDATED=$(awk '/upgraded/ {line=$0;} END { $0=line; gsub(/[\[\]]/,"",$0); \
+
UPDATED=$(awk '/upgraded/ {line=$0;} END { $0=line; gsub(/[\[\]]/,"",$0); \
printf "%s %s",$1,$2;}' /var/log/pacman.log)
+
printf "%s %s",$1,$2;}' /var/log/pacman.log)
   
(
+
(
echo "System Information" # Fist line goes to title
+
echo "System Information" # Fist line goes to title
# The following lines go to slave window
+
# The following lines go to slave window
echo "Host: $HOST "
+
echo "Host: $HOST "
echo "Kernel: $KERNEL"
+
echo "Kernel: $KERNEL"
echo "Uptime: $UPTIME "
+
echo "Uptime: $UPTIME "
echo "Pacman: $PACKAGES packages"
+
echo "Pacman: $PACKAGES packages"
echo "Last updated on: $UPDATED"
+
echo "Last updated on: $UPDATED"
) | dzen2 -p -x "500" -y "30" -w "220" -l "5" -sa 'l' -ta 'c'\
+
) | 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'
+
-title-name 'popup_sysinfo' -e 'onstart=uncollapse;button1=exit;button3=exit'
   
# "onstart=uncollapse" ensures that slave window is visible from start.
+
# "onstart=uncollapse" ensures that slave window is visible from start.</nowiki>}}
  +
スクリプトを保存して実行可能属性を付与したら、conkyrc で {{ic|^ca()}} 属性が使えます (もしくは dzen2 にパイプで渡すスクリプトで使用):
  +
^ca(1,''<path to your script>'')Sysinfo^ca()
  +
  +
上記の設定でマウスボタン1でスクリプトを実行するように紐付けます。
  +
  +
=== Gadgets ===
  +
  +
dzen には、適切なカスタマイズに使用できるガジェットがいくつかあります。以下にそのいくつかを簡単な説明と例とともに示します。
  +
  +
==== dbar ====
  +
  +
Dbar は、別のコマンドから任意の数のパイプを受け取り、それとともに半グラフィカルな進行状況バーを出力します。デフォルトでは、''100%'' の最大値は {{ic|100}} です。最大値と最小値はそれぞれ {{ic|-max}}/{{ic|-min}} で変更できます。
  +
  +
出力例:
  +
50% [============= ]
  +
  +
コード例:
  +
{{hc|~/test|<nowiki>
  +
#!/bin/sh
  +
  +
(
  +
amixer get Master | \
  +
awk '/Left:/{gsub(/[[:punct:]]/,"",$5);left=$5}
  +
/Right:/{gsub(/[[:punct:]]/,"",$5);right=$5}
  +
END {print left ORS right}'
  +
) | dbar -max 100 -min 0 -s '|' -l 'Vol'
 
</nowiki>}}
 
</nowiki>}}
Save this script and make it executable and then use the {{ic|^ca()}} attribute in your conkyrc (or the script that you pipe to dzen2) to trigger it.
 
{{ic|^ca(1,''<path to your script>'')Sysinfo^ca()}}
 
   
  +
詳細については、[https://github.com/robm/dzen/blob/master/gadgets/README.dbar README.dbar] を参照してください。
This will bind the script to mouse button 1 and execute it when it is clicked over the text.
 
   
  +
==== gdbar ====
=== dzen の Xft サポートを有効にする ===
 
   
  +
Gdbar および [[Dzen#dbar|dbar]] は、''100%'' の値に基づいて進行状況バーを出力しますが、ここでは完全にグラフィカルです。Gdbar には、dbar と同じオプションといくつかの追加オプションがあります。オプションの一部は次のとおりです:
{{Note|You need to install the {{Pkg|libxft}} package.}}
 
  +
* {{ic|-fg}} 前景を設定します。
  +
* {{ic|-bg}} 背景を設定します。
  +
* {{ic|-w}}/{{ic|-h}} は幅と高さをそれぞれ設定します。
   
  +
コード例:
As of SVN revision 241 (development), dzen2 has optional support for Xft. To enable Xft support, build dzen2 with these options by editing {{ic|config.mk}}:
 
  +
{{hc|~/test|<nowiki>
  +
#!/bin/sh
   
  +
(
{{hc|config.mk|<nowiki>
 
  +
amixer get Master | \
## Option: With Xinerama and XPM and XFT
 
  +
awk '/Left:/{gsub(/[[:punct:]]/,"",$5);left=$5}
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lXinerama -lXpm $(pkg-config --libs xft)
 
  +
/Right:/{gsub(/[[:punct:]]/,"",$5);right=$5}
CFLAGS = -Wall -Os ${INCS} -DVERSION=\"${VERSION}\" -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(pkg-config --cflags xft)
 
  +
END{print left ORS right}'
  +
) | gdbar -max 100 -min 0 -l 'Vol ' -bg '#777777' -fg '#00ff00' -ss '2' | dzen2 -p -l '1' -w '150' -y '100' -x '100' -ta c -sa c -e 'onstartup=uncollapse;button3=exit'
 
</nowiki>}}
 
</nowiki>}}
   
  +
詳細については、[https://github.com/robm/dzen/blob/master/gadgets/README.gdbar README.gdbar] を参照してください。
To check libxft support, you can use this command:
 
  +
echo "hello world" | dzen2 -fn 'Times New Roman' -p
 
  +
{{Note|1=Gdbar は、dzen >= 0.7.0 と組み合わせた場合にのみ役立ちます。|2==}}
  +
  +
==== その他 ====
  +
  +
他のガジェットに関する情報は [https://github.com/robm/dzen/tree/master/gadgets こちら] を参照して下さい。
   
 
== 参照 ==
 
== 参照 ==
   
* [http://robm.github.com/dzen/ 公式ウェブサイト], [https://github.com/robm/dzen/wiki/_pages wiki], [https://github.com/robm/dzen ソース]
+
* [http://robm.github.io/dzen/ 公式ウェブサイト], [https://github.com/robm/dzen/wiki/_pages wiki], [https://github.com/robm/dzen ソース]
   
 
'''フォーラムスレッド'''
 
'''フォーラムスレッド'''

2024年2月22日 (木) 13:34時点における最新版

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 バージョン。
警告: -u オプションは非推奨になりました。

dzen でポップアップを作成する

次のコードは、画面右上に dzen ウィンドウを開きます。幅は 100px、高さは 15px で、前景は黒、背景は白です(右ボタンクリックでdzenを閉じます)

$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF'

ウィンドウの中央に数字 3 があることに注意してください。-l オプションを使用して同じコードを実行してみてください。

$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF' -l '2'

これで、dzen 内でマウスをホバーすると、スレーブウィンドウが折りたたまれなくなります。スレーブウィンドウ内の行をクリックしても何も起こりません。-m オプションを使用してみてください。

$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF' -l '2' -m

ここで、行をクリックすると、端末に数字が表示されます。メニュー作成に便利な機能です。

ただし、数字を中央揃えにしてタイトルを左揃えにしたい場合は、オプション -sa-ta が必要になります。

$ seq 1 3 | dzen2 -p -w '100' -h '15' -fg '#000000' -bg '#FFFFFF' -l '2' -m -ta 'l' -sa 'c'

設定

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でスクリプトを実行するように紐付けます。

Gadgets

dzen には、適切なカスタマイズに使用できるガジェットがいくつかあります。以下にそのいくつかを簡単な説明と例とともに示します。

dbar

Dbar は、別のコマンドから任意の数のパイプを受け取り、それとともに半グラフィカルな進行状況バーを出力します。デフォルトでは、100% の最大値は 100 です。最大値と最小値はそれぞれ -max/-min で変更できます。

出力例:

50% [=============            ]

コード例:

~/test
#!/bin/sh

(
amixer get Master | \
awk '/Left:/{gsub(/[[:punct:]]/,"",$5);left=$5}
     /Right:/{gsub(/[[:punct:]]/,"",$5);right=$5}
     END {print left ORS right}'
) | dbar -max 100 -min 0 -s '|' -l 'Vol'

詳細については、README.dbar を参照してください。

gdbar

Gdbar および dbar は、100% の値に基づいて進行状況バーを出力しますが、ここでは完全にグラフィカルです。Gdbar には、dbar と同じオプションといくつかの追加オプションがあります。オプションの一部は次のとおりです:

  • -fg 前景を設定します。
  • -bg 背景を設定します。
  • -w/-h は幅と高さをそれぞれ設定します。

コード例:

~/test
#!/bin/sh

(
amixer get Master | \
awk '/Left:/{gsub(/[[:punct:]]/,"",$5);left=$5}
     /Right:/{gsub(/[[:punct:]]/,"",$5);right=$5}
     END{print left ORS right}'
) | gdbar -max 100 -min 0 -l 'Vol ' -bg '#777777' -fg '#00ff00' -ss '2' | dzen2 -p -l '1' -w '150' -y '100' -x '100' -ta c -sa c -e 'onstartup=uncollapse;button3=exit'

詳細については、README.gdbar を参照してください。

ノート: Gdbar は、dzen >= 0.7.0 と組み合わせた場合にのみ役立ちます。

その他

他のガジェットに関する情報は こちら を参照して下さい。

参照

フォーラムスレッド