Hatena::Groupkeysnail

basyura snail

2011-06-26

スムーズ(!?)スクロール

14:03 |  スムーズ(!?)スクロール - basyura snail を含むブックマーク はてなブックマーク -  スムーズ(!?)スクロール - basyura snail

key.setGlobalKey('C-d', function (ev, arg) {
  for (var i = 0 ; i < 10 ; i++) {
    (function () {
      var n = i;
      setTimeout(function() {
          key.generateKey(ev.originalTarget, KeyEvent.DOM_VK_DOWN, true)
       } , 20 * n);
    })();
  }
}

あまりスムーズじゃないので中途半端に目が追いかけてしまうせいなのか

ちょっと目が痛い・・・。

トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20110626

2011-05-28

キーイベント発生時に Firefox が強制終了する

14:52 |  キーイベント発生時に Firefox が強制終了する - basyura snail を含むブックマーク はてなブックマーク -  キーイベント発生時に Firefox が強制終了する - basyura snail

いつの間にか、キーを押した瞬間に Firefox が強制終了することが多くなった。原因がよく分からないんだけど、setTimeout をかますことで落ちなくなった。

key.setGlobalKey('C-s' , function (ev, arg) {
    setTimeout(function() {
        shell.input("google ");
      } , 100);
  }, 'Google word');

key.setGlobalKey('C-n', function () {
    setTimeout(function() {
        command.iSearchForward();
      } , 100)
}, 'インクリメンタル検索', true);

キーを押した瞬間に強制終了しちゃう方はお試しあれ。

トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20110528

2011-05-02

plugin の更新確認中のまま終わらない原因は noscript

21:05 |  plugin の更新確認中のまま終わらない原因は noscript - basyura snail を含むブックマーク はてなブックマーク -  plugin の更新確認中のまま終わらない原因は noscript - basyura snail

環境を壊してしまったのかと思って plugin をインストールし直してみたりしたけど違ったみたい。

plugin の updateURL が https://github.com だと OK で、http://github.com だと NG。

ブラウザで http://github.com にアクセスすると https://github.com に転送されるのでこのあたりが原因だろうか。

回避するには noscript の設定にある「以下のサイトに対してはセキュアな(HTTPS)接続を強制しない」に

github.com

を登録する。

f:id:basyura:20110502195901p:image

プログラム側で回避できるんじゃないかと思ったけど、XMLHttpRequest の readyState が 3 まで遷移するけど 4 にならない(リクエスト/レスポンスが捨てられる?)ので無理そう。

追記

noscript がせっかく防いでくれているガードをドメイン指定で解除しちゃうのもどうかと思うので、アップデートできない plugin の updateURL を登録するほうが良いと思う。

例)
http://github.com/basyura/zou-search/raw/master/zou_search.ks.js
http://github.com/mooz/keysnail/raw/master/plugins/site-local-keymap.ks.js
http://github.com/mooz/keysnail/raw/master/plugins/hateb-keysnail-collabo.ks.js

fortunanfortunan2011/05/03 01:13あぁ,そういう理由だったんですね.なんだろうと思ってました.firefox4.xの方は起きてなかったのでそのままにしてました.

トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20110502

2011-04-27

onload でフォーカスをテキストボックスから外すプラグイン

21:49 |  onload でフォーカスをテキストボックスから外すプラグイン - basyura snail を含むブックマーク はてなブックマーク -  onload でフォーカスをテキストボックスから外すプラグイン - basyura snail




Yahoo や livedoor のサイトを開くと、検索ボックスにカーソルが移動して困るので書いてみた。

  • onload イベントでフォーカスを移すだけなので、ページの読み込みが遅いとその分フォーカスが外れるのが遅くなる
  • アクティブなページだけが対象なので、同時に複数開いても全部が外れるわけじゃない
  • フォーカスを移動させない url を設定可
  • onload からフォーカスを外すまでの遅延時間を設定可

上2つはどっちも何とかなりそうな、ならなさそうな感じ・・・。

以下設定例

// フォーカスを外さない url を指定
plugins.options["content_focus.white_list"] = [
  'http://java.sun.com/j2se/',
  '^http://www.livedoor'
];
// 遅延時間を設定(デフォルト 100ms)
plugins.options["content_focus.delay_time"] = 100;

フォーカスが外れるまでが気になってしまうのが難点。

どうせ Yahoo や livedoor の検索ボックス使って検索することなんて無いんだし、スタイルシートで消してしまうほうが確実なんじゃと思い始める。

追記 - スタイルで消してしまったほうがいい感じ

style.register(<><![CDATA[
      @-moz-document url-prefix("http://www.yahoo.co.jp/") {
        #searchbox { display : none; }
      }
    ]]></>.toString() , style.XHTML);

style.register(<><![CDATA[
      @-moz-document url-prefix("http://www.livedoor.com/") {
        #header { display : none; }
      }
    ]]></>.toString() , style.XHTML);
トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20110427

2011-02-06

るりまサーチで更に早く検索する

| 19:50 |  るりまサーチで更に早く検索する - basyura snail を含むブックマーク はてなブックマーク -  るりまサーチで更に早く検索する - basyura snail

みんな大好き Ruby のリファレンス検索サービス「るりまサーチ(最速Rubyリファレンスマニュアル検索!)」を使ってサクっと検索する。

プロンプトを立ちあげて入力

shell: rurema 検索する単語

f:id:basyura:20110206193455p:image

Enter で検索

f:id:basyura:20110206193456p:image

以下を keysnail の設定ファイに書く。

key.setGlobalKey(['C-x','C-r'], function (ev, arg) {
    shell.input("rurema ");
  });
shell.add("rurema" , M({ja: "るりまサーチ", en: "rurema search"}) ,
  function(argx , extra) {
    let url  = "http://doc.ruby-lang.org/ja/search/version:1.9.2/";
    let list = extra.left.split(/\s+/)
    for(let i = 0 ; i < list.length ; i++) {
      url += 'query:' + encodeURIComponent(list[i]) + '/';
    }
    gBrowser.loadOneTab(url, null, null, null, extra.bang);
  },
  {
    bang      : true,
    literal   : 0,
    completer : function (args, extra) {
      let engines = [util.suggest.ss.getEngineByName("Google")];
      return completer.fetch.suggest(engines, true)(extra.left || "", extra.whole || "");
    },
  },
  true);

ショートカットキーを指定しておけばさらに早く!(ここでは C-x C-r で定義)

関係ないけど for 文をもうちょっとカッコよく書けないものか。

moozmooz2011/02/12 22:29おお,これは便利ですね.早速登録しました.

>関係ないけど for 文をもうちょっとカッコよく書けないものか。

カッコ良いかは分かりませんが,次のような書き方もできますね.多少 Ruby っぽいかと思います.

url += extra.left.split(/\s+/)
.map(function (q) "query:" + encodeURIComponent(q) + "/")
.join("");

basyurabasyura2011/02/13 18:31map ですか!
勉強になります。

トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20110206