2018年12月18日火曜日

PPxをもっとだいなファイラーっぽくする





コンセプト


  • PPxをできるだけだいなファイラーっぽくしてみる
  • 以前、見た目だけなんちゃってだいなっぽくしてみたが、今回はキーバインド、メニューを含めてだいなっぽくしてみた
  • ビューアは埋め込み表示にしている。埋め込まない方法についてはppxmemoの「2画面」以下のページを参照のこと
  • 多分ミスしている箇所あるからしばらくはちょくちょく修正するかも


具体的に


  • キーバインドは「だいなファイラーの紹介 - moewe」にあった「だいなまとめヘルプファイル」を参考にした
  • スクリプト等を使わないとできなさそうなものは未実装
  • メニューはコマンドがない箇所はクリックしても反応しない。オプションはクリックしたらカスタマイザーを起動するようにしている
  • Windowsの壁紙の変更の仕方がわからなかったので、それ関係は実装していない

やり方


  1. PPxをダウンロードし、インストールする。詳しくはppxmemoのintroを
  2. Window Module、Text Moduleをインストールする。詳しくは「ppxmemo - 機能拡張のためのソフトウェア」を
  3. 以下にあるコードをクリップボードにコピーする
  4. カスタマイザーを起動(PPCUSTW.EXEを実行するか、メニューバーから「ツール - カスタマイズ」を選択)し、ファイルタブから「編集して取込」をクリック
  5. クリップボードの内容をペーストした状態で「編集して取込」ウィンドウが開く。左下にある「追加する」のCHECKを外し、OKを押す
  6. PPxを再起動する




_Command = { ; ユーザコマンド・関数
allview = %Oi *ppv -bootid:L %*arg(1) %*name(CD,"%R","%1") %: *wait 100,1 %: *execute C,*capturewindow VL -pane:0 %: *execute C,*pane hide ~
halfview = *ifmatch /.+/,%NVY %: *ppvoption sync %: *stop
 %Oi *ppv -bootid:Y %*name(CD,"%R","%1") %: *ppvoption sync %: *wait 100,1 %: *capturewindow VY -pane:~ -selectnoactive
}
MC_celS = { ; エントリ表示 書式([;]メニュー)
だいな1 = M wF16,5 Z10 S1 T14 s1
だいな2 = M wF16,5 z10 S1 T14 s1
だいな3 = M wF16,5 zK10 S1 T14 s1
}
KC_main = { ; PPcメイン窓
B ,%"Binary menu" %M_bin
E ,%"JMTE|Text edit"%Orib,editor %FDC
I ,*ifmatch "option:e,attribure:d+" %: *countsize
L = @\L
N ,*makefile %${%1\%|%} %: %Ob notepad.exe %${%1\%|%}
P ,*pack "%2%\|%X|" %Or-
W = @F12
V ,*allview -hex
F4 = @D
F6 = @S
F7 = @F
F9 = @\L
F10 = @U
F11 ,*maximize %NC#
F12 ,*shownormal %NC#
ESC = @&F4
HOME = @\HOME
'@' ,%z
9 ,%j#18:\
LEFT ,*cursor 4, -1,6,B0100,6,B0100
RIGHT ,*cursor 4, 1,6,B0100,6,B0100
\ENTER = @Z
',' ,*RotateExecute dynastyle,*viewstyle だいな1,*viewstyle だいな2,*viewstyle だいな3
'~' ,*ifmatch "option:e,attribure:d+" %: *execute ~,*jumppath %FCD
\F1 = @A
\F2 = @I
\F3 = @M
\F8 ,%"JMTE|Text edit"%Orib,editor %FDC
\F9 ,*allview -hex
\F10 ,*pack "%2%\|%X|" %Or-
\HOME ,*unmarkentry
\RIGHT ,*cursor 8,1,13,0,13,0
\LEFT ,*cursor 8,1,12,0,12,0
\DOWN = @PDOWN
\UP = @PUP
^D ,*cursor 4, 1,6,B0100,6,B0100
^E = @UP
^F = @J
^M = @'+'
^S ,*cursor 4, -1,6,B0100,6,B0100
^X = @DOWN
^RIGHT ,*pairrate +1
^LEFT ,*pairrate -1
^DOWN ,*pairrate 50
^\RIGHT = @^RIGHT
^\LEFT = @^LEFT
}
KV_main = { ; PPvメイン窓
ENTER ,*ifmatch "!/VL/",%n %: *stop
 *ifmatch "/CA/",%*extract(C"%%n") %: *closeppx "VL" %: *execute C,*pane newpane CB %%: *focus CA %: *stop
 *ifmatch "/CB/",%*extract(C"%%n") %: *closeppx "VL" %: *execute C,*pane newpane CA %%: *pane swappane %%: *focus CB
SPACE ,*ifmatch "/VL/",%n %: %K-C"@DOWN@N"
BS ,*ifmatch "/VL/",%n %: %K-C"@UP@N"
F11 ,*maximize %NC#
F12 ,*shownormal %NC#
}
KV_page = { ; PPvテキスト(ページ)追加設定
B ,%K"@["
E ,%"JMTE|Text edit"%Orib,editor %FDC
I ,%K"@U"
L ,%K"@]"
T = @TAB
V ,%K"@C"
W ,%K"@;"
F3 = @']'
TAB ,*RotateExecute tbmode,*viewoption -hex,*viewoption -text
HOME ,%K"@^HOME"
\HOME ,%K"@^END"
\UP = @PUP
\DOWN = @PDOWN
^INS = @^C
}
KV_crt = { ; PPvテキスト(キャレット)追加設定
B ,%K"@["
E ,%"JMTE|Text edit"%Orib,editor %FDC
I ,%K"@U"
L ,%K"@]"
T = @TAB
V ,%K"@C"
W ,%K"@;"
F3 = @']'
TAB ,*RotateExecute tbmode,*viewoption -hex,*viewoption -text
HOME ,%K"@^HOME"
\HOME ,%K"@^END"
\UP = @PUP
\DOWN = @PDOWN
^INS = @^C
}
KV_img = { ; PPv画像追加設定
R ,%K-C"@R"
X = @L
Z = @K
HOME ,*RotateExecute id,*zoom 0,*zoom -1
}
E_cr = { ; [Enter]用判別
PNG ,*allview
:JPEG ,*allview
JPEG ,*allview
JPG ,*allview
:BMP ,*allview
BMP ,*allview
GIF ,*allview
TXT ,*allview
CPP ,*allview
H ,*allview
C ,*allview
L ,*allview
EL ,*allview
HTML ,*allview
HTM ,*allview
XYZZY ,*allview
EMACS ,*allview
SCM ,*allview
INI ,*allview
VBS ,*allview
JS ,*allview
PY ,*allview
PYW ,*allview
CFG ,*allview
LOG ,*allview
HOWM ,*allview
}

