2018年10月31日水曜日

PPxをランチャとして使う④ファイルパスの補完



ソフトウェアを、エイリアスではなくファイルパスで実行したい場合がある。

例えばたまに使うソフトウェアだ。一々エイリアスを登録するほどでもないが、パスを登録しておけば、ファイラでフォルダを潜って実行ファイルを探す手間が省ける。

これを一行編集で行うのに必要な手順は以下。

  • 補完ウィンドウを表示する設定にする
  • 既存の補完候補ファイルに追記する、あるいは新規に補完候補ファイルを作成して読み込ませる

まずは、補完の仕組みについて解説しよう。


補完について


補完ウィンドウと補完候補ファイル





X_flstで補完ウィンドウの表示設定ができる。これは2枚表示の例。僕の場合は

X_flst = 3,2 ; エントリ補完結果一覧 0:無 1:有 2:OS版 3~5:動的,0:先頭 1:部分

としている。
補完ウィンドウの内容だが、ヘルプによれば

概ね「ヒストリの一覧」→「補完候補ファイルの一覧」→「カレントディレクトで該当するファイル名の一覧」の順で表示します。(状況によって順番が変わります。)

とのこと。

補完候補ファイルは、
  • PPXUPATH.TXT  ファイル名・パスの候補用
  • PPXUCMD.TXT  コマンドの候補用
  • PPXUMASK.TXT  マスクの候補用

の3つが存在する。
一行編集でどの補完ファイルを使うかは、%eで設定可能。一行編集起動後は、*editmodeで設定を変更できる。

補完候補ファイルの登録


自作の補完リストは、上の3つのファイルを編集し、追記することで登録できる。
また、適当なファイルを作り、それを*completelistで取り込むことでも可能。
その場合はFIRSTEVENTに登録し、一行編集起動時に読み込むようにする。

K_edit = { ; 一行編集/PPe兼用
FIRSTEVENT ,*completelist /set /file:%0l_cmd.txt
}

実行ファイルリストの登録


では、実際に自作の補完リストを登録してみよう。

テキストファイルの作成


まずはPPXフォルダに、適当なテキストファイルを作成。そこに登録したいパスを打ち込む。

l_cmd.txt

D:\bin\afxw\AFXW.EXE
D:\bin\AIMP4\AIMP.exe
D:\bin\AU3_Spy.exe
D:\bin\azpt\AzPainter2.exe
D:\bin\CatMemoNote\CatMemoNote.exe
D:\bin\EasyShot\EasyShot.exe
D:\bin\emacs\bin\runemacs.exe
D:\bin\emacs\bin\emacs.exe
D:\bin\Everything\Everything.exe
D:\bin\exiftool\exiftool.exe
D:\bin\FileSum\FileSum.exe
D:\bin\foobar2000\foobar2000.exe
D:\bin\H2k6\H2k6.exe
D:\bin\KOEITECMO SYSTEM VIEWER\KTSYSVIEW.exe
D:\bin\leeyes\Leeyes.exe
D:\bin\LiName\LiName.exe
D:\bin\mp3DC\mp3DirectCut.exe
D:\bin\MP3Tag\Mp3tag.exe
D:\bin\NeeView\NeeView.exe
D:\bin\nyanfi\NyanFi.exe
D:\bin\PCView\PCView.exe
D:\bin\pdfas\pdf_as.exe
D:\bin\radikool\Radikool.exe
D:\bin\rapture\rapture.exe
D:\bin\SETZER\SETZER.exe
D:\bin\Smahey\SmaHey.exe
D:\bin\sumatra\SumatraPDF.exe
D:\bin\STEP_K\x64\SuperTagEditor.exe
D:\bin\WinMerge\WinMerge.exe
D:\bin\WinMerge\WinMergeU.exe
D:\bin\xopsolt19f2\xopsolt19f2.exe
D:\bin\ScreenToGif\ScreenToGif.exe

ソフトウェアばかりを集めたフォルダがあるなら、Ctrl+Wからサブフォルダにあるexeファイルを検索し、マーク、コピーするのが早い。



登録


これを一行編集のFIRSTEVENTに登録する。

K_edit = { ; 一行編集/PPe兼用
FIRSTEVENT ,*completelist /set /file:%0l_cmd.txt
}

また、X_flstで補完リストを表示する設定にもしておこう。

実行


あとは普通に一行編集を起動すればいいだけ。補完リストの一番上に登録されているはずだ。


これまでのまとめ


  • PPtrayを起動
  • ファイルパスをまとめたl_cmd.txtをPPxフォルダに作成

X_flst = 3,2 ; エントリ補完結果一覧 0:無 1:有 2:OS版 3~5:動的,0:先頭 1:部分

A_exec = { ; エイリアス
NeeView = D:\bin\NeeView\NeeView.exe
aimp = D:\bin\AIMP4\AIMP.exe
xyzzy = D:\bin\xyzzy\xyzzy.exe
weather = *ppv http://wttr.in/kyoto.png
}

