hook japanese - mooz/keysnail GitHub Wiki
- ããã
- äŊŋãæš
- Tips
- ãĢãšãŋãã¤ãē
- ããã¯
- ããŠã°ã¤ãŗãå Ĩæ
- ããŠã°ã¤ãŗãæ¸ã
äģĨä¸ãĢį¤ēããŗãŧããŽåäŊãįĸēčĒããįēãĢ㯠Eval ãŗããŗããåŊšãĢįĢãĄãžãã
M-: (Alt + : ãĒãŠ) ã¨å ĨåããéãããããŗãããĢãŗãŧããæãĄčžŧãŋ Enter ããŧãæŧãã Eval ãŗããŗãã¯éįēč ãŽč¯ãåã§ãã
čŠŗããčĒŦæãĢéĸããĻ㯠ããŽããŧ㸠ãåį §ããĻãã ããã
KeySnail ãŽããã¯ãˇãšãã ãåŠį¨ããã¨ãããã°ãŠã ãŽæ§ã ãĒé¨åãĢč¨ããããããã¯ãã¤ãŗãã¸éĸæ°ãå˛ãåŊãĻãĻãããã¨ãå¯čŊã¨ãĒããžãããžããããŠã°ã¤ãŗãĒãŠãããã¯ãįŦčĒãĢį¨æãããã¨ãã§ããžãã
äžãã° KeyPress ããã¯ã¸éĸæ°ãįģé˛ããå ´å㯠.keysnail.js ãŽæĢå°žã¸æŦĄãŽãããĒãŗãŧããč¨čŋ°ããžãã
hook.addToHook("KeyPress", function (aKey) { display.prettyPrint(aKey + " pressed"); });
ããŽãããĢããĻããã¨ããĻãŧãļãããŧãå ĨåããåēĻãĢ display.prettyPrint(aKey + " pressed") ãåŽčĄããããããĢãĒããžããããã§ã¯å ĨåãããããŧãŽååãįģéĸã¸čĄ¨į¤ēããĻããžãã
ããã¯ãã¤ãŗãã¸ãŽéĸæ°å˛ãåŊãĻãĢ㯠addToHook
ã setHook
ãį¨ããžãã严č
ã¨ãåãåŧæ°ã¯åãã§ããã addToHook
ãããã¯ãã¤ãŗããŽæĢå°žã¸éĸæ°ãčŋŊå ãããŽãĢ寞ãã setHook
ã¯ãããžã§ãĢããã¯ãã¤ãŗãã¸įģé˛ãããéĸæ°å
¨ãĻãæļåģããåžãĢéĸæ°įģé˛ãčĄããžãã
ãããĢãããŠã°ã¤ãŗå ã§ããã¯įģé˛ãčĄãå ´åã¯åŋ ã addToHook ãäŊŋããããĢããĻãã ããã
ããŠã°ã¤ãŗã¯ãã¨ãĻããˇãŗããĢãĒæšæŗã§įŦčĒãŽããã¯ãã¤ãŗããį¨æãããã¨ãå¯čŊã§ãã
ããã¯ãã¤ãŗãã¨ãããå ´æãĢ hook.callHook("ããã¯ãã¤ãŗãå", åŧæ°)
ãŽä¸čĄãč¨čŋ°ããĻä¸ãããããããĻãããã¨ã§ãããŽããã¯ãã¤ãŗããĢå˛ãåŊãĻãããéĸæ°ã¸åŧæ°ãæ¸ĄãããåŽčĄãããžãã
äžãã° KeySnail å é¨ãŽ key ãĸã¸ãĨãŧãĢã§ã¯ãæŦĄãŽãããĢããĻããã¯ãã¤ãŗããæäžãããĻããžãã
hook.callHook("KeyBoardQuit", aEvent);
hook.callHook("PostCommand", hookArg);
ããŽäžãčĻãĻåãããããĢãåããã¯ãã¤ãŗããĢããŖãĻéĸæ°ãĢæ¸Ąãããåŧæ°ã¯į°ãĒããžããäģĨä¸ãĢč¨ãããčĒŦæãåčãĢããĻãã ããã
ãĻãŧãļãããŧãå ĨåããåēĻãĢããŽããã¯ã¸įģé˛ãããéĸæ°ãåŧã°ããžãã
ããŽããã¯ã¸įģé˛ãããéĸæ°ãĢ㯠ããŧã¤ããŗã
ãæ¸Ąãããžãã
hook.addToHook("KeyPress", function (aKey) { display.prettyPrint(key.keyEventToString(aKey) + " pressed"); });
aKey ãĢã¯å ĨåãããããŧãŽããŧã¤ããŗããæ¸ĄããŽã§ãããã§ã¯ãããæåååŊĸåŧã¸å¤æããįģéĸã¸ã¨čĄ¨į¤ēããĻããžãã
ãĻãŧãļã key.quitKey (ãããŠãĢã㯠C-g) ãå ĨåããéãĢåŧã°ããžãã
ããŽããã¯ã¸įģé˛ãããéĸæ°ãĢ㯠ããŧã¤ããŗã
ãæ¸Ąãããžãã
hook.setHook('KeyBoardQuit', function (aEvent) { if (key.currentKeySequence.length) return; command.closeFindBar(); if (util.isCaretEnabled()) command.resetMark(aEvent); else goDoCommand("cmd_selectNone"); if (KeySnail.windowType == "navigator:browser") key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_ESCAPE, true); });
ããã¯å¤ããŽãĻãŧãļ㎠.keysnail.js ã¸åŽéãĢč¨čŋ°ãããĻããã§ãããč¨åŽã§ããé常ãŽæšæŗã§ã¯ key.quitKey ãĢãŗããŗããå˛ãåŊãĻããã¨ãã§ããĒããããããŽãããĢããĻããã¯ãã¤ãŗãã¸ã¨ãŗããŗããįģé˛ãããã¨ã§ã寞åŋããĻããžãã
ããŧãĢå˛ãåŊãĻããããŗããŗããåŧã°ããå (PreCommand) ã¨åŧã°ããåž (PostCommand) ãĢãããŽããã¯ãã¤ãŗãã¸įģé˛ãããéĸæ°ãåŧã°ããžãã
ããŽããã¯ã¸įģé˛ãããéĸæ°ãĢã¯æŦĄãŽãããĒãĒãã¸ã§ã¯ããæ¸Ąãããžãã
var hookArg = { func : aFunc, event : aEvent, arg : aArg };
func ãĢ㯠ãŗããŗãæŦäŊ (éĸæ°)
ãã event ãĢ㯠ããŧã¤ããŗã
ãã arg ãĢ㯠åįŊŽåŧæ°
ãããããæ ŧį´ãããžãã
PreCommand ããã¯ã¸å˛ãåŊãĻãããéĸæ°å ã§äžå¤ãæããã¨ãããŽãŗããŗããŽåŽčĄãããŖãŗãģãĢãããã¨ãå¯čŊã§ãã
hook.addToHook("PostCommand", function (aHookArg) { var func = aHookArg.func; display.prettyPrint(func.ksDescription + " executed"); });
ããã§ã¯ aHookArg.func ã¨ããĻããŗããŗãæŦäŊããå ĨæããããŽãŗããŗããŽčĒŦæã func.ksDescription ã¨ããĻåžããŽãĄãįģéĸã¸ã¨čĄ¨į¤ēããĻããžãã
ã¯ãĒããããŧããŽå 厚ãå¤åããã¨ã (ãĻãŧãļããããšãããŗããŧããã¨ã) ãĢåŧã°ããžãã
ãĻãŧãļããŗããŧãããããšããŽå
厚
ãæ¸Ąããžãã
PreCommand ããã¯ã¸å˛ãåŊãĻãããéĸæ°å ã§äžå¤ãæããã¨ãããŽãããšã㯠KeySnail ãŽããĢãĒãŗã°ã¸æ ŧį´ãããžããã
hook.addToHook("ClipboardChanged", function (aText) { util.alert("Clipboard Changed!", aText + " copied"); });
ããã§ã¯æ°ãããŗããŧããããããšããŽå 厚ãããã¤ãĸãã°čĄ¨į¤ēããĻããžãã
ããąãŧãˇã§ãŗããŧãŽå¤ãå¤åããã¨ããã¤ãžãããŧã¸ãããŧããããéããŋããåãæŋããŖãéãĢåŧã°ããžãã
ããŧããããããŧã¸ãåãæŋããŖããŋããŽããŧã¸ãŽ URI ãæ ŧį´ããããĒãã¸ã§ã¯ããæ¸Ąããžãã
æååã¨ããĻ㎠URL 㯠spec ãããããŖãĢæ ŧį´ãããĻããžãã
hook.addToHook('LocationChange', function (aNsURI) { if (aNsURI || aNsURI.spec) { var url = aNsURI.spec; display.prettyPrint(url); } });
ããŽäžã§ã¯ããŋããåãæŋããŖãéãĒãŠãĢãšã¯ãĒãŧãŗãŽåŗä¸ã¸ã㎠URL ã襨į¤ēããĻããžãã
GreaseMonkey ãŽãããĢãįšåŽãŽãĩã¤ããĢ寞ããåĻįãčĄãããå ´åãĢäžŋåŠã§ãããã
å ¨ããŠã°ã¤ãŗãŽããŧããįĩããŖãéãĢåŧã°ããžãã
ããŽããã¯ã¯įšãĢåŧæ°ãæ¸Ąããžããã
ããŽããã¯ã¯ããŠã°ã¤ãŗå ã§ããäģãŽããŠã°ã¤ãŗãŽå¤ãåŠį¨ããããä¸æ¸ãããéãĢæį¨ã§ãã
KeySnail ã¯æŦĄãŽãããĒé įĒã§ããŠã°ã¤ãŗãããŧãããžãã
- ååã _ ã§å§ãžãããŠã°ã¤ãŗ (ãŠã¤ããŠãĒ)
- åæåããĄã¤ãĢ (.keysnail.js)
- åããŠã°ã¤ãŗãååé ãĢããŧã
ããŽįēããã§ãŧãē 3 ãŽãåããŠã°ã¤ãŗãå ã§äģãŽããŠã°ã¤ãŗãŽå¤ãåŠį¨ãããä¸æ¸ããããã¨ããã¨ãå¯žčąĄã¨ãĒãããŠã°ã¤ãŗãããŽããŠã°ã¤ãŗããå ãĢããŧããããĻããäŋč¨ŧããĒããã (ããĄããååãå¤æ´ãããã¨ã§é įĒãæäŊãããã¨ã¯å¯čŊã§ãã) ããžããããžããã
ãã㧠PluginLoaded ããã¯ãŽåēįĒã§ããããŽããã¯ã¸įģé˛ãããéĸæ°ã¯ãå ãģãŠãŽãĒãšãã§ããã¨æŦĄãŽãããĒäŊįŊŽã§åŧã°ããžãã
- ååã _ ã§å§ãžãããŠã°ã¤ãŗ (ãŠã¤ããŠãĒ)
- åæåããĄã¤ãĢ (.keysnail.js)
- åããŠã°ã¤ãŗãååé ãĢããŧã
- PluginLoaded ãĢįģé˛ãããéĸæ°ãŽåŽčĄ
PluginLoaded ãĢįģé˛ãããéĸæ°ãåŧã°ããæįšã§ã¯åããŠã°ã¤ãŗãŽããŧããįĩããŖãĻãããããåŽåŋããĻããŠã°ã¤ãŗãŽå¤ãäŊŋį¨ãããå¤æ´ããããããã¨ãåēæĨãã¨ããããã§ãã
äžãã° Caret hint ããŠã°ã¤ãŗã§ã¯ HoK ããŠã°ã¤ãŗãŽæĄåŧĩããŗããĸãŧããĸã¯ãˇã§ãŗãŽå¤ãä¸æ¸ãããįēãĢãããŽããã¯ã¸éĸæ°ãįģé˛ããĻããžãã
hook.addToHook('PluginLoaded', function () { if (!plugins.hok) return; var actions = [ [headMode, M({ja: "ããŖãŦãããčĻį´ ãŽå é ã¸į§ģå", en: "Move caret to the head of the selected element"}), function (e) moveCaret(e, true, false)], [tailMode, M({ja: "ããŖãŦãããčĻį´ ãŽæĢå°žã¸į§ģå", en: "Move caret to the tail of the selected element"}), function (e) moveCaret(e, false, false)], [selectHeadMode, M({ja: "čĻį´ ãé¸æããĻããŖãŦãããå é ã¸į§ģå", en: "Select element and move caret to the head"}), function (e) moveCaret(e, false, true)], [selectTailMode, M({ja: "čĻį´ ãé¸æããĻããŖãŦãããæĢå°žã¸į§ģå", en: "Select element and move caret to the tail"}), function (e) moveCaret(e, false, true)] ]; // äģĨä¸įįĨ
Firefox ãŽãĄã¤ãŗãĻãŖãŗããĻãéããããéãĢåŧã°ããžãã
ããŽããã¯ã¯įšãĢåŧæ°ãæ¸Ąããžããã
ããŽããã¯ãĢįģé˛ãããéĸæ°ã¯ããšããŠã¯ãŋãŽãããĢæ¯ãčãŖãĻãããžããããŠã°ã¤ãŗãŽåžåĻįãĒãŠãčĄãããå ´åãĢäžŋåŠã§ãããã
Unload ããã¯ã¯ KeySnail 1.1.8 ããį¨æãããĻããžãã
KeySnail ãŽåæåãįĩäēããéãĢåŧã°ããžãã
įšãĢåŧæ°ãæ¸Ąããžããã
Unload ããã¯ã¯ KeySnail 1.3.2 ããį¨æãããĻããžãã