MC_menu = { ; PPc メニューバー、※指定すると初期メニューがなくなる
ファイル(&F) = %M_menuCFile
編集(&E) = %M_menuCEdit
ツール(&T) = %M_menuCTool
ウィンドウ(&W) = %M_menuCWindow
オプション(&O) = %K"CUSTOMIZE"
ヘルプ(&H) = %M_menuCHelp
}
M_menuCFile = { ** comment **
ドライブ情報...\t = %K"@I"
ドライブ移動(&W)...\t = %K"@\L"
ディレクトリサイズ\t = *countsize
}
M_menuCEdit = { ** comment **
すべて選択...\tK = *markentry
選択解除(&W)...\tShift+K = *unmarkentry
比較マーク\t = %K"@\O"
検索マーク\t = %K"@+"
壁紙に設定\t = 
機能一覧から\t = 
}
M_menuCTool = { ** comment **
ネットワークドライブの割当...\t = %K"NETUSE"
ネットワークドライブの切断(&W)...\t = %K"NETUNUSE"
ファイル検索\t = %K"@^W"
}
M_menuCWindow = { ** comment **
左右を均等にする...\tK = *pairrate 50
壁紙の更新(&W)...\tShift+K = 
}
M_menuCHelp = { ** comment **
目次...\tK = *help
about...\tShift+K = %K"ABOUT"
}

XC_stat = _AUTO,_AUTO,0,0,O"_GRE" R60 C / i"Marked" mn i"/" E0 S1 ms8 S1 i"Bytes" Df8 S1 i"Free" ; ステータス行
X_win = { ; 表示形式全般 *layout
CA = B001001001
CB = B001001001
}
F_mes = -16,0,0,0,400,0,0,0,128,3,2,1,17,MS 明朝 ; 汎用
C_entry = _WHI,_WHI,_CYA,_RED,_CYA, _MAG,_BLU,_GRE,_DWHI, _SBLU,_DBRO,_GRE,_RED,_MAG 
C_eInfo = _AUTO,_DRED,_AUTO,_DBLA,_DBLU,_DCYA,_DBLA,_BRO,_WHI,_WHI,_AUTO,_BLU,_AUTO, H404000,_BRO,_CYA,_GRE 
XC_celD = _AUTO,_AUTO,4,7 ; エントリ表示 文字,背景,カーソル,マーク 
X_inag = 0 ; 現在窓以外はグレー調に 0:しない 1:する
X_combo = 1 ; 複数 PPc を一体化 0:しない 1:する
X_combos = B0000000000001000010010000000000,B000 ; 一体化時の表示形式CC_log = _WHI,_BLA ; 共用ログ、アドレスバー(文字,背景)_AUTO可
X_mpane = 2,2 ; 一体化時の最大同時表示ペイン数,起動時のペイン数
XV_drag = 0,1,3,0 ; ドラッグ開始ボタン スクロール,選択,窓移動,ジェスチャ(右のみ)
  ; 0:使用しない 1:左 2:右 3:中/ホイール 4:左右同時 5:第4 6:第5
XC_dset = { 
* = B0000,0,0,0,-1,-1,B011111,B00000000000000000000000001,disp:"だいな1"
}


2018年12月14日金曜日

PPxでだいなっぽく画像表示(両窓に埋め込み)



前回は反対窓に埋め込み表示をした。今回は両窓にまたがって埋め込み表示をする。

やり方


二画面で、左にA、右にBがある状態を想定している。

_Command = {
allview = %Oi *ppv -bootid:L %*name(CD,"%R","%1") %: *wait 100,1 %: *execute C,*capturewindow VL -pane:0 %: *execute C,*pane hide ~
}

KV_main = { ; PPvメイン窓
ENTER ,*ifmatch "!/VL/",%n %: *stop
 *ifmatch "/CA/",%*extract(C"%%n") %: *closeppx "VL" %: *execute C,*pane newpane CB %%: *focus CA %: *stop
 *ifmatch "/CB/",%*extract(C"%%n") %: *closeppx "VL" %: *execute C,*pane newpane CA %%: *pane swappane %%: *focus CB
UP ,*ifmatch "/VL/",%n %: %K-C"@UP@N"
DOWN ,*ifmatch "/VL/",%n %: %K-C"@DOWN@N"
SPACE ,*ifmatch "/VL/",%n %: %K-C"@SPACE@N"
\SPACE ,*ifmatch "/VL/",%n %: %K-C"@SPACE@N"
}

E_cr = { ; [Enter]用判別
PNG ,*allview
:JPEG ,*allview
JPEG ,*allview
JPG ,*allview
:BMP ,*allview
BMP ,*allview
GIF ,*allview
TXT ,*allview
CPP ,*allview
H ,*allview
C ,*allview
L ,*allview
EL ,*allview
HTML ,*allview
HTM ,*allview
XYZZY ,*allview
EMACS ,*allview
SCM ,*allview
INI ,*allview
VBS ,*allview
JS ,*allview
PY ,*allview
PYW ,*allview
CFG ,*allview
LOG ,*allview
HOWM ,*allview
}


  • 画像ファイルやテキストファイルの上でEnterを押すと、PPvを両窓にわたって埋め込み表示
  • カーソル上下で表示エントリを切り替え
  • もう一度Enterを押すとPPvを閉じる


解説


  1. PPVを起動
  2. 左ペインでPPVを埋め込み表示
  3. 反対窓をhide

というやり方でPPV全画面表示を実現し、閉じるときには

  1. PPVを閉じる
  2. hideしていたタブをnewpaneで開く
  3. もともとの状態に戻るように、PPCのペインの位置をかえたりフォーカスをかえたりする

という手順。少々トリッキー。
起動PPVIDはLに固定。

2018年12月9日日曜日

PPxであふっぽく画像表示(反対窓に埋め込み)



PPXであふっぽく画像表示できるようにする。
何年か前にもしたことがあったが(PPxをさらにあふっぽくする)、そのときは反対窓の上にPPVを重ねて表示するだけだった。今回は埋め込みでやってみる。
埋め込みのメリットは、Alt+Tabの切り替えをしても配置がずれないこと。

やり方


当然一体化型でないと機能しない。試してみたい人は、窓オプションから一体化を選択しよう。

_others = { ; その他設定
SyncViewID = Y
}

_Command = {
halfview = *ifmatch /.+/,%NVY %: *ppvoption sync %: *stop
 %Oi *ppv -bootid:Y %*name(CD,"%R","%1") %: *ppvoption sync %: *wait 100,1 %: *capturewindow VY -pane:~ -selectnoactive
}

E_cr = { ; [Enter]用判別
PNG ,*halfview
:JPEG ,*halfview
JPEG ,*halfview
JPG ,*halfview
:BMP ,*halfview
BMP ,*halfview
GIF ,*halfview
TXT ,*halfview
CPP ,*halfview
H ,*halfview
C ,*halfview
L ,*halfview
EL ,*halfview
HTML ,*halfview
HTM ,*halfview
XYZZY ,*halfview
EMACS ,*halfview
SCM ,*halfview
INI ,*halfview
VBS ,*halfview
JS ,*halfview
PY ,*halfview
PYW ,*halfview
CFG ,*halfview
LOG ,*halfview
HOWM ,*halfview
}



  • 画像ファイルやテキストファイルの上でEnterを押すと、PPvが反対窓に埋め込まれ、連動ビューになる。
  • 連動ビュー時にもう一度Enterを押すと、連動ビューを解除し、PPvを閉じる。


備考


  • PPxスレを参考にした(https://egg.5ch.net/test/read.cgi/software/1476708638/180)。
  • 連動ビュー用のPPVはYに設定してある。
  • *ppvoption sync offのあとにコマンドを続けると、*ppvoption sync oと解釈するみたいなので*ppvoption syncにしている。
  • *waitを挟まないと思ったようにフォーカスがPPCに戻ってくれないようだ。