GreasemonkeyからScriptishへ環境設定を移行する
GreasemonkeyからScriptishへの環境移行メモです。
ScriptishについてはScriptish wiki!やScriptish (Greasemonkey フォーク版) キタ━━━ヽ(゚∀゚)ノ━ – hogehoge @teramakoを見るとよいです。
簡単にまとめると、使えるAPIが増えた(開発者的にうれしい)、管理画面の設定項目がGreasemonkeyより豊富(Greasemonkey0.9で削られたinclude,excludeの設定もGUIからできます)、UIが日本語化されてる(ちょっと分かりづらい訳だけど…)
Greasemonkeyからフォークしてるので、Greasemonkey向けに書かれたスクリプト自体の互換性は問題ないです。
逆にScriptishの新APIを使ったものはGreasemonkeyでは動かない事があるぐらいだと思います。
環境の移行方法
How To: Manually transfer user scripts from Greasemonkey to Scriptish – GitHub
に手動での環境移行手順が書かれています。
簡単に書き出してみると
- スクリプトフォルダ名はgm_scriptsからscriptish_scriptsになった
(フォルダの中のconfig.xmlや配置自体は同じなのでフォルダ名だけ変更すればOK) prefs.jsへスクリプトの設定の保存書式が変更された<br />これが移行時にネックになってる大きな変更で、GM_setValueなどGreasemonkeyスクリプトから値を保存するとpref.jsに書き込まれますが、そのときの書式が変わっているためGreasemonkey時に保存した値が引き継がれません。<br />一応手動での書き換え手順も書かれています。<br />greasemonkey.scriptvals から extensions.scriptish.scriptvals へ置換する<br />スクリプト名とネームスペースの間の/を@に置き換える
ネームスペースとスクリプト名の位置も逆転してまたスペースなど除去されてたりします。
手動でやっても結構手間がかかるので、大事なものだけやって、後は普通に設定し直した方が楽だと思います。
一応、自動的にできるようにNILScriptでGreasemonkeyToScriptish.ngというものを作ってみました。
pref.jsに保存された値をGreasemonkeyからScriptishの書式へ変更する pref.jsと同じディレクトリにこのngスクリプトを置いて実行するとnew_pref.jsが生成される。
実行する前にpref.jsのバックアップをとっておいてから、pref.jsと同じディレクトリにおいて実行すると、それぞれの値を書き換えたnew_pref.jsというのができるので、後はpref.jsのコピーし直すかpref.jsにリネームして使うなどしてください。
不完全かもしれないので、保証はできません。
Dropboxフォルダでスクリプト管理
これを期にGreasemonkeyスクリプトのファイル自体をDropboxで共有しようと思ったので、移行手順の1の時にDropboxにgm_scriptsフォルダを移して、プロファイルフォルダにscriptish_scriptsへのシンボリックリンクを作りました。
Windowsだとmklinkとかコマンドラインがややこしいので、Link Shell Extensionを使ってシンボリックリンクを張りました。
このソフトを使えば普通のショートカットみたいにシンボリックリンクが貼れるので簡単。
(シンボリックリンクのフォルダ名をちゃんとscriptish_scriptsにするのを忘れない)
追記:起動時に変更がたくさんある(Dropbox共有してると起きやすい)とnotificationが大量に通知されて使い物にならないので、
Manual: Preferences – GitHubを参考にabout:configのextensions.scriptish.enableScriptRefreshing を false にして変更の監視をオフにしました。副作用として、スクリプトのメタブロックを書き換えても反映されなくなると思います。
(Greasemonkey0.8あたりと同じ動作になると思う)
これでGreasemonkeyからScriptishへの移行手順は終わりです。
Firefox4への移行と同時にGreasemonkeyもScriptishへ移行を行えば、無駄なスクリプトを削除できたり汚れたpref.jsも掃除できるので同時期にやると良いかと思います。(使ってないGreasemonkeyスクリプトを削除するngスクリプトも以前書きました)
まだどっちのアドオンが優れてるのかはよく分かってないので、使ってるうちに何らかの違いが分かるんではないかと。
(Scriptish向けのスクリプトってなんて呼べば良いんだろ?)
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。