「Dzen」の版間の差分
(スタイル修正) |
Kusanaginoturugi (トーク | 投稿記録) (校正(でき・出来)) |
||
(6人の利用者による、間の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]] などのウィンドウマネージャとよく合いますが、ウィンドウマネージャならどれでも動作します。 |
||
== インストール == |
== インストール == |
||
− | + | 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 フォントパスにあるフォントしか使いません。詳しくは[[フォント#古いアプリケーション]]を見て下さい。 |
+ | Dzen は [[X Logical Font Description]] に従って X フォントパスにあるフォントしか使いません。詳しくは [[フォント#古いアプリケーション]] を見て下さい。 |
=== Dzen と Conky === |
=== Dzen と Conky === |
||
− | [[Conky]] から直接情報を受け取りステータスバーとして出力する事が |
+ | [[Conky]] から直接情報を受け取りステータスバーとして出力する事ができます。これは公式の版でも、より機能を制限した {{AUR|conky-cli}} でも可能です。 |
− | 以下の例は平均負担値を赤字で、現在時刻を前景色で出力します |
+ | 以下の例は平均負担値を赤字で、現在時刻を前景色で出力します: |
{{hc|~/.conkyrc|<nowiki> |
{{hc|~/.conkyrc|<nowiki> |
||
55行目: | 101行目: | ||
=== クリッカブルエリアとポップアップ === |
=== クリッカブルエリアとポップアップ === |
||
+ | 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 |
|
− | + | #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.</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. |
+ | * [http://robm.github.io/dzen/ 公式ウェブサイト], [https://github.com/robm/dzen/wiki/_pages wiki], [https://github.com/robm/dzen ソース] |
'''フォーラムスレッド''' |
'''フォーラムスレッド''' |
2024年7月10日 (水) 20:58時点における最新版
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 でポップアップを作成する
次のコードは、画面右上に 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 を参照してください。
その他
他のガジェットに関する情報は こちら を参照して下さい。
参照
フォーラムスレッド
- 2007-12-04 - Arch Linux - dzen & xmobar Hacking Thread