K_tray = { ; PPtrayホットキー(キー指定 不可,V_xx 形式を推奨)
^' ' ,*if %*findwindowtitle("PPlauncher") %: *focus !"PPlauncher" %: *stop
*execute,%"PPlauncher"%eh%E
}

K_edit = { ; 一行編集/PPe兼用
ESC ,%k"&F4"
FIRSTEVENT ,*completelist /set /file:%0l_cmd.txt
}

2018年10月30日火曜日

PPxをランチャとして使う③エイリアスによる起動

エイリアスを登録し、それを実行することで、ソフトウェアを起動する。


A_exec = { ; エイリアス
NeeView = D:\bin\NeeView\NeeView.exe
aimp = D:\bin\AIMP4\AIMP.exe
xyzzy = D:\bin\xyzzy\xyzzy.exe
weather = *ppv http://wttr.in/kyoto.png
}

また、EscキーをAlt+F4に置き換える。PPtrayから一行編集を起動後、Escで閉じようとするとなぜか英語のメニューが表示されてしまうから、それの回避です。

K_tray = { ; PPtrayホットキー(キー指定 不可,V_xx 形式を推奨)
ESC ,%k"&F4"
}

これまでの設定まとめ


「PPxをランチャとして使う」関連の記事を続けていくと、今後どんどん設定が長く、複雑になりそうな予感がしている。
そこで、記事本体では初めて行った設定のみを書き、これまでの設定をすべてまとめたものは、一番最後に付け足すようにする。

K_tray = { ; PPtrayホットキー(キー指定 不可,V_xx 形式を推奨)
^' ' ,*if %*findwindowtitle("PPlauncher") %: *focus !"PPlauncher" %: *stop
*execute,%"PPlauncher"%eh%E
}

A_exec = { ; エイリアス
NeeView = D:\bin\NeeView\NeeView.exe
aimp = D:\bin\AIMP4\AIMP.exe
xyzzy = D:\bin\xyzzy\xyzzy.exe
weather = *ppv http://wttr.in/kyoto_m_lang=ja.png
}

2018年10月29日月曜日

PPxをランチャとして使う②表示非表示トグル



一行編集の表示と最小化をトグル。

K_tray = { ; PPtrayホットキー(キー指定 不可,V_xx 形式を推奨)
^' ' ,*if %*findwindowtitle("PPlauncher") %: *focus !"PPlauncher" %: *stop
*execute,%"PPlauncher"%eh%E
}

前回はCtrl+Shift+Zで表示してたが、今回はCtrl+Spaceにしている。
以前fenrirを常用してたとき、このホットキーにしてたのを思い出したのだ。

表示、非表示のトグルの場合は以下になる。

K_tray = { ; PPtrayホットキー(キー指定 不可,V_xx 形式を推奨)
^' ' ,*if %*findwindowtitle("PPlauncher") %: *sendmessage %*findwindowtitle("PPlauncher"),16,0,0 %: *stop
*execute,%"PPlauncher"%eh%E
}

こちらはランチャを閉じたとき、直前にアクティブだったウィンドウにフォーカスが戻らないのが少し気になる。

2018年10月23日火曜日

PPxをランチャとして使う①



PPxをランチャとして使ってみる。一行編集をホットキーで起動、そこを起点にソフトウェアの実行等をできるようにする。
以前はfenrirだとかcraftlaunchだとかを使ってたが、だんだん複数のソフトを扱うのが面倒になり、Windowsデフォの検索機能しか使わなくなってたのだ。

準備


以下を編集して取込。

K_tray = {
^\Z ,*execute,%"PPlauncher"%E
}

ついでPPTRAYW.EXEを実行し、PPtrayを常駐させる。
一々実行するのも面倒なので、スタートアップに登録しておくといい。ちなみにスタートアップには

%j shell:Startup\

で行くことができる。

やり方


PPtrayを常駐させていれば、Ctrl+Shift+Zのホットキーで一行編集が起動する。あとは、登録しているエイリアスなり実行パスなりを打ち込み、Enterを押せばいい。

今後


今回はただ、ホットキーで一行編集を起動するようにしただけ。
具体的にランチャの機能を備えるのは次回以降で。


  • エイリアスの登録と補完リストの活用
  • 空欄コマンド
  • Web検索


などをできるようにする予定。

2018年10月11日木曜日

PCキャスター自作

今まで使ってたデスクトップ用のPCキャスターが壊れたので、自作してみる。
必要なのは以下。


  • 角型キャスター2つ
  • 滑り止めマット
  • 結束バンド


まずは角型キャスターを2つ並べて固定。




それに滑り止めマットを乗せる。



角型キャスターはダイソーの園芸コーナーに売ってた。一つ200円。滑り止めマットもダイソーのもの。結束バンドは、以前百均で買い余ってたのを使った。
角型キャスターの耐荷重は一つ20kgらしい。以前使ってた専用品より安定してて満足。

2018年1月30日火曜日

ブックマークしたファイルを一斉表示

