ワンキーショートカットを実装するユーザスクリプトを改造

記憶の彼方より

先日、Sleipnirを初心者がいじりまくるブログさんでシングルキーショートカットの話をしたりしました。

コメント後にそういえば昔8th713さんが作っていたなぁと思い出しました。
OneKeyActionコード(@Gist)説明

まぁ、すぐに再度コメントしても良かったのですが、そのコメントを見た初級者が使ってみようかとした場合に(キーコード取得したりするの)面倒がって断念するかもなぁと思って設定を少し簡単にするように弄ってみることにしました。

改造版

元コードがgistにあったので、垢取ってフォークしてみました。
OneKeyActionKaiコード

最初はSeaHorseだけで完結させようと頑張っていたんですが、私の技量では詰んでしまったのでUAスクリプトも必要になってしまいました。
OneKeyActionKaiSettingコード

インストール・設定

0.UserAction Extension と SeaHorse Extension を入れて、使えるようにしておく


1.両ファイルを所定の場所に置く


2. OneKeyActionKaiSettingアクション を実行
すると、キー一覧が書かれた入力ページが開かれます。
使いたいキーのテキストボックスに希望のアクション等を入力します。


3.入力ページでもう一度 OneKeyActionKaiSettingアクション を実行
アクションが設定されます。
アクション実行後は入力ページを閉じておkです。
ちなみに設定ファイルの場所は "\UserResource\OneKeyAction\settings.txt" です。


4.新しくページを開くとアクションが実行可能になっています
既に開いているページではページをリロードしてください。
SeaHorseスクリプトの再読み込みは必要ありません

オリジナルからの変更点

オリジナルではURIを入力してあるとアクティブタブでページ遷移しますが、URIの前に半角コロン(:)を記述しておくと新規タブでURIを開きます。
ex) 「:http://www.sleipnirstart.com/

分岐判定の問題で一部の引数が必要なアクションが使えなかったのを修正。
該当アクション: SuperDragShowSuperView、LorikeetDownload、ShootingStarAddItem
SuperDragShowSuperViewで動作確認済。

注意点とか

一部のキーはアクションが発動しなかったり、他の操作に支障が出たりするので登録しないほうが良いです

タブが1つだけの時に Closeアクション でタブを閉じようとすると、Sleipnir が強制終了するっぽいです。
オリジナルでも強制終了するみたいです。
明日にでも代理のアクション追記予定。

[追記 2012 Mar. 01st 23:20ごろ]
変わりに以下のコードをUAスクリプト化して使うと良いはず。
CloseRev.js

(function(){
	var pnir = sleipnir.api;
	if(pnir.GetCount <= 1) {
		pnir.NewWindow('about:blank', false);
	}
	pnir.ExecuteAction('Close');
})();

タブが一枚の時にアクションを実行すると、裏で"about:blank"を開いてから現在のタブを閉じるだけです。
タブが複数枚あれば、普通の"Close"アクションを実行します。
[/追記]