KeySnail で Copy URL + のようにページタイトルや URL をコピーする

Copy URL + は表示しているページのタイトルや URL をコピーする Firefox の add-on で、私は add-on 版→ userChromeJS の拡張版、と使ってきていました。ブログに URL 張るときのみならず、何かと便利。

最近 add-on の見直しを行って、思うところあって userChromeJS の使用をやめました。それに伴い Copy URL + をどうするかなーと思って、ふと、これ KeySnail で代用できるんじゃないかなと思って調べてみたら keyconfig の設定を発見。参考にして KeySnail に移してみたので書いておきます。

KeySnail の設定ファイル( _keysnail.js or .keysnail.js )に、以下のように記述。

key.setViewKey(['C-y'], function () {
command.setClipboardText(content.location.href);
}, 'copy URL', true);
key.setViewKey(['y', 'y'], function (ev, arg) {
var w = window._content;
var d = w.document;
var tag = d.title + ("\n" + d.location.href);
const CLIPBOARD = Components.classes['@mozilla.org/widget/clipboardhelper;1'].getService(Components.interfaces.nsIClipboardHelper);
CLIPBOARD.copyString(tag);
}, 'copy URL タグ');
key.setViewKey(['y', 'h'], function (ev, arg) {
var w = window._content;
var d = w.document;
var tag = "<a href=\"" + d.location.href + "\">" + d.title + "</a>";
const CLIPBOARD = Components.classes['@mozilla.org/widget/clipboardhelper;1'].getService(Components.interfaces.nsIClipboardHelper);
CLIPBOARD.copyString(tag);
}, 'copy URL タグ');
key.setViewKey(['y', 'b'], function (ev, arg) {
var w = window._content;
var d = w.document;
var txt = d.selection ? d.selection.createRange().text : d.getSelection();
var tag = "<div class=\"quote\">\n<blockquote cite=\"" + d.location.href + "\">" + txt + "</blockquote>\n<cite>\u300E<a href=\"" + d.location.href + "\">" + d.title + "</a>\u300F\u3088\u308A\u5F15\u7528</cite>\n</div>";
const CLIPBOARD = Components.classes['@mozilla.org/widget/clipboardhelper;1'].getService(Components.interfaces.nsIClipboardHelper);
CLIPBOARD.copyString(tag);
}, 'copy URL 引用タグ');

これで、以下のような動きになります。

  • C-y で URL をコピー
  • y y( y を 2 回押す)でページタイトルと URLをコピー
  • y h( y を押して次ぎに h を押す)でページタイトルと URL の HTML タグをコピー
  • y b( y を押して次ぎに b を押す)で選択部分を引用する HTML タグをコピー

Copy URL + のように右クリックしてメニューを出すのではなくて、ショートカットを押してコピーする形なので覚えてしまえばこちらのほうが楽かもしれません。

なんで y なのかと言うと、vim でコピーが y( yank )だからです。覚えやすいので y にしてみました。適宜ショートカットはお好みで変えてください。

これで Copy URL + が不要になり、入れる add-on を 1 つ減らせました。よっしゃー。 :)

以下のサイトを参考にさせていただきました。感謝。