内骨格をいじる(キー設定)

昨日も書いた「内骨格」をいじってみた。とりあえず、キー設定。まずはカーソル移動。config.py にこんな感じで追加してみた。

def command_AFXLeft():
    window.command_FocusLeftOrGotoParentDir()
    window.command_MoveSeparatorMaximizeH()

def command_AFXRight():
   window.command_FocusRightOrGotoParentDir()
   window.command_MoveSeparatorMaximizeH()

window.keymap[ KeyEvent( VK_OEM_PLUS, 0 ) ] = window.command_MoveSeparatorCenter
window.keymap[ KeyEvent( ord('J'), 0 ) ] = window.command_CursorDown
window.keymap[ KeyEvent( ord('K'), 0 ) ] = window.command_CursorUp
window.keymap[ KeyEvent( ord('H'), 0 ) ] = command_AFXLeft
window.keymap[ KeyEvent( ord('L'), 0 ) ] = command_AFXRight
window.keymap[ KeyEvent( ord('J'), MODKEY_CTRL ) ] = window.command_JumpList
window.keymap[ KeyEvent( ord('K'), MODKEY_CTRL ) ] = window.command_Delete
window.keymap[ KeyEvent( ord('H'), MODKEY_SHIFT ) ] = window.command_JumpHistory
window.keymap[ KeyEvent( ord('L'), MODKEY_CTRL ) ] = window.command_View

vi のように hjkl で移動する。左に行ったら左を最大化、右に行ったら右を最大化する、二画面ファイラーを一画面ぽく使っている状態。セパレータを戻しやすいように ; に割り当てている。「あふ」でもこの動作が好きなので、この設定にしている。元のキーは適当に退避してある。H が CTRL-H でないのは、CTRL-H を BS にしているから。

cfiler_mainwindow.py の configure() に初期のキー設定があるので、それを参考にした。 config.py に渡されている window は、この MainWindow クラスなので、初期のキー設定に使われている command_* は、おそらくすべて利用できる。