あいさつ
PPxをあふっぽくする以来、2画面PPxに関連した記事をいくつか書いてきた。やりたかったことは大方できた気がするので、今回はそのまとめ。
自分で常用できるレベルまで、PPxをあふっぽくしてみようと思う。
事前の準備
- Paper Plane xUI Message Module
- Paper Plane xUI Window Module
- Paper Plane xUI Text Module
- Paper Plane xUI Script Module
の4つをTORO's Libraryからダウンロードし、それぞれに入っている
- PPXMES.DLL(64bit版ならばPPXMES64.DLL)
- PPXWIN.DLL(64bit版ならばPPXWIN64.DLL)
- PPXTEXT.DLL(64bit版ならばPPXTEXT64.DLL)
- PPXSCR.DLL(64bit版ならばPPXSCR64.DLL)
をPPxフォルダに保存する。
また、PPxフォルダにScriptという名前で新しいフォルダを作成する。
2画面にする
X_win = { ; 表示形式全般 *layout CA = B000001001 CB = B000001001 } X_combo = 1 ; 複数 PPc を一体化 0:しない 1:する X_combos = B0000000000001000010000000001001,B000 ; 一体化時の表示形式 CC_log = _WHI,_BLA ; 共用ログ、アドレスバー(文字,背景)_AUTO可 XC_mvLR = 4,1,6,B0100,6,B100 ; [←][→] XC_mvUD = 0,1,4,B0000,5,B010 ; [↑][↓] X_dock = { ; バー割当て(要IE4以降)*layout,*dock CBA_B = XC_inf,100,388 } XC_celD = _AUTO,_AUTO,1,7 ; エントリ表示 文字,背景,カーソル,マーク C_eInfo = _AUTO,_DRED,_AUTO,_DBLA,_DBLU,_DCYA,_DBLA,_BRO,_GRE,_WHI,_AUTO,HC00000,_AUTO, _SBLU,_BRO,_CYA,_GRE XC_stat = _AUTO,_AUTO,0,0,I"Mark:" mn i"/" ms8 S1 L I"Entry:" e0 i"/" E0 L Df8 i"(" Dt8 i")" X_dlf = B1000100,B0,B10000000 ; ドライブのリスト :,メニュー \[L],ジャンプ [1] X_inag = 0 ; 現在窓以外はグレー調に 0:しない 1:する ;エントリ状態の選択色を青色、ハイライト表示を緑色に C_eInfo = _AUTO,_DRED,_AUTO,_DBLA,_DBLU,_DCYA,_DBLA,_BRO,_GRE,_WHI,_AUTO,H804000,_AUTO,H404000,_BRO,_CYA,_GRE
PPxのカスタマイズの方法はいろいろあるが、一番手っ取り早いのが「編集して取込」。
上記をクリップボードにコピーしたあと、メニューバーからツール - カスタマイズを選択、あるいはPPCUSTW.EXEを実行することにより、カスタマイザーを起動する。
ファイルタブの「編集して取込」をクリック。すると、クリップボードの文字列が貼り付けられた状態で「編集して取込」ダイアログが出る。
試験ボタンを押して、エラーが出ないことを確認してからOKボタンを押す。すると、コピペした設定がPPxに反映される。
誰かが作った設定を使うだけなら、PPxは他のどのファイラよりも楽なのだ。ちなみに慣れてきたら、個々の設定ごとにテキストファイルを作って管理すると便利(PPxの設定ファイルを管理する)。
たいていの設定はすぐに反映されるが、一体化設定については再起動しないと反映されない。なので、再起動しよう。
これにより、
- 窓の一体化
- スクロールバーの位置変更
- ログの表示
- ログの背景色と文字色の変更
- 情報行を下部に
- ステータス行を少し短くする
- 現在窓以外をグレー調にしない
- 親ディレクトリに戻る動作でドライブリストを表示しない
- 左右逆カーソルで親ディレクトリに移動
- 移動方向が隣接窓側なら窓移動
- ファイル窓の最上下位置でカーソルループ
- カーソルの形状は文字/背景色の反転
- 検索時の背景色を緑色に
となる。
ついで、";"を押して表示形式メニューを出し、詳細1(&D)(英語のままなら&Details1)を選択。これで、窓幅一杯の一列表示になる。
キーバインドの設定
ファイラ側(PPCW.EXE)のキーバインドです。
Scriptフォルダに、
- MarkCursor.js
- MarkCursorR.js
- afx_o.js
- afx_shift_o.js
- go_mark.js
- go_markR.js
を保存してから、以下を編集して取込(スクリプトはこの記事の一番最後にあります)。
KC_main = { ; PPcメイン窓 Q = @&F4 F = @\J \F ,*sortentry 17, 0, 1,B11000, \T ,*sortentry 11, 0,-1,B11000, L = @\L HOME = @\HOME ^' ' ,*script %0\Script\MarkCursor.js ^\SPACE ,*script %0\Script\MarkCursorR.js O ,*script %0\Script\afx_o.js \O ,*script %0\Script\afx_shift_o.js ^V_HBA ,*script %0\Script\go_mark.js ^\V_HBA ,*script %0\Script\go_markR.js }
これで
- Q でPPxを終了(両方の窓を消す)
- F で検索
- Shift+F でファイル名ソート
- Shift+T で時間逆順ソート
- L でドライブ変更
- Home でマークファイル反転
- Ctrl+Space で直上のマークからカーソル位置までマーク
- Ctrl+Shift+Space で 直下のマークからカーソル位置までマーク
- O で現在窓を反対窓と同パスに
- Shift+O で反対窓を現在窓と同パスに
- Ctrl+: でマークファイルにカーソルをあわせる
- Ctrl+Shift+: でマークファイルにカーソルをあわせる(逆順)
というキーバインドになる。
関連リンク
ビューアの設定とキーバインド
ビューア側(PPVW.EXE)の設定とキーバインドです。
Scriptフォルダに
- picture_view.js
- text_view.js
- ChangePPvSize.js
を保存してから、以下を編集して取込(スクリプトはこの記事の一番最後にあります)。
X_vzs = 0 ; 選択する範囲を選択方向に応じて変更 0:しない 1:する XV_drag = 2,1,3 ; ドラッグ開始ボタン スクロール,選択,窓移動 XV_imgD = { ; 拡大縮小設定([=],*zoom,*reducemode) PPvID = 倍率、縮小方法 ;倍率: -1:窓枠に合わせる -2:窓より小→等倍、大→縮小 0:100% 1-10000:%倍率 ;縮小方法: 1:白地に黒文字 2:黒地に白文字 3:カラー高速 4:混合 VA = -2,4 VB = -2,4 } KV_main = { ; PPvメイン窓 LEFT ,*execute C%*regexp(%n,"/.(.)/$1/"),*cursor 6, -1 %: %KC%*regexp(%n,"/.(.)/$1/")"@N" RIGHT ,*execute C%*regexp(%n,"/.(.)/$1/"),*cursor 6, 1 %: %KC%*regexp(%n,"/.(.)/$1/")"@N" UP ,%KC%*regexp(%n,"/.(.)/$1/") "@UP @N" DOWN ,%KC%*regexp(%n,"/.(.)/$1/") "@DOWN @N" SPACE ,%KC%*regexp(%n,"/.(.)/$1/") "@SPACE@N" \SPACE ,%KC%*regexp(%n,"/.(.)/$1/") "@\SPACE@N" ENTER ,%K"@Q" %: *focus #%*findwindowclass("PaperPlaneCombo") Q ,%K"@Q" %: *focus #%*findwindowclass("PaperPlaneCombo") \ENTER ,*script %0\Script\ChangePPvSize.js &ENTER ,*togglewinsize } E_cr = { ; [Enter]用判別 :JPEG , :BMP , :XJS , :XVBS , PNG ,*script %0\Script\picture_view.js JPG ,*script %0\Script\picture_view.js JPEG ,*script %0\Script\picture_view.js BMP ,*script %0\Script\picture_view.js GIF ,*script %0\Script\picture_view.js TXT ,*script %0\Script\text_view.js CPP ,*script %0\Script\text_view.js H ,*script %0\Script\text_view.js C ,*script %0\Script\text_view.js L ,*script %0\Script\text_view.js SCM ,*script %0\Script\text_view.js INI ,*script %0\Script\text_view.js VBS ,*script %0\Script\text_view.js JS ,*script %0\Script\text_view.js PY ,*script %0\Script\text_view.js HOWM ,*script %0\Script\text_view.js CFG ,*script %0\Script\text_view.js }
PPcから、画像ファイルやテキストファイル上でEnterを押した時に、
- 左窓で画像ファイルを開いたら右窓に表示
- 右窓で画像ファイルを開いたらウィンドウ全体表示
- テキストファイルならどちらの窓で開いてもウィンドウ全体表示
するように。
また、ビューア上での挙動が
- 左クリックで文字列を選択
- ビューアを閉じた時にフォーカスがPPcに移るように
ビューア上でのキーバインドが
- Enterでビューアを閉じてPPcにフォーカスを移す
- Qでビューアを閉じてPPcにフォーカスを移す
- カーソルキーで別ファイルを表示
- Spaceでマーク
- Shift+Spaceで逆順マーク
- Shift+Enterで反対窓表示とウィンドウ全体表示トグル
- Alt+Enterで最大化トグル
するようにしてます。
関連リンク
その他
色
僕があふの時に使ってた
C_ext = { ; 拡張子色 EXE = _RED LNK = H0080FF BMP = _MAG JPG = _MAG JPEG = _MAG GIF = _MAG TIF = _MAG ICO = _MAG PNG = _MAG MPG = H8000FF MPEG = H8000FF MP4 = H8000FF AVI = H8000FF TS = H8000FF MP3 = H80FF80 WAV = H80FF80 WMA = H80FF80 FLAC = H80FF80 OGG = H80FF80 M3U = H808040 ASF = H808040 ASX = H808040 TXT = _CYA HLP = _CYA CSV = _CYA MAC = _CYA CHM = _CYA DOC = H40FF00 XLS = H40FF00 HTM = H40FF00 HTML = H40FF00 URL = H40FF00 INI = H40FF00 CFG = H40FF00 DAT = H40FF00 DEF = H40FF00 KEY = H40FF00 DLL = _DMAG SYS = _DMAG REG = _DMAG INF = _DMAG BAK = H004080 OLD = H004080 TMP = H004080 IMG = H8080FF ISO = H8080FF LZH = HFFFF80 ZIP = HFFFF80 CAB = HFFFF80 TAR = HFFFF80 RAR = HFFFF80 GZ = HFFFF80 TGZ = HFFFF80 7Z = HFFFF80 }
サムネイル表示のトグル
Shift+"."を押すことで、サムネイル表示と詳細表示をトグルするようにする。以下を編集して取込。
KC_main = { ; PPcメイン窓 '>' ,*RotateExecute id,"*customize XC_mvLR=4,1,4,B0000,0,B001 %%: *viewstyle サムネイル1(&T) %%: %%M?layoutmenu,!P","*customize XC_mvLR=4,1,6,B0100,6,B100 %%: *viewstyle 詳細1(&D) %%: %%M?layoutmenu,!P" }
表示形式メニューが英語のままなら、以下でたぶんおk
KC_main = { ; PPcメイン窓 '>' ,*RotateExecute id,"*customize XC_mvLR=4,1,4,B0000,0,B001 %%: *viewstyle &Thumbnails1 %%: %%M?layoutmenu,!P","*customize XC_mvLR=4,1,6,B0100,6,B100 %%: *viewstyle &Details1 %%: %%M?layoutmenu,!P" }
壁紙変更メニュー
画像閲覧中に"_"を押すことで、壁紙変更メニューが出るようにする。
以下を編集して取込。
-|M_WallPaper = M_WallPaper = { ** comment ** PPC全体の壁紙にする(&1) = *customize X_bg:P_ca=%FDC %: *customize X_bg:P_cb=%FDC %: *customize X_bg:T_ca=20 %: *customize X_bg:T_cb=20 PPC[&A]の壁紙にする = *customize X_bg:P_ca=%FDC %: *customize X_bg:T_ca=1 PPC[&B]の壁紙にする = *customize X_bg:P_cb=%FDC %: *customize X_bg:T_cb=1 -- = PPC全体の壁紙をナシにする = *customize X_bg:-|P_ca= %: *customize X_bg:-|P_cb= PPC[A]の壁紙をナシにする = *customize X_bg:-|P_ca= PPC[B]の壁紙をナシにする = *customize X_bg:-|P_cb= -- = 壁紙の明るさを調整する = *customize X_bg:Bright=%"明るさ(Bright)"%{%*getcust(X_bg:Bright)%} } KV_img = { ; PPcメイン窓 '\' ,%M_WallPaper,1 }
外部ソフトからパスを変更
fenrirからPPxにパスを渡す方法。
Ctrl+カーソル左で左窓に。Ctrl+カーソル右で右窓にパスを渡したい時は次のようにする。
2left.txt
[.***; PPx左窓|D:\bin\ppx\PPCW.EXE -r /k *execute C#L,*jumppath "%P" /entry %: *focus C#L ]
2right.txt
[.***; PPx右窓|D:\bin\ppx\PPCW.EXE -r /k *execute C#R,*jumppath "%P" /entry %: *focus C#R ]
スクリプト
PPcキーバインド関連
MarkCursor.js
//!*script // 直上のマークからカーソル位置まで全てマーク var lastEntry,firstEntry; lastEntry = PPx.EntryIndex; // カーソル位置 // 直上のマーク位置を取得 for (var i = lastEntry; i > 0; i--) { if (PPx.Entry(i).Mark == 1) { firstEntry = i; break; } } // 直上にマークが無ければ終了 if (!firstEntry) PPx.Quit(); // カーソル位置までマーク for (var i = firstEntry; i < lastEntry + 1; i++) { PPx.Entry(i).Mark = 1; }
MarkCursorR.js
//!*script // 直下のマークからカーソル位置まで全てマーク var firstEntry,lastEntry; firstEntry = PPx.EntryIndex; // カーソル位置 // 直下のマーク位置を取得 for (var i = firstEntry; i < PPx.EntryAllCount; i++) { if (PPx.Entry(i).Mark == 1) { lastEntry = i; break; } } // 直下にマークが無ければ終了 if (!lastEntry) PPx.Quit(); // カーソル位置までマーク for (var i = firstEntry; i < lastEntry; i++) { PPx.Entry(i).Mark = 1; }
afx_o.js
//!*script if (PPx.Extract('%1') == PPx.Extract('%2')){ PPx.Execute("%J %~FCD"); } else { PPx.Execute("%j %2"); }
afx_shift_o.js
//!*script if (PPx.Extract('%1') == PPx.Extract('%2')){ PPx.Execute("%K\"@\'=\'\""); } else { PPx.Execute("*execute ~,*jumppath %1"); }
go_mark.js
//!*script var imark ,imark2; // カーソル位置 // 直下のマーク位置を取得 for (var i = PPx.EntryIndex + 1; i < PPx.EntryAllCount; i++) { if (PPx.Entry(i).Mark == 1) { imark = i; break; } } // 最初のマーク位置を取得 for (var i = 0; i < PPx.EntryIndex; i++) { if (PPx.Entry(i).Mark == 1) { imark2 = i; break; } } // カーソル移動 if (imark != null){ PPx.EntryIndex = imark; } else if (imark2 != null) { PPx.EntryIndex = imark2; } else PPx.Quit();
go_markR.js
//!*script var imark ,imark2; // カーソル位置 // 直上のマーク位置を取得 for (var i = PPx.EntryIndex - 1; i >= 0; i--) { if (PPx.Entry(i).Mark == 1) { imark = i; break; } } // 最後のマーク位置を取得 for (var i = PPx.EntryAllCount - 1; i > PPx.EntryIndex; i--) { if (PPx.Entry(i).Mark == 1) { imark2 = i; break; } } // カーソル移動 if (imark != null){ PPx.EntryIndex = imark; } else if (imark2 != null) { PPx.EntryIndex = imark2; } else PPx.Quit();
PPv関連
picture_view.js
//!*script var ppcid = PPx.Extract('%n').slice(1); // PPc ID if (PPx.GetComboItemCount <= 1){ PPx.Execute('*setcust X_win:V= B000100000'); PPx.Execute('*launch %Oi %0\\PPVW.EXE -bootid:' +ppcid+ ' %*name(CD,"%R","%1")'); PPx.Quit(); } if (PPx.WindowDirection == 1){ PPx.Execute('*setcust X_win:V= B000100100'); PPx.Execute('*launch %Oi %0\\PPVW.EXE -bootid:' +ppcid+ ' %*name(CD,"%R","%1")'); PPx.Execute('*fitwindow %N~,%NV' +ppcid); } else { PPx.Execute('*setcust X_win:V= B000100000'); PPx.Execute('*launch %Oi %0\\PPVW.EXE -bootid:' +ppcid+ ' %*name(CD,"%R","%1")'); PPx.Execute('*fitwindow %*findwindowclass("PaperPlaneCombo"),%NV' +ppcid); }
text_view.js
//!*script var ppcid = PPx.Extract('%n').slice(1); // PPc ID if (PPx.GetComboItemCount == 0){ PPx.Execute('*setcust X_win:V= B000100000'); PPx.Execute('%Oi %0\\PPVW.EXE -bootid:' +ppcid+ ' %*name(CD,"%R","%1")'); } else { PPx.Execute('*setcust X_win:V= B000100000'); PPx.Execute('*launch %Oi %0\\PPVW.EXE -bootid:' +ppcid+ ' %*name(CD,"%R","%1")'); PPx.Execute('*fitwindow %*findwindowclass("PaperPlaneCombo"),%NV' +ppcid); }
ChangePPvSize.js
//!*script ppvwidth = PPx.Extract("%*windowrect(,w)"); ppcwidth = PPx.Extract("%*windowrect(" + PPx.Extract('%*findwindowclass("PaperPlaneCombo")') +",w)"); if (ppvwidth == ppcwidth){ PPx.Execute('*fitwindow %N~'); } else { PPx.Execute('*fitwindow %*findwindowclass("PaperPlaneCombo")'); }
追記 2014/05/31
picture_view.jsとtext_view.jsを書庫内でも機能するようにした
追記 2014/06/01
サムネイル表示トグルの箇所を修正
0 件のコメント:
コメントを投稿