홈 로우 모드와 듀오 레이어를 결합한 아이디어인 듀오 모디파이어를 소개하고, 타이핑 습관에 맞게 임계값을 조정하는 팁 및 예제 코드를 제공합니다.
검색 K
예제
모디파이어 키
듀오 모디파이어
듀오 모디파이어(duo-modifier)는 홈 로우 모드(home row mods)와 듀오 레이어(duo-layer)를 결합한 아이디어입니다:
info
타이핑 속도와 습관에 맞게 basic.simultaneous_threshold_milliseconds를 조정하세요.
tip
처음 시작할 때는, 모드(들)가 활성화될 때 알림을 표시하는 것이 매우 유용할 수 있습니다.
예제 코드: ( 온라인 에디터에서 열기 → )
tslet 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 }