홈 로우 모드와 듀오 레이어를 결합한 아이디어인 듀오 모디파이어를 소개하고, 타이핑 습관에 맞게 임계값을 조정하는 팁 및 예제 코드를 제공합니다.
검색 K
예제
모디파이어 키
듀오 모디파이어
듀오 모디파이어(duo-modifier)는 홈 로우 모드(home row mods)와 듀오 레이어(duo-layer)를 결합한 아이디어입니다:
info
타이핑 속도와 습관에 맞게 basic.simultaneous_threshold_milliseconds를 조정하세요.
tip
처음 시작할 때는, 모드(들)가 활성화될 때 알림을 표시하는 것이 매우 유용할 수 있습니다.
예제 코드: ( 온라인 에디터에서 열기 → )
let rules = [
rule('duo-modifiers').manipulators(
duoModifiers({
'⌘': ['fd', 'jk'], // ⌘를 가장 많이 쓰므로 첫 번째
'⌃': ['fs', 'jl'], // ⌃는 Vim에서 사용하므로 두 번째
'⌥': ['fa', 'j;'], // ⌥는 가장 덜 쓰므로 마지막
'⇧': ['ds', 'kl'],
'⌘⇧': ['gd', 'hk'],
'⌃⇧': ['gs', 'hl'],
'⌥⇧': ['ga', 'h;'],
'⌘⌥': ['vc', 'm,'],
'⌘⌃': ['vx', 'm.'],
'⌥⌃': ['cx', ',.'],
'⌘⌥⌃': ['vz', 'm/'],
}),
),
]
function duoModifiers(
v: Partial<
Record<
'⌘' | '⌥' | '⌃' | '⇧' | MultiModifierAlias,
`${LetterKeyCode | KeyAlias}${LetterKeyCode | KeyAlias}`[]
>
>,
) {
let result = []
for (let [m, k] of Object.entries(v)) {
for (let keys of k) {
let id = k + m
let [firstMod, ...restMods] = (
m in modifierKeyAliases
? [modifierKeyAliases[m as ModifierKeyAlias]]
: multiModifierAliases[m as MultiModifierAlias]
) as Array<'command' | 'control' | 'option' | 'shift'>
let to_after_key_up = [toRemoveNotificationMessage(id)]
result.push(
mapSimultaneous(keys.split('') as (LetterKeyCode | KeyAlias)[], {
to_after_key_up,
})
.toNotificationMessage(id, m) // 반드시 먼저 와야 함. 그렇지 않으면 to()가 동작하지 않음
.to(`left_${firstMod}`, restMods),
)
}
}
return result
}