2016年7月23日土曜日

CyberFoxをインスコした後にやることのメモ

CyberFoxをインスコした時の設定メモです。

日本語化


Language Managerを利用する。

参考:Cyberfoxを簡単に日本語化できる「Language Manager」 - ハルパス


アドオン



FireGesturesは、マウスジェスチャーを有効にするアドオン。設定から、

  • 前のタブへ…マウスを右クリックしながら上にマウスを移動
  • 次のタブへ…マウスを右クリックしながら下にマウスを移動

という割当に変える。 これは、Tab Treeとの関係上こうしたほうが便利なため。



Gmail Notifier は、Gmailが届いたら、ツールバーアイコンとポップアップで知らせてくれるアドオン。特に難しい設定はしなくても、CyberFoxでGmailにログインしていたらいいらしい。

IME自動無効は、ロケーションバーに行ったら自動でIMEを無効にしてくれるアドオン。

Tab Treeは、 タブをツリー型にしてくれるアドオン。ツリー型タブというアドオンもあるが、こっちのほうがkikiっぽくていい。

ツリー型の何が素晴らしいかということは、十年前くらいに散々議論されてきただろうことなので(多分)特に言わないが、調べ物をしててたくさんタブを開きたい、一つのページからリンクを開きまくりたい、という時に、ツリーで階層構造を再現できるというのは非常に便利なのだ。


設定項目がたくさんあるので、いつか調べて記事にしてまとめるかもしれない。

参考

 

KiKiに一目惚れ! - 覚えられませんっ
Firefox2をKIKI似にしたい  - 覚えられませんっ

QuickDragは、調べたい単語とかリンクとかを選択してDrag&Dropすると新しいタブで検索してくれたり開いたりしてくれるアドオン。

uBlock Originは広告をブロックするアドオン。


2016年6月23日木曜日

PC自作した【十数年ぶり二度目】

十何年かぶりにPCを自作したのでそのメモ。
CPU用電源のケーブルを挿し忘れて「なんで起動しないんだよ!」と焦ったのは内緒だ。

about My Machine


  • 【CPU】Intel CPU Core i5-6500 3.2GHz
  • 【マザボ】ASUSTeK H110M-A
  • 【メモリ】CORSAIR DDR4 8GB×2 CMK16GX4M2A2666C16
  • 【電源】ANTEC NE650C
  • 【光学ドライブ】DRW-1814BLT
  • 【HDD】WD HDD 3.5インチ 1TB Blue WD10EZEX/N
  • 【SSD】Crucial CT240BX200SSD1
  • 【ケース】Define R5
  • 【グラボ】無し
  • 【OS】 Windows10



