Opera Extensions

基本的にOperaの開発版の最新でのみ動作確認

Auto Scroll

トリガーキー(デフォルトはSHIFT)を押しながらマウス移動で、移動方向にスクロール開始。
始点からのマウス移動距離でスクロール速度変更。
トリガーキーを離すと速度固定。再度トリガーキーを押すと停止。
トリガーキーはCTRL,SHIFT,ALTから選べる(ALT単独は不可)。
ALTキー単独だとメニューにフォーカスが移っちゃうので今のところ単独は不可にしてある。
Macでは関係無いけどめんどうなので制限はそのままになってる。
CTRL+SHIFTといった設定も可能。
MacではCTRLがCOMMANDに、ALTがOPTIONに対応。
設定はExtension一覧にあるUninstallの右のボタンメニューのPreferencesから

http://blog.livedoor.jp/tzifa/archives/50879428.htmlにあるuserjsが時々動きがおかしいことがあるので自分でも作ってみた。
ソースを読んでもなにやってるんだかよくわからなかったので適当に書いた。なのでbody要素のみのスクロール。
とは言ってもこれの動きもおかしいことはある。
ノートPCがホイールクリックによる自動スクロールが困難なので、そんな時に。
Linuxとかでミドルクリックペーストを使いたいときも便利みたい(コメントより)
あとはキーボードオンリーのものが欲しい。
MacのOperaだと、keyup,keydownイベント中はevent.ctrlKeyやevent.shiftKeyが常にfalseっぽい?
全てキーコードで判断する必要があるみたいだけど、そうなると同時押しが簡単に判別出来ない。
とりあえず、mousemoveイベント中はevent.ctrlKeyとかは有効なので、mousemoveイベント中にキー判定するように。
んで、Macだけは停止キーをトリガーキーに関係無く、SHIFT,OPTION,COMMANDのどれかを押したときということにした。
Merurialリポジトリ
Opera Extensionsページに登録してみたが、Japaneseの一覧に表示させる方法がわからん。
わかった。xml:lang入れたあとにDescriptionを書きなおす必要があるとのこと。
次回更新するときがあったらJapaneseに表示させる。

問題点

ファイル

Ver 1.8
Macに対応。デフォルトのトリガーキーをSHIFTに。
Ver 1.6
Macで動かないことだけ確認したので、とりあえずmetaKeyをチェックするようにしてみた。動作確認はしてない(持ってないので)。
Ver 1.5
PostMessageのErrorをキャッチするようにしてみた。アイコンを作った。
Ver 1.4
ダイアログが出てもスクロールを確定出来るように。インターバル時間を短くした。
Ver 1.3
設定からトリガーキーを変更可能に。
Ver 1.2
終端まで到達したらスクロール終了。スクロールを少し小刻みに。SHIFT+カーソルの空間ナビゲーション時の暴発をなくした。
Ver 1.0
初版

開発メモ

空間ナビゲーションをすると、マウス座標が選択要素の左上になって、mousemoveイベントが開始される。元々マウスが使えない環境用の機能だからしょうがないか。
CTRL+Dとかでダイアログを出すと、ダイアログにフォーカスが移って、CTRLを離してもkeyupイベントが送られなくなる。
でもmousemoveは送られる。mousemoveのときはkeyCode=0みたい。ctrlKeyとかaltKeyは有効。
Shift+Middleクリックでミドルクリックの設定ダイアログが出るが、これが出るとmouseupイベントが送られないので、離されたことが判断出来ない。イベント関係無く現在のマウスの状態を取得する関数はないのか?

ニコニコ動画ダウンローダー

ニコニコ動画の試聴ページにダウンロードリンクを追加。
リンクはプレーヤの真下部分(「この動画を報告」の横)。
プレーヤが動画を読み込み中にリンクをクリックすると、プレーヤ側の読み込みが止まるみたい?
最終的にはNicocacheとか使うのが一番良いような気がする。
http://userscripts.org/scripts/show/84552にあるuserjsの方がスマートで良いような気がするけど、もう作ったのでおいておく。

ファイル

Ver 1.1
config.xmlをかきかえ
Ver 1.0
初版

LinkSelector

リンクを長押しで選択して、URLを格納。(長押し時間変更可能)
リンクパネルで絞りこみにくいような複数リンクURLを手軽にコピーしたくて作りはじめた。
クリップボードにコピーをしたかったのだけど、Flashの仕様変更(結構昔だけど)により、ひと手間必要だったので、とりあえずPreferencesに表示するように。
タブ切り替えたときの処理が今いちよくわからないので、有効/無効ボタンの後でリンクをクリックで選択する方式はやめて常に有効とし、長押しで選択するようにした。(リンクを長押しでページを開くプラグインとかと競合すると思う。使ってないからどうなるかは知らない)

ボタン右クリックからPreferencesに行くとURLリストがある。
Preferencesページのclearボタンで削除

ファイル

Ver 1.3.0
2011-11-13
CTRL+SHIFT+クリックでリンク取得するオプション追加。
Ver 1.2
2011-10-28
リンクの取得方法を長押しに変更。
Ver 1.0
初版

Half Scroll

スペースキーで半ページスクロールする。キーは変更可能。
ページ内のscriptと衝突する可能性あり。
スクロール量とスクロール時間を設定してスムーズスクロール可能。スクロール時間をちょっと大きくすると処理落ちする。
処理落ちが気になったきたので、スムーズスクロールオフ設定追加。根本的にスムーズスクロールの方法に問題があるとは思っている。
ここのを参考にした。
そのままでuserjs版として使えるようにしたつもり。Extensionsは設定画面できたり、SSLでも警告ださずに使えたり便利だけどOperaを初期化した時などに毎回インストールするのは面倒なのでuserjsとして使うことにした。

ファイル

Ver 1.4.0 2012-04-01
PreventDefault()されているときは動作しないように
中のスクリプトがuserjsとしてそのまま使えるようにした。
Ver 1.3.0 2011-11-07
無効化する要素を設定可能に。
Ver 1.2.0 2011-09-30
長押しに対応
body要素以外にフォーカスがある時にも動作するように(input,textarea,buttonにフォーカスがある時は無効)
Ver 1.1.0 2011-09-15
設定追加:スムーズスクロール切り替え、キー変更
ロード中でも動作するように。
Ver 1.0.0 2011-09-06
初版

TOP