Skip to content

Custom Dvorak 34

KeyBall39で、Programmer Dvorakを参考に、キーマップを考えていました。

 YouTubeでこのような動画を見つけ、Voyagerが気になり、購入しました。

My Custom Dvorak

img

Combos

 Dvorak配列の場合、kの入力での運指、lsコマンドなど使用する際、小指がきつい。どちらも、Combosで対応。lキーをCombosでしか使っていないので、削除しても問題ないかもしれない。

同時押しキー
h + tk
c + rl

Shortcut key

 Dvorak配列を使用すると、ショートカットキーはメチャクチャになる。karabiner-elementsで、ショートカットキーをQwertyと同じ位置にして対応。

変換例(押された時に、上書きされるように設定している)

 以下は一部の変換例で、すべてのショートカットキーを上書きしています。

変換前変換後
cmd + 'cmd + z
cmd + qcmd + x
cmd + jcmd + c
cmd + kcmd + v
cmd + xcmd + b

Scroll

 右クリックを押している間にトラックボールを転がすと、スクロールされるようにHammerspoonで設定している。

lua
local deferred = false

overrideRightMouseDown = hs.eventtap.new({ hs.eventtap.event.types.rightMouseDown }, function(e)
    deferred = true
    return true
end)

overrideRightMouseUp = hs.eventtap.new({ hs.eventtap.event.types.rightMouseUp }, function(e)
    if (deferred) then
        overrideRightMouseDown:stop()
        overrideRightMouseUp:stop()
        hs.eventtap.rightClick(e:location())
        overrideRightMouseDown:start()
        overrideRightMouseUp:start()
        return true
    end
    return false
end)

local oldmousepos = {}
local scrollmult = 4

dragRightToScroll = hs.eventtap.new({ hs.eventtap.event.types.rightMouseDragged }, function(e)
    deferred = false
    oldmousepos = hs.mouse.absolutePosition()
    local dx = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaX'])
    local dy = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaY'])
    local scroll = hs.eventtap.event.newScrollEvent({dx * scrollmult, dy * scrollmult},{},'pixel')
    hs.mouse.absolutePosition(oldmousepos)
    return true, {scroll}
end)

overrideRightMouseDown:start()
overrideRightMouseUp:start()
dragRightToScroll:start()

おわりに

 次は、おさかなキーボードを使用してみたい。