テキストファイルや画像ファイルをブックマークし、あとでそれらを一斉に、PPvで表示/非表示できるようにする。



※PPv中心の連動ビューを前提にした記事です。PPv[A]を通常の連動ビューに。それ以降のIDのPPvをブックマークファイル表示用に、というように使い分けています。

準備


Module


  • Script Module
  • Text Module
  • Key Module

を利用してます。入れてない場合はTORO's Libraryからダウンロードして入れましょう。

Script


  • MyClipMenu.js
  • setalias.js
  • resetalias.js

を利用。持ってない場合はここからダウンロードして、Scriptフォルダに保存しよう。また、新たに以下をScirptフォルダに保存。

alias2ppv.js

//!*script
// 
// 第一引数:エイリアスのベースネーム
// 第一引数+連番のエイリアスを、PPvで開くスクリプト
// 例えば第一引数がclipであれば、最初はclip0、次はclip1…と順次
// 登録されたパスをPPvで開いていく

// 引数がなければ終了
if (PPx.Arguments.Length < 1){
  PPx.SetPopLineMessage("引数が正しくありません。");
  PPx.Quit(-1);
}

var cmd = PPx.Arguments.Item(0);

for (var i = 0; i < 30; i++) {
  if (PPx.Extract("%'"+ cmd + i + "'")){
    PPx.Execute("%Oba *ppv "+PPx.Extract("%'" +cmd + i + "'"));
  } else {
    break;
  }
}


編集して取込


以下を編集して取込。

-|K_clip2 =

KV_main = { ; PPvメイン窓
^E ,*setnextkey K_clip2
}

K_clip2 = { ** comment **
E , *script %0\Script\setalias.js,clip,%%FCD
R , *script %0\Script\resetalias.js,clip
^E , *RotateExecute id,"*script %0\Script\alias2ppv.js,clip",*closeppx !/V_*A|^C_*/
',' , *script %0\Script\MyClipMenu.js
}


やり方


  1. PPvで閲覧中、気になったファイルをC_e e(Ctrl+Eを押したあとE)でブックマーク
  2. C_e C_e(Ctrl+Eを二回押し)で、ブックマークファイルをすべてPPvで開く
  3. もう一度C_e C_eで、[A]以外のPPvを閉じる
  4. C_e r(Ctrl+Eを押したあとR) でブックマークをリセット
  5. C_e ","(Ctrl+Eを押したあと,) でブックマークの保存や読み込みができるメニューを表示

このように、別々のフォルダにある画像ファイルを見比べたり



テキストファイルを参照したりできる。



テキストファイルと画像ファイルを表示したところ。


参考


2018年1月13日土曜日

ImageMagickで一括処理+サムネイルの向き修正


更新するのは超久々。つかさです。PPxは日常的に使い続けている。ただカスタマイズする時間がない。

サムネイルの向きを直したい


僕は、画像ファイル上でShift+Enterを押せば、画像処理メニューが出るようにしている。画像の回転には、ImageMagickを利用している。


記録用にガラケーで撮った写真の向きを、直したい時が度々あるのだが、これで「左に90度回転」としてもサムネイルの向きが修正されない。これの対策をする。
また、今までは個別のファイルに対しての処理しかできなかった。なので、一括処理ができるようにする。

対策


一括変更にはmogrifyというオプションを使えばいいらしい。サムネイルの回転については、-auto-orientを使う。

%OB %'imagemagic' mogrify %FCD -auto-orient -rotate 270 %FCD

とすればいい。

-|M_Picture =

A_exec = { ; エイリアス
imagemagic    = "C:\Program Files\ImageMagick-7.0.2-Q16\magick.exe"
azpainter    = D:\bin\azpt\AzPainter2.exe
}

M_Picture = { ** comment **
&Azpainter = %Ob %'azpainter' %FCD
ペイント(&P) = mspaint %FCD
-- = 
左に90度回転(&L) = %OB %'imagemagic' mogrify %FCD -auto-orient -rotate 270 %FCD
右に90度回転(&R) = %OB %'imagemagic' mogrify %FCD -auto-orient -rotate 90 %FCD
拡大縮小 = %Ob %'imagemagic' %FCD -geometry %"数値を入力してください"%{30%}%% %"ファイル名を入力してください"%{%|%X%|.%T%}
拡張子を変換 = %Ob %'imagemagic' %FCD %X.%"拡張子を入力してください"%{%|%T%|%}
マークファイルを横に連結 = %Ob %'imagemagic' %#FCD +append %"ファイル名を入力してください"%{%|%*nowdatetime(Y-N-D-HMS)%|.png%}
非透過に = %Ob %'imagemagic' %FCD -background white -alpha remove %FCD
-- = 
壁紙にする(&W) = *customize X_bg:Path=%FDC %: *customize X_bg:Type=10
}

E_scr = { ; \[Enter]用判別
JPG ,%M_Picture,A
PNG ,%M_Picture,A
JPEG ,%M_Picture,A
BMP ,%M_Picture,A
}