Home > Windows > | keyhac > | python > | キーボード > SandS (Space and Shift) を使おう!【keyhac 編】

SandS (Space and Shift) を使おう!【keyhac 編】

日本語キーボードドライバで英語配列を使う【keyhac 編】」に続いて、keyhacSands の設定を行ってみる。

そもそも SandS とは何かというと、親指シフト配列キーボードの特徴のうち、「ホームポジションに手を置いたときに親指の位置にあるキーを修飾キーとして使う」機能だけを通常の JIS(あるいは ASCII)配列のキーボードで実現するものだ。具体的には、Space キーを Shift キーの代わりとして使うことである。

  1. Space キー単体を押したときはスペースを表示し、
  2. Space キーを押しながら 4 キーを押すと、「$」記号を表示する。

こんな機能が実現できる。タイプするときにほとんど働いていない親指を使うことで、Shift Control Tab Enter などの打鍵で忙しい小指を休ませることが狙いだ。ただ、Space キーを押して一定時間(数十~数百ミリ秒)を上記 1. 2. の判定に使うので、単にスペースを入力したいときは僅かに待つことになる。そこは慣れるしかない。

では実際の設定方法を載せておく。……そのまま引用しただけだけども。

# config.py
from keyhac import *

def configure(keymap):
    keymap_global = keymap.defineWindowKeymap()
    keymap.replaceKey("Space", "RShift")
    keymap_global["O-RShift"] = "Space"

http://d.hatena.ne.jp/mobitan/20081128/1227792452

"O-" 文字列を使うことで通常のキーを修飾キーと化す *1 ことが出来る。この機能は SandS 以外にも使える。例えば、僕は英字配列の HHK を使っているのだが左右の Win キーはまず使わない。そこでこのキーを単体で押したときは 英数 キー *2 と見なし、他のキーと一緒に押した場合に特殊な動作をするように定義しよう。

from keyhac import *

def configure( km ):
    kmg = keymap.defineWindowKeymap()

    # ユーザモディファイアキーの定義
    km.defineModifier( 235, "User0" )

    # LWin => 英数
    # O-LWin => U0
    km.replaceKey( "LWin", 235 )
    kmg[ "O-(235)" ] = "(240)"
    # キーコード240が英数キーを表しているのだが、
    # これはキーボードによって違うかも知れない。

    # Vim 風カーソル移動
    kmg[ "U0-H" ] = "Left"
    kmg[ "U0-J" ] = "Down"
    kmg[ "U0-K" ] = "Up"
    kmg[ "U0-L" ] = "Right"

    # Control + LWin + E でエクスプローラを起動する
    # (元来は Win + E の機能)
    kmg[ "C-U0-E" ] = km.command_ShellExecute( None, None, u"explorer.exe", None, "" )

この設定によって、

  1. 左 Win キー単体を押したときは 英数 キーを押したときと同じ動作をし、
  2. 左 Win + H J K L キーを押したときは、それぞれ にカーソル移動する。

という機能が実現できる。Win キーと組み合わせたショートカットを使いたいときは、まだ残っている 右Win キーを使えばいいのだが、最終行のように個別に設定を割り当ててもいいだろう。

*1 : マニュアルにはワンショットモディファイア【one shot modifier】とある。
*2 : 英字配列キーボードには存在しないのだが、ATOK においては英語入力モードと切り替えるための重要なキーなのだ。

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://blog.remora.cx/mt/mt-tb.fcgi/305
Listed below are links to weblogs that reference
SandS (Space and Shift) を使おう!【keyhac 編】 from blog.remora.cx

Home > Windows > | keyhac > | python > | キーボード > SandS (Space and Shift) を使おう!【keyhac 編】

Feeds
CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

W3C Validation

I ♥ validator

Return to page top