xpopdic: X Popup Dictionary
What's New?
- 2004-02-12: release version 0.1.3a
- トランザクション毎に接続するモードで、外字フォントを落す
トランザクション時に接続しないバグを修正
- 2004-02-12: release version 0.1.3
- 辞書に無かった場合、単語の活用を元に戻して、もう一度
トライする機能追加
- depth 24bitモード以外で動作するように変更
- スクロール可能状態でクリックカーソルになっている
時に、サーチ画面でクリックできてしまうバグ修正
- 2004-01-28: release version 0.1.2
- Cで完全に書き直して、リリース。
- 外字サポート等、大幅に機能追加。
- 2001-11-28: release version 0.0.6
- 2001-11-17: Xpopdic Homepage was linked by NDTPD Homepage.
- 2001-11-15: build xpopdic Homepage.
xpopdicとは?
- xpopdicとは、X Window system上で動作するNDTP(Network Dictionary
Transfer Protocol)クライアントのひとつです。xpopdicは基本的な動作
として、 cutbufferの"0"とselection "PRIMARY"を一定のインターバルで
pollingして、英単語があった場合に、その訳をpopup windowによって表示させる
シンプルなアプリケーションです。基本的にXlibしか使っていないので、
X Windowが上がっているほとんどのプラットホームで利用可能だと
思います。
- もともとはC++で書かれていたのですが、gccのSTLサポートがまともに
なって、いくつか使えないものがでてきたので、Cで書き直しました。
それにともなって、いろいろと新しい機能を加えました。
アウトライン・フォント、アンチエイリアスのサポート以外はほとんど
欲しい機能は入れました。
機能
xpopdicの持つ機能を以下に列挙します。
- NDTPキャッシュ:
一度検索を行った単語の訳・外字フォントについては、ローカルディスクにキャッシュ
し、次回はネットワーク経由のトランザクションを発生させない。
動かし始めは 外字フォントをダウンロードするのに時間が掛かるが、キャッシュ
してしまった後であれば、訳のみを転送するため高速になる。
- 履歴表示:
訳を表示する際に、その単語を過去に何度引いたことがあるのか、最後
に引いたのかいつかを表示
- 複数のNDTPサーバ サポート:
異なるサーバ上にある複数の辞書を同時に扱うことが可能
- コネクション管理:
トランザクション毎にコネクションをopen/closeできる。
- 単語ブラウジング:
xpopdicのページ内に表示されている英単語をクリックすることで、そ
の単語の訳を検索できる
- サーチ機能:
単語の訳を任意に調べることができる
- 活用チェック(0.1.3で追加):
簡単な活用で変化している単語は元に戻して辞書を検索
スクリーンショット
サポートされているプラットホーム
基本的にXの動くところならば、どこでも動くと思います。開発している環境は
NetBSD/i386です。今のところ以下の環境で動作を確認しています。
- NetBSD 1.6ZC/i386
- Solaris 8/sun4u
- Debian GNU/Linux
- Red Had Linux 9(Thanks: 太田純さん)
- MacOS 10.x w/ X11(Thanks: こーさく)
インストール
- 必要とされるライブラリ: X関連(Xt, X11)のみ
- debianの人用: xpopdic_0.1.3-2_i386.deb
% dpkg -i xpopdic_0.1.3-2_i386.deb
- それ以外用: xpopdic-0.1.3a.tar.gz
% ./configure
% make
# make install (super-userにて)
- configureでXのPathが見つからない場合
% ./configure --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
% make
# make install (super-userにて)
操作方法
- マウスで引きたい単語を選択します。自動的にselectionに入らない
場合は、cutのアクションをする必要があります。Safari/Mozilla等も
cutしないとダメな場合があるようです。kterm等のterminal系は、
選択した瞬間にcutbufferに入るので、選ぶだけです。
- 大概の操作はマウス無しで使えます。お勧めの方法はpopupの位置を画面の
右上とかに固定してしまって使うことです。訳の中にさらなるエントリー
へのポインタがある場合は、今のバージョンではクリックしないとダメすが、
そのうち番号でもふってしまって、番号を押すことで選択するように
しようかと思っています。
- 現状では、終了時あるいは窓を閉じたときに検索履歴とキャッシュを
ディスクに保存するようになっています。
- resizeと移動はサポートしてません。今後するかもしれません。
ページ移動操作
u: 上のページへ移動
n: 次のページへ移動
p: 前のページへ移動
[1-9]: リストされた中で指定したページへ移動
^C-[0-9]: リストされた中で10-19番のページへ移動
Return: 検索
スクロール操作
j: 1行スクロール
k: -1行スクロール
Space: ページダウン
Shift-Space: ページアップ
ウィンドウ操作
q: ウィンドウを閉じるが、xpopdicは継続して動作
Q: ウィンドウを閉じ、xpopdicも同時に終了
^C-c: ウィンドウを閉じ、xpopdicも同時に終了
検索文字列操作
^C-b: カーソルの一つ前の文字へ移動
^C-f: カーソルの一つ先の文字へ移動
^C-a: 文字列の先頭へ移動
^C-e: 文字列の最後へ移動
^C-d: カーソルの位置の文字を削除
^C-k: カーソルから最後まで削除
^C-u: カーソルから先頭まで削除
Left: カーソルの一つ前の文字へ移動
Right: カーソルの一つ先の文字へ移動
Backspace: カーソルの一つ前の文字を削除
Delete: カーソルの位置の文字を削除
オプション
-v バージョンを表示
-d デバッグモードにする
-m コマンドラインのテストモードにする
-p Titleとなる単語を表示する
-q 訳表示の真上にある辞書名やエントリ番号などの情報を
を表示しない。
-z 影を付ける
-c NDTPのキャッシュを行わない
-l 訳の検索結果を表示せずに、1番目の訳を表示する
-a 検索の度に、辞書をopen/closeする。つまりNDTP経由の
場合は、その度にセッションが終了する
-Z 単語のブラウジングをやめる
-D arg 辞書リストの指定。基本的には、カンマで区切った辞書の
羅列である。辞書名にallがある場合は、そのサーバにある
辞書全てを意味する。辞書名は数字のインデックスによる
指定か、辞書のIDによる指定になる。
例として以下のようなものになる。
例1) -D all@ndtpserver
例2) -D 1@serverA,readers/readers@serverB
-C arg キャッシュディレクトリの指定
-i arg バッファを調べるポーリング・インターバルの指定
-x arg 固定するx座標。指定しない場合はマウスの位置のx座標。
-y arg 固定するy座標。指定しない場合はマウスの位置のy座標。
-w arg popup windowの幅
-h arg popup windowの高さ
-b arg popup windowのボーダーラインの幅
-O arg 訳を表示する領域とpopup windowの間の左右のマージン
-M arg 訳を表示する領域とpopup windowの間の上下のマージン
-j arg 訳を表示する領域のボーダーラインの幅
-B arg バックグラウンドの色
-C arg popup windowのボーダーの色
-K arg 訳を表示する領域のバックグラウンドの色
-J arg 訳を表示する領域のボーダーラインの色
-t arg タイトルの単語に使うフォント
-T arg タイトルの単語に使うフォントの色
-n arg 辞書名に使うフォント
-N arg 辞書名に使うフォントの色
-s arg 左上のステータス部に使うフォント
-S arg 左上のステータス部に使うフォントの色
-f arg 訳を表示する領域のフォント
-w arg 訳を表示する領域のWideキャラクタ用フォント
-F arg 訳を表示する領域のフォントの色
-L arg 訳を表示する領域のフォントのクリックされた時の色
-G arg 外字ビットマップに使う色
-P arg 次の訳へのエントリーポインタの色
Xリソース
XPopDic*NoTitle: (Boolean) タイトルの表示
XPopdic*NoSubInfo: (Boolean) subinfo(-q)の有無
XPopdic*Shadow: (Boolean) 影の有無
XPopdic*NDTPCache: (Boolean) NDTPキャッシュを使うか
XPopdic*ListView: (Boolean) 訳のリストを行うか
XPopdic*AlwaysOpen: (Boolean) 辞書を常に開き放しにするか
XPopdic*Browsable: (Boolean) ブラウズ機能を使うか
XPopdic*Dictionary: (String) 辞書の指定
XPopdic*NDTPCacheDir: (String) NDTPのキャッシュディレクトリ
XPopdic*Interval: (Integer) pollingインターバル
XPopdic*X: (Integer) 固定X座標
XPopdic*Y: (Integer) 固定Y座標
XPopdic*Width: (Integer) 幅
XPopdic*Height: (Integer) 高さ
XPopdic*BDWidth: (Integer) ボーダーの幅
XPopdic*BodySideMargin: (Integer) 左右のマージン
XPopdic*BodyTopBottomMargin: (Integer) 上下のマージン
XPopdic*BodyBDWidth: (Integer) 訳領域ボーダーの幅
XPopdic*TitleFont: (Font) タイトルのフォント
XPopdic*DictNameFont: (Font) 辞書名のフォント
XPopdic*StatusFont: (Font) ステータス表示のフォント
XPopdic*BodyFont: (Font) 訳領域のフォント
XPopdic*BodyWideFont:: (Font) 訳領域のWideキャラクタフォント
XPopdic*BackgroundColor: (Color) バックグラウンドの色
XPopdic*BorderColor: (Color) ボーダーラインの色
XPopdic*BodyBackgroundColor: (Color) 訳領域のバックグラウンドの色
XPopdic*BodyBorderColor: (Color) 訳領域のボーダーラインの色
XPopdic*TitleColor: (Color) タイトルのフォントの色
XPopdic*DictNameColor: (Color) 辞書名のフォントの色
XPopdic*StatusColor: (Color) ステータス表示のフォントの色
XPopdic*BodyFGColor: (Color) 訳領域のフォントの色
XPopdic*ClickColor: (Color) 訳領域フォントのクリック時の色
XPopdic*GaijiColor: (Color) 外字フォントの色
XPopdic*PointerColor: (Color) エントリポインタの色
助け求む
- 素敵な配色、素敵なレイアウト、素敵なパーのビットマップを求めてます。
サポートしたいもの
バグ
- xpopdicは常に一番上にraiseしようとしますが、
Window Managerとその設定によっては
勝てない場合があるようです。特にマウスの下のwindowはauto-raise
みたいな設定では負けてしまうようです。
昔のファイル
更新履歴
- 2004-02-07: release version 0.1.3a
- version 0.1.3をリリース。
- 操作方法に、いくつか追加。修正。
- バグの項追加。
- MacOS10対応追加。
- 2004-02-06:
- 2004-01-28:
- version 0.1.2をリリースと同時に大幅に
本ページ書き直し。
See Also
last modified: Fri Feb 13 12:03:57 JST 2004
Hideaki Imaizumi <hiddy@sfc.wide.ad.jp>
.