2024年7月6日土曜日

アルバムアートをサムネイルに

PPxでは、ファイルだけではなく、フォルダにも任意のサムネイルをつけることができるらしい。 フォルダ内にcover.jpgあるいはfolder.jpgといったアルバムアートがある場合、それをサムネイルにできるようにする。

準備

以下をScriptフォルダに保存。

setalbumart_all.js

やり方

音楽ファイルをフォルダごとにまとめたフォルダで、以下のコマンドを実行。

*script %0Script\setalbumart_all.js

各フォルダ内にあるcover.jpgあるいはfolder.jpgを取得し、それをサムネイルにする。

2024年7月3日水曜日

epubのカバー画像をサムネイルに

epubのカバー画像をサムネイルにする。Extend convert Susie Plug-in等、やり方は他にも色々ありそうだが、今回は*setentryimageとスクリプトの組み合わせで行う。

準備

以下の二つのスクリプトをScriptフォルダに保存。

getcoverimage.js

setcoverimage_all.js

epubの解凍には7zipを利用する。7zipをインストールしていない場合はインストールしておく。また、getcoverimage.jsの7zipに関する箇所を各自の環境にあわせて書き換えておく。

やり方

エントリ表示形式を、画像が含まれるものに変更する。とりあえずは、[;]で表示されるメニューから「サムネイル1」を選んでおけばいい。こうしないと、以下の過程で「no image mode」と言われてしまう。

カーソル下のepubファイルのサムネイルを変更したい場合は、以下のコマンドを実行する。

*setentryimage %*script(%0Script\getcoverimage.js,%FCD)

カレントフォルダのすべてのepubファイルのサムネイルを変更したい場合は、以下を実行する。まあまあ時間がかかるので、大量にファイルがある場合は注意。

*script %0Script\setcoverimage_all.js

追記2024-10-18

マークファイルのサムネイルを変更するスクリプトを作った。ES6で記述。

2024年4月25日木曜日

xyzzyでスクリーンショット

xyzzyで

  • スクリーンショットを撮ってあらかじめ指定したディレクトリに保存
  • 保存したファイルのパスを貼り付け

という処理ができるようにする。winshotを利用。

準備

以下をsite-lispフォルダに保存。winshotのパスや保存フォルダは各自読み替えてください。

.xyzzyに以下を追記

(load-library "screenshot")    

やり方

M-x screenshot

スクリーンショットしたい箇所を矩形選択

スクリーンショットが保存され、かつそのパスが貼り付けられる

2024年4月9日火曜日

一行編集でエイリアスを登録

一行編集を利用し、実行ファイルを容易にエイリアスに登録できるようにする。

準備

まずは、実行ファイルを羅列した補完候補ファイルを用意する。作り方は色々あるが、*whereisを使うのが簡単。

*whereis -mask1:"a:d+;.exe" -path:"D:\bin" -dir:on -subdir:on -listfile:%0data\execpath -name

以下を編集して取込。

_Command    = {    ; ユーザコマンド・関数
setalias    = *string o,strings=%*input("" -title:"実行ファイルを選択してください" -mode:u,e -leavecancel -k:"*completelist -file:%%0data\execpath -match:6 -detail:""user"" %%: *mapkey use,K_exesearch")
 *string o,valuename=%"エイリアス名を登録してください"%{%*name(X,"%so"strings"")%}
 *alias %so"valuename"=%so"strings"
}

以下のコマンドを実行する。

*setalias

2024年4月7日日曜日

テキストファイルで画像ファイルを扱いたい

MV_click    = {    ; PPv メイン窓
LD_SPC    ,*ifmatch 0,0%*selecttext %: %K"@Q %: *stop
    *ifmatch "o:e,a:d-",%*selecttext %: *ppv %*selecttext %: *stop
    %K"@Q
}

今回は、テキストファイルで画像ファイルを扱う方法のアイデア。

画像ファイルのパスを挿入したテキストファイルをPPvで開き、[I]でキャレットモードに。ファイルパスにキャレットをあわせ、ダブルクリックする。

すると、ファイルパスの内容が別のPPvで表示される。

2024年3月17日日曜日

ユーザコマンドでパスによる判別実行

特定のファイル/フォルダをパスで判別し、特定のソフトに投げられるようにする。例えばMusicフォルダ以下のフォルダは音楽再生ソフトに投げ、Pictureフォルダ以下のフォルダは画像再生ソフトに投げる、というように。 かつては、「ポチエス」名称による関連付け専用版や、fenrirの機能を使って皆が実現してたやつですね。

準備

以下を編集して取込。

_Command = {
pathdetect = *ifmatch "/D:\\Data\\Music/",%*arg(1) %: %Ob D:\bin\AIMP5\AIMP.exe  %*arg(1) %: *stop
 *ifmatch "/D:\\Data\\Picture/",%*arg(1) %: %Ob D:\bin\NeeView\NeeView.exe %*arg(1) %: *stop
 %Z %*arg(1)
}

やり方

*pathdetect %FCD

とすれば、パスに応じて違うソフトに投げることができる。今回の例であれば、D:\Data\Music以下のフォルダはAIMP5に。D:\Data\Picture以下のフォルダはNeeViewで開くことになる。

2024年3月9日土曜日

一行編集でfenrirっぽいディレクトリ移動

一行編集で、編集中のディレクトリパスの階層を、上がったり下がったりできるようにする。fenrirの挙動を参考にした。

準備

以下をScriptフォルダに保存する。

以下を編集して取込。

-|K_listmode=

K_listmode = {
ENTER    ,*ifmatch -1,%*sendmessage(%N-L,392,0,0) %: %K"@DOWN @ENTER" %: *stop
    %K"@ENTER"
LEFT    ,*dirmode %*name(D,%*getcust(_User:dirpath))
RIGHT    ,*ifmatch -1,%*sendmessage(%N-L,392,0,0) %: %K"@DOWN"
    *dirmode %*name(CD,"%*edittext",%*getcust(_User:dirpath))
}

_Command    = {
dirmode	= *setcust _User:dirpath=%*arg(1)
	*completelist -file:"%*script(%0Script\getsubdir.js,%*arg(1))" -history:e
	*replace ""
jump2listpath    = *setcust _User:dirpath=
    *string o,name=%*input("" -title:"jump2pathlist" -mode:e -k:"*completelist -file:%%*arg(1) -match:6  %%: *mapkey use,K_listmode")
    *ifmatch "o:e,a:d","%so"name"" %: *jumppath "%so"name"" %: *stop
    *ifmatch !0,0%*getcust(_User:dirpath) %: *jumppath "%*getcust(_User:dirpath)\%so"name""
}

やり方

ディレクトリパスを羅列した、以下のようなファイルを用意する。手動で作ってもいいし、zoxideやfenrirscanを利用して作ってもいい。

D:\bin
D:\Data
D:\work
C:\Program Files\7-Zip
C:\Program Files\Ablaze Floorp
C:\Program Files\AMD
C:\Program Files\BraveSoftware
C:\Program Files\Calibre2
C:\Program Files\Common Files
C:\Program Files\CrystalDiskInfo
C:\Program Files\EBWin4(x64)
C:\Program Files\Epic Games
C:\Program Files\Git
C:\Program Files\Internet Explorer

作成したファイルのパスを引数にして、*jump2listpathを実行する。

*jump2listpath %0data\path

すると、このファイルを補完候補リストとした一行編集が起動する。

キーバインドは以下の通り。

  • [RIGHT] サブディレクトリ表示
  • [LEFT] 階層を一つ上へ
  • [ENTER] パスをアクティブなPPcで開く

参考