インストール後の設定


  • 環境変数にXYZZYHOMEを登録
  • スタートアップへのソフト登録。パスはC:\Users\ [ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  • 規定のIMEをGoogle日本語入力に。「コントロールパネル」>「すべてのコントロールパネル項目」>「言語」>「詳細設定」で上から2番めの項目「既定の入力方式の上書き」でGoogle日本語入力を選択
  • Screensaversを適当に設定
  • フォントをインストール

インストールしたソフト


  • マザボ(H110M-A)のドライバ
  • Office2007+SaveAsPDFandXPS.exe
  • Scribus
  • steam
  • Google日本語入力
  • Chrome
  • PDF-XChange Viewer
  • GhostScript
  • PDFTK
  • Caldix
  • MusicBee
  • DropBox
  • 7 Taskbar Tweaker(時刻表示のため)
  • Apache OpenOffice
  • FlashPlayer

2016年2月22日月曜日

拡張コメントを利用したソート

今回は、拡張コメントを利用して柔軟なソートをする方法です。PPx 1.47+1以降とPPx Script Module R15以降が必要です。

EXE、TXT、CFG、ZIPを前方に。それ以外は後方に持ってくるようなソートをしてみます。



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

excomment.js
//!*script

for (var i = 0; i < PPx.EntryAllCount; i++) {
  if (PPx.Entry(i).Name.match(/.EXE$/i)) {
    PPx.Entry(i).SetComment(1,1);
  } else if (PPx.Entry(i).Name.match(/.TXT$/i)) {
    PPx.Entry(i).SetComment(1,2);
  } else if (PPx.Entry(i).Name.match(/.CFG$/i)) {
    PPx.Entry(i).SetComment(1,3);
  } else if (PPx.Entry(i).Name.match(/.ZIP$/i)) {
    PPx.Entry(i).SetComment(1,4);
  } else {
    PPx.Entry(i).SetComment(1,5);
  }
}

SetCommentで、個々のエントリに拡張コメントを設定してます。

次に、このスクリプトをCOMMENTEVENTに登録します。
以下を編集して取込。
KC_main = { ; PPcメイン窓
COMMENTEVENT1 ,*script %0\Script\excomment.js
}

次に、ソートを実行したいフォルダに行って、以下を実行。

*sortentry -thispath 24,1,0,B11111,1

すると、COMMENTEVENT1が呼び出され、excomment.jsが実行された後に、拡張コメントを用いたソートがなされます。

追記 2017/03/16


XC_dsetで、特定のフォルダでコマンドを実行するよう設定すれば良さげ。
PPxフォルダで拡張コメントのソートをしたいなら、次のようになる。cmd より前は無視しておk。
XC_dset = { 
D:\bin\ppx2window64\ = B0000,-1,-1,11,-1,-1,B011111,B00000000000000000000000001,cmd:"*sortentry -thispath 24,1,0,B11111,1"
}

参考:Paper Plane xUI (PPx) でサーバによって背景色を変える

2016年2月1日月曜日

サブフォルダをメニュー表示してファイル移動

カレントフォルダのサブフォルダをメニュー表示して、そこにカーソル下のファイル(あるいはマークファイル)を移動する。


文書や画像の管理の時、こういう操作をすることが結構多いよな、と思って作った。利用機会はあまり無い気もするが、一応コピーもできるようにする。

準備


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

subdirmenu.js
//!*script
// カレントフォルダのサブフォルダをメニュー表示し、そこに移動/コピーするスクリプト
// 第一引数がmなら移動
// 第一引数がcならコピー

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

// サブフォルダがなければ終了
if (PPx.EntryDisplayDirectories() == 0){
  PPx.SetPopLineMessage("サブフォルダがありません。");
  PPx.Quit(-1);
}

var currentDir = PPx.Extract('%1');
var fso = PPx.CreateObject("Scripting.FileSystemObject");
var i2 = 0;

// メニューの削除
PPx.Execute("*setcust -|M_hoehoe =");

// メニュー項目の登録
for (var i = 0; i < PPx.EntryAllCount; i++) {
  var f = PPx.Entry(i).Name;
  // ディレクトリかどうかを判別
  if (PPx.Entry(i).Attributes & 16 && f !=('.') && f!=('..')) {
    // 項目数が10を超えたら次の段へ。30を超えたら終了。
    if (i2 == 10 || i2 == 20) { 
      PPx.Execute('*setcust M_hoehoe:||=');
    } else if (i2 == 30) {
      break;
    }
    // 表示内容を、コメントがあるときはコメントに。ない場合はフォルダ名に。
    if (PPx.Entry(i).Comment != ""){
      var item = PPx.Entry(i).Comment;
    } else {
      var item = f;
    }
    // メニューの登録。10項目までは数字のショートカットを付加する。
    if (i2 < 10) {
      // 表示内容の後ろに全角スペースを付け足している。表示内容が1文字の場合、実行内容も表示されてしまうため。
      PPx.Execute('*setcust M_hoehoe:&'+i2+ ' '+item+' = '+fso.BuildPath(PPx.Extract("%1"), f));
    } else {
      PPx.Execute('*setcust M_hoehoe:'+item+' = '+fso.BuildPath(PPx.Extract("%1"), f));
    }
    i2 += 1;
  }
}

// メニューの実行
if (PPx.Arguments.Item(0) == "m"){
  PPx.Execute("*ppcfile !move,%M_hoehoe,0");
} else if (PPx.Arguments.Item(0) == "c"){
  PPx.Execute("*ppcfile !copy,%M_hoehoe,0");
} else {
  PPx.SetPopLineMessage("引数にはmかcを指定してください");
}

//  オブジェクトを解放
fso = null;

以下を編集して取込。
KC_main = { ; PPcメイン窓
^\C ,*script %0\Script\subdirmenu.js,c
^\M ,*script %0\Script\subdirmenu.js,m
}

やり方


  1. 移動したいファイルをマークする。移動させたいのが一つなら、そこにカーソルを置くだけでもいい。
  2. Ctrl+Shift+Mを押す(コピーの場合はCtrl+Shift+C)。すると、サブフォルダメニューが出る。
  3. 移動したいフォルダを選択すると、ファイル移動する。


追記


2016年1月27日水曜日

「最近使った項目」をメニュー表示

Windowsにある「最近使った項目」をPPxでもやってみる。




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

recentmenu.js
//!*script

// ユーザー定義ヒストリxを10件まで表示するメニュー
// 選択すると実行する

// 履歴がなければ終了
if (PPx.Extract("%hx0") == ""){
  PPx.SetPopLineMessage("履歴がありません。");
  PPx.Quit(-1);
}

fso = PPx.CreateObject("Scripting.FileSystemObject");

// メニューの削除
PPx.Execute("*setcust -|M_hoehoe =");

// メニューの登録
for (var i = 0; i < 10; i++) {
  if (PPx.Extract("%hx"+i) != ""){
    fp = PPx.Extract("%hx"+i);
    PPx.Execute('*setcust M_hoehoe:&'+i+' '+fso.GetFileName(fp)+'=*launch '+'%*name(DC,'+fp+')');
  } else {
    break;
  }
}

// メニューを開く
PPx.Execute("%M_hoehoe,0");

以下を編集して取込。
KC_main = { ; PPcメイン窓
^ENTER ,*addhistory x,%FDC %: %K"@Z"
H ,*script %0\Script\recentmenu.js
}

やり方


Ctrl+Enterを押すと、カーソル下のファイルを実行し、かつそのファイルのパスをユーザー定義ヒストリxに登録する(ちなみにヒストリはカスタマイザーのその他タブで見れる)。

Hを押すと、そのヒストリを10件までメニューで表示する。項目を選択すると、そのパスを実行する。

2016年1月19日火曜日

壁紙をランダムに表示

PPx起動時に、壁紙をランダムで表示できたら楽しいんじゃないかと思って作ってみた。


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

random.js
//!*script

// 第一引数:フォルダパス
// ランダムにファイルを選択して返すスクリプト

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

var fso = PPx.CreateObject("Scripting.FileSystemObject");
var fn = PPx.Arguments.Item(0);

// フォルダが存在しなければ終了
if (fso.FolderExists(fn) == false) {
  PPx.SetPopLineMessage(fn+"は存在しません");
  PPx.Quit(-1);
}

//  Folderオブジェクトを取得
var folder = fso.GetFolder(fn);

//  ファイルリストを取得
var e = new Enumerator( folder.Files );
files = new Array(); 
for( ; !e.atEnd(); e.moveNext()) {
  files.push(e.item().Name);
}

// ファイルが存在しなければ終了
if (files.length == 0) {
  PPx.SetPopLineMessage("ファイルがありません");
  PPx.Quit(-1);
}

// ファイルをランダムに選択
PPx.Result = fso.BuildPath(fn, files[ Math.floor( Math.random() * files.length ) ]);

//  オブジェクトを解放
fso = null;

これは、引数にフォルダパスを取り、ファイルパスをランダムに返すスクリプト。

次に、以下を編集して取り込み。画像フォルダのパスは適当に読み替えよう。
KC_main = {
FIRSTEVENT , *customize X_bg:Path=%*script(%0\Script\random.js,"D:\Work\画像フォルダ")
}

これで、PPc起動時に、指定したフォルダ内(ここではD:\Work\画像フォルダ)のファイルをランダムで壁紙にする。
当然壁紙を表示する設定にしていないと意味ないので、非表示にしている場合はカスタマイザーから設定しよう。


追記:2016/02/18


上の設定だと、新しい窓を開くたびに壁紙が変更されてしまう。
初回起動時のみ壁紙を変更したいなら、以下を編集して取込。
KC_main = {
FIRSTEVENT , *ifmatch !//,%2 %: *customize X_bg:Path=%*script(%0\Script\random.js,"D:\Work\画像フォルダ") %: *stop
}

2015年12月27日日曜日

txtをhowmに変換するスクリプト

テキストファイルをhowm形式に変換するスクリプトを作った。
変換したいファイルにマークして実行することで、カレントディレクトリにhowmファイルを新規作成する。

こういうテキストファイルが



こんな感じに。



やり方


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

txt2howm.js

//!*script
// マークしたtxtファイルからhowmファイルを新規作成

var currentDir  = PPx.Extract('%1');
var EntryObj = PPx.Entry;0
var RetCD = EntryObj.FirstMark; 
var objFileSys = PPx.CreateObject("Scripting.FileSystemObject");
var nowdate = PPx.Extract("%*nowdatetime(Y-N-D)");
var nowtime = parseInt(PPx.Extract("%*nowdatetime(HMS)"));

if (RetCD != 1){ // マークがないときはカーソル下のファイルを処理
  if (!PPx.EntryName.match(/.txt$/i)) { // txtファイルでなければ終了
    PPx.Echo("拡張子がtxtではありません");
    PPx.Quit();
  }
  var objItem = currentDir + "\\" + PPx.EntryName;
  var outputfile = PPx.Extract("%*nowdatetime(Y-N-D-HMS)")+".howm";

  // ファイルの内容を取得しhowm形式に変換
  objInFile = objFileSys.OpenTextFile(objItem, 1);
  var str = "= " + objInFile.ReadAll() + "\n\n[" + PPx.Extract("%*nowdatetime(Y-N-D H:M)") +"]";
  objInFile.Close();
  
  // カレントディレクトリにhowmファイルを作成
  strCreateFile = objFileSys.BuildPath(currentDir,outputfile);
  objFileSys.CreateTextFile(strCreateFile);

  // howmファイルに書き込み
  objOutFile = objFileSys.OpenTextFile(strCreateFile, 2);
  objOutFile.Write(str);
  objOutFile.Close();
} else { //マークがあるときは順番に処理
  i = 0
  while(true){
    var entryName = EntryObj.Name;
    var hoge = nowtime + i // ファイル名の重複を避けるための処理
    var objItem = currentDir  + "\\" + entryName;
    var outputfile = nowdate + "-" + hoge +".howm";

    if (!entryName.match(/.txt$/i)){ // 拡張子がtxtでなければスキップ
    }
    else {
      // ファイルの内容を取得しhowm形式に
      objInFile = objFileSys.OpenTextFile(objItem, 1);
      var str = "= " + objInFile.ReadAll() + "\n\n[" + PPx.Extract("%*nowdatetime(Y-N-D H:M)") +"]";
      objInFile.Close();
      
      // カレントディレクトリにhowmファイルを作成
      strCreateFile = objFileSys.BuildPath(currentDir,outputfile);
      objFileSys.CreateTextFile(strCreateFile);
      
      // howmファイルに書き込み
      objOutFile = objFileSys.OpenTextFile(strCreateFile, 2);
      objOutFile.Write(str);
      objOutFile.Close();
      
      i = i+1;
    }
    if(EntryObj.NextMark != 1) break; // 最後のマークなら終了
  }
}

変換したいテキストファイルにマークしてから



以下を実行。
*script %0\Script\txt2howm.js

カレントディレクトリにhowmファイルが新規作成される。



作った理由


僕は、たまにポメラでメモをとっている。それをhowm形式に直すとき、今までは一々手作業でコピペをしていた(SETZERのFIFOモードを起動し、一時コマンド+ClipFile.jsでコピー。あとは、howmの新規作成→ペーストを繰り返す)。

ファイル数が少ないうちはそれでも別に良かったのだが、今回30くらいメモを作ったので、もうこれ面倒だな!と思って作りました(こなみかん)