Greasemonkeyスクリプトを手動インストールする方法

スクリプトがなぜかインストールできない,という現象が発生しているようなので,手動インストールする方法を書いておきます。

1/14 追記

「@import」 は Greasemonkey 0.8 正式版公開時に「@resource」へと変わっていたようなので記事を修正

  1. Firefoxを終了する
  2. Firefoxのプロファイルディレクトリの「gm_scripts」ディレクトリ直下に,適当な名前のディレクトリを作る
    • 名前は他のスクリプトと区別できるならなんでもよい。
    • 自動インストールした場合,「nicovideo Add nicotag Links」 なら「nicovideo_add_nicotag_li」といった名前になる
  3. 作ったディレクトリ以下に,スクリプトファイル本体と,スクリプトが @require, @import @resource しているファイルに適当な名前をつけて保存する
  4. 「gm_scripts」内のconfig.xml...の間に以下の記述を追加する
    • [ [ hoge ] ]の部分は,適切なものと置き換えてください
    • @hoge の部分は,スクリプト上部に書いてあるものをコピペすればよい
    • ..., ..., , の部分は,それぞれの「@...」指定の個数だけ繰り返す。0個なら該当部分を削除する。
<Script filename="[[スクリプトのファイル名]]"
        name="[[@name]]"
        namespace="[[@namespace]]" 
        description="[[@description]]"
        enabled="true"
        basedir="[[スクリプトを保存したディレクトリ名]]">
  <Include>[[@include]]</Include>
  <Exclude>[[@exclude]]</Exclude>
  <Resource name="[[@resource の前半部分]]" filename="[[@resource 指定されたファイルの名前]]"/>
  <Require filename="[[@require 指定されたファイルの名前]]"/>
</Script>

最後に,Firefoxを起動して,スクリプトがインストールされたか確認します。

これだけじゃわかりにくいので実例を出します。
スクリプト先頭に

// ==UserScript==
// @name           nicovideo Add nicotag links
// @namespace      http://d.hatena.ne.jp/gifnksm/
// @description    Add nicotag link at nicovideo's pages.
// @include        http://www.nicovideo.jp/*
// @require        http://mfp.xrea.jp/misc/greasemonkey/lib/nicovideoInfoInserter/20090112.js
// ==/UserScript==

こんな指定があった場合,「gm_scripts」以下に,「nicovideo_add_nicotag_li」というディレクトリを作っておき,スクリプト本体と,「http://mfp.xrea.jp/misc/greasemonkey/lib/nicovideoInfoInserter/20090112.js」をダウンロードしてきて,それぞれ「nicovideo_add_nicota_li.user.js」,「20090112.js」という名前で保存します。config.xmlには以下のような指定をします。

<Script filename="nicovideo_add_nicotag_li.user.js"
        name="nicovideo Add nicotag links"
        namespace="http://d.hatena.ne.jp/gifnksm/"
        description="Add nicotag link at nicovideo's pages."
        enabled="true" basedir="nicovideo_add_nicotag_li">
  <Include>http://www.nicovideo.jp/*</Include>
  <Require filename="20090112.js"/>
</Script>