説明

ディレクトリごとに背景画像を設定する。
XC_dset:%FD\に背景画像を登録し、XC_dset:*で解除する仕組み。

パス限定背景コマンド内でxargsを使用。

使い方

  • 背景に設定(&B)は拡張子別判別メニューに、他はディレクトリ用判別メニューに登録する。
  • 背景に設定(&B)は全パスの背景画像。
    • 背景に設定したい画像にカーソルを合わせて実行。
    • 背景画像を消すときは背景を解除(&Q)を実行。
  • パス限定背景(&B)はそのパス以降の背景画像。
    • 実行すると、画像選択用PPcが起動するので画像を選択。一行編集が出るので確認後ENTER。
    • パス限定背景解除は背景画像を登録したパス上で実行する必要がある。(下層では実行不可)
    • スクリプト版解除コマンドは登録したパスと下層から実行可能。Jscript、es6共用。 作者は使っていないのでメンテナンス予定なし。
  • 明度調整コマンドはおまけ。

設定

【】内は好みで置き換える

;未登録のパスの表示設定
XC_dset = {
* = 【B00000, 0, 5,22, 0,-1,B011111,B01000000000000000000000001】,cmd:"*deletecust X_bg:P_%n %: *deletecust X_bg:T_%n %: *color back"
}

;コンテキストメニュー
背景に設定(&B)  = *setcust X_bg:Path=%FDC
                  *setcust X_bg:Type=20
                  *color back

背景を解除(&Q)  = *setcust X_bg:Path=
                  *setcust X_bg:Type=0
                  *color back

パス限定背景(&B)  = %Obd %0ppcw.exe -single -bootid:t -choose:con8,%%*regexp("%%FD\%%R",/\\/\\\\/g) | xargs -I {} %0ppcw.exe -r -k *diroption -thisbranch cmd "*setcust X_bg:T_%%%%n=20 %%%%: *setcust X_bg:P_%%%%n={} %%%%: *color back" %%: *jumppath -savelocate -entry:"%R" -refreshcache

パス限定背景解除(&Q)  = *ifmatch 0,0%*getcust(XC_dset:%FDN\) %: %"未登録"%I"このパスに背景画像は設定されていません" %: *stop
                        %k"ENTER" %: *diroption -thisbranch cmd ""
                        %K"@F5"
;スクリプト版
パス限定背景解除(&Q)  = *script %'scr'%\deleteBG.js

明度調整(&B) = *string o,xbg=%*getcust(X_bg:B_%n)
               *customize X_bg:B_%n=%*input("%so"xbg"" -title:"明るさ:%so"xbg" [min-max:1-100]" -mode:n)


deleteBG.js

//!*script
/**
* 背景画像の解除
* ・XC_dsetから該当するパスのcmd:設定を削除
*/

var g_bg = (function () {
  // root===upDirの判定漏れ保険
  var i = 30;
  var upDir = PPx.Extract('%FDN');
  var root = PPx.Extract('%*name(H,' + upDir + ')\\');
  do {
    var dset = PPx.Extract('%*getcust(XC_dset:' + upDir + '\\)');
    if (dset !== '') {
      return {
        path: upDir + '\\',
        img: dset.replace(/^.*X_bg:P_%n=(.*)\s%:.*/, '$1')
      };
    }

    upDir = PPx.Extract('%*name(D,' + upDir + ')');
    if (root === upDir) {
      PPx.SetPopLineMessage('!"該当なし');
      PPx.Quit(1);
    }

    i--;

  } while (i !== 0);
})();

PPx.Execute(
  '%"*jumppath ' + g_bg.path + '"%Q"背景画像を解除します%bn' + g_bg.img + '" %:' +
    ' %k"enter" %: *jumppath ' + g_bg.path + ' %: *diroption -thisbranch cmd "" %: %K"@F5"'
);