私の「Emacs 小指」回避法 その2(Windows7 で keyhac のワンショットモディファイア) [メモ]
こんばんは。
Parllet(個人で作成・公開しているアルファ版のWeb家計簿) のブログラミング(ブログを書きながらプログラミング)は、
昨日一応区切りがついて 、その流れで次の改修案を仕込み中
な感じの @sakashushu です。
今回は息抜きって訳じゃないですが、 5/4 に書いた「Emacs 小指」回避法 の第2弾に当たるようなエントリです。
スポンサードリンク
■ ざっくり環境
OS:Windows 7 Home Premium
keyhac:1.62
■ 経緯(いきさつ)とか
5/4の第1弾 を端折って書くと、
いろいろあって
・左親指で押せる無変換キーにControlキーの機能を持たせる。の方向性を模索して、yamyで以下を
・無変換もたまに使うので、ワンショットモディファイアで。
・ついでに右親指で押せる変換キーにAltキーのワンショットモディファイア。
mod Control += !!無変換
key R-*無変換 = &Ignore
mod Alt += !!変換
key R-*変換 = &Ignore
設定して実現していましたが、以下のようなデメリットもあり、
・うまく動かない時がある(何もキーを押していない状態で、Control・Alt・Shiftキー等が押されっぱなしになったような挙動になる時がある。yamyを終了させて、Control・Alt・Shiftキーを何度か押していると直ったりする。)
最後にこんなこと書いてましたと。
ただ、空いた時間とか気分転換したい時とかに他のソフトも検討したりしたいとは思ってます。
(実は今一つ、目をつけてるソフトがあるんですが、それはまた別の機会に。)
■ 目をつけてたソフトってのが、
keyhac ということです。
第1弾を書いた時よりもかなり前から気にはしてまして、どんな風に検索で辿ったか忘れたんですが、ずっとブラウザのタブで開きっぱにしてました。
yamy と同様に以下のようなメリットがあるっぽいです。
・レジストリをいじらない。 ・好きな時に、有効にしたり無効にしたり設定ファイルを切り替えたり出来る。
で、設定のカスタマイズはスクリプト言語 Pythonを使うみたいです。
私は残念ながら Python やったことないです。
とりあえずダウンロードして実行してみたりしましたが、最初から設定ファイル(config.py)に例が実装されれていて、メモ帳がEmacsキーバインドで動いたりしました。
この状態で止まってて、やっと今回いじってみたということです。
■ 体当たり開始
入ってた config.py は今後の参考にもしたいので別名で保存し、まずは中身を全部消しました。
ヘルプファイルとかも見てみましたが、それだけでは難しそうです。
「ワンショットモディファイア keyhac」で検索!
一つリンクを辿って、以下のページに着きました。
keyhac v1.08 はワンショットモディファイアを定義できる。これを使って SandS を実現するには、次のようにスペースキーを一旦 Shift キーに置き換え、Shift キーがワンショットで押されたら Space が入力されるようにする。# config.py from keyhac import * def configure(keymap): keymap_global = keymap.defineWindowKeymap() keymap.replaceKey("Space", "RShift") keymap_global["O-RShift"] = "Space"簡単だ。もちろんこの場合、本来の RShift キーでも Space が入力される。不都合なら RShift を LShift にしちゃおう。
via: keyhac で SandS - Wisteria::Diary
なるほど。
私のに置き換えると、「本来の Alt キーでも 変換 される」ってなことになりそうだけど、まずはやってみよう。
「Control」 とか 「Alt」 はヘルプに記述方法("Ctrl"・"Alt")が載ってたけど、「変換」と「無変換」は載ってません・・。
それで勘でやってみたんですが、常駐バーの keyhac のアイコンを右クリックすると「内部ログ ON」ってのがありました
はい、「変換」が "(28)" で「無変換」が "(29)" みたいです。
それを踏まえて、設定ファイル(config.py)に以下のように記載しました。
from keyhac import *
def configure(keymap):
# ワンショットモディファイア
keymap_global = keymap.defineWindowKeymap()
keymap.replaceKey( "(28)", "Alt" ) # 「変換」キーを一旦 Alt キーに置き換え、
keymap_global[ "O-Alt" ] = "(28)" # Alt キーがワンショットで押されたら 「変換」されるようにする
keymap.replaceKey( "(29)", "Ctrl" ) # (29) は「無変換」キー
keymap_global[ "O-Ctrl" ] = "(29)"
keyhacアイコン右クリック>設定をリロード をクリックしてからキー操作してみたら、今までの yamy と同様の動きになりました!
そして、「本来の Alt キーでも 変換 される」はずと思って確認しましたが、私の場合は何故かそうなりません。
まあ、その方がいいので問題ありませんが・・。
■ 今後とか
動きやメリットは yamy と同様なので、取りあえずこのまま毎日使い続けます。
もしデメリットになるようなことが出てきたら、またポストするかもしれません。
といったところで今回は以上です!
お疲れ様でした!
昨日 から挿絵に登場しているマジンガー。
今はまだ安く入手できそうです!
TEL:
08034662740
メール:
sakashushu@gmail.com
ツイッター:
https://twitter.com/sakashushu
フェイスブック:
https://www.facebook.com/sakashushu
ご連絡・フォロー・友達申請 等、いつでもお気軽にどうぞ!
またお越しくださいませませ!
コメント 0