技術ブログを無くしたのでちょっと場違い感すごいけどここに書くね。
USBでwindowsのキーボードを使っているのだけど、mac OSをSierraにあげたらKey Configの設定で使っていたKarabinerが効かなくなってしまったんだよ。
どうしたらいいのかとプログラマーズカフェで訪ねたらhammerspoonつかえばいいよと教えてもらったので、ちょっとluaを書いてみることにしたんだよ。
luaなんてラグナロクオンラインでホムンクルスのAIを書いて以来。さっぱり覚えてなくてどったんばったん大騒ぎ。
ググればそのものが出てくるかとおもったらみんな[esc]に割り当ててたりキーボードのイベントハンドラーをつかってたりして、ハンドリングしたあとのいべんとキャンセルの仕方がわからなかったしてちょっと目的と違って。こまったねー。
hs.hotkey.bindを使って書き直してみたので貼っておくね。homeキーとendキーのも挙動が嫌いなので書いておいたよ。
hs.hotkey.bind({}, vk_home, keyStroke({"cmd"}, vk_Left), {}, {})
みたいな書き方ができなくてちょっとまあ動けばいいか的になってるけどご愛嬌ね。
hammerspoonは
ここからダウンロードできるよ。
Preferencesをひらいてloginしたときに起動するようにしたら、config開いて、下記の内容に編集して、Reloadだよ。これなら内容がよくわからなくてもできるね!すごいね!
一応ESCのキーコードも書いておいたのでバックスラッシュじゃないのがいいっていうフレンズはvk_escにおきかえるといいよ。こういうのを弄るのが得意なフレンズがいたらあとはよろしくおねがいね。
local vk_jis_eisuu = 0x66 local vk_jis_kana = 0x68 local vk_backslash = 0x32 local vk_esc = 0x35 local vk_home = 0x73 local vk_end = 0x77 local vk_Right = 0x7c local vk_Left = 0x7b local isKanaMode = false local function keyStroke(modifiers, character) hs.eventtap.keyStroke(modifiers, character) end HomeKey = function() keyStroke({"cmd"}, vk_Left) end ShiftHomeKey = function() keyStroke({"shift","cmd"}, vk_Left) end EndKey = function() keyStroke({"cmd"}, vk_Right) end ShiftEndKey = function() keyStroke({"shift","cmd"}, vk_Right) end KanaKey = function() if isKanaMode then keyStroke({}, vk_jis_eisuu) isKanaMode = false else keyStroke({}, vk_jis_kana) isKanaMode = true end end hs.hotkey.bind({}, vk_backslash, KanaKey, {}, {}) hs.hotkey.bind({}, vk_home, HomeKey, {}, {}) hs.hotkey.bind({"shift"}, vk_home, ShiftHomeKey, {}, {}) hs.hotkey.bind({}, vk_end, EndKey, {}, {}) hs.hotkey.bind({"shift"}, vk_end, ShiftEndKey, {